電氣電工
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 89 個
工控威望: 143 點(diǎn)
下載積分: 8707 分
在線時間: 61(小時)
注冊時間: 2024-02-28
最后登錄: 2024-12-20
查看電氣電工的 主題 / 回貼
樓主  發(fā)表于: 2024-06-04 09:52
現(xiàn)在工控機(jī)做上位機(jī),使用VB編程,PLC使用200smart。兩者通過modbus-RTU與PLC的串口進(jìn)行通訊。

好不容易把讀PLC數(shù)據(jù)的程序?qū)懲炅,然后發(fā)現(xiàn)給PLC寫數(shù)據(jù)有很大局限性。

查手冊發(fā)現(xiàn)只能給Q輸出線圈和V保持寄存器寫值。之前習(xí)慣是PLC里通過多個M0.0、M0.1這種互相配合,來控制1個Q的輸出。但是RTU沒法直接寫入M值,我就想用V0.0來代替一下,但是寫值到保存寄存器里是直接寫入一個字的,一個字16位,可以有16個V0.0,但是只想寫入其中某一個位而不改變其他的位,是沒辦法直接做到的。總不能先讀一遍然后再寫吧,這樣很影響效率。再換個方式,如果把這1個字里只使用一個位其他不用,又太浪費(fèi)了。

想請教下大佬們用工控機(jī)和smart通訊都是咋做的,可否指點(diǎn)下?


donxlr
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 66 個
工控威望: 94 點(diǎn)
下載積分: 887 分
在線時間: 10(小時)
注冊時間: 2021-06-14
最后登錄: 2024-12-22
查看donxlr的 主題 / 回貼
1樓  發(fā)表于: 2024-06-04 10:19
用高級語言不一定要用modbus協(xié)議,即使用modbus也優(yōu)先考慮modbus tcp ,除了modbus 協(xié)議也可以使用s7通信協(xié)議,相對來說比modbus要靈活一些,各大觸摸屏以及第三方上位機(jī)系統(tǒng)都是用的s7通信協(xié)議。還有就是modbus操作字 plc在通過字控制位也是一樣的。
電氣電工
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 89 個
工控威望: 143 點(diǎn)
下載積分: 8707 分
在線時間: 61(小時)
注冊時間: 2024-02-28
最后登錄: 2024-12-20
查看電氣電工的 主題 / 回貼
2樓  發(fā)表于: 2024-06-04 10:35
用RTU傳輸給PLC寫值,它一次寫16個位,不能精確單對單控制,會引起其它誤操作

引用
引用第1樓donxlr于2024-06-04 10:19發(fā)表的  :
用高級語言不一定要用modbus協(xié)議,即使用modbus也優(yōu)先考慮modbus tcp ,除了modbus 協(xié)議也可以使用s7通信協(xié)議,相對來說比modbus要靈活一些,各大觸摸屏以及第三方上位機(jī)系統(tǒng)都是用的s7通信協(xié)議。還有就是modbus操作字 plc在通過字控制位也是一樣的。
dzh832
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 517 個
工控威望: 1042 點(diǎn)
下載積分: 6854 分
在線時間: 84(小時)
注冊時間: 2017-04-08
最后登錄: 2024-12-19
查看dzh832的 主題 / 回貼
3樓  發(fā)表于: 2024-06-15 10:32
謝謝分享,
廝守那段傷
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 41 個
工控威望: 88 點(diǎn)
下載積分: 294 分
在線時間: 10(小時)
注冊時間: 2024-06-11
最后登錄: 2024-10-10
查看廝守那段傷的 主題 / 回貼
4樓  發(fā)表于: 2024-06-26 18:17
上位機(jī)為什么選擇工控機(jī)呢,使用上位軟件不好么。