电气电工
级别: 探索解密
精华主题: 0
发帖数量: 77 个
工控威望: 127 点
下载积分: 7842 分
在线时间: 53(小时)
注册时间: 2024-02-28
最后登录: 2024-11-14
查看电气电工的 主题 / 回贴
楼主  发表于: 2024-06-04 09:52
现在工控机做上位机,使用VB编程,PLC使用200smart。两者通过modbus-RTU与PLC的串口进行通讯。

好不容易把读PLC数据的程序写完了,然后发现给PLC写数据有很大局限性。

查手册发现只能给Q输出线圈和V保持寄存器写值。之前习惯是PLC里通过多个M0.0、M0.1这种互相配合,来控制1个Q的输出。但是RTU没法直接写入M值,我就想用V0.0来代替一下,但是写值到保存寄存器里是直接写入一个字的,一个字16位,可以有16个V0.0,但是只想写入其中某一个位而不改变其他的位,是没办法直接做到的。总不能先读一遍然后再写吧,这样很影响效率。再换个方式,如果把这1个字里只使用一个位其他不用,又太浪费了。

想请教下大佬们用工控机和smart通讯都是咋做的,可否指点下?


dzh832
级别: 论坛先锋
精华主题: 0
发帖数量: 520 个
工控威望: 1042 点
下载积分: 6499 分
在线时间: 84(小时)
注册时间: 2017-04-08
最后登录: 2024-11-14
查看dzh832的 主题 / 回贴
1楼  发表于: 2024-06-15 10:32
谢谢分享,