组态王中PLC数据连接MySQL数据库教程

南方科技大学创新设计课程朗坤项目组


前言:本文作者非专业编程专业,相关教程可能不是很严格,仅仅提供一种思路,方便今后各位解决PLC数据抓取的问题。如果有什么遗漏,欢迎各位前辈批评斧正,不胜感激。

PLC广泛应用于各种工厂之中,但是随着信息化的要求的提高,许多工厂需要面临信息化的过程,项目组成员通过一门课程了解到实际的需求,在摸索后,发现PLC获取数据并非那么困难,故总结出上述方法,为了避免今后有人做重复性工作或者被PLC的难度所吓倒,总结了一份教程发布到网上,希望对大家有所帮助。

操作步骤:

①     确定中控室电脑连网,并且安装MySQL环境,下载地址如下:https://www.mysql.com/downloads/

②     修改win MySQL服务信息(最好修改)

电脑→右击管理→服务与应用程序→修改MySQL服务→将恢复设置成第一次失败,重新启动服务。将登陆改为本地系统账户。

以上操作,不清楚原因,但是确实能避免出现BUG。

③     设置MySQL库参数,输入以下代码。(非必要步骤)

show variables like '%timeout%'; 

set interactive_timeout=604800; 
set wait_timeout=604800; 

(此条为非必须,主要是MySQL存在八小时自动断开机制,本步骤为减少该机制影响。上图修改为24h,实际操作时,可设计更长。)

④     打开系统盘,进入window/system32(也可以再system64 里面找odbc数据源,不会出粗,控制面板也可以找),找到“odbcad32”文件,打开odbcad32文件,选择系统DSN,点击添加。

组态王中PLC数据连接MySQL数据库教程_第1张图片

组态王中PLC数据连接MySQL数据库教程_第2张图片

⑤     选择MySQL ODBC Unicode Driver,点击完成。

组态王中PLC数据连接MySQL数据库教程_第3张图片

⑥     添加相关信息。注意记录好相关信息。当Test成功后,开启后续操作。请记下DataSource Name的详细信息。

组态王中PLC数据连接MySQL数据库教程_第4张图片


⑦     打开组态王编辑软件,本次选择的为组态王6.60版本说明。进入工程浏览器。

组态王中PLC数据连接MySQL数据库教程_第5张图片

⑧     选择命令语言项目下的,应用程序命令语言。

组态王中PLC数据连接MySQL数据库教程_第6张图片

⑨     在启动时可填写代码:

 

DeviceID:执行函数时,系统会分配,是执行函数的返回数。

DSN:前文记录的Data Source Name的信息。

UID:数据库的账户名。

PWD:数据库的密码。

⑩     运行时代码,可以在顶端设置每多少毫秒运行一次,从而批量调整写入周期。

组态王中PLC数据连接MySQL数据库教程_第7张图片

⑪     设置记录体。(可作为与数据库的表格一一对应的表)

组态王中PLC数据连接MySQL数据库教程_第8张图片

为了避免处错误,个人建议,记录体名称设置为数据库表格名称。

字段名称设置为数据库表格中数据的表头名称。

变量需要选择问号,问号会自动弹出站点所对应的传感器的信息,选择对应传感器即可。(本教程没有连接传感器,故无法展示)

⑫     触发增加字段。以此类推,增加全部该表格字段,记录好本记录体的名字。

组态王中PLC数据连接MySQL数据库教程_第9张图片

⑬     填写应用程序命令语言。从全部函数中找到SQLInsert

组态王中PLC数据连接MySQL数据库教程_第10张图片

Device ID:

TableName:数据表的名称

BindList:记录体的名称。

(记录体可以不一样,只要自己分清即可。)

⑭     再停止时需添加,SQLDisconnect函数。

组态王中PLC数据连接MySQL数据库教程_第11张图片

后记补充:

本教程修改的了八小时重新连接参数为24h,需要24小时重新开启一次中控室软件。也可以选择避免方式,即在运行时,每次写入数据,均选择一次SQLConnect(),并且在结束时,同样选择SQLDisconnect(); 这样既可避免这样问题,但是当网络通信出现问题时,可能会存在链接未成功导致系统崩溃的情况。(似乎也不会产生崩溃,目前还未测试,暂且不推荐此联系方法,不过可以修改数据库默认断线时间为15天,然后每15天重新启动一次。)

 

如果数据量不大的话,可以将中控室主机作为单独数据库,服务内单独设置,开放3306端口,并且修改上文地址类localhost即可。


感谢朗坤环保沈工和组态王李工对本教程的指导与支持!


你可能感兴趣的:(组态王中PLC数据连接MySQL数据库教程)