西门子s7200plc,把vb100~VB107分别传送到vb200~vb207,用 字节 字 S7-200在自由口通讯时将PLC1中VB100开始的数据(...

作者&投稿:宗政风 (若有异议请与网页底部的电邮联系)
1、可以写入、读出寄存器的数值(字节、字、双字);2、可以进行元件(V、M、S、Q、I)的置、复位操作;3、可以读取元件(V、M、S、Q、I)的ON/OFF状态。4、可以控制PLC的运行、停止。公布现在网上流行的PPI协议,此协议虽然有些错误,但是思路没问题。西门子S7-200PLC之间或者PLC与PC之间通信有很多种方式:自由口,PPI方式,MPI方式,Profibus方式。使用自由口方式进行编程时,在上位机和PLC中都要编写数据通信程序。使用PPI协议进行通信时,PLC可以不用编程,而且可读写所有数据区,快捷方便。但是西门子公司没有公布PPI协议的格式。用户如果想使用PPI协议监控,必须购买其监控产品或第三方厂家的组态软件。这样给用户自主开发带来一定困难,特别是自行开发的现场设备就不能通过PPI协议接入PLC。其它通讯方式编程也存在编程复杂,需要购买软件和授权等局限性(1)。通过数据监视、分析的方法,我们找出了PPI协议的关键报文格式,可用于上位机、现场设备与S7-200CPU之间通讯。分析方法西门子的Step7Micro/Win32是用于S7-200系列PLC的开发工具,它使用PC机上的COM口通过一条PC/PPI编程电缆连到PLC的编程口上。这说明,PC实际上是可以通过串口同S7-200CPU通讯。只是我们不知道通讯协议而已。通过截获PC机串口上的收发数据,对照Step7软件发出的指令,我们就有可能分析出有关指令的报文和通讯方式;然后,直接通过串口向PLC发送报文,以验证这些指令报文是否正确。本着这一思想,我们采用以下步骤获得这些报文。首先制作一个串口的分支器,COM1的RX、TX分别接到COM2的TX、RX,即交叉接线,使得COM1发的数据COM2能收到。PC/PPI编程电缆接在COM1上,这样,Step7Micro/Win32发给PLC的报文就可以在COM2上接收了。我们按S7-200系统手册设置好两个串口,参数要一样,均为9600,8,偶校验,1位停止位。然后设置好Step7软件,使之能与S7-200CPU正常通讯。从Step7软件中发出一个明确指令,COM2上的监视软件就能显示这条报文了(用16进制显示)。通过与Profibus标准的类比(2)我们就可以得到一些关键的报文了。这种方法比分析PLC中NETR,NETW指令要直接、全面(3)。3PPI协议分析PC与PLC采用主从方式通讯,PC按如下的格式发读写指令,PLC作出接收正确的响应(返回应答数据E5H或F9H见下文分析),上位机接到此响应则发出确认命令(10025C5E16),PLC再返回给上位机相应数据。SDLELErSDDASAFCDSAPSSAPDUFCSEDSD:开始符(68H)LE、Ler:长度(从DA到DU)DA:目的地址SA:源地址FC:功能码(6CH)DSAP:目的服务存取点SSAP:源服务存取点DU:数据单元FCS:校验和ED:结束符(16H)3.1读命令分析一次读一条数据对于一次读取一个数据,读命令都是33个字节。前面的0—21字节是相同的,为:681B1B6802006C320100000000000E00000401120A10因为是PC上发的读PLC数据的命令,SA=00,DA=02,如果有多个站,DA要改成相应的站号。读命令中从DA到DU的长度为1B即27个字节。从22字节开始根据读取数据的类型、位置不同而不同。表一是读不同存储器命令的Byte22—32。字节2223242526272829303132功能读取长度数据个数*存储器类型偏移量校验结束读q0.00100010000820000006416读m0.00100010000830000006516读M0.10100010000830000016616读SMB34020001000005000110F916读VB1000200010001840003208B16读VW1000400010001840003208D16读vd1000600010001840003208F16读i0.50100010000810000056816"读i0.70100010000810000076A16"表一读命令的Byte22-32从表中我们可以得出以下结果:Byte22读取数据的长度01:1Bit02:1Byte04:1Word06:DoubleWordByte24数据个数,这里是01,一次读多个数据时见下面的说明。Byte26存储器类型,01:V存储器00:其它Byte27存储器类型04:S05:SM06:AI07:AQ1E:C81:I82:Q83:M84:V1F:TByte28,29,30存储器偏移量指针(存储器地址*8),如:VB100,存储器地址为100,偏移量指针为800,转换成16进制就是320H,则Byte28—29这三个字节就是:000320。Byte31校验和,前面已说到这是从(DA+SA+DSAP+SSAP+DU)Mod256。一次读多条数据对于一次读多个数据的情况,前21Byte与上面相似只是长度LD,LDr及Byte14不同:Byte14数据块占位字节,它指明数据块占用的字节数。与数据块数量有关,长度=4+数据块数*10,如:一条数据时为4+10=0E(H);同时读M,V,Q三个不同的数据块时为4+3*10=22(H)。Byte22总是02即以Byte为单位。Byte24以字节为单位,连续读取的字节数。如读2个VD则Byte24=8Byte19---30按上述一次读一个数据的格式依次列出,Byte31---42另一类型的数据,也是按上述格式给出。以此类推,一次最多读取222个字节的数据。3.2写命令分析一次写一个DoubleWord类型的数据,写命令是40个字节,其余为38个字节。写一个DoubleWord类型的数据,前面的0—21字节为:6823236802006C320100000000000E00000401120A10写一个其它类型的数据,前面的0—21字节为:(与上面比较,只是长度字节发生变化)6821216802006C320100000000000E00000401120A10从22字节开始根据写入数据的值和位置不同而变化。表二是几个写命令的Byte22—40。字节22232425262728293031323334353637383940写入位置及值长度个数类型偏移量位数值、校验码、结束符M0.0=10100010000830000000003000101007116M0.0=00100010000830000000003000100007016M0.1=10100010000830000010003000101007216vb100=10020001000184000320000400081000AE16vb100=FF020001000184000320000400

如图,请看注释。

请及时采纳!



使用传送指令里面的,BLKMOV_B,BLKMOV_W,BLKMOV_D即可。



西门子PLC编程中VB100 VB200表示什么~

说明如下
1.在PLC中有一个概念叫数据存储区,在数据存储区域中划分为I输入、Q输出、M内部内存位、SM特殊内存位、V变量内存等等,每一种区域都可以用数据类型表示其长短。
比如你提到的VB100,表示V变量一个B(字节)大小,字节地址是100,一个字节是8位,VB100这个字节中包括了VB100.0、VB100.1、VB100.2、VB100.3、VB100.4、VB100.5、VB100.6、VB100.7共8位。
再举个例子:QW0,Q表示输出的存储区,W表示一个字的长度,地址是0,一个字包括两个字节,共16位,那么QW0包括QB0和QB1两个字节,QB0是高8位,QB1是低8位。

2.你所说的外设端子应该是指PLC的输入和输出端子,I就是输入区域的标示符,Q就是输出区域的标示符,比如你看到的输入端子上标有I0.0,I0.1,0.2,0.3等,
表示的是位大小的输入,在程序中可以用I0.0等这样的位去控制程序,也可以用IB0(0.0-0.7共8位)去控制程序,就根据你的程序需要了。
在举例:
1. LD I0.0
2. = QB0
这就表示当I0.0输入有信号时,Q0.0到Q0.7这8个输出点都有信号输出

希望能帮到你,谢谢。

图不清
不是0吧,应该是1,VB200存放的是数据个数,vb201才开始存放数据。

西门子s7200plc,把vb100~VB107分别传送到vb200~vb207,用 字节 字
答:1、可以写入、读出寄存器的数值(字节、字、双字);2、可以进行元件(V、M、S、Q、I)的置、复位操作;3、可以读取元件(V、M、S、Q、I)的ON/OFF状态。4、可以控制PLC的运行、停止。公布现在网上流行的PPI协议,此协议虽然有些错误,但是思路没问题。西门子S7-200PLC之间或者PLC与PC之间通信有...

s7-200中vb1可填最大数是多少
答:vb等于一个字节 一个字节是8个二进制位 能表示的最大的无符号数为:2^8-1=256-1=255 能表示的最大的有符号数为:2^7-1=128-1=127

西门子plc的日期怎么转换成月,日小时?
答:在西门子S7-200系列PLC中,这个不用转换,直接使用就是了,比如执行READ_RTC VB0指令后,VB0就是年,VB1就是月,VB2就是日,VB3就是小时,等等。在后面的使用中直接使用VB1,VB2,VB3就可以了,不用再转换。望采纳。。。

S7-200 假如 V1.0-V1.7被占用 那VB1 或者VW1 VD1 还能继续使用吗?
答:肯定不能再用了!数据就混乱了!VB1是字节,是字,VD1 双字!再就是字节可以是VB0,VB1,VB2,VB3。。。,VW一般是双数,VW0,VW2,VW4,VW6,VW8。。。,VD一般是VD0,VD4,VD8,VD12,V。。。,V1.0-V1.7是VB1 的8个位!VW0包含VB0,VB1;VD0包含VW0,VW2 ,包含 VB0,V...

vb0和vb1是数值还是代码
答:vb0和vb1是数值。西门子S7-200系列PLC中是16。十六进制的12等于十进制的18,十六进制的34等于十进制的52,因此将16,12赋值给VB0后,VB0就等于18,16,34赋值给VB1后,VB1就等于52,VB0是VW0的高八位,VB1是VW0的低八位,因此VW0就等于4660。

急急急 plc西门子S7-200梯形图控制范围开关的赋值
答:随意用一个数字和地址指示。因为我不知道你控制开关的地址是多少。同样不知道你液位的地址是多少。既然你用了字节,那么肯定只能用VB多少来表示了。。你自己参考下吧!

用西门子plc控制一个数码管显示数字程序
答:我不知道你用的什么西门子那个系列的PLC ,我这里用S7-200举例,原理是一样的。图片上上部分是段位指令的解释,下部分是示例程序,上电清零数码管数据显示0,先将0传送到任意一个空置的数据存储区(VB1),然后再把存储区的数据使用段位指令输出给输出存储区(QB1我输出从Q1.0依序接线)。如果想要...

求西门子s7200 plc V存储区。得使用方法?
答:总经理【VD0】下面两个主管【VW0和VW 2】,每个主管下面两个班长【VB0、VB1,VB2、VB3】,每个班长下面管理8个人【v0.0---v0.7;v1.0---v1.7;v2.0---v2.7;v3.0---v3.7】

VB与西门子S7-200PLC通过以太网通讯程序源代码
答:Private Sub Command1_Click()Dim strout As String Dim str As String Timer1.Enabled = False str = "00050C30FF00" 'M1072 为PLC起动停止标志位。查地址表,M1072为OC30.FF00为置ON,0000为置OFF。'以上都是固定格式,要牢记。LRCC = LRC(str) '计算 str的lrc校验码。strout = ":" + ...

PLC数据存储区里面的数据如:VB1 VW20 我给其赋值 如果我断电后其数据...
答:S7-200的V存储区如果设定为掉电保持区,默认是用超级电容的电量进行保持的,一般可以保持50-100小时,或者添加电池模块,可以在电池电量没用完时保持,最大200天。如果需要长期保持,可以手动编程写入永久存储区。参考SMB31和SMB32。