多台西门子PLC对接Oracle数据库,不用编程不用联网,实现PLC与数据库双向数据通讯
智能网关IGT-DSER方便实现多台PLC与数据库之间的数据通讯,既可以读取PLC的数据上报到数据库,也可以从数据库查询数据后写入到PLC的寄存器。
网关安装在设备侧,与设备同时起停,不担心数据丢失;在断网、服务器维护上报数据有异常时,网关主动将数据缓存,待故障解除后自动重新上报到数据库;网关也支持多服务器冗余、异常未提交数据本地保存等功能,确保数据安全;相关案例
以下是通过数据库智能网关IGT-DSER实现S7-1200/1500系列的PLC与数据库服务器双向通讯,网关支持MySQL和SQLServer、PostgreSQL,以及Oracle、达梦数据库等。这里选择的是Oracle。实际网络结构如下图:

打开网关参数设置软件(软件下载),通过'功能'->'类型与设备选择'选择第三个类型,PLC设备选择西门子S7-1200/1500,点'确定当前选择'、'参数写入到网关',根据提示重启。重启读取参数后,确认跟之前所选择的一致,再通过'功能'->'网口参数编辑'编辑网口参数。以下是网关的网口参数配置截图:

然后通过‘功能’->‘数据上报与平台对接’,选择‘SQL远程数据库’,进入以下页面,在数据配置表内配置上报和查询的数据, 填写数据库服务器的IP地址网络端口,用户名称密码等参数:

数据配置表可以通过'编辑'菜单的相关功能按钮手动输入添加,也可以通过CSV文件导入导出,‘文件’菜单内有相关功能按钮。
将参数后写入后重启(‘参数’->‘参数写入到网关’)、(‘工具’->‘重启网关’),读取网关参数(‘参数’->‘从网关读取参数’)后,看软件上显示的状态消息,根据状态消息调试。在‘工具’->‘网关数据监控’里面可以看到通过配置生成的SQL语句。
智能网关模块支持边缘计算脚本编程(手册下载),简单的数据处理也可以通过设置实现,如上图 '数据处理/初始值' 列,常用的功能如下:
1. 限定字符串的长度:当数据类型设置为字符串即CHAR[n]时,限定字符串的最大字符数,如‘[n=24]’,范围1~128;
2. 限定小数的位数: 当数据类型设置为浮点数即REAL/LREAL时,指定小数的位数,如保留3位小数‘[.03]’,范围01~06;
3. 对数据进行单运算符的运算:支持加减乘除和整除(+-*/\),例如当前值要除以100,则输入‘[/100]’;
4. 无符号整数类型的10进制数据转为16进制:例如当前值12345678,输入‘[.x]’,则转为bc614e,输入‘[.X]’,则转为BC614E;
5. 触发模式数据对接的附加条件: 例如输入‘[==]100’,同时勾选‘变化判断’,这样如果该数据的当前值不等于100,即使该任务组的其它触发条件满足也不会执行;支持[==] 、[<>]、[<=]、[>=]共4种判断方式;
6. 将数据转为字符串并进行组合:例如从PLC内读到的当前数据为100,输入‘[#count=**pcs]’,则当前数据按count=100pcs 处理;
7. 将多种数值替换为对应的字符串:例如设置为‘[#@0=离线|1=待机|2=运行|3=故障|其它值]’时,当这行配置对应的PLC寄存器的数值≥0、≤3时,根据数值分别取字符串‘离线’‘待机’‘运行’‘故障’,超出这个范围则替换为‘其它值’。
8. JSON字符串打包:采用MQTT或HTTP协议时,例如输入‘${JS01}’,则将后面数据配置表中所有字段类别为‘数值读取’、字段名称为‘JS01’的数据按配置顺序组合成一个字符串;
9. 复制其它数据的数值:例如输入‘$(barcode)’,则该数据的数值随数据配置表中名称为‘barcode’的数据实时更新;
10. 根据当前行的特殊前后缀的字段名称,初始值配置完成特定功能:
⑴. 对接数据库时在SQL命令语句中增加条件字符串:字段类别为条件字段、字段名称设置为‘${condition}’时在初始值输入需要合并到SQL语句中的字符串,在自动生成SQL语句时将该字符串合并到SQL语句中。
⑵. 设备扩展参数的参数值设置,例如:字段名称设置为‘${address}’时在此输入‘104180050001’,则将该行数据所对应的设备的参数address设置为104180050001;
11.其它功能函数,具体如下:
⑴. 当前行数值的字节顺序调整‘$EXWB(11)’,括号内第一个数字是交换高低字,第二个数字是交换高低字节,共有10、01、11三种组合,其它数值无效。
⑵. 当前行字符串的顺序调整‘$SORD(1)’,括号内可设 1~6 的数字,具体含义同<字符顺序>参数内的选项一一对应。
⑶. 获取本组的设备通讯状态值,写入到当前行所对应的数据地址‘$RDSD()’,括号内为空。
⑷. 获取本组的数据上报平台对接的状态值,写入到当前行所对应的数据地址‘$RDSS()’,括号内为空。
除了上述西门子PLC外,网关也支持罗克韦尔(AB)、欧姆龙、三菱,以及GE、倍福、艾默生等几乎所有PLC品牌。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)