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