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

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

        本项目中有1台S7-1500和1台S7-1200的PLC,需要将其数据通过一个IGT-DSER智能网关采集到MySQL数据库 ;多台智能仪表与SQL数据库双向通讯   UPDATE更新方式案例   罗克韦尔PLC标签方式数据采集到数据库

        首先用数据库工具navicat连接数据库建立database数据库和devdata数据表,数据表的结构如下图:

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

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

        最后配置数据库参数和PLC数据寄存器地址,关于配置表与SQL语言的对应关系,可看这篇文章。通过参数软件的功能视图->数据上报与对接,切换到如下画面:

        网关支持LUA脚本语言实现边缘计算功能,上图数据区域选择为‘Script’是网关的存储区域,支持脚本语言开发;该项目中通过脚本语言将md1和md2两个整数除以100,转换成浮点数再上报到数据库;通过初始值功能为每台PLC设备的'devicename'字段赋值,分别是‘Stacking1’、‘Stacking2’;

        本项目完整的脚本程序文件(script.lua)如下:

--script:

--工程主函数:
function luafun( ) 
	fun_ackcycle(1)
	--局部变量定义:
	local tval=0
	local sval=0
	--循环:
	while true do
	    --PLC是以整数表示的小数,处理后上报
		tval=tag_readvalue(111,"md1")
		if (tval~=nil) then
			sval=tonumber(tval)/100
            tag_writevalue(111,"data2",tostring(sval))
		end		
		tval=tag_readvalue(222,"md2")
		if (tval~=nil) then
			sval=tonumber(tval)/100
            tag_writevalue(222,"data2",tostring(sval))
		end		
		fun_sleep(2000)  --延时2000毫秒
	end
end

--错误信息发送定义:
function sendinfor(err)
   tag_writevalue(0,"script_infor",err)
end

--调用以上两个函数
xpcall(luafun, sendinfor)
--脚本结束

        将以上配置参数和script.lua脚本文件下载到网关(参数->脚本程序写入网关)后重启网关,网关会自动运行脚本代码;  网关内封装有数据库、HTTP、MQTT通讯,以及JSON、XML封包与解析等丰富的功能函数,具体可查看智能网关LUA脚本边缘计算手册

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

        除了上述西门子PLC外,网关也支持罗克韦尔(AB)、欧姆龙、三菱等几乎所有PLC品牌,可以选择MySQL或者SQLServer数据库。更详细的资料可以从这里下载。

更多推荐

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