项目中有两台S7-1500的PLC,需要将其数据通过一个智能网关采集到MySQL数据库 ;案例资料包 网关采集多台智能仪表数据到数据库 UPDATE方式案例

首先用数据库工具

然后打开

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

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

网关支持LUA文本语言,上图数据区域选择为‘Script’是网关的存储区域,支持脚本语言开发;该项目中通过脚本语言实现以下两个功能:

1. 指定两台PLC所对应的设备名称,分别为‘Stacking1’和‘Stacking2’;

2. 将md1和md2两个整数,除以100转换成浮点数再上报到数据库;

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

--script:

--工程主函数:

function luafun( )

--局部变量定义:

local tv1=0

local tv2=0

local var1=0

local var2=0

local sv1=0

local sv2=0

--设置设备名称:

tag_writevalue(111,"devicename","Stacking1")

tag_writevalue(222,"devicename","Stacking2")

fun_ackcycle(1)

--循环:

while true do

--PLC是以整数表示的小数,处理后上报

tv1=tonumber(tag_readvalue(111,"md1"))

if (tv1~=nil) then

var1=tv1/100

end

if (var1~=sv1) then

tag_writevalue(111,"data2",tostring(var1))

sv1=var1

end

tv2=tonumber(tag_readvalue(222,"md2"))

if (tv2~=nil) then

var2=tv2/100

end

if (var2~=sv2) then

tag_writevalue(222,"data2",tostring(var2))

sv2=var2

end

fun_sleep(2000) --延时2000毫秒

end

end

--错误信息发送定义:

function sendinfor(err)

--tag_writevalue(0,"script_infor",err)

print("LUA script error: ",err)

end

--调用以上两个函数

xpcall(luafun, sendinfor)

--脚本结束

将以上配置参数和script.lua脚本文件一起下载到网关后重启网关,即可从数据库查看到数据;网关内封装有脚本使用的功能函数,具体如下:

1. 读取配置表中的变量值:tag_readvalue(int: 设备号,string: 变量名);

2. 写数据到配置表中的变量:tag_writevalue(int: 设备号,string: 变量名,string: 写入的数据);

3. 延时功能函数:fun_sleep(int: 时间 *1ms);

4. 通过串口读写数据:com_sendrecv(int: 串口号(1或2), int:字节总数, byte-1, byte-2, byte-n ...)

5. 是否允许网关循环调用:fun_ackcycle(int: 0=不允许,1=允许)

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

除了上述西门子PLC外,网关也支持罗克韦尔(AB)、欧姆龙、三菱等几乎所有PLC品牌,具体可以查看

对接mysql采集_关于西门子PLC设备数据采集与SQL数据库对接(带边缘计算)的案例...相关推荐

  1. 用jframe给MySQL输入数据_如何从JTextField输入Info到sql数据库?

    我建 table . 我想从活动窗口添加数据 . 但是a.getTabNum()和其他返回的vatiables的值为 null 这是我的代码: JButton add = new JButton(); ...

  2. Softing dataFEED OPC Suite将西门子PLC数据存储到Oracle数据库中

    一 背景 现代工业产品不仅生产批量大,而且过程自动化程度高,这对于用户追溯产品设计与制造过程中产生的数据而言,无疑是个新的挑战.与此同时,制造商们对产品制造过程中产生的大量工艺数据也愈发重视,并不断寻 ...

  3. 基于Linux系统实现西门子PLC的数据采集

    -Begin- 前言 .NET很早可以跨平台了,从早期的Mono到.Net Core,再到现在的.NET 5,以及下个月即将发布的.NET 6,.NET也是在一直稳步发展. 今天跟大家分享一下,基于L ...

  4. AB的Plc读写mysql数据库_Rockwell罗克韦尔(AB)PLC的数据存入SQL数据库,快速实现设备数据采集...

    通过数据库网关连接罗克韦尔1756-L72的以太网端口标签方式采集数据,将数据存入MySQL数据库,以下描述具体的操作步骤.PLC数据MQTT多主题发布/订阅西门子PLC数据采集到数据库 网关模块安装 ...

  5. c#与马扎克通讯_北京西门子plc和触摸屏通讯费用情况

    怀服务之心凌技术之顶 秉承自主创新,将互联网技术和信息技术应用于工业智能制造并提供整体解决方案.同时,注重服务和培训,与客户共同发展. 北京西门子plc和触摸屏通讯费用情况 智慧路灯组网工厂里的每一台 ...

  6. 一种低成本的西门子PLC网关实现采集S7系列西门子PLC数据

    西门子PLC网关BL102是一款性价比高.价格低.稳定性好.功能强大的PLC网关,用来采集西门子PLC各种型号的协议网关,可以采集S7-200,S7-200Smart,S7-300,S7-400, S ...

  7. java plc通讯_树莓派+西门子PLC+Aliyun

    本文可能有些许标题党哈哈,因为实现的功能其实很简单! Raspberry Pi(中文名为"树莓派"),是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux. ...

  8. plc 上位机编译算法_基于西门子PLC的Socket通信深度剖析

    对于自控或电气工程师来说,西门子PLC是每个人都非常熟悉的一款PLC品牌:而对于上位机开发工程师来说,Socket通信或TCP/IP协议也是必须要掌握的一种通信方式.西门子的200Smart PLC, ...

  9. 关于多台三菱PLC数据采集到SQL数据库,对接MES平台

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

最新文章

  1. python numpy筛选 总数
  2. modelsim的库仿真流程--1
  3. Apache + PHP 服务
  4. python中文正则匹配初步使用
  5. python读取html文件中的表格数据_使用解析html表pd.read_html文件其中单元格本身包含完整表...
  6. 解释如何优化css选择器_购物车解释了CSS选择器
  7. flask 加载配置文件
  8. OpenCV-向上采样cv::pyrUp向下采样cv::pyrDown
  9. jquery中的trigger和triggerHandler区别
  10. iOS开发——AVPlayer自定义播放器(持续更新,学习中)
  11. 操作指南|JumpServer用户权限体系的使用实践
  12. Sublime PyV8
  13. 163邮箱满了怎么办?无限容量,超大附件带你畅游文件的海洋
  14. 工控安全入门常用逻辑编程
  15. python学习答案_乐学Python答案
  16. 自学mysql教程 资料_数据库MYSQL,自学,命令,教程。
  17. 尘福通:智慧城市建设、运营、演进路径思考
  18. QQ浏览器X5内核问题汇总
  19. 本地搭建自己的电影网站,并发布公网访问 1-3
  20. javaScript快速入门(笔记)

热门文章

  1. go语言negroni包介绍
  2. 简单阅读golang的net/http包和Negroni的源码
  3. ps2019安装破解
  4. 3_01_GLib库入门与实践_测试框架
  5. Codeforces Round #361 (Div. 2) C 二分
  6. 计算机编程ebcdic码,EBCDIC和BCD码
  7. JavaSE_语法基础
  8. 关于取整符号(二叉树具有n个结点的m次树的最小高度⌈logₘ(n(m-1)+1)⌉)
  9. 向上取整⌈⌉和向下取整⌊⌋符号
  10. 关于间皮瘤mesothelioma的相关信息