電氣電工
級別: 探索解密
|
現在工控機做上位機,使用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
級別: 正式會員
|
用高級語言不一定要用modbus協議,即使用modbus也優先考慮modbus tcp ,除了modbus 協議也可以使用s7通信協議,相對來說比modbus要靈活一些,各大觸摸屏以及第三方上位機系統都是用的s7通信協議。還有就是modbus操作字 plc在通過字控制位也是一樣的。 |
---|---|
|
電氣電工
級別: 探索解密
|
用RTU傳輸給PLC寫值,它一次寫16個位,不能精確單對單控制,會引起其它誤操作
|
---|---|
|