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