武汉埃和智能科技有限公司

关于多台西门子S7-1200/1500等PLC与SQL数据库对接(带边缘计算)的案例

 二维码

        IGT-DSER智能网关模块,支持各种PLC、智能仪表、远程IO与数据库之间双向通讯,既可以读取设备的数据上报到SQL数据库,也可以从数据库查询数据后写入到设备;数据库软件支持MySQL、SQLServer、PostgreSQL,以及Oracle。

SQL-S7-4.png

        网关安装在设备侧,与设备同时起停,不担心数据丢失;在断网、服务器维护上报数据有异常时,网关主动将数据缓存,待故障解除后自动重新上报到数据库;网关也支持多服务器冗余、异常未提交数据本地保存等功能,确保数据安全;已批量用于多种行业的智能工厂,大大提高MES等工业互联网项目的实施效率。数据缓存演示视频


        项目中有一台S7-1500和一台S7-1200的PLC,需要将其数据通过一个IGT-DSER智能网关采集到MySQL数据库 ;首先用数据库工具navicat连接数据库建立database数据库和devdata数据表,数据表的结构如下图:

       

        然后打开智能网关的参数软件,设置网关的网络参数,具体如下图:


DB-2xS71K-IGT-NET.png

        参数设置完成后下载,重启网关后新的参数生效启用;可以通过工具->查找设备/PING,用网关PING一下PLC和服务器的IP地址;

        最后配置数据库参数和PLC数据寄存器地址,通过参数软件的功能视图->数据上报与平台对接,切换到如下画面:

DB-2xS71K-DATA-N.png

        通过navicat 连接数据库,查看存入到数据库的数据,如下图:



        智能网关支持边缘计算,边缘计算脚本采用LUA语言实现,具备丰富的函数接口,简单组合即可实现边缘计算,详细内容可查阅相关手册:智能网关边缘计算手册下载‍ 简单的数据处理也可以通过数据配置表的<数据处理/初始值>配置参数快速实现如上面的数据配置表,支持的功能如下:

        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品牌。