电气电工
级别: 探索解密
精华主题: 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通讯都是咋做的,可否指点下?


donxlr
级别: 正式会员
精华主题: 0
发帖数量: 66 个
工控威望: 93 点
下载积分: 885 分
在线时间: 10(小时)
注册时间: 2021-06-14
最后登录: 2024-11-14
查看donxlr的 主题 / 回贴
1楼  发表于: 2024-06-04 10:19
用高级语言不一定要用modbus协议,即使用modbus也优先考虑modbus tcp ,除了modbus 协议也可以使用s7通信协议,相对来说比modbus要灵活一些,各大触摸屏以及第三方上位机系统都是用的s7通信协议。还有就是modbus操作字 plc在通过字控制位也是一样的。
电气电工
级别: 探索解密
精华主题: 0
发帖数量: 77 个
工控威望: 127 点
下载积分: 7842 分
在线时间: 53(小时)
注册时间: 2024-02-28
最后登录: 2024-11-14
查看电气电工的 主题 / 回贴
2楼  发表于: 2024-06-04 10:35
用RTU传输给PLC写值,它一次写16个位,不能精确单对单控制,会引起其它误操作

引用
引用第1楼donxlr于2024-06-04 10:19发表的  :
用高级语言不一定要用modbus协议,即使用modbus也优先考虑modbus tcp ,除了modbus 协议也可以使用s7通信协议,相对来说比modbus要灵活一些,各大触摸屏以及第三方上位机系统都是用的s7通信协议。还有就是modbus操作字 plc在通过字控制位也是一样的。
dzh832
级别: 论坛先锋
精华主题: 0
发帖数量: 520 个
工控威望: 1042 点
下载积分: 6499 分
在线时间: 84(小时)
注册时间: 2017-04-08
最后登录: 2024-11-14
查看dzh832的 主题 / 回贴
3楼  发表于: 2024-06-15 10:32
谢谢分享,
厮守那段伤
级别: 正式会员
精华主题: 0
发帖数量: 41 个
工控威望: 88 点
下载积分: 294 分
在线时间: 10(小时)
注册时间: 2024-06-11
最后登录: 2024-10-10
查看厮守那段伤的 主题 / 回贴
4楼  发表于: 2024-06-26 18:17
上位机为什么选择工控机呢,使用上位软件不好么。