新闻中心
PRESS CENTERPLC是种专门在工业环境下的可编程逻辑控制器,可取代传统的继电器电路,达到对设备的逻辑控制与顺序控制。边缘网关可通过PLC协议对PLC进行读写通信。例如纵横智控的EG8200边缘网关,可支持西门子、三菱、欧姆龙、倍福、汇川、松下等等主流PLC,将复杂的硬件接口、不同的工业网络协议等抽象为一个个的节点,用户可以灵活使用这些节点,以拖动、连线的方式,来代替传统复杂低效的编码过程。下面,小编带大家看看,边缘网关EG8200系列是如何和西门子PLC对接的。
首先,需要链接网关,可通过网线、WIFI、远程链接等方式链接网关。
然后,登录编程界面,通过西门子节点进行对接。具体操作如下:
边缘网关的Siemens节点用于和西门子品牌的PLC进行读写通信。Siemens节点支持协议:S7、PPI。S7协议已经适配西门子所有在售的PLC型号,PPI只支持部分老旧PLC,强烈建议使用S7通信。
/*******************************协议*******************************/ 协议:强烈建议和西门子PLC通信使用S7协议 /*****************************网络信息*****************************/ 地址:PLC的IP 端口:S7通信默认102 连接超时:和PLC建立连接的超时时间 通讯超时:和PLC通信超时时间 保活时间:TCP连接保活时间 /*****************************PLC信息*****************************/ 型号:S1500/S1200/S400/S300/S200/S200Smart ConType:连接方式,通常为1 Rack:机架号 Slot:槽号 LocalTSAP:本地TASP DestTSAP:远端TSAP 参数配置请参考: S1500/S1200/S400/S300 根据PLC实际的情况来填写Rack和Slot S200Smart 无需设置 S200 LoaclTSAP:4D57和DestTSAP:4D57 /*****************************地址信息*****************************/ 参数列表: 地址类型 描述 备注 I0 输入寄存器 ex:I1.6 Q0 输出寄存器 ex:Q1.6 M0 内部寄存器 ex:M1.6,MW100,MD100 DB1.0 数据寄存器 ex:DB1.0.1,DB1.DBD100 V0 数据寄存器 等同于DB1.0 T0 定时器寄存器 ex:T37 C0 计数器寄存器 ex:C1 AI0 模拟量输入映像寄存器 ex:仅支持字 AQ0 模拟量输出映像寄存器 ex:仅支持字 /*****************************工作模式*****************************/ 工作模式:读/写 触发条件:定时循环读/外部触发读
msg.payload #对象数组,每个对象表示一个要执行的操作,数组表示可批量执行 #以下为每个对象的属性: func #要执行的读写操作,请参考下表 body.address #要操作的地址/起始地址 body.length #要操作的地址长度(以字节为单位) body.name #节点执行完毕以后,以此对象为key输出,否则以address为key输出 body.value #要写入的值
msg.payload #一个对象,包含了读写指令的结果 #读结果示例:msg.payload={VB10:0x10,VB11:0x11} #写结果示例:msg.payload={VB10:true,VB11:true}
请注意,填写变量长度时,请按照所选类型的长度填写,比如读一个uint16,长度填写1。
读S7-200 Smart数据
[{"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":"调试 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":"函数计算 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"]]}]
下图示例中,首先通过函数节点
构建读VB10、VB11的数组对象,结果分别是0xFF、0x0F。然后通过函数节点
构建写VB10、VB11的数组对象,结果返回true、true。最后再次读取VB10、VB11的值,已经修改为0x10、0x11。
写S7-200 Smart数据
[{"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":"调试 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":"调试 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"]]}]
●机架号/槽号博图软件查看方式
●使用S7-1200/S7-1500需要额外的配置,才能读取数据:
要访问的数据块必须禁用Optimized block access
在CPU属性的保护项启用Permit access with PUT/GET
本文参考《EG系列边缘计算网关》- PLC节点-Siemens西门子,详情请联系纵横智控