最近幾個(gè)月持續(xù)在搞Labview相關(guān)的項(xiàng)目,QT又被扔在了一遍[流淚]
任務(wù):labview通過TCPIP Modbus 和PLC 通訊,上位機(jī)作為從站
實(shí)現(xiàn):modbus協(xié)議網(wǎng)上很多很好地介紹文章,這兩篇講解很詳細(xì):
https://www.cnblogs.com/The-explosion/p/11512677.html
https://blog.csdn.net/sgmcumt/article/details/87435191
下面記錄labview的實(shí)現(xiàn)
單個(gè)線圈寫入數(shù)據(jù):
多個(gè)線圈讀取數(shù)據(jù):
讀取后的數(shù)據(jù)處理
讀寫取寄存器的操作類似,需要注意的是,在建立tcpip連接后通過屬性節(jié)點(diǎn)禁用發(fā)送結(jié)束符
另:在通過同一端口 多連接同時(shí)操作三菱PLC時(shí),非常容易出現(xiàn)數(shù)據(jù)錯(cuò)亂(多端口沒試過)
在多連接 操作時(shí)需要增加互斥鎖;可以按照前一篇操作將操作封裝到一個(gè)vi里,很不友好啊,后來發(fā)現(xiàn)labview里的信號(hào)量就是實(shí)現(xiàn)互斥的。
使用也很簡(jiǎn)單,先創(chuàng)建信號(hào)(獲取信號(hào)引用),之后獲取信號(hào),操作完成后釋放信號(hào),在整個(gè)程序退出前記得釋放信號(hào)引用。