有一個升級改造的項目,想要用上位機采集PLC的數(shù)據(jù),存儲到數(shù)據(jù)庫中,然后再做其他處理。現(xiàn)有的設(shè)備是西門子200的PLC通過串口和昆侖通態(tài)的觸摸屏通訊。有一下幾個方案:
1、通過PLC的485串口,直接和上位機用PPI協(xié)議通訊。分析:
串口通訊速度慢。如果上位機沒有485口,需要增加一個USB轉(zhuǎn)485的數(shù)據(jù)線。PPI協(xié)議不是通用的通訊協(xié)議,上位機軟件處理起來比較費勁。
分析:
串口通訊速度慢。如果上位機沒有485口,需要增加一個USB轉(zhuǎn)485的數(shù)據(jù)線。需要在PLC程序中配置一個modbus的從站,但是項目中是一個成套設(shè)備,沒有源代碼,所以這個不好加。
分析:
增加模塊需要增加成本。這個模塊不一定有空間加。S7協(xié)議不是通用的通訊協(xié)議,上位機軟件處理起來比較費勁。
分析:不用增加成本,在原來設(shè)備的基礎(chǔ)上就可以實現(xiàn)。原來的畫面不多,即使拿不到源代碼,重新做一個昆侖通態(tài)的程序也不麻煩。
通過以上的分析,決定使用第4個方案。下面測試一下該方案的可行性。
測試包括下面3個部分:
1、配置昆侖通態(tài)觸摸屏和西門子200的串口通訊。
2、配置昆侖通態(tài)觸摸屏的modbus TCP數(shù)據(jù)轉(zhuǎn)發(fā)。
3、用調(diào)試軟件測試?yán)鐾☉B(tài)觸摸屏轉(zhuǎn)發(fā)的數(shù)據(jù)是否正常。
系統(tǒng)塊中通信端口配置如下:
這個通信端口是和昆侖通態(tài)觸摸屏做通信的。
選出幾個地址,寫入不同的值,等待測試用。
新建變量,直接用西門子地址表示
在昆侖通態(tài)設(shè)備窗口中,添加通用串口父設(shè)備,然后在下面加西門子_S7200PPI驅(qū)動,如下圖所示:
配置通用串口父設(shè)備的參數(shù)
配置西門子S7200PPI驅(qū)動的參數(shù),并新建和西門子PLC的通訊的通道,將變量和通道進行關(guān)聯(lián)。
組態(tài)畫面,將新建變量顯示出來,方便觀察。
將以上程序分別下到PLC和觸摸屏中,根據(jù)觸摸屏的硬件手冊做一根通訊線
將通訊線連接PLC和觸摸屏,然后觀察通訊狀態(tài),觸摸屏和PLC通訊正常。
在設(shè)備窗口中添加通用TCPIP父設(shè)備,然后在該父設(shè)備下面添加一個modbusTCPIP數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備驅(qū)動。
配置通用TCPIP父設(shè)備參數(shù)
其中服務(wù)器/客戶設(shè)置選擇服務(wù)器,意思是觸摸屏作為服務(wù)器。本地IP地址為觸摸屏IP地址,本地端口可以隨意設(shè)置,這個要和測試軟件上的地址和端口一致。遠(yuǎn)程IP地址和遠(yuǎn)程端口號可以不設(shè),測試沒問題。
配置數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備參數(shù)
在內(nèi)部屬性中添加通道
注意,這個通道是modbusTCP通訊的通道,用調(diào)試軟件測試的時候,就是和這個通道通信的。
將新建的通道和觸摸屏的變量對應(yīng)起來,建立連接。
這樣的話,上位機就可以通過讀寫觸摸屏的40001這個地址來和PLC的VW100這個地址進行數(shù)據(jù)交互。下好程序,連好網(wǎng)線,打開modbusTCP調(diào)試軟件進行測試。
從調(diào)試軟件中可以看到,讀取到的40001的數(shù)據(jù)和PLC中VW100的數(shù)據(jù)是一致的。40002中的數(shù)據(jù)和PLC中VW102的數(shù)據(jù)是一致的。下面的雙字和浮點數(shù),只是編碼格式的問題。在調(diào)試軟件中,給40001寫入一個值
可以看到寫入成功了。
測試完成并通過,方案可行。