掌桥专利:专业的专利平台
掌桥专利
首页

一种基于RSSQL通讯软件将数据库数据直接下装OPC的方法

文献发布时间:2023-06-19 11:44:10



技术领域

本发明涉及一种方法,具体涉及一种基于RSSQL通讯软件将数据库数据直接下装OPC的方法,属于自动化通信领域。

背景技术

在自动化控制领域,美国Rockwell公司的RSSQL通信软件是实现过程控制系统与OPC通信的最常用的通信软件之一。然而RSSQL通信软件没有实时下装OPC的功能,即数据库发生某种事件时,直接将数据库相关数据及时下装OPC。常用的方法是:(1)数据库发出Alert;(2)由外部通信软件循环扫描相应数据库服务器的端口;(3)接收到Alert信号后,再读取数据库的数据后;(4)写入OPC相应的数据模块。原有技术存在以下不足:(1)需要额外的程序:需要开发额外的接收到Alert信号、读取数据库以及写OPC的程序;(2)增加了系统的故障点;(3)会造成Alert信号队列堵塞:如果不能及时读取数据库服务器的端口的Alert信号并释放资源,会造成Alert信号队列堵塞,造成数据库瘫痪,从而影响整个系统的正常运行,因此,迫切的需要一种新的方案解决上述技术问题。

发明内容

本发明正是针对现有技术中存在的问题,提供一种基于RSSQL通讯软件将数据库数据直接下装OPC的方法,该技术方案提高了系统的稳定性,减少了系统的故障率:由于不需要基于OPC DA接口额外的通讯软件,不需要基于OPC DA接口额外的通讯软件;同时不需要数据库发出Alert事件,避免了造成数据库服务器的端口的Alert信号队列所占资源过多,从而造成数据库瘫痪,从而影响整个系统的正常运行。故而提高了系统的稳定性,减少了系统的故障率。

为了实现上述目的,本发明的技术方案如下,一种基于RSSQL通讯软件将数据库数据直接下装OPC的方法,所述方法包括以下步骤:

步骤1:在数据库中建立存储L2下发OPC的批次表;

表名:

该表中存储的是需要下装的批次状态数据。每个批次需要下装OPC的数据块集不同,下装的时机也不尽相同。需要下装的批次与该表中的记录条数一一对应。假定需要下装的数据有5个批次,则表中的记录如下表所示。

表中DownloadStatus为1,表示需要下装该批数据;为0,表示不需要下装该批数据。

每次下装OPC必然对应一次事件的发生(如数学模型计算结束),需要将已有的数据下装到OPC。该表的作用就是存储需要下装OPC事件,其优点是需要增加下装OPC的事件,不需要增加额外的程序,只需在表中增加记录即可,简单方便。

步骤2:在OPC端创建若干个L2下装OPC的标签点集BLOCK_ENEVT_SET,标签点的类型的布尔型,个数与T_Download记录数相应,且一一对应。这些标签点实现了RSSQL对下装OPC事件的监控。RSSQL软件只能监控OPC端数据块的数据变化,无法监控数据库端数据的变化,所以需要在OPC端增加需要下装OPC相应的事件,RSSQL只需监控这些标签点的数据变化情况就可以了,一旦这些标签点发生变化,数据库的数据就自动下装到相应的OPC数据块。

步骤3:在数据库创建需要下装OPC的数据存储表集TABLE_GROUP;在数据库创建需要下装OPC的数据存储表集,该数据存储表集的表的个数与T_Download表中记录数一致。每个数据存储表中存储的数据与每个需要下装OPC的批次的数据一致,存储的数据就是该批次需要下装的数据。其优点是需要增加下装OPC的事件,不需要增加额外的程序,只需在表中增加记录即可,简单方便。

步骤4:在OPC端创建若干个数据块;在OPC端创建若干个数据块,用于L2下装时,作为数据下装OPC时的目标数据块。作用是存储L2下装OPC的目标数据,控制PLC端的相关数据。

步骤5:在数据库创建需要存储过程集PROCESS_GROUP_SET;在数据库创建需要存储过程集,每一个存储过程对应一个下装批次,用作数据需要下装OPC时,调用相应的存储过程,将下装的数据写入TABLE_GROUP中对应的表中,同时将T_Download中对应记录的字段DownloadStatus更新为1。作用是存储数据库端相关的存储过程。其优点是当需要下装OPC数据时,将数据写入相应的数据库表中后,只需调用相应的存储过程即可,简单、方便。

步骤6:在数据库创建需要存储过程集PROCESS_GROUP_DWONLOAD;在数据库创建需要存储过程,每一个存储过程对应一个下装批次,用作数据需要下装OPC,存储过程的参数对应该批次需要下装的数据,将数据存储表集TABLE_GROUP中对应的数据读取,通过RSSQL将数据下装OPC对应的数据块,同时将表T_Download中对应的事件点置为0。下装OPC数据是通过相应的存储过程完成的。

步骤7:在数据库创建需要存储过程PROCESS_DWONLOAD_EVENT;在数据库创建需要存储过程PROCESS_DWONLOAD_EVENT,用于设定OPC下装事件的发生。该存储过程的参数为T_Download所有记录的字段对应的值。作用是存储下装OPC的触发事件。

步骤8:在RSSQL创建下装事件DWONLOAD_BLOCK_EVENT;在RSSQL创建下装事件,该事件与存储过程PROCESS_DWONLOAD_EVENT绑定,存储过程PROCESS_DWONLOAD_EVENT的参数与标签点集BLOCK_ENEVT_SET的标签点一一对应,事件类型为周期扫描模式,扫描周期根据系统的要求而设定,一般设定在(50ms,500ms),参数的输入输出模式为IN(输入模式)。作用是OPC端接收下装OPC事件的相关信号,当相应的点为Ture时,触发相应的存储过程并执行,实现将数据下装相应的OPC数据块。

步骤9:在RSSQL创数据下装OPC事件集DWONLOAD_DATA_EVENT_GROUP。在RSSQL创建下装事件集DWONLOAD_DATA_EVENT_GROUP,该事件集包括若干个数据下装事件,该事件集中的下装事件与存储过程集PROCESS_GROUP_DWONLOAD中的存储过程一一对应。该事件集中的每一个下装事件设定为事件触发模式,触发事件为标签点集BLOCK_ENEVT_SET对应的标签点,高位触发。

相对于现有技术,本发明具有如下优点,1)该技术方案方便系统的二次开发,减轻了系统维护的成本:完全在原有系统中开发,不需在开发额外的通讯软件,系统开发不需要C语言等其他语言开发的程序员,降低了二次开发成本;2)该方案提高了系统的稳定性,减少了系统的故障率:由于不需要基于OPC DA接口额外的通讯软件,不需要基于OPC DA接口额外的通讯软件;同时不需要数据库发出Alert事件,避免了造成数据库服务器的端口的Alert信号队列所占资源过多,从而造成数据库瘫痪,从而影响整个系统的正常运行。故而提高了系统的稳定性,减少了系统的故障率;3)该方案结构简单,方便二次开发维护:由于所有的操作都是基于RSSQL与数据库的开发,且都是基于数据库表中增加相应的记录,无需增加其他的程序,只要熟悉RSSQL与数据库开发的技术人员都可以进行二次开发与维护;而且,无需其他开发语言,节省了开发的软件费用与人工成本。

具体实施方式:

为了加深对本发明的理解,下面结合具体实施方式对本发明做详细的说明。

实施例1:一种基于RSSQL通讯软件将数据库数据直接下装OPC的方法,所述方法包括以下步骤:

步骤1:在数据库中建立存储L2下发OPC的批次表;

表名:

该表中存储的是需要下装的批次状态数据。每个批次需要下装OPC的数据块集不同,下装的时机也不尽相同。需要下装的批次与该表中的记录条数一一对应。假定需要下装的数据有5个批次,则表中的记录如下表所示。

表中DownloadStatus为1,表示需要下装该批数据;为0,表示不需要下装该批数据。

每次下装OPC必然对应一次事件的发生(如数学模型计算结束),需要将已有的数据下装到OPC。该表的作用就是存储需要下装OPC事件,其优点是需要增加下装OPC的事件,不需要增加额外的程序,只需在表中增加记录即可,简单方便。

步骤2:在OPC端创建若干个L2下装OPC的标签点集BLOCK_ENEVT_SET,标签点的类型的布尔型,个数与T_Download记录数相应,且一一对应。这些标签点实现了RSSQL对下装OPC事件的监控。RSSQL软件只能监控OPC端数据块的数据变化,无法监控数据库端数据的变化,所以需要在OPC端增加需要下装OPC相应的事件,RSSQL只需监控这些标签点的数据变化情况就可以了,一旦这些标签点发生变化,数据库的数据就自动下装到相应的OPC数据块。

步骤3:在数据库创建需要下装OPC的数据存储表集TABLE_GROUP;在数据库创建需要下装OPC的数据存储表集,该数据存储表集的表的个数与T_Download表中记录数一致。每个数据存储表中存储的数据与每个需要下装OPC的批次的数据一致,存储的数据就是该批次需要下装的数据。其优点是需要增加下装OPC的事件,不需要增加额外的程序,只需在表中增加记录即可,简单方便。

步骤4:在OPC端创建若干个数据块;在OPC端创建若干个数据块,用于L2下装时,作为数据下装OPC时的目标数据块。作用是存储L2下装OPC的目标数据,控制PLC端的相关数据。

步骤5:在数据库创建需要存储过程集PROCESS_GROUP_SET;在数据库创建需要存储过程集,每一个存储过程对应一个下装批次,用作数据需要下装OPC时,调用相应的存储过程,将下装的数据写入TABLE_GROUP中对应的表中,同时将T_Download中对应记录的字段DownloadStatus更新为1。作用是存储数据库端相关的存储过程。其优点是当需要下装OPC数据时,将数据写入相应的数据库表中后,只需调用相应的存储过程即可,简单、方便。

步骤6:在数据库创建需要存储过程集PROCESS_GROUP_DWONLOAD;在数据库创建需要存储过程,每一个存储过程对应一个下装批次,用作数据需要下装OPC,存储过程的参数对应该批次需要下装的数据,将数据存储表集TABLE_GROUP中对应的数据读取,通过RSSQL将数据下装OPC对应的数据块,同时将表T_Download中对应的事件点置为0。下装OPC数据是通过相应的存储过程完成的。

步骤7:在数据库创建需要存储过程PROCESS_DWONLOAD_EVENT;在数据库创建需要存储过程PROCESS_DWONLOAD_EVENT,用于设定OPC下装事件的发生。该存储过程的参数为T_Download所有记录的字段对应的值。作用是存储下装OPC的触发事件。

步骤8:在RSSQL创建下装事件DWONLOAD_BLOCK_EVENT;在RSSQL创建下装事件,该事件与存储过程PROCESS_DWONLOAD_EVENT绑定,存储过程PROCESS_DWONLOAD_EVENT的参数与标签点集BLOCK_ENEVT_SET的标签点一一对应,事件类型为周期扫描模式,扫描周期根据系统的要求而设定,一般设定在(50ms,500ms),参数的输入输出模式为IN(输入模式)。作用是OPC端接收下装OPC事件的相关信号,当相应的点为Ture时,触发相应的存储过程并执行,实现将数据下装相应的OPC数据块。

步骤9:在RSSQL创数据下装OPC事件集DWONLOAD_DATA_EVENT_GROUP。在RSSQL创建下装事件集DWONLOAD_DATA_EVENT_GROUP,该事件集包括若干个数据下装事件,该事件集中的下装事件与存储过程集PROCESS_GROUP_DWONLOAD中的存储过程一一对应。该事件集中的每一个下装事件设定为事件触发模式,触发事件为标签点集BLOCK_ENEVT_SET对应的标签点,高位触发。

应用实施例:

以梅钢一炼钢铁水预处理L2系统数据下装OPC为例。

步骤1:在数据库中建立存储L2下发OPC的批次表

表名:T_Download

该表中存储的是需要下装的批次状态数据。每个批次需要下装OPC的数据块集不同,下装的时机也不尽相同。需要下装的批次与该表中的记录条数一一对应。由于梅钢一炼钢铁水预处理L2系统需要下装的数据有3个批次,分别为1、2、3号脱硫站下装脱硫模型计算的数据到OPC数据块,则表中的记录如下表所示。

表中DownloadStatus为1,表示需要下装该批数据;为0,表示不需要下装该批数据。步骤2:在OPC端创建若干个L2下装OPC的标签点集BLOCK_ENEVT_SET,标签点的类型的布尔型,个数与T_Download记录数相应,且一一对应。

标签点集BLOCK_ENEVT_SET包括3个标签点:

DOWNLOAD_EVNENT_1,DOWNLOAD_EVNENT_2,DOWNLOAD_EVNENT_3,类型都是布尔型。步骤3:在数据库创建需要下装OPC的数据存储表集TABLE_GROUP;

在数据库创建需要下装OPC的数据存储表集,该数据存储表集的表的个数与T_Download表中记录数一致。每个数据存储表中存储的数据与每个需要下装OPC的批次的数据一致,存储的数据就是该批次需要下装的数据。各表的结构如下:

1号脱硫站下装脱硫模型计算数据表TABLE_GROUP_1

2号脱硫站下装脱硫模型计算数据表TABLE_GROUP_2

3号脱硫站下装脱硫模型计算数据表TABLE_GROUP_3

步骤4:在OPC端创建若干个数据块;

在OPC端创建若干个数据块,用于L2下装时,作为数据下装OPC时的目标模块。

1号脱硫站OPC端接收脱硫模型计算结果的数据块:

石灰重量数据块:BLOCK_LIME_DOWNLOAD_1,类型为real;

镁粉重量数据块:BLOCK_MG_DOWNLOAD_1,类型为real;

喷吹时间数据块:BLOCK_BLOW_TIME_DOWNLOAD_1,类型为real;

2号脱硫站OPC端接收脱硫模型计算结果的数据块:

石灰重量数据块:BLOCK_LIME_DOWNLOAD_2,类型为real;

镁粉重量数据块:BLOCK_MG_DOWNLOAD_2,类型为real;

喷吹时间数据块:BLOCK_BLOW_TIME_DOWNLOAD_2,类型为real;

3号脱硫站OPC端接收脱硫模型计算结果的数据块:

石灰重量数据块:BLOCK_LIME_DOWNLOAD_3,类型为real;

镁粉重量数据块:BLOCK_MG_DOWNLOAD_3,类型为real;

喷吹时间数据块:BLOCK_BLOW_TIME_DOWNLOAD_3,类型为real;

步骤5:在数据库创建需要存储过程集PROCESS_GROUP_SET;

在数据库创建需要存储过程集,每一个存储过程对应一个下装批次,用作数据需要下装OPC时,调用相应的存储过程,将下装的数据写入TABLE_GROUP中对应的表中,同时将T_Download中对应记录的字段DownloadStatus更新为1。

存储过程集PROCESS_GROUP_SET中,3个存储过程:

PROCESS_GROUP_SET_1、PROCESS_GROUP_SET_2、PROCESS_GROUP_SET_3;

以1号站为例,在1号站模型计算进程计算完成后,调用PROCESS_GROUP_SET_1,将模型计算结果石灰重量、镁粉重量和喷吹时间,插入表TABLE_GROUP_1中,同时将表T_Download中DownloadNo为1的记录的对应的DownloadStatus置为1。2号站、3号站与1号站相同。

步骤6:在数据库创建需要存储过程集PROCESS_GROUP_DWONLOAD;

在数据库创建需要存储过程集,每一个存储过程对应一个下装批次,用作数据需要下装OPC,存储过程的参数对应该批次需要下装的数据,将数据存储表集TABLE_GROUP中对应的数据读取,通过RSSQL将数据下装OPC对应的数据块,同时将表T_Download中对应的事件点置为0。存储过程集PROCESS_GROUP_DWONLOAD包括3个存储过程,分别对应1、2、3号站数据下装。以1号站为例,存储过程PROCESS_GROUP_DWONLOAD_1有3个参数,分别为石灰重量、镁粉重量和喷吹时间。

步骤7:在数据库创建需要存储过程PROCESS_DWONLOAD_EVENT;

在数据库创建需要存储过程PROCESS_DWONLOAD_EVENT,用于设定OPC下装事件的发生。该存储过程的参数为T_Download所有记录的字段对应的值。

步骤8:在RSSQL创建下装事件DWONLOAD_BLOCK_EVENT;

在RSSQL创建下装事件,该事件与存储过程PROCESS_DWONLOAD_EVENT绑定,存储过程PROCESS_DWONLOAD_EVENT的参数与标签点集BLOCK_ENEVT_SET的标签点一一对应,事件类型为周期扫描模式,扫描周期根据系统的要求而设定,一般设定在(50ms,500ms),参数的输入输出模式为IN(输入模式)。

步骤9:在RSSQL创数据下装OPC事件集DWONLOAD_DATA_EVENT_GROUP;

在RSSQL创建下装事件集DWONLOAD_DATA_EVENT_GROUP,该事件集包括若干个数据下装事件,该事件集中的下装事件与存储过程集PROCESS_GROUP_DWONLOAD中的存储过程一一对应。该事件集中的每一个下装事件设定为事件触发模式,触发事件为标签点集BLOCK_ENEVT_SET对应的标签点,高位触发。以1号站为例,DWONLOAD_DATA_EVENT_GROUP_1,与存储过程PROCESS_GROUP_DWONLOAD_1绑定,存储过程的3个参数分别与1号脱硫站OPC端接收脱硫模型计算结果的数据块BLOCK_LIME_DOWNLOAD_1、BLOCK_MG_DOWNLOAD_1、BLOCK_BLOW_TIME_DOWNLOAD_1绑定,参数的输入输出模式全部为为IN(输入模式)。

需要说明的是上述实施例,并非用来限定本发明的保护范围,在上述技术方案的基础上所作出的等同变换或替代均落入本发明权利要求所保护的范围。

相关技术
  • 一种基于RSSQL通讯软件将数据库数据直接下装OPC的方法
  • 一种基于OPC-UA的仿真软件数据通信方法
技术分类

06120113034386