現(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)下?