智能网关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’的数
据实时更新;
除了上述西门子PLC外,网关也支持罗克韦尔(AB)、欧姆龙、三菱,以及GE、倍福、艾默生等几乎所有PLC品牌。