前言
在石油开采中常用的一种设备就是抽油机,抽油机运行状态的好坏将直接影响原油的产量及采油时能源的消耗。抽油机运行的好坏通常是通过示功图来显示分析的,因此采集示功图数据和分析示功能图数据也就变的十分重要。怎样显示示功图,怎样分析示功图数据的方法现在已经比较成熟,这里主要介绍一种紫金桥软件通过OPC方式实现示功图数据采集的过程。
特征分析
示功图数据采集过程并不是很复杂,只是不同采集方式有不同的特点。
在示功图中通常主要包含抽油机运行一个周期(一个冲程)电流、电压、负载及位移产生的四组数据。在一个运行周期内每组数据的个数根据采样方式不同,也会不同。如果按着固定位移间隔采样,每个周期采集的四组数据的数据个数是固定的。但是如果采样是按固定时间间隔来进行的,那么不同冲程周期内产生的数据个数就可能不同。
从上面示功图数据特点可以看出,示功图的数据采集通常是通过通讯协议或API接口函数的方式以数据块的形式进行数据采集的。我们知道OPC通讯方式通常是以数据项为基本单位进行数据传送的,虽然可以通过OPC组进行批量数据读取,但是通常组内各数据项之间是相互独立的(有的OPC Server支持数组数据项)。那么我们为什么要OPC方式进行示功图数据采集呢?这是因为有些示功图数据采样是通过PLC或一些智能仪表(或模块)来实现的,而这些设备的直接通讯协议是不开放的,它们只对外提供OPC接口。
从上面分析我们可以看出实现示功图OPC接口是非常必要的。实现通过OPC采集示功图数据也主要为了解决以下两个问题:一、示功图中各数据块数据个数确定问题;二是数据块内数据与OPC数据项之间的关联问题。
解决问题
示功图中各数据块数据个数确定
示功图的数据块中数据个数可以通过三种方式确定:
数据块中的数据个数是固定的
在设备定义时,在数据块属性定义中先指定每个数据块的最大数据项数,然后再在“项数确定”选择“最大数据项数”即可完成此种方式定义。
数据块中的数据个数由首个数据确定
在设备定义时,在数据块属性定义中先指定每个数据块的最大数据项数,然后再在“项数确定”选择“首数据定义”即可完成此种方式定义。
数据块中的数据是通过三个0作为结束标志的
在设备定义时,在数据块属性定义中先指定每个数据块的最大数据项数,然后再在“项数确定”选择“三个0终止”即可完成此种方式定义。
数据块内数据与OPC数据项之间的关联
示功图中的数据通常是以数据块的方式存贮,对于支持数组方式传送数据的OPC Server则比较简单,只要对一个数据块定义一个数据项即可。对于不支持数组方式传送数据的OPC Server则需要按一定规则定义OPC的数据项,才能方便连接和数据采集。
OPC Server支持数组方式传送数据
对于这种服务器在定义数据块属性时,只要将“项名”选择为“数组”,在进行数据连接时(在点组态中,I/O连接时),将数组项名输入到对应的连接项中即可。
OPC Server支持数组方式传送数据
对于这种服务器,在进行OPC Server本身数据项定义时,要求数据项的名称定义要有规律,即同一数据块内各数据项名称的前缀和后缀(可以没有后缀)应该是相同的,不同数据项包含一个与之在数据块中位置相对应的序号(如,L001.PV,L002.PV,L003.PV……)。这样在数据采集时就可以按着数据项名命名规律自动采集了。
对于这种服务器在定义数据块属性时,只要将“项名”选择为“增量项名”,在进行数据连接时(在点组态中,I/O连接时),将数据块中第一个数据项名(如:L001.PV)输入到对应的连接项中即可。