新聞中心
PRESS CENTERPLC是種專門在工業(yè)環(huán)境下的可編程邏輯控制器,可取代傳統(tǒng)的繼電器電路,達(dá)到對(duì)設(shè)備的邏輯控制與順序控制。邊緣網(wǎng)關(guān)可通過PLC協(xié)議對(duì)PLC進(jìn)行讀寫通信。例如縱橫智控的EG8200邊緣網(wǎng)關(guān),可支持西門子、三菱、歐姆龍、倍福、匯川、松下等等主流PLC,將復(fù)雜的硬件接口、不同的工業(yè)網(wǎng)絡(luò)協(xié)議等抽象為一個(gè)個(gè)的節(jié)點(diǎn),用戶可以靈活使用這些節(jié)點(diǎn),以拖動(dòng)、連線的方式,來代替?zhèn)鹘y(tǒng)復(fù)雜低效的編碼過程。下面,小編帶大家看看,邊緣網(wǎng)關(guān)EG8200系列是如何和西門子PLC對(duì)接的。
首先,需要鏈接網(wǎng)關(guān),可通過網(wǎng)線、WIFI、遠(yuǎn)程鏈接等方式鏈接網(wǎng)關(guān)。
然后,登錄編程界面,通過西門子節(jié)點(diǎn)進(jìn)行對(duì)接。具體操作如下:
邊緣網(wǎng)關(guān)的Siemens節(jié)點(diǎn)用于和西門子品牌的PLC進(jìn)行讀寫通信。Siemens節(jié)點(diǎn)支持協(xié)議:S7、PPI。S7協(xié)議已經(jīng)適配西門子所有在售的PLC型號(hào),PPI只支持部分老舊PLC,強(qiáng)烈建議使用S7通信。
/*******************************協(xié)議*******************************/ 協(xié)議:強(qiáng)烈建議和西門子PLC通信使用S7協(xié)議 /*****************************網(wǎng)絡(luò)信息*****************************/ 地址:PLC的IP 端口:S7通信默認(rèn)102 連接超時(shí):和PLC建立連接的超時(shí)時(shí)間 通訊超時(shí):和PLC通信超時(shí)時(shí)間 ?;顣r(shí)間:TCP連接?;顣r(shí)間 /*****************************PLC信息*****************************/ 型號(hào):S1500/S1200/S400/S300/S200/S200Smart ConType:連接方式,通常為1 Rack:機(jī)架號(hào) Slot:槽號(hào) LocalTSAP:本地TASP DestTSAP:遠(yuǎn)端TSAP 參數(shù)配置請(qǐng)參考: S1500/S1200/S400/S300 根據(jù)PLC實(shí)際的情況來填寫Rack和Slot S200Smart 無需設(shè)置 S200 LoaclTSAP:4D57和DestTSAP:4D57 /*****************************地址信息*****************************/ 參數(shù)列表: 地址類型 描述 備注 I0 輸入寄存器 ex:I1.6 Q0 輸出寄存器 ex:Q1.6 M0 內(nèi)部寄存器 ex:M1.6,MW100,MD100 DB1.0 數(shù)據(jù)寄存器 ex:DB1.0.1,DB1.DBD100 V0 數(shù)據(jù)寄存器 等同于DB1.0 T0 定時(shí)器寄存器 ex:T37 C0 計(jì)數(shù)器寄存器 ex:C1 AI0 模擬量輸入映像寄存器 ex:僅支持字 AQ0 模擬量輸出映像寄存器 ex:僅支持字 /*****************************工作模式*****************************/ 工作模式:讀/寫 觸發(fā)條件:定時(shí)循環(huán)讀/外部觸發(fā)讀
msg.payload #對(duì)象數(shù)組,每個(gè)對(duì)象表示一個(gè)要執(zhí)行的操作,數(shù)組表示可批量執(zhí)行 #以下為每個(gè)對(duì)象的屬性: func #要執(zhí)行的讀寫操作,請(qǐng)參考下表 body.address #要操作的地址/起始地址 body.length #要操作的地址長度(以字節(jié)為單位) body.name #節(jié)點(diǎn)執(zhí)行完畢以后,以此對(duì)象為key輸出,否則以address為key輸出 body.value #要寫入的值
msg.payload #一個(gè)對(duì)象,包含了讀寫指令的結(jié)果 #讀結(jié)果示例:msg.payload={VB10:0x10,VB11:0x11} #寫結(jié)果示例:msg.payload={VB10:true,VB11:true}
請(qǐng)注意,填寫變量長度時(shí),請(qǐng)按照所選類型的長度填寫,比如讀一個(gè)uint16,長度填寫1。
讀S7-200 Smart數(shù)據(jù)
[{"id":"ece74f6f8a9a8548","type":"inject","z":"265cd2b9785ecf45","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":90,"y":200,"wires":[["52c1bedf10d86f5d"]]},{"id":"dc1df440e1b50c61","type":"debug","z":"265cd2b9785ecf45","name":"調(diào)試 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":690,"y":200,"wires":[]},{"id":"52c1bedf10d86f5d","type":"function","z":"265cd2b9785ecf45","name":"函數(shù)計(jì)算 1","func":"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":250,"y":200,"wires":[["68d173cfb11675f9"]]},{"id":"68d173cfb11675f9","type":"Siemens","z":"265cd2b9785ecf45","name":"","protocol":"iplink_SiemensS7","IPAddress":"192.168.0.34","DestPort":"102","IPLinkTimeout":"2000","IPCommTimeout":"2000","Spname":"COM10","Baudrate":"9600","Databits":"8","Stopbit":"1","Paritybit":"0","RTSEnable":false,"SpLinktimeout":"2000","SpIntertimeout":"-1","workMode":"read","readMode":"cyc","readCyc":"1000","vartable":[{"addr":"VB10","name":"VB10","type":"byte","len":1},{"addr":"VB11","name":"VB11","type":"byte","len":1},{"addr":"VW100","name":"VW100","type":"uint16","len":2},{"addr":"VW102","name":"VW102","type":"uint16","len":2},{"addr":"VW104","name":"VW104","type":"uint16","len":2}],"SiemensS7Model":"5","SiemensS7ConnectionType":"1","SiemensS7Rack":"0","SiemensS7Slot":"0","SiemensS7LocalTSAP":"0","SiemensS7DestTSAP":"0","SiemensPPIStation":"2","stringvar":[],"customName":"Siemens:S7-S200Smart","x":470,"y":200,"wires":[["dc1df440e1b50c61"]]}]
下圖示例中,首先通過函數(shù)節(jié)點(diǎn)
構(gòu)建讀VB10、VB11的數(shù)組對(duì)象,結(jié)果分別是0xFF、0x0F。然后通過函數(shù)節(jié)點(diǎn)
構(gòu)建寫VB10、VB11的數(shù)組對(duì)象,結(jié)果返回true、true。最后再次讀取VB10、VB11的值,已經(jīng)修改為0x10、0x11。
寫S7-200 Smart數(shù)據(jù)
[{"id":"c807d91fc01562b2","type":"inject","z":"265cd2b9785ecf45","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":140,"wires":[["ee18017c9cb2e625"]]},{"id":"5f642f7cb333e422","type":"debug","z":"265cd2b9785ecf45","name":"調(diào)試 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":710,"y":140,"wires":[]},{"id":"ee18017c9cb2e625","type":"function","z":"265cd2b9785ecf45","name":"寫VB10 VB11","func":"msg.payload = []\n\nmsg.payload[0] = {}\nmsg.payload[0].func = \"WriteByteArray\"\nmsg.payload[0].body = {}\nmsg.payload[0].body.name = \"VB10\"\nmsg.payload[0].body.address = \"VB10\"\nmsg.payload[0].body.value = \"10\"\n\nmsg.payload[1] = {}\nmsg.payload[1].func = \"WriteByteArray\"\nmsg.payload[1].body = {}\nmsg.payload[1].body.name = \"VB11\"\nmsg.payload[1].body.address = \"VB11\"\nmsg.payload[1].body.value = \"11\"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":280,"y":140,"wires":[["4dbd7a125ac67c98"]]},{"id":"4dbd7a125ac67c98","type":"Siemens","z":"265cd2b9785ecf45","name":"","protocol":"iplink_SiemensS7","IPAddress":"192.168.0.34","DestPort":"102","IPLinkTimeout":"2000","IPCommTimeout":"2000","Spname":"COM10","Baudrate":"9600","Databits":"8","Stopbit":"1","Paritybit":"0","RTSEnable":false,"SpLinktimeout":"2000","SpIntertimeout":"-1","workMode":"read","readMode":"trigger","readCyc":"1000","vartable":[{"addr":"VB10","name":"VB10","type":"byte","len":1},{"addr":"VB11","name":"VB11","type":"byte","len":1},{"addr":"VW100","name":"VW100","type":"uint16","len":2},{"addr":"VW102","name":"VW102","type":"uint16","len":2},{"addr":"VW104","name":"VW104","type":"uint16","len":2}],"SiemensS7Model":"5","SiemensS7ConnectionType":"1","SiemensS7Rack":"0","SiemensS7Slot":"0","SiemensS7LocalTSAP":"0","SiemensS7DestTSAP":"0","SiemensPPIStation":"2","stringvar":[],"customName":"Siemens:S7-S200Smart","x":510,"y":140,"wires":[["5f642f7cb333e422"]]},{"id":"a4dcae532f31b571","type":"inject","z":"265cd2b9785ecf45","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":200,"wires":[["b969c69b9408fcff"]]},{"id":"238e2f37c070699e","type":"debug","z":"265cd2b9785ecf45","name":"調(diào)試 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":710,"y":200,"wires":[]},{"id":"b969c69b9408fcff","type":"function","z":"265cd2b9785ecf45","name":"讀VB10 VB11","func":"msg.payload = []\nmsg.payload[0] = {}\nmsg.payload[0].func = \"ReadByteArray\"\nmsg.payload[0].body = {}\nmsg.payload[0].body.name = \"VB10\"\nmsg.payload[0].body.address = \"VB10\"\nmsg.payload[0].body.length = 1\n\nmsg.payload[1] = {}\nmsg.payload[1].func = \"ReadByteArray\"\nmsg.payload[1].body = {}\nmsg.payload[1].body.name = \"VB11\"\nmsg.payload[1].body.address = \"VB11\"\nmsg.payload[1].body.length = 1\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":280,"y":200,"wires":[["b54ae54d08cbc456"]]},{"id":"b54ae54d08cbc456","type":"Siemens","z":"265cd2b9785ecf45","name":"","protocol":"iplink_SiemensS7","IPAddress":"192.168.0.34","DestPort":"102","IPLinkTimeout":"2000","IPCommTimeout":"2000","Spname":"COM10","Baudrate":"9600","Databits":"8","Stopbit":"1","Paritybit":"0","RTSEnable":false,"SpLinktimeout":"2000","SpIntertimeout":"-1","workMode":"write","readMode":"cyc","readCyc":"1000","vartable":[{"addr":"VB10","name":"VB10","type":"byte","len":1},{"addr":"VB11","name":"VB11","type":"byte","len":1},{"addr":"VW100","name":"VW100","type":"uint16","len":2},{"addr":"VW102","name":"VW102","type":"uint16","len":2},{"addr":"VW104","name":"VW104","type":"uint16","len":2}],"SiemensS7Model":"5","SiemensS7ConnectionType":"1","SiemensS7Rack":"0","SiemensS7Slot":"0","SiemensS7LocalTSAP":"0","SiemensS7DestTSAP":"0","SiemensPPIStation":"2","stringvar":[],"customName":"Siemens:S7-S200Smart","x":510,"y":200,"wires":[["238e2f37c070699e"]]}]
●機(jī)架號(hào)/槽號(hào)博圖軟件查看方式
●使用S7-1200/S7-1500需要額外的配置,才能讀取數(shù)據(jù):
要訪問的數(shù)據(jù)塊必須禁用Optimized block access
在CPU屬性的保護(hù)項(xiàng)啟用Permit access with PUT/GET
本文參考《EG系列邊緣計(jì)算網(wǎng)關(guān)》- PLC節(jié)點(diǎn)-Siemens西門子,詳情請(qǐng)聯(lián)系縱橫智控