準備工作">
新聞中心
PRESS CENTER
本章節(jié)主要實現(xiàn)一個需求:EG8200采集西門子PLC的數(shù)據,拼裝成Json格式,通過TCP協(xié)議上報縱橫云平臺;同時能夠接收縱橫云平臺下發(fā)的控制命令,實現(xiàn)遠程控制PLC。
要實現(xiàn)此功能,需提前準備好以下材料。
1. PLC的IP/端口/點位表
PLC | S7-200 Smart | ||
IP | 192.168.0.24/102 | ||
點表(DB1) | |||
地址 | 數(shù)據類型 | 屬性 | 名稱 |
V0.0 | Boolean | 只讀 | MotorState1 |
V0.1 | Boolean | 只讀 | MotorState2 |
V0.2 | Boolean | 只讀 | MotorState3 |
V0.3 | Boolean | 只讀 | MotorState4 |
V0.4 | Boolean | 讀寫 | MotorControl1 |
V0.5 | Boolean | 讀寫 | MotorControl2 |
V0.6 | Boolean | 讀寫 | MotorControl3 |
V0.7 | Boolean | 讀寫 | MotorControl4 |
VD100 | Unsigned16 | 只讀 | voltage (V) |
VD200 | Unsigned16 | 只讀 | current (A) |
2. TCP通信相關參數(shù)
ip:tcp1500.dtuip.com port:1500 JSON格式: { "sensorDatas": [ { "flag":"MotorState1", "switcher":1 }, { "flag":"MotorState2", "switcher":1 }, { "flag":"MotorState3", "switcher":1 }, { "flag":"MotorState4", "switcher":1 }, { "flag":"MotorControl1", "switcher":0 }, { "flag":"MotorControl2", "switcher":0 }, { "flag":"MotorControl3", "switcher":0 }, { "flag":"MotorControl4", "switcher":0 }, { "flag":"voltage", "value":220.0 }, { "flag":"current", "value":10.2 } ] } |
在制作流程時,基礎邏輯遵循數(shù)據流向進行架構設計。經分析,本需求主要分為三個部分實現(xiàn):設備注冊平臺、PLC數(shù)據讀取與上傳、接收平臺指令并寫入PLC。
設備注冊:
建立TCP連接
實現(xiàn)TCP狀態(tài)感知,首次連接優(yōu)先發(fā)送注冊信息(發(fā)送設備SN)
獲取設備SN
PLC讀取與上傳:
通過S7節(jié)點讀取PLC數(shù)據
將PLC數(shù)據按照Json格式化
將格式化后的數(shù)據通過TCP發(fā)送至縱橫云平臺
接收平臺指令并寫入PLC:
獲取平臺下發(fā)的Json指令
將收到的Json數(shù)據解析并轉換為PLC可識別數(shù)據
將數(shù)據寫入PLC中

1. 設備注冊與連接
通過系統(tǒng)節(jié)點獲取設備SN(SN為注冊包信息,需要在TCP連接成功時發(fā)送一次):
建立TCP連接并檢查TCP連接狀態(tài),根據狀態(tài)設置變量flag的值表示連接狀態(tài):
以上流程即可實現(xiàn)TCP連接成功的時候發(fā)送一條注冊信息。上面流程中的函數(shù)節(jié)點的代碼如下:
//flag置1 var connectFlag = 1;
global.set('connectFlag', connectFlag);
return msg;
//flag置0 var connectFlag = 0;
global.set('connectFlag', connectFlag);
return msg;
//SN獲取以及校驗 let sn = global.get("DeviceInfo").sn if (sn.length == 15) msg.payload = "0" + sn else if (sn.length == 16) msg.payload = sn else node.error("SN錯誤請檢查", msg); return msg; |
2. PLC讀取與上傳
從節(jié)點庫拖入一個S7讀數(shù)據節(jié)點,以及一個調試節(jié)點,調試節(jié)點用于查看讀取到的PLC的數(shù)據,方便定位問題:
雙擊S7讀數(shù)據節(jié)點,根據需求概述的內容填寫對應的設置參數(shù),如下圖所示:
IP:PLC的IP 端口:102(S7協(xié)議通信默認端口102) 模式:TASP(S7-200 Smart選擇TASP,其余型號選擇Rack/Slot) 本地TSAP:1002(固定值) 遠端TSAP:0301(固定值) 采集周期:1000ms(默認1000ms,可自定義) 超時周期:2000ms(默認2000ms,可自定義)
數(shù)據點配置(根據幫助文檔可以找到對應關系) V0.0-->DB1,X0.0 V0.1-->DB1,X0.1 V0.2-->DB1,X0.2 V0.3-->DB1,X0.3 V0.4-->DB1,X0.4 V0.5-->DB1,X0.5 V0.6-->DB1,X0.6 V0.7-->DB1,X0.7 VD100 -->DB1,W100 VD200 -->DB1,W200 |
輸出模式可以根據需求選擇,這里選擇所有變量輸出一條
如果設置正確,調試窗口會有日志打印,顯示的是讀取到的數(shù)據內容:
導入PLC點表: