CN110806996B - 对opc数据进行采集的系统和方法 - Google Patents
对opc数据进行采集的系统和方法 Download PDFInfo
- Publication number
- CN110806996B CN110806996B CN201910894227.8A CN201910894227A CN110806996B CN 110806996 B CN110806996 B CN 110806996B CN 201910894227 A CN201910894227 A CN 201910894227A CN 110806996 B CN110806996 B CN 110806996B
- Authority
- CN
- China
- Prior art keywords
- opc
- label
- server
- opc server
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本发明提供一种对OPC数据进行采集的系统和方法,所述系统包括OPC服务器,用于采集并汇总底层控制器的数据,以及OPC客户端,包括:数据库,用于存储OPC服务器以及OPC标签的参数;配置文件,用于存储OPC服务器和OPC标签的配置信息;主程序,用于创建OPC标签和每个所述OPC标签的共享内存变量,以及创建每个所述OPC标签及其共享内存变量的刷新线程;COM接口,用于提供给其他COM对象进行调用,从而对所述OPC标签的值进行修改;管道接口,用于连接后台存储服务,以保存实时数据;以及OPC读/写接口,用于与所述OPC服务器实现数据交互。本发明的系统和方法能够采集各种类型的终端数据,从而对生产的整个流程进行集中式监控和分布式管理。
Description
技术领域
本发明涉及控制技术领域,具体地,涉及一种对OPC数据进行采集的系统和方法。
背景技术
随着环保业务的飞速发展,众多的现场设备每天都会产生大量的实时数据,例如摄像机信号及状态、现场仪器仪表的运行情况及工程师站中各服务器的连接情况等。然而,目前还没有一种数据采集系统能够有效地采集这些实时数据以进行后期分析和处理,因而无法实现生产流程的集中式监控和分布式管理。
因此,需要一种对OPC数据进行采集的系统和方法,以解决上述技术问题。
发明内容
在发明内容部分中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本发明的发明内容部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
本发明一方面提供一种对OPC数据进行采集的系统,所述系统包括:OPC客户端以及至少一个OPC服务器,所述OPC服务器用于采集并汇总底层控制器的数据,所述OPC客户端包括:数据库,用于存储所述OPC服务器以及OPC标签的参数;配置文件,用于存储所述OPC服务器和所述OPC标签的配置信息;主程序,用于基于所述数据库和所述配置文件创建OPC标签和每个所述OPC标签的共享内存变量,以及创建每个所述OPC标签及其共享内存变量的刷新线程;COM接口,用于提供给其他COM对象进行调用,从而对所述OPC标签的值进行修改;管道接口,用于连接后台存储服务,以保存实时数据;以及OPC读/写接口,用于与所述OPC服务器实现数据交互。
在一个实施例中,所述主程序还用于:每隔预定时间获取一次所述OPC服务器的连接状态;根据获取到的所述连接状态,对连接断开的OPC服务器进行自动重连。
在一个实施例中,所述对连接断开的OPC服务器进行自动重连包括:若判断OPC服务器连接断开,则将所述OPC服务器的属性设置为未连接,删除所述OPC服务器对象下的所有OPC标签,同时将连接时间累计设置为零;再次获取到该OPC服务器的连接状态时,将该OPC服务器的属性更改为正在连接,同时连接时间累计随着获取次数的增加而不断增加,当所述连接时间累计达到所述配置文件中预先设置的阈值时,再次判断所述OPC服务器的连接状态;若连接成功,则将所述OPC服务器的连接状态设置为连接成功,同时根据所述OPC服务器下的OPC标签信息记录重新创建OPC标签,读取所述OPC服务器中OPC标签的数据,并刷新OPC标签的数值。
在一个实施例中,所述OPC标签的参数包括每个标签的项名和记录方式。
在一个实施例中,所述记录方式包括按时间间隔记录和/或按误差超限记录。
在一个实施例中,所述项名包括通道号、设备号和点名,所述项名与所述OPC服务器中记录的信息一一对应。
在一个实施例中,所述OPC读/写接口包括OPC同步读接口和OPC异步写接口,所述OPC同步读接口用于读取OPC服务器下的OPC标签数据以刷新所述OPC标签,所述OPC异步写接口用于将通过所述COM接口修改后的OPC标签的值通过所述OPC服务器下发至所述底层控制器。
在一个实施例中,所述其他COM对象包括优化控制程序。
在一个实施例中,所述管道接口为匿名管道接口。
在一个实施例中,所述系统还包括用户界面,用于显示所述OPC标签和所述OPC服务器的信息。
本发明另一方面提供一种对OPC数据进行采集的方法,所述方法包括:连接OPC服务器;创建OPC标签及其共享内存变量,并创建所述OPC标签及其共享内存变量的刷新线程;通过所述OPC服务器实时获取每个所述OPC标签的OPC标签数据;通过COM接口获取其他COM对象对所述OPC标签的值的修改;通过管道接口将所述OPC标签的数据实时发送至后台存储服务进行保存。
在一个实施例中,所述方法还包括:每隔预定时间获取一次所述OPC服务器的连接状态;根据获取到的所述连接状态,对连接断开的OPC服务器进行自动重连。
本发明的对OPC数据进行采集的系统和方法能够采集各种类型的终端数据,从而对生产的整个流程进行集中式监控和分布式管理,为生产管理提供高效的信息传输方式。
附图说明
本发明的下列附图在此作为本发明的一部分用于理解本发明。附图中示出了本发明的实施例及其描述,用来解释本发明的装置及原理。在附图中,
图1为根据本发明一实施例的对OPC数据进行采集的系统的示意图;
图2为根据本发明一实施例的OPC服务器自动重连机制的示意图;
图3为根据本发明一实施例的设置OPC服务器参数的界面;
图4为根据本发明一实施例的设置OPC标签参数的界面;
图5为根据本发明一实施例的显示OPC服务器和OPC标签信息的界面;
图6为根据本发明一实施例的对OPC数据进行采集的方法的流程图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
为了彻底理解本发明,将在下列的描述中提出详细的步骤,以便阐释本发明提出的一种对OPC数据进行采集的系统和方法。显然,本发明的施行并不限定于本领域的技术人员所熟习的特殊细节。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。
应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。
为了彻底理解本发明,将在下列的描述中提出详细的结构及/或步骤,以便阐释本发明提出的技术方案。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。
[示例性实施例一]
下面结合图1对本发明一实施例的对OPC(OLE(Object Linking and Embedding,对象连接与嵌入)for Process Control,用于过程控制的OLE)数据进行采集的系统进行详细描述。
如图1所示,所述对OPC数据进行采集的系统主要包括OPC客户端以及至少一个OPC服务器。其中,所述OPC服务器用于采集并汇总底层控制器的数据,所述OPC客户端包括:数据库,用于存储所述OPC服务器和OPC标签的参数;配置文件,用于存储所述OPC服务器和所述OPC标签的配置信息;主程序,用于基于所述数据库和所述配置文件创建OPC标签和每个所述OPC标签的共享内存变量,以及创建每个所述OPC标签及其共享内存变量的刷新线程;COM接口,用于提供给其他COM对象进行调用,从而对OPC标签的值进行修改;管道接口,用于连接后台存储服务,以保存实时数据;OPC读/写接口,用于与所述OPC服务器实现OPC标签的数据交互。
所述对OPC数据进行采集的系统通过OPC服务器实时采集底层控制器的数据发送至OPC客户端,向上实现与测控装置通信的功能,向下提供COM接口、共享内存、管道接口的通讯方式给模糊控制程序、人机界面以及后台历史服务程序等使用,能够采集各种类型的终端数据,从而对生产流程进行集中式监控和分布式管理。
作为示例,系统可以采用Windows 7 32位操作系统开发,作为COM对象运行。进一步地,可以采用公开的OPC proxy.dll、OPC DA.dll动态连接库开发OPC读/写接口,采用OLE技术实现COM对象的连接机制,通过COM接口实现COM对象间的数据传输,同时采用共享内存的方法实现数据共享。主程序可以采用VC++6.0基于对话框的MFC Appwizard开发。
在一个实施例中,OPC服务器(OPC Server)是最先进行配置的。示例性地,所述OPC服务器安装在工业电脑上,与底层控制器之间通过以太网连接以采集并汇总底层控制器的数据,所述底层控制器例如为PLC(可编程逻辑控制器)或DCS(分布式控制系统)等。如果安装无误并进行组态之后数据连接正常,则手动记录OPC服务器中各标签(Tag)点的详细信息。作为示例,每个标签对应底层控制器中的一项模拟量输入。
OPC服务器正常工作之后,在启动对OPC数据进行采集的系统之前,首先需要对数据库进行配置,所述数据库用于存储所述OPC服务器和OPC标签的参数。
作为示例,参见图3,首先进入OPC服务器参数设置界面,设置OPC客户端所连接的一个或多个OPC服务器的名称、用户名、登录密码及OPC域名等,如果要连接远程的OPC服务器,则可以填写对方的IP地址。由此,使OPC服务器与OPC客户端连接。
接着,参见图4,进入OPC标签信息界面,配置OPC标签,输入项(item)名,记录方式、记录间隔、误差等信息。项名由通道号、设备号和点名组成,其与OPC服务器中配置的信息一一对应,以避免在读取该点的数据时将发生错误;记录方式(保存方式)分为按时间间隔记录和按误差超限记录;记录间隔表示若按时间间隔记录时,每隔多久记录一次;误差表示如果按误差超限记录时,超过阈值多少时进行记录。
配置文件,用于存储所述OPC服务器和所述OPC标签的配置信息,通过读取配置文件可以创建OPC标签。作为示例,数据库按要求配置完成之后,对配置文件进行配置,例如包括填写OPC服务器的连接配置、历史数据存储的配置、每个焚烧炉中摄像机的配置及日志文件的配置等。除此之外,还需要对一些复杂的组合标签(Combination Tag)进行配置,即把满足要求的OPC标签集中起来进行求最大值最小值、平均数、求和等数理统计运算。
数据库和配置文件配置完成之后,则可以启动系统,由主程序基于所述数据库和所述配置文件创建OPC标签和每个所述OPC标签的共享内存变量,以及创建每个所述OPC标签及其共享内存变量的刷新线程。
示例性地,可以首先初始化ATL(动态模板库)和OLE(对象链接与嵌入),从而能够使用COM组件技术实现COM对象间的通讯和信息共享。
主程序接着根据配置文件,创建标签及其共享内存变量。示例性地,读取配置文件,初始化相关全局变量,创建摄像机标签及其对应的OPC标签和共享变量;读数据库文件,根据OPC服务器列表依次创建OPC服务器下的每个标签信息记录及其共享内存;读组合配置文件,创建组合标签对象,同时生成对应的OPC标签及其共享内存变量等。
如果OPC服务器连接成功,则主程序刷新OPC服务器的连接状态,根据OPC服务器下的标签信息记录,创建OPC标签对象,通过OPC的同步接口读取OPC服务器下的标签信息并刷新。之后,每隔预定时间(例如1s)刷新一次OPC服务器的连接情况,并在其断开后自动重连,同时更新其他COM对象(例如优化控制程序)通过COM接口修改的OPC标签值,并通过OPC异步写接口将修改后的OPC标签值下发至底层控制器。
之后,主程序还用于创建刷新线程。示例性地,创建摄像机处理线程后,根据配置文件中预先设定的间隔时间定时刷新摄像机对应的OPC标签值,以及组合标签对应的OPC标签值。启动并创建共享内存刷新线程,每隔预定时间(例如1s)根据OPC标签的值更新一次共享内存变量。
示例性地,当所有刷新线程创建并启动后,初始化用户界面,并且每预定时间(例如1s)更新一次用户界面中各个OPC标签的数值。
作为示例,如果用户选择退出程序,则核心控制程序停止刷新,隐藏用户界面,释放内存空间后退出。
所述系统还包括管道接口,用于连接后台存储服务,以保存实时数据。如上所述,在配置数据库时配置了记录方式,则还可以按预先配置的记录方式(按时间间隔或误差越限记录)通过管道接口发送数据给后台存储服务程序,所述接口例如为C/S匿名管道接口。示例性地,如果容器中数据存储量超过设定值,匿名管道通过Call Named Pipe(调用命名管道)函数请求发送数据,一旦后台存储服务接受请求,数据将源源不断地保存在后台存储服务的HIS文件夹中。
在一个实施例中,用于与OPC服务器实现OPC标签的数据交互的OPC读/写接口具体包括OPC同步读接口和OPC异步写接口,所述OPC同步读接口用于读取OPC服务器下的OPC标签数据以刷新所述OPC标签,所述OPC异步写接口用于将通过所述COM接口修改后的OPC标签的值通过所述OPC服务器下发至所述底层控制器。
在一个实施例中,所述主程序还用于每隔预定时间获取一次OPC服务器的连接状态;根据获取到的连接状态,对连接断开的OPC服务器进行自动重连。作为示例,连接断开后自动重连的机制如图2所示。
具体地,系统不断循环查看所连接的各个OPC服务器的状态。如果查看到属性为已连接的OPC服务器连接断开,则将该OPC服务器对象的属性设置为未连接,删除该OPC服务器对象下的所有OPC标签对象,同时将连接时间累计设置为零。当再次提取该OPC服务器对象时,将查看到其属性为未连接,此时将该OPC服务器对象的属性设置为正在连接,并查看其连接行为,若该OPC服务器无连接行为,则再次将其属性设置为未连接。
在连接过程中,随着循环累计次数的增加,连接时间累计也在不断增加,当连接时间累计达到配置文件中设置的阈值时,再次判断OPC服务器的连接状态,如果连接成功,则显示重新连接成功,同时根据OPC服务器对象下的标签信息记录创建OPC标签对象,读取OPC服务器中的数据并刷新OPC标签的数值,此时在用户界面上将标签及其数据全部展示出来。如果连接失败,则将属性设置为未连接,删除OPC服务器对象下的所有OPC标签对象,同时把连接时间累计设置为零。
如上所述,通过上述时间累计机制代替断开后立刻重连的主要目的在于,在OPC服务器端所有位号(即待采集的标签)加载稳定后再进行OPC客户端的位号加载。
在一个实施例中,所述系统还包括用户界面,用于显示所述OPC标签的信息和所述OPC服务器的连接状态信息。
作为示例,参见图5,数据库和配置文件配置完成之后,可以在所述用户界面的左上角显示OPC服务器总数和数据总数,OPC服务器即为所连接的OPC服务器个数,数据总数即为创建的全部OPC标签的个数(包括数据库中的标签、摄像机标签、组合标签、OPC服务器连接状态标签等)。同时在第一个表格中显示OPC标签的清单,罗列所有类型的OPC标签;第二个表格中显示OPC服务器的清单,罗列连接OPC客户端的所有OPC服务器。此外,还可以在右下角设置退出按钮,点击退出按钮即可退出程序。
本发明实施例的对OPC数据进行采集的系统能够采集各种类型的终端数据,从而对生产的整个流程进行集中式监控和分布式管理,为生产管理提供高效的信息传输方式。
[示例性实施例二]
下面结合图6对本发明一实施例的对OPC数据进行采集的方法进行详细描述。所述方法由上述对OPC数据进行采集的系统来实现。
如图6所示,在步骤601,配置数据库和配置文件;
在步骤602,创建OPC标签及其共享内存变量,并创建所述OPC标签及其共享内存变量的刷新线程;
在步骤603,通过所述OPC服务器实时获取每个所述OPC标签的OPC标签数据;
在步骤604,通过COM接口获取其他COM对象对所述OPC标签的值的修改;
在步骤605,通过管道接口将所述OPC标签的数据实时发送至后台存储服务进行保存。
在一个实施例中,首先配置OPC服务器。示例性地,所述OPC服务器安装在工业电脑上,与底层控制器之间通过以太网连接以采集并汇总底层控制器的数据,所述底层控制器例如为PLC(可编程逻辑控制器)或DCS(分布式控制系统)等。如果安装无误并进行组态之后数据连接正常,则手动记录OPC服务器中各标签(Tag)点的详细信息。作为示例,每个标签对应底层控制器中的一项模拟量输入。
OPC服务器正常工作之后,在启动对OPC数据进行采集的系统之前,首先对数据库进行配置,所述数据库用于存储所述OPC服务器和OPC标签的参数。
作为示例,首先进入OPC服务器参数设置界面,设置OPC客户端所连接的一个或多个OPC服务器的名称、用户名、登录密码及OPC域名等,如果要连接远程的OPC服务器,则可以填写对方的IP地址。由此,使OPC服务器与OPC客户端连接。
接着,进入标签信息界面,配置OPC标签,输入项(item)名,记录方式、记录间隔、误差等信息。项名由通道号、设备号和点名组成,其与OPC服务器中配置的信息一一对应,以避免在读取该点的数据时将发生错误;记录方式(保存方式)分为按时间间隔记录和按误差超限记录;记录间隔表示若按时间间隔记录时,每隔多久记录一次;误差表示如果按误差超限记录时,超过阈值多少时进行记录。
数据库按要求配置完成之后,对配置文件进行配置,例如包括填写OPC服务器的连接配置、历史数据存储的配置、每个焚烧炉中摄像机的配置及日志文件的配置等。除此之外,还需要对一些复杂的组合标签(Combination Tag)进行配置,即把满足要求的OPC标签集中起来进行求最大值最小值、平均数、求和等数理统计运算。
数据库和配置文件配置完成之后,则可以启动系统,由主程序基于所述数据库和所述配置文件创建OPC标签和每个所述OPC标签的共享内存变量,以及创建每个所述OPC标签及其共享内存变量的刷新线程。
示例性地,可以首先初始化ATL(动态模板库)和OLE(对象链接与嵌入),从而能够使用COM组件技术实现COM对象间的通讯和信息共享。
接着,根据配置文件,创建标签及其共享内存变量。示例性地,读取配置文件,初始化相关全局变量,创建摄像机标签及其对应的OPC标签和共享变量;读数据库文件,根据OPC服务器列表依次创建OPC服务器下的每个标签信息记录及其共享内存;读组合配置文件,创建组合标签对象,同时生成对应的OPC标签及其共享内存变量等。
如果OPC服务器连接成功,则刷新OPC服务器的连接状态,根据OPC服务器下的标签信息记录,创建OPC标签对象,通过OPC的同步接口读取OPC服务器下的标签信息并刷新。之后,每隔预定时间(例如1s)刷新一次OPC服务器的连接情况,并在其断开后自动重连,同时更新其他COM对象(例如优化控制程序)通过COM接口修改的OPC标签值,并通过OPC异步写接口将修改后的OPC标签值下发至底层控制器。
之后,创建刷新线程。示例性地,创建摄像机处理线程后,根据配置文件中预先设定的间隔时间定时刷新摄像机对应的OPC标签值,以及组合标签对应的OPC标签值。启动并创建共享内存刷新线程,每隔预定时间(例如1s)根据OPC标签的值更新一次共享内存变量。
示例性地,当所有刷新线程创建并启动后,初始化用户界面,并且每预定时间(例如1s)更新一次用户界面中各个OPC标签的数值。
作为示例,如果用户选择退出程序,则核心控制程序停止刷新,隐藏用户界面,释放内存空间后退出。
如上所述,在配置数据库时配置了记录方式,则还可以按预先配置的记录方式(按时间间隔或误差越限记录)通过管道接口发送数据给后台存储服务程序,所述接口例如为C/S匿名管道接口。示例性地,如果容器中数据存储量超过设定值,匿名管道通过CallNamed Pipe(调用命名管道)函数请求发送数据,一旦后台存储服务接受请求,数据将源源不断地保存在后台存储服务的HIS文件夹中。
在一个实施例中,每隔预定时间获取一次OPC服务器的连接状态;根据获取到的连接状态,对连接断开的OPC服务器进行自动重连。
具体地,系统不断循环查看所连接的各个OPC服务器的状态。如果查看到属性为已连接的OPC服务器连接断开,则将该OPC服务器对象的属性设置为未连接,删除该OPC服务器对象下的所有OPC标签对象,同时将连接时间累计设置为零。当再次提取该OPC服务器对象时,将查看到其属性为未连接,此时将该OPC服务器对象的属性设置为正在连接,并查看其连接行为,若该OPC服务器无连接行为,则再次将其属性设置为未连接。
在连接过程中,随着循环累计次数的增加,连接时间累计也在不断增加,当连接时间累计达到配置文件中设置的阈值时,再次判断OPC服务器的连接状态,如果连接成功,则显示重新连接成功,同时根据OPC服务器对象下的标签信息记录创建OPC标签对象,读取OPC服务器中的数据并刷新OPC标签的数值,此时在用户界面上将标签及其数据全部展示出来。如果连接失败,则将属性设置为未连接,删除OPC服务器对象下的所有OPC标签对象,同时把连接时间累计设置为零。
如上所述,通过上述时间累计机制代替断开后立刻重连的主要目的在于,在OPC服务器端所有位号(即待采集的标签)加载稳定后再进行OPC客户端的位号加载。
在一个实施例中,所述方法还包括在用户界面上显示所述OPC标签的信息和所述OPC服务器的连接状态信息,并定时刷新所述用户界面上的信息。
作为示例,数据库和配置文件配置完成之后,可以在所述用户界面的左上角显示OPC服务器总数和数据总数,OPC服务器即为所连接的OPC服务器个数,数据总数即为创建的全部OPC标签的个数(包括数据库中的标签、摄像机标签、组合标签、OPC服务器连接状态标签等)。同时在第一个表格中显示OPC标签的清单,罗列所有类型的OPC标签;第二个表格中显示OPC服务器的清单,罗列连接OPC客户端的所有OPC服务器。此外,还可以在右下角设置退出按钮,点击退出按钮即可退出程序。
本发明实施例的对OPC数据进行采集的方法能够采集各种类型的终端数据,从而对生产的整个流程进行集中式监控和分布式管理,为生产管理提供高效的信息传输方式。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(Digital Signal Processing,DSP)来实现根据本发明实施例的物品分析设备中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种对OPC数据进行采集的系统,其特征在于,所述系统包括OPC客户端以及至少一个OPC服务器,所述OPC服务器用于采集并汇总底层控制器的数据,所述OPC客户端包括:
数据库,用于存储所述OPC服务器以及OPC标签的参数;
配置文件,用于存储所述OPC服务器和所述OPC标签的配置信息;
主程序,用于基于所述数据库和所述配置文件创建OPC标签和每个所述OPC标签的共享内存变量,以及创建每个所述OPC标签及其共享内存变量的刷新线程;
COM接口,用于提供给其他COM对象进行调用,从而对所述OPC标签的值进行修改;
管道接口,用于连接后台存储服务,以保存实时数据;
OPC读/写接口,用于与所述OPC服务器实现数据交互;
所述主程序还用于:每隔预定时间获取一次所述OPC服务器的连接状态,根据获取到的所述连接状态,对连接断开的OPC服务器进行自动重连,其中,所述对连接断开的OPC服务器进行自动重连包括:
若判断OPC服务器连接断开,则将所述OPC服务器的属性设置为未连接,删除所述OPC服务器对象下的所有OPC标签,同时将连接时间累计设置为零;
再次获取到该OPC服务器的连接状态时,将该OPC服务器的属性更改为正在连接,同时连接时间累计随着获取次数的增加而不断增加,当所述连接时间累计达到所述配置文件中预先设置的阈值时,再次判断所述OPC服务器的连接状态;
若连接成功,则将所述OPC服务器的连接状态设置为连接成功,同时根据所述OPC服务器下的OPC标签信息记录重新创建OPC标签,读取所述OPC服务器中OPC标签的数据,并刷新OPC标签的数值。
2.如权利要求1所述的系统,其特征在于,所述OPC标签的参数包括每个标签的项名和记录方式。
3.如权利要求2所述的系统,其特征在于,所述记录方式包括按时间间隔记录和/或按误差超限记录。
4.如权利要求2所述的系统,其特征在于,所述项名包括通道号、设备号和点名,所述项名与所述OPC服务器中记录的信息一一对应。
5.如权利要求1所述的系统,其特征在于,所述OPC读/写接口包括OPC同步读接口和OPC异步写接口,所述OPC同步读接口用于读取OPC服务器下的OPC标签数据以刷新所述OPC标签,所述OPC异步写接口用于将通过所述COM接口修改后的OPC标签的值通过所述OPC服务器下发至所述底层控制器。
6.如权利要求1所述的系统,其特征在于,所述其他COM对象包括优化控制程序。
7.如权利要求1所述的系统,其特征在于,所述管道接口为匿名管道接口。
8.如权利要求1所述的系统,其特征在于,还包括用户界面,用于显示所述OPC标签和所述OPC服务器的信息。
9.一种对OPC数据进行采集的方法,其特征在于,所述方法由权利要求1-8中任一项所述的对OPC数据进行采集的系统实现,所述方法包括:
连接OPC服务器;
创建OPC标签及其共享内存变量,并创建所述OPC标签及其共享内存变量的刷新线程;
通过所述OPC服务器实时获取每个所述OPC标签的OPC标签数据;
通过COM接口获取其他COM对象对所述OPC标签的值的修改;
通过管道接口将所述OPC标签的数据实时发送至后台存储服务进行保存;
每隔预定时间获取一次所述OPC服务器的连接状态;
根据获取到的所述连接状态,对连接断开的OPC服务器进行自动重连,其中,所述对连接断开的OPC服务器进行自动重连包括:
若判断OPC服务器连接断开,则将所述OPC服务器的属性设置为未连接,删除所述OPC服务器对象下的所有OPC标签,同时将连接时间累计设置为零;
再次获取到该OPC服务器的连接状态时,将该OPC服务器的属性更改为正在连接,同时连接时间累计随着获取次数的增加而不断增加,当所述连接时间累计达到所述配置文件中预先设置的阈值时,再次判断所述OPC服务器的连接状态;
若连接成功,则将所述OPC服务器的连接状态设置为连接成功,同时根据所述OPC服务器下的OPC标签信息记录重新创建OPC标签,读取所述OPC服务器中OPC标签的数据,并刷新OPC标签的数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894227.8A CN110806996B (zh) | 2019-09-20 | 2019-09-20 | 对opc数据进行采集的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894227.8A CN110806996B (zh) | 2019-09-20 | 2019-09-20 | 对opc数据进行采集的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110806996A CN110806996A (zh) | 2020-02-18 |
CN110806996B true CN110806996B (zh) | 2022-04-12 |
Family
ID=69487657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910894227.8A Active CN110806996B (zh) | 2019-09-20 | 2019-09-20 | 对opc数据进行采集的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110806996B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111600739B (zh) * | 2020-03-31 | 2022-08-02 | 吉利汽车研究院(宁波)有限公司 | Opc ua地址空间模型中关联节点的同步更新方法 |
CN112696787A (zh) * | 2020-12-29 | 2021-04-23 | 中国兵器装备集团自动化研究所 | 一种药剂洁净车间全景三维可视化智能监控系统及方法 |
CN113219853A (zh) * | 2021-04-09 | 2021-08-06 | 北京国电思达科技有限公司 | Plc控制器的半物理仿真平台搭建方法及装置 |
CN113325810B (zh) * | 2021-04-22 | 2022-05-17 | 福州汉思信息技术有限公司 | 一种自动化数据交互方法 |
CN114661277B (zh) * | 2022-03-25 | 2022-09-23 | 机科发展科技股份有限公司 | 一种基于opc技术的客户端中间件及其实现方法 |
CN115933589A (zh) * | 2022-11-25 | 2023-04-07 | 贵州电网有限责任公司 | 一种基于DIgSILENT的微电网能量管理测试方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005141524A (ja) * | 2003-11-07 | 2005-06-02 | Yokogawa Electric Corp | データ収集装置 |
CN103064382A (zh) * | 2012-12-21 | 2013-04-24 | 南京富岛信息工程有限公司 | 基于arm架构的opc嵌入式远程数据采集系统及方法 |
CN105607957A (zh) * | 2015-12-23 | 2016-05-25 | 杭州真鹏科技有限公司 | 一种基于opc da的数据采集与监控系统及方法 |
CN108469790A (zh) * | 2018-03-19 | 2018-08-31 | 武汉理工大学 | 一种基于opc协议的plc现场数据采集与监控模块及方法 |
CN109086380A (zh) * | 2018-07-25 | 2018-12-25 | 光大环境科技(中国)有限公司 | 对历史数据进行压缩存储的方法及系统 |
-
2019
- 2019-09-20 CN CN201910894227.8A patent/CN110806996B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005141524A (ja) * | 2003-11-07 | 2005-06-02 | Yokogawa Electric Corp | データ収集装置 |
CN103064382A (zh) * | 2012-12-21 | 2013-04-24 | 南京富岛信息工程有限公司 | 基于arm架构的opc嵌入式远程数据采集系统及方法 |
CN105607957A (zh) * | 2015-12-23 | 2016-05-25 | 杭州真鹏科技有限公司 | 一种基于opc da的数据采集与监控系统及方法 |
CN108469790A (zh) * | 2018-03-19 | 2018-08-31 | 武汉理工大学 | 一种基于opc协议的plc现场数据采集与监控模块及方法 |
CN109086380A (zh) * | 2018-07-25 | 2018-12-25 | 光大环境科技(中国)有限公司 | 对历史数据进行压缩存储的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110806996A (zh) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110806996B (zh) | 对opc数据进行采集的系统和方法 | |
CN105005532B (zh) | 一种自动化测试应用程序接口稳定性的系统及方法 | |
CN108153670A (zh) | 一种接口测试方法、装置及电子设备 | |
CN107438095A (zh) | 制造操作信息的会话接口代理 | |
CN107608774A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN111427313A (zh) | 一种机器人管理方法、装置、电子设备及存储介质 | |
CN112905323B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN106933672A (zh) | 一种分布式环境协调消费队列方法和装置 | |
CN116257438A (zh) | 接口测试用例的更新方法及相关设备 | |
CN105933154A (zh) | 一种云计算资源的管理方法 | |
CN113395180B (zh) | 一种工业实时大数据采集发布方法及工业实时大数据平台 | |
CN110489329A (zh) | 一种测试报告的输出方法、装置及终端设备 | |
CN110321357A (zh) | 一种读写控制方法、装置及服务器 | |
US20090112704A1 (en) | Management tool for efficient allocation of skills and resources | |
CN112446625A (zh) | 一种工艺线路生成系统、方法、平台及存储介质 | |
US20040255057A1 (en) | Method and apparatus for providing help information in multiple formats | |
JP2016522517A (ja) | プロセス変数に関連するトレンドを表示する装置 | |
CN115935089A (zh) | 一种基于rpa技术的上车点推荐优化方法和系统 | |
JPH08237247A (ja) | ネットワーク管理システム | |
CN113011819B (zh) | 一种裸金属服务器的管理方法、装置及管理服务器 | |
CN115794545A (zh) | 运维数据的自动化处理方法及其相关设备 | |
CN107766306B (zh) | 一种数据展示的方法与设备 | |
CN111291127B (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
CN117934663B (zh) | Dcs画面中图元拖拽生成曲线的方法、系统、设备及介质 | |
CN111077859A (zh) | 生产工艺控制方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |