何斌全,黄劲松,李琼峰,黄振林,郭宏海
(1.湖南柿竹园有色金属有限责任公司, 湖南 郴州市 423037; 2.杭州和利时自动化有限公司, 浙江 杭州 310018)
集控平台是将矿石开采、加工过程中具有感知、监控能力的各类采集传感器和控制器进行联网,采集其生产过程中的数据,再运用数据融合、智能分析等技术不断将分析的结果融入到金属矿生产过程的各个环节,从而大幅提高采矿、选矿的工作效率,改善矿石分选质量,降低成本和资源消耗,最终实现将传统的矿石生产方式转化为智能化方式。
柿竹园金属矿集控平台数据接入过程中,存在以下2个问题:设备、测点变化时系统无法自动识别;一部分测点在设备层、监控层、执行层的信 息已经不一致,导致很多功能无法使用。为解决上述问题,采用一种新的数据接入方式——即插即用,进行技术研究和设计。功能主要包括:全面感知、实时采集和规范化集成,用数字化和可视化方式呈现;统一生产数据平台和金属矿信息模型;基于标准通信协议解决设备自动接入网络,实现设备自描述、自接入,做到系统自发现、自组态、“零”配置[1]。
当外部设备增加、拆除时(要求该设备具备自描述能力),系统能自动侦测、识别并配置系统资源;不需要重新组态,或仅需要很少量的配置即可完成设备的维护工作。如在矿山自动化系统建设、生产和运维过程中,系统能够主动发现生产现场新安装或拆除的设备(如移动变电站),并根据设备上送的自描述配置信息动态分配设备地址,自动识别设备上送的遥测、遥信等实时数据,并自动更新拓扑线路。
(1)即插即用的设备应支持自描述,设备之间支持互操作。
(2)SCADA系统对设备自动扫描、识别和连接。
(3)SCADA系统对设备的信息模型自动匹配。
(4)SCADA系统对接入的设备具备四遥功能。
(5)SCADA系统可接收设备的事件和日志,并存入系统[2-3]。
(1)各EIP子网通过中继器或网关设备组成域,域内各EIP设备支持互操作,域内各节点可删减和扩充。
(2)工程师站:组态工具解析EDS文件,创建设备模板及其对应的设备实例。
(3)通信站:EIP通信协议站位于SCADA的FEP EIP驱动中,负责和域间的EIP设备通信,遍历、扫描网络中的设备。
(4)实时服务站:实时服务站运行实时库服务,服务在启动时负责在内存中创建设备实例,且对实例进行绑定管理,构建拓扑信息。
(5)操作站:SCADA操作站上提供EIP设备的操作面板和参数窗口,可对EIP设备进行监视和控制,动态展示设备拓扑结构及设备的运行状态[4]。
1.2.1 技术架构
即插即用相关组件与平台之间的关系(红色部分)见图1。
图1 即插即用相关组件与平台之间的关系
(1)EIP驱动。设计FEP驱动程序实现和EIP设备的通信,该驱动程序功能设计包含:①驱动配置,FEP组态工具提供组态界面,可配置访问方式、采集周期、用于与实时库交互信息的数据点;②识别设备过程,通过发送ListIdentity命令,周期检测目前网络中存在的EIP设备,根据扫描情况,将设备标识信息(制造商、类型、型号、序列号、版本)和状态信息打包上送至在线对象管理插件;③数据采集,解析从实时库服务下发的控制信息字符流,向设备发送控制;从设备采集实时参数,构建信息字符流,向实时库服务发送;④与实时服务交互,通过组态定义的字节流类型的数据点,传送预先定义好格式的字节流;⑤通信及链路维护,实现EIP通信模型(UCMM、连接管理对象、标识对象、路由对象、端口对象等),负责扫描物理网络中的设 备,负责建立、维护和释放与各设备的链路[5]。
(2)对象管理插件。对象管理插件分为在线部分和离线部分,离线部分作为数据库组态工具的插件来实现,集成EDS解析器功能,通过解析EDS文件,自动创建设备模板;在线部分作为实时库服务的插件,被实时库服务运行时加载,动态维护设备实例和实际设备的映射关系,构建拓扑信息和位置信息,提供访问接口。
(3)即插即用HMI组件。以HMI组件的方式设计和实现,图形打开时加载该组件,功能设计包含:图中构建设备的拓扑图,更新设备的运行状态;提供操作面板,执行遥控、遥调命令;提供参数窗口,展示设备遥测、遥信信息。
1.2.2 功能架构
即插即用相关组件的功能架构见图2。
图2 即插即用相关组件功能架构
驱动框架对象:继承于驱动框架基础类,实现主板、端口、设备相关功能。
UCMM对象:用于建立、断开驱动与EIP设备的连接。
连接管理对象:用于建立、释放和维护与指定EIP设备的链路。
消息路由对象:用于转发收到的EIP数据报文,将其发送给最终接收者。
以太网接口对象:用于管理通信所使用的以太网配置信息及分配网络资源。
应用对象:用于描述当前的EIP驱动对象。
设备管理对象:用于将当前在网络中扫描到的设备的标识信息和状态信息打包传递给通知管理对象。
通知管理对象:用于接收设备管理对象上送的数据包,然后将其传送给在线对象管理插件。 EDS解析器:用于解析EIP相关的EDS文件。 模板管理(离线部分):根据EDS文件自动创建设备模板。
实例管理(在线部分):动态维护设备实例和实际设备的映射关系。
拓扑管理:根据设备实例的映射信息和设备的连接参数信息、位置参数信息,构建设备间的拓扑信息和位置信息。
数据处理:用于打包或解析与FEP进行交互的字节流信息。
图元管理对象:获取实时库中的设备实例信息,动态创建、管理、销毁对应的图符对象,然后在HMI图形页面中显示。
配置界面:提供EIP设备操作面板,执行遥控、遥调操作;提供设备参数窗口,展示遥测、遥信信息;获取在线对象管理插件提供的设备间的拓扑关系和位置信息,在HMI页面上进行绘制[6]。
离线对象管理插件包含EDS解析器、模板管理两部分,两者之间的关系见图3。
图3 离线对象管理插件
2.1.1 EDS解析器
EDS文件由设备供应商提供,用来描述设备的版本信息、类型信息、设备内部的对象信息、参数信息、连接信息等,文件内部的数据格式类似于INI配置文件,CIP规范定义EDS内容分段书写,各段代表不同的信息内容,有的段信息独立,而有的段和其他段又有关联,所以在设计解析器时,需要考虑各段的解析方法、解析后所构建出的对象间的关联关系以及对外部提供的访问接口。
CEDSInterpreter:EDS解析器类,提供外部可访问的接口,管理内部对象,CEDSInterpreter使用单例模式实现。
CEDSFileReader:读取EDS文件内容,将段信息分隔,以便下一步解析使用。
CEDSNode:段信息解析基类,子类实现对不同类型段的解析方法。
CFileNode:用于解析文件信息段。
CDeviceNode:用于解析设备信息段。
CParamNode:用于解析参数信息段。
按照CIP规范定义的段类型依次实现,在此不再一一叙述。
CEntry:配置信息段中的键值对信息。
2.1.2 模板管理
模板管理用来从EDS中获取解析信息(段及段内的条目信息),然后调用平台数据库组态工具提供的数据接口,创建对应的设备模板(包括对象属性及子对象),新创建的模板按照制造商、版本、种类、型号信息进行区分。
数据库组态中定义的设备对象、子对象以及属性的结构应和EDS中定义的对象信息保持一致。
设备对象:EDS文件中非“Object Class”类型的字段;设备子对象:EDS文件中“Object Class”类型的字段;设备属性:Param定义的相关信息或必要的其他参数信息。
CInstanceManager:管理组态过程所有动态创建的EIP设备相关对象实例,提供外部可访问的接口,CInstanceManager使用单例模式实现。
CInstanceCreater:用于创建指定类型的实例,提供虚函数。
CDeviceObjCreater:创建设备类型的实例。
CAccessAdapter:用于访问平台数据库的适配器类,使用抽象方法。
CAPIAdapter:使用平台提供的API接口进行数据访问。
目前V4平台尚未提供创建设备模板的接口,可按照以下步骤实现:按照V4平台定义的模板结构的格式,创建CSV格式的模板文件;调用平台提供的导入模板文件的方式在组态工具中生成。
2.1.3 FEP组态
FEP服务和实时库服务之间的交互通过预先定义的FEP设备数据点实现,在离线组态工具中组态一个IO站点,定义一个FEP设备,该FEP设备对应一个EIP主站,无需配置设备地址、端口等,但需要配置扫描周期;在该设备中定义一个字节流类型的数据点,FEP服务通过该数据点将扫描的设备信息、得到的设备参数信息、下发控制的返回信息等按照指定的格式打包,然后传递给实时库服务的在线对象管理插件,对象管理插件将该数据包拆包,然后做后续处理,反向的数据流向和处理方式与正向雷同[7]。
2.2.1 实例管理
实例管理用来动态维护实时库预分配的实例和网络中实际设备的映射关系,从而为外部提供当前可供访问的实例对象信息。在线对象管理插件以平台实时库插件的方式提供,在插件加载的配置文件中配置过程调用接口。
绑定和解除绑定的机制:
(1)实例管理组件获取当前实时库中所有EIP类型的预置设备实例,分类型进行管理。
(2)FEP驱动端上送当前网络扫描的设备全列表及相应状态信息,需包含设备唯一标识信息(如设备序列号)和设备制造商及类型信息。
(3)实例管理组件根据上送的设备全列表信息和当前的实例映射表进行对比,如果未发现(设备标识信息数据点内容为空)则新分配一个实例(用得到的设备信息初始化相关数据点),如果发现则更新设备的运行状态。
(4)当前的实例映射表中如果未在上送的设备全列表信息中出现,则删除该实例中设备的序列号等信息,解除绑定。
2.2.2 拓扑管理
从实例管理获得有效的设备实例,然后从每个设备实例获取拓扑、位置相关的参数信息,构建成xml格式的数据包,该xml表述了当前各实例间的连接关系以及位置关系。
CToplogManager:拓扑管理的实现类。
为实现对设备拓扑的展示,要求设备参数自身提供位置坐标或与其关联设备的连接信息。
2.2.3 实例产生的报警
实例和设备绑定后,如果实例产生报警,则由实时库服务向报警服务发送报警事件,此后,如果该设备和实例解除绑定,则本插件负责调用报警服务接口,抑制该设备产生的报警信息;如果后续该设备重新恢复上线,则本插件负责将原先抑制的报警信息解除抑制[8]。
2.3.1 驱动框架对象
EIP通信驱动程序以DLL方式实现,作为一个标准的Fep驱动程序,驱动框架对象继承于驱动框架基础类,用于实现打开、关闭、初始化、通信等基本流程,驱动框架对象由FEP服务的驱动管理器对象进行调度。
CFepEIPDrv:实现EIP驱动对象,进行驱动对象的创建、初始化、释放等。
CFepEIPDevice:对应于EIP网络中的一个SCANNER设备对象,创建和管理内部对象(如UCMM对象、连接管理对象、以太网接口对象等),实现数据双向通信。
CFepEIPPrtcl:内部使用基类方法,不重写,报文和协议相关的处理由内部的设备管理类实现。
(1)UCMM对象。对应于CIP规范中的 UCMM对象,用于处理未连接报文,包括Forward Open Service、Forward Close Service、Unconnected Send Service,触发创建或断开连接的操作。
CUCMMObject:处理UCMM相关报文的对象。
CCIPObject:CIP规范中定义的相关类的基类,提供基本的访问接口。
(2)连接管理对象。对应于CIP规范中的连接管理对象,用于创建、维护、释放通信链路,交换报文和数据信息。
CCMObject:对应于CIP规范中定义的Connection Manager Object,类代码0X06,实现规范中定义的属性、服务、动作、错误码、定时器和状态机。
(3)消息路由对象。对应于CIP规范中的消息路由对象,用于将接收到的报文信息转发给最终的接收者。
CRouterObject:对应于CIP规范中定义的Message Router Object,类代码0X02,实现规范中定义的属性、服务、动作、错误码和状态机。
(4)以太网接口对象。对应于通信过程用到的以太网端口信息,存储配置数据,初始化端口,建立TCP或UDP链路,发送或接收以太网数据。
CEthernetObject:封装对以太网的操作,保存配置信息。
(5)应用对象。对应于SCANNER设备对象,读取配置信息,构建运行环境,维护内部对象。
CAPPObject:对应于CIP规范中定义的Application Object,对应于本驱动对象实例,作为SCANNER应用对象。
(6)通知管理对象。用于接收设备管理对象上送的当前网络设备信息(设备列表、设备状态、设备参数等),然后通过FEP设备点将打包的信息发送给在线实时库,在线对象管理插件进行拆包,动态绑定或解除绑定设备对象实例[9]。
CEventCallBackObject:该对象作为回调类被设备管理对象调用。
(7)设备管理对象。扫描、解析当前网络中的EIP设备,构建设备信息列表,打包数据,交由通知管理对象。
接收在线对象管理插件发送的数据包,进行拆包,向设备发送指令。
CScannerObject:周期在EIP网络中扫描的设备,获得设备在线信息、状态信息。
2.3.2 即插即用HMI组件设计
(1)图元管理对象。EIP HMI 组件以Activex控件的方式提供,不提供离线组态页面,在图形离线组态中加入到指定的页面中,HMI在线打开相关图形时加载插件。
图元管理对象属于该插件的图元绘制部分,调用在线对象管理插件提供的接口,获得EIP类型的所有设备对象实例列表和设备信息,包括设备标识、设备名、版本信息、制造商信息、位置信息、设备状态、设备图标等,然后调用HMI平台接口,动态创建相应图元且在界面中显示。
CEIPHMI:EIP HMI Activex控件主类。
CEIPGraphManager:管理EIP相关图元的类。
(2)配置界面。CEIPOPPanel提供操作面板窗口,从数据库实例中获取设备的详细参数信息,且以界面的方式展现,实现四遥操作。
(3)图符库。平台HMI组态工具提供EIP相关设备的图符库,按照设备的制造厂商、类型、型号、版本号进行归类管理,图符可被实例化的属性包括制造厂商、类型、型号、版本号、设备序列号、设备状态、设备位置等信息,且图符体现EDS中文件定义的各对象及其各对象间的连接关系。
在线运行时,FEP驱动层首先遍历网络中的设备,获取其标识信息、类型信息、运行状态信息、位置信息等,然后实时库服务的在线对象管理插件根据标识信息动态和预置实例进行绑定,HMI端从实时库服务中获取被绑定的设备实例,然后动态创建图元,用设备实例的信息对图元相关的变量初始化,将底层设备、数据库实例、图形对象三者关联在一起。
集控平台数据接入实现了采矿、选矿过程中数据的提取,实现了以生产装备数字化、生产过程智能化、数据获取自动化、信息传输网络化、经营管理信息化为特点的智能矿山建设初级阶段,使企业生产中的直接劳动生产力提高了15%~30%,间接人工效率提升了30%~40%,能耗降低了5%~8%,设备综合效率提升了15%左右,设备停机时间下降了20%左右,同时,数据不断累积、分析,为后期利用大数据分析技术进行数据价值深度挖掘,实现各控制系统的不断优化和管控平台功能的不断完善提供了基础性保障[10]。