IGT-SER智能网关模块,支持各种PLC、智能仪表、远程IO与数据库之间双向通讯,既可以读取设备的数据上报到SQL数据库,也可以从数据库查询数据后写入到设备;数据库软件支持MySQL、SQLServer、PostgreSQL。
网关安装在设备侧,与设备同时起停,不担心数据丢失;在断网、服务器维护上报数据有异常时,网关主动将数据缓存,待故障解除后自动重新上报到数据库;网关也支持多服务器冗余、异常未提交数据本地保存等功能,确保数据安全;已批量用于多种行业的智能工厂,大大提高MES等工业互联网项目的实施效率。
本文章描述的是通过一个IGT-SER智能网关模块,与多台智能仪表通讯采集数据后存入数据库的案例。PLC数据上报到远程数据库 软件与手册下载
首先建立好数据库和数据表,通过navicat数据库工具连接MySQL数据库,建立数据库database和数据表datatable,具体设计视图如下:

将网关与智能仪表的串口通讯线连接好,打开参数设置软件通过网线连接网关设置参数,,正常连接后,首先设置串口参数,功能->串口参数编辑,如下图:


主要设置串口的连接模式,以及波特率、通讯格式、超时时间等参数,本站地址为0,PLC站地址也设置为255,因为连接的是多台仪表,在后面的数据配置中指定具体的站号。
然后设置数据库相关参数,关于配置表与SQL语言的对应关系,可看这篇文章。功能->数据上报与查询,到数据库页面,设置数据库服务器的地址、具体上报的数据,详细如下图:

上图中数据区域所选择的‘Script’是网关模块的内部变量,以下是该配置对应的LUA脚本文件:LUA脚本教程
--script: --工程函数定义: function luaMain( ) --定义变量: local temp=0 local tval=0 local tstr="" --循环读取当前值更新状态: while true do temp=tag_readvalue(1,"current_value") if (temp~=nil) then tval=tonumber(temp) if tval<40 and tval>0 then tstr="Temperature Normal" else tstr="Temperature Aralm" end tag_writevalue(1,"state",tstr) end temp=tag_readvalue(2,"current_value") if (temp~=nil) then tval=tonumber(temp) if tval<8 and tval>4 then tstr="Pressure Normal" else tstr="Pressure Aralm" end tag_writevalue(2,"state",tstr) end temp=tag_readvalue(3,"current_value") if (tval~=nil) then tval=tonumber(temp) if tval<400 and tval>360 then tstr="Voltage Normal" else tstr="Voltage Aralm" end tag_writevalue(3,"state",tstr) end --延时后进入下一循环: fun_sleep(5000) end end --错误发送定义: function sendinfor(err) tag_writevalue(0,"script_infor",err) end --调用以上两个函数 xpcall(luaMain, sendinfor) --脚本结束
讯享网
设置完成后将配置和脚本文件一起下载到网关,重启后即可自动运行。网关软件和配置文件可从CSDN里面下载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/44064.html