上位机与PLC位地址对应问题探讨

分享到:
1939
下一篇 >

菜鸟:

项目中用力控组态与200通信,几台PLC用MODBUS一起读到一台主站PLC,主站PLC在与上位机通信,为了节省点位,把控制位整合成一个双字通信,我想问的是读取到上位机中双字中的位与实际PLC中的位的对应关系。因为试过好几次,我脑子乱了。

比如传送一个数据为VD300,PLC中的位为V300.5,V301.2,V302.6,V303.7,那么在读取到上位机后,是怎样对应的呢?

说的高位在前低位在后,是不是vb303,vb302,vb301,vb300这个顺序呢?还是单个字vb301,vb300,vb303,vb302这个顺序?或者别的顺序?

新手,求帮助,谢谢

奇侠:

vd300=vb300+vb301+vb302+vb303,前面的是高位,后面的是低位,即vb300高于vb301高于vb302高于vb303

侠士:

搞个300里的地址,图片看起来更有感觉。


这个就是MD123,当然编程的时候*好不要用到MD123。

奇侠:

位:*小的存储单位,非0则1,表达两个状态。但是如果要表达更多状态怎么办?用字节。

字节:每8个位组成一个字节。这样一个字节可以表达2的8次方(256)个状态,大于256个状态怎么表示?那就用字。

字:2个字节组成一个字,有16个位。这样一个字可以表达2的16次方(65536)个状态,大于65536个状态怎么表示?那就用双字。

双字:2个字组成一个双字,有32个位。这样一个双字可以表达2的32次方(4294967296)个状态。

西门子表达比较特殊,就是低位高字节。例如一个32位组成的双字,其0-31位共32位用VD200表示的话,那么要表达0-15位组成的字,就是VW202;要表达16-31位组成的字,就是VW200;要表达0-7位组成的字节,就是VB203;要表达8-15位组成的字节,就是VB202;要表达16-23位组成的字节,就是VB201;要表达24-31位组成的字节,就是VB200。

菜鸟:

如果~要表达0-7位组成的字节,就是VB203;要表达8-15位组成的字节,就是VB202;要表达16-23位组成的字节,就是VB201;要表达24-31位组成的字节,就是VB200。那那些位要反过来么,比如V203.7在**位,V203.0*后一位?还是按照原来的V203.0**位,V203.7*后一位?
 感觉 kayome 的跟你说的好像是相反的,不知道是不是我理解错了。
 谢谢

侠士:

VD300=(V300.7-V300.0)+(V301.7-V301.0)+(V302.7-V302.0)+(V303.7-V303.0)

建议在变量表里面监控 VD300 和VB300 301 302 303  

很直观


你可能感兴趣: 工控菜鸟园 图片 自动化系统 PLC
无觅相关文章插件,快速提升流量