新聞中心
PRESS CENTER
PLC通常用于控制和監(jiān)測各種機械設備的狀態(tài)。通過數據采集,將PLC的數據上傳至云端,企業(yè)能夠實時監(jiān)測設備運行情況,并對異常進行快速響應。這種數據的分析與處理不僅有助于預測性維護,還能通過云端的數據分析進行生產優(yōu)化。
PLC的數據采集過程通常通過多種標準化協議實現,包括Modbus、OPC UA等,這些協議能夠保證數據在不同設備之間的兼容性。
本章節(jié)實現:
PLC數據采集并周期上報到云端云端下發(fā)寫PLC,詳細原文可見https://iotrouter.yuque.com/org-wiki-iotrouter-rlzwv5/eg8000/zgol0xpm6lutxtz8
需要讀寫的點位如下:
PLC | S7-200Smart | ||
IP | 192.168.0.30/102 | ||
點位 | 數據類型 | 屬性 | 名稱 |
V0.0 | Boolean | 讀寫 | 電機開關 |
VD100 | Float | 讀寫 | 流量設定值 |
(!!!本章節(jié)不限制PLC類型,全部PLC通用,演示使用西門子Smart200)
(!!!本章節(jié)不限制PLC類型,全部PLC通用,演示使用西門子Smart200)
(!!!本章節(jié)不限制PLC類型,全部PLC通用,演示使用西門子Smart200)
流程圖

JSON說明(數據格式)
1. 云端JSON
1.1. 數據上報
topic:
Topic | /cloud/test/report |
消息發(fā)送方 | 網關 |
消息接收方 | 平臺 |
參數說明:
參數 | 類型 | 描述 |
SN | String | 網關SN |
Data | Object | 要上報的數據 |
示例:
{ "SN": "123456", "Data": { "V0.0": false, "VD100": 17.32 } } |
1.2. 指令下發(fā)
topic:
Topic | /cloud/test/cmd |
消息發(fā)送方 | 平臺 |
消息接收方 | 網關 |
參數說明:
參數 | 類型 | 描述 |
valueType | String | 下發(fā)值的類型 |
Name | String | 寫入的點位名稱 |
Value | 任意類型 | 寫入的值 |
Address | String | 寫入的地址 |
示例:
| { "valueType": "Boolean", "Name": "", "address":"V0.0", "Value": true } |
2. 網關JSON
2.1. PLC節(jié)點讀取輸出
示例:
{ "V0.0": true, "VD100": 12.22 } |
2.2. PLC寫輸入
參數說明:
參數 | 類型 | 描述 |
func | String | 寫入的類型 WriteFloat/WriteBool (詳情跳轉) |
Body | Object | 寫入的點位信息 |
Body:
參數 | 類型 | 描述 |
name | String | 點位名稱,可不填 |
address | String | 寫入的地址 |
value | 任意類型 | 寫入的值 |
示例:
{ "func": "WriteBool", "body": { "name": "", "address": "V0.0", "value": true } } |
第一步:配置PLC數據讀取
第二步:上行JSON轉換
第三步:配置MQTT發(fā)布
第四步:驗證數據上報
第五步:配置MQTT訂閱
第六步:下行JSON轉換
第七步:寫入數據到PLC
第一步:配置PLC數據讀取
第二步:上行JSON轉換
PLC節(jié)點輸出JSON | 描述 | MQTT上報JSON |
{ "switch": true, "flowValue": 12.22 } | 將左側PLC節(jié)點輸出的JSON轉換成右側輸出的JSON | { "SN": "123456", "Data": { "switch": false, "flowValue": 17.32 } } |
函數代碼:
if (msg.rspType != "intRead") return let plcData = msg.payload let mqttJSON = { "SN": "123456", "Data": { "switch": plcData["switch"], "flowValue": plcData["flowValue"] } } msg.payload = JSON.stringify(mqttJSON) return msg; |
第三步:配置MQTT發(fā)布
第四步:驗證數據上報
使用EMQX工具訂閱對應主題查看數據
第五步:配置MQTT訂閱
填寫對應網關訂閱topic
第六步:下行JSON轉換
MQTT下發(fā)JSON | 描述 | PLC節(jié)點需要的JSON |
{ "valueType": "Boolean", "Name": "", "Address":"V0.0", "Value": true } | 將左側MQTT下發(fā)的JSON轉換成PLC節(jié)點需要的JSON | { "func": "WriteBool", "body": { "name": "", "address": "V0.0", "value": true } } |
函數代碼塊:
var mqttRecv = msg.payload var sendPLC = [ { "func": "WriteBool", "body": { "name": "", "address": mqttRecv["Address"], "value": mqttRecv["Value"], } } ] if (mqttRecv.valueType == "Float") sendPLC[0].func = "WriteFloat" msg.payload = sendPLC return msg; |
第七步:寫入數據到PLC
使用EMQX下發(fā)寫測試
PLC數據采集并周期性上報到云端,以及通過云端下發(fā)指令對PLC進行控制,是實現工業(yè)自動化和物聯網集成的關鍵步驟。通過合理配置數據采集頻率、選擇合適的通信協議和網關設備,企業(yè)能夠實現高效的數據傳輸和遠程控制。這種方式不僅提升了設備管理效率,還為企業(yè)提供了更深入的數據分析能力和決策支持。