電氣電工
級別: 家園?
![]() |
現在工控機做上位機,使用VB編程,PLC使用200smart。兩者通過(guò)modbus-RTU與PLC的串口進(jìn)行通訊。 好不容易把讀PLC數據的程序寫(xiě)完了,然后發(fā)現給PLC寫(xiě)數據有很大局限性。 查手冊發(fā)現只能給Q輸出線(xiàn)圈和V保持寄存器寫(xiě)值。之前習慣是PLC里通過(guò)多個(gè)M0.0、M0.1這種互相配合,來(lái)控制1個(gè)Q的輸出。但是RTU沒(méi)法直接寫(xiě)入M值,我就想用V0.0來(lái)代替一下,但是寫(xiě)值到保存寄存器里是直接寫(xiě)入一個(gè)字的,一個(gè)字16位,可以有16個(gè)V0.0,但是只想寫(xiě)入其中某一個(gè)位而不改變其他的位,是沒(méi)辦法直接做到的?偛荒芟茸x一遍然后再寫(xiě)吧,這樣很影響效率。再換個(gè)方式,如果把這1個(gè)字里只使用一個(gè)位其他不用,又太浪費了。 想請教下大佬們用工控機和smart通訊都是咋做的,可否指點(diǎn)下? ![]() |
---|---|
|
donxlr
級別: 探索解密
![]() |
用高級語(yǔ)言不一定要用modbus協(xié)議,即使用modbus也優(yōu)先考慮modbus tcp ,除了modbus 協(xié)議也可以使用s7通信協(xié)議,相對來(lái)說(shuō)比modbus要靈活一些,各大觸摸屏以及第三方上位機系統都是用的s7通信協(xié)議。還有就是modbus操作字 plc在通過(guò)字控制位也是一樣的。 |
---|---|
|
電氣電工
級別: 家園?
![]() |
用RTU傳輸給PLC寫(xiě)值,它一次寫(xiě)16個(gè)位,不能精確單對單控制,會(huì )引起其它誤操作
|
---|---|
|