各位工控人,点击下方 “进入圈子”,技成电工课堂每天14:30 分享一些干货趣闻,
PLC、电工、变频器、制造业技术人才分享交流!
(此处已添加圈子卡片,请到*今条头日**客户端查看)
我之前做工程的时候,遇到一个这样的问题,有两台不同的设备,他们之间通过某种通讯协议去通讯,然后第一台设备D0到D3这4个寄存器的数据传送给第二台设备的D10到D13。
后面以为客户需求的原因,需要传输12个数据,需要我们去改动。

怎么办呢?一开始想的是去更改硬件,更换通讯的方式,但是这样的话花的时间成本还有硬件成本就比较高了。后面和客户沟通了一下,了解到他们对数据通讯的速度不做要求,就算间隔个几十秒的时间也没问题。
得知这个信息后,稍微一想,这个问题也太好解决了,通过修改一下程序就可以。
已知一个条件(通讯发送完成标志位位M0,就是每次发送完信息,M0就会导通一个扫描周期)方法如下:
在主plc里面,条件是M0的上升沿,定义D0进行不断加1
我们可以写一段一下的程序

当D0等于0时,就把D101到D103这3个寄存器发送到D1到D3里面去
当D0等于1时,就把D111到D113这3个寄存器发送到D1到D3里面去
当D0等于2时,就把D121到D123这3个寄存器发送到D1到D3里面去
当D0等于3时,就把D131到D133这3个寄存器发送到D1到D3里面去
当D0等于4时,把D0清空,重新执行加1.
这样的话就通过不同通讯周期,发送了不同的数据,通讯的时间一般都是很短的,你就是发送几十次的时间还不到1秒,所以不用担心延迟太久。发送的数据就加多了。
然后,我们需要在从站plc这边对这些数据进行解读。程序如下

通过如上程序
当D0等于0时,就把D1到D3这3个寄存器发送到D101到D103里面去
当D0等于1时,就把D1到D3这3个寄存器发送到D111到D113里面去
当D0等于2时,就把D1到D3这3个寄存器发送到D121到D123里面去
当D0等于3时,就把D1到D3这3个寄存器发送到D131到D133里面去
这样的话,就相对于把主plc的数据做了如下传输:

假如你想传输更多的数据,可以用同样的方法
(技成培训原创,作者:陈育鑫,未经授权不得转载,违者必究!)
⇩ 领取!