一种门式起重机监控管理系统的设计与实现

2016-09-07 08:56陆中杰郭胜军
关键词:控件起重机报警

陆中杰, 郭胜军

(中海网络科技股份有限公司,上海 200135)



一种门式起重机监控管理系统的设计与实现

陆中杰,郭胜军

(中海网络科技股份有限公司,上海 200135)

为提高大型起重机械的安全管理水平,预防和减少起重机械重大事故发生,以S7-300系列可编程逻辑控制器(Programmable Logic Controller, PLC)为基础进行数据采集,应用视窗控制中心(Windows Control Center, WinCC)组态软件、VB、JAVA EE框架和关系数据库的软件技术设计和实现起重机监控管理系统(Crane Management System, CMS)。该系统不仅对提高港口大型起重机的安全管理水平、预防和减少起重机重特大事故发生具有重要意义,也为起重机管理信息化打下了基础。

PLC; WinCC; 数据库; JAVA EE; VB

0 引 言

门式起重机属于大型起重机械的一种,具有场地利用率高、作业范围大、适用面广及通用性强等特点,在港口货场得到了广泛使用,主要用于料场货、港口散货等货物的装卸[1]。其金属结构像门形框架;承载主梁下安装有2条支脚,可直接在地面的轨道上行走;主梁两端具有外伸悬臂梁。由于大型起重机械的安全生产形势较为严峻,国家特种设备安全部门等相关机构联合制定了《大型起重机械安装安全监控管理系统实施方案》,要求推动大型起重机械监控管理系统的使用工作,以提高大型起重机械的安全性能,进而预防和减少起重机械重特大事故的发生。[2]

起重机监控管理系统(Crane Management System, CMS)是一个综合性系统,融合了自动化、计算机、信息化、通信和检测等多个领域的技术,具有集设备工作状态监视、设备维护和保养、故障检测和预防、运营和管理等功能于一体的管理平台。[3]这里就起重机监控管理系统的设计和实现进行叙述。

1 系统设计

起重机监控管理系统以可编程逻辑控制器(Programmable Loic Controller, PLC)为基础进行数据采集,以服务器为数据管理中心进行数据管理,以视窗控制中心(Windows Control Center, WinCC)和WEB页面为前端界面进行信息展示和交互,对起重机运行过程中的数据进行挖掘、处理和存储,进而实现对起重机的全面监控和管理。

1.1硬件架构

起重机监控管理系统架构见图1,其由本地LCMS系统和远程RCMS系统两部分构成,二者之间通过无线局域网进行数据交换。

1) 本地LCMS系统由信号采集PLC、LCMS客户端、视频系统、交换机及无线AP组成。LCMS中的信号采集PLC用于采集起重机的数据和信号;摄像机、编码器和硬盘录像机用于采集、存储及传输视频数据;LCMS客户端用于监控起重机的过程数据和视频数据,并通过无线局域网与RCMS通信。

2) RCMS系统由RCMS客户端、WEB/数据库服务器、交换机及无线AP组成。RCMS客户端用于管理各个LCMS客户端的数据,数据存储在本地服务器,数据主要通过与LCMS端的数据库进行同步来获得;此外,服务器还提供WEB服务。

1.2软件架构

从软件的逻辑架构看,系统可分为数据存储层、数据访问层、数据通信层、业务逻辑层和应用层,其中:数据存储层用于对数据库进行CRUD(Create, Retrieve, Update, Delete)操作;数据访问层封装了数据存储层的具体实现,为业务逻辑层访问数据存储层提供访问接口;数据通信层通过WinCC的通信组件与PLC进行数据交换;业务逻辑层封装了CMS系统的各个功能模块,包含轨迹录制、轨迹回放、视频监控、报警管理和设备管理;应用层包含了WEB应用组件。系统逻辑架构见图2。

图1 系统结构

图2 系统逻辑架构

1.3系统特点

系统以西门子WinCC组态系统软件为主框架,结合ActiveX数据对象(ActiveX Data Objects, ADO)和VB控件进行开发,具备数据和状态实时监控、历史信息查询、设备管理及报警管理等功能;其LCMS系统与RCMS系统间的故障和业务等信息具备实时一致性;同时,系统提供WEB服务,intranet用户可通过浏览器查询起重机的相关数据及其运行状态。[4-5]

2 关键技术研究

2.1运动轨迹记录与回放

当起重机出现故障或发生事故时,发生时间点前后的相关数据(如起重机的位置、速度和载重,电机的转速、电流等)能为故障或事故发生原因分析提供很大帮助。

通常轨迹记录可使用定时可视化Basic脚本(Visual Basic Script, VBS)将需要记录的数据写入数据库,但是数据记录的频率高、数量大,同时VBS的执行效率低,若长期频繁地进行大规模的记录插入操作,会导致软件运行缓慢,影响系统响应速度。而WinCC本身具有变量记录功能,其方式也是将数据记录在数据库内。相比前一种数据录制方案,其性能更优,能以高频率(10 ms级别)记录大量变量而不影响软件的整体性能。需注意,WinCC在写入数据库时对数据进行了压缩,读取时需用特别的方式进行还原。

轨迹回放时,先将选定时间长度的所有数据从数据库中读取到对应的内存数组中,随后在回放时按系统采集频率遍历数组的数据。

2.2WinCC平台视频监控

通过硬盘录像机和摄像机可简单地实现视频监控功能,并能在硬盘录像机上查看图像画面。然而,系统为体现其整体性、提高集成度、实现数据的统一管理,考虑将视频监控功能嵌入到WinCC中,充分缩减上位机操作软件的类型和数量,提高系统的操作体验。

由于WinCC属于二次开发平台,而硬盘录像机提供的开发包是基于一次开发平台的,因此不能直接在WinCC中针对硬盘录像机进行编程开发。通常视频编码器提供SDK ActiveX控件,而WinNCC可嵌入VB控件,因此将视频编码器作为WinCC的视频数据源。视频信号经过视频编码器编码后输出到WinCC,通过对VB开发控件编程可实现在WinCC中视频监控的功能。

2.3RCMS与PLC通信

RMCS主要用于集中管理码头的所有起重机。与LCMS侧重于起重机的实时监控不同,RCMS侧重于起重机的数据管理,提供起重机历史数据的查询、分析和报表等功能。因此,选用VB进行开发比选用WinCC更为合适。但是,RCMS也应具有部分实时数据监控功能作为辅助,因此必须与PLC通信来获取数据。这里以西门子PLC为例,采用以太网连接方式,备选有以下3种通信方式。

1) MODBUS/TCP协议方式。需将PLC作为从站进行编程,调用标准MODBUS通信功能块发送和接收数据;将VB作为主站,使用WINSOCKET 控件对MODBUS协议进行编程发送。采用该方式的优点是TCP协议与MODBUS协议的标准性和开放性,缺点是当需要改变监控数据时必须修改PLC程序。

2) OPC(OLE for Process Control)方式。需在RCMS端组态和配置OPC SERVER,同时在PLC中配置好S7连接通道。在VB环境中引用Simens OPC Daautomation 2.0后即可用西门子OPC SERVER的接口函数,对连接服务器、添加OPC组对象、添加数据项及同步数据读写进行编程。采用该方式的优点是在修改通信内容时不必改动PLC,直接修改OPC SERVER的配置即可;此外,OPC作为一个标准,使得RCMS端可连接不同厂商的PLC。采用该方式的缺点是数据需经过OPC SERVER中转,通信延迟较高,数据刷新速度较低。

3) S7CONNECTION方式。使用S7协议可很容易地读写出各PLC内的I,Q,M,DB等区域的数值。由于S7协议是保密的,无法直接编程,因此PLC厂家专门开发了封装S7通信协议的组件PRODAVE,提供了丰富的操作接口函数。采用该方式的优点是可以快速访问PLC内任意存储器的数据,且改变通信数据时无需改动PLC的配置和程序。采用该方式的缺点是其不支持并发连接,当前激活的连接只有1个时,必须将其关闭后才能切换到其他连接。

这里采用的是使用PRODAVE进行S7通信的方式。对比MODBUS/TCP方式,该方式无需修改PLC端程序;对比OPC方式,OPC服务器占用RCMS端资源多、通信延迟高、故障恢复周期长。对于其他品牌的PLC,既可选择使用MODBUS/TCP和OPC等标准方式进行通信,也可针对PLC专用协议进行编程实现。

3 系统实现

3.1PLC数据采集

起重机械的控制系统本身具有主控PLC,包含了大部分监控系统中需要采集的数据,可直接使用。但是,为将起重机控制系统本身与CMS管理系统区分开,同时又不破坏原起重机的PLC程序,需在LCMS中采用一套独立的PLC来采集数据。LCMS的PLC可通过PROFIBUS-DP现场总线协议或MODBUS-RTU协议与起重机本地PLC通信来读取需要监控的数据。此外,PLC中还配置了开关量信号、4~20 mA电流信号、0~10 V直流电压信号和热电阻信号的处理模块,连接安装在起重机上用来进行安全监测的传感器以采集数据。

LCMS的PLC控制器一方面会将采集到的各种信号经处理后传输到WinCC的监控画面上显示,另一方面会判断当前的状态是否会触发系统报警。在控制器中,根据不同的报警设置了不同的报警触发位,一旦该位被置位,WinCC的报警系统就会给出报警提示。

3.2接口模块

接口模块是一种为WinCC和底层数据库提供服务的中间件,其封装了对数据库的CRUD操作及一些业务逻辑,为WinCC访问底层数据库提供了统一的接口。接口模块的开发环境是基于Visual Basic 6.0设置的[6]。

3.2.1模块的结构

模块的主体是类模块,包含报警、回放和数据管理等3个模块,用于存放一些共享属性和方法,供类模块中的方法调用。数据库的访问则使用了微软的ADO应用接口。

3.2.2模块中主要包含的函数

模块中主要包含以下函数。

(1) Private Sub Class_Initialize():类模块初始化,设置模块必须的参数。

(2) Private Sub Class_Terminate():类模块销毁时,释放所占用的资源。

(3) Public Sub OpenSQLServer():打开数据库连接。

(4) Public Sub CloseSQLServer():关闭数据库连接。

(5) Public Sub DBExecuteSQL(SQLStr As String):执行字符串语句SQL命令;参数SQLStr为字符串类型。

(6) Public Function DBGetRecordset(SQLStr As String) As ADODB.Recordset:查找字符串指定的数据库记录,返回记录集对象;参数SQLStr为字符串类型SQL语句。

(7) Public Function CMSGetAlarmHistory(AlarmD As String, AlarmT As String, QType As Integer) As ADODB.Recordset:查找符合条件的历史报警记录,返回记录集对象;参数AlarmD为日期字符串。

(8) Public Sub CMSAlarmProcessList(ByVal TagIDM As String):查询当前的报警记录。

(9) Public Sub CMSStartPlaying(ByVal SPointer As Integer):运动轨迹回放。

3.2.3模块的使用

在开发环境中将接口模块编译成可执行文件并运行。在WinCC的VBS脚本编辑器中调用CreateObject方法创建接口模块的对象实例,并通过对象实例调用类的方法实现业务逻辑。

3.3监控功能设计

LCMS端主要用于实时监控,其软件采用西门子WinCC开发,根据功能分为起重机状态实时监控、起重机运动轨迹回放、报警管理和视频监控等界面。

3.3.1起重机状态实时监控

起重机需要监控的数据量通常较大,将其全部显示在同一个界面上显然不太合适。因此,将状态实时监控界面分为总体监控界面和分部监控界面两部分,其中:总体监控界面中只显示起重机最重要的数据;分部监控界面则根据起重机的特性,按照功能结构设计有大车监控、小车监控、起升监控和钩移监控界面,所有监控的信号和数据都会在这些界面上显示出来。

LCMS中的PLC负责采集起重机上所有需要监控的信号和数据,是起重机状态实时监控的数据源。为将PLC采集到的数据显示在界面上,必须在WinCC内建立通信变量,变量地址与PLC的内部地址对应。由于起重机会同时包含多个相同的部件,因此若需要创建的变量相同,则可以利用结构变量简化工作量。此外,为保证数据的实时性,选用工业以太网作为传输介质。

3.3.2起重机运动轨迹回放

运动轨迹回放是指将人工选定时间段内的起重机状态信号和数据动态地还原出来。这些数据来源于数据库,当系统运行时起重机状态数据会以较高的频率存入数据库。运动轨迹回放界面的功能主要包含获取数据、保存数据和回放数据等3部分。

(1) 获取数据:以起始时间和结束时间为条件查询状态数据,将得到的记录集通过数据表格控件在界面上显示出来,每一行数据代表某一个时刻所有记录点的数据集合。

(2) 保存数据:创建EXCEL对象,将之前显示在表格控件中的数据按行依次写入EXCEL对象的表单中,最后保存为EXCEL文件。每执行一次轨迹回放,都将分别在本地和RCMS端生成一个数据文件。

(3) 回放数据:从生成的数据文件列表中选取一个数据文档,读取文档中的起始时间、结束时间、记录数目和每天记录的具体数值,将其存放到一个2维数组中(其中:列表示每个不同的数据点对应到相应的变量;行表示不同的时间点)。回放时,根据采集的频率将2维数组中的数据按行写入对应的变量。界面上,通过将图像的几何属性链接到变量实现动画效果,图像的几何属性随着变量数值的变化而变化,能够还原所选时间段内起重机运行的轨迹;同时,对于一些数值型的属性(如电流),使用图表控件显示其波形。

3.3.3报警管理

报警列表分为当前报警列表和历史报警列表,其中:当前报警列表只显示当前存在的报警信息;历史报警列表包含之前所有发生过的报警信息。当前报警列表的刷新由事件触发,当PLC报警信号出现时,系统将报警相关信息记录到当前报警和历史报警的数据表中;当PLC报警信号消失时,当前报警数据表中对应的记录将被删除,同时更新历史报警数据表中对应记录的状态。

RCMS端的数据库将会同步本地的当前报警和历史报警记录。当本地更新当前报警和历史报警时,将会把记录同步到RCMS端。

3.3.4视频监控

以MOXA视频编码器为例,通过其提供的SDK ActiveX控件[8]可将视频监控画面嵌入到WinCC中。画面打开时必须初始化控件的以下属性。

(1) HttpPort:Http的端口,通常是80。

(2) VideoProtocol:设置连接协议,可以是UDP/TCP/HTTP/Multicast。

(3) CHIndex:选择显示的视频通道。

(4) StreamingType:设置编码类型,可以是MPEG4/MJPEG/H.264。

(5) ServerIP:编码器的IP地址。

此外,开发时需要用到的方法主要有以下几种。

(1) Connect:连接到编码器。

(2) Disconnect:断开编码器连接。

(3) SendCameraCommand:发送控制命令给摄像机,支持左移、右移、上移、下移、放大及缩小等指令。

3.4管理功能设计

RCMS端主要用于起重机群的管理,包含报警管理、运动轨迹回放管理、起重机运行维护管理、起重机实时监控等功能,侧重于数据的查询和报表。管理功能的数据源存储在本地数据库中,其中:报警和运动轨迹的数据由所有LCMS的数据库通过事件触发同步;运行维护的数据需要本地输入。

以西门子PLC为例,运用PRODAVE提供的接口进行编程,实现RCMS与PLC的数据通信[9]。PRODAVE主要提供以下API。

(1) LoadConnection_ex6 :用于建立连接,初始化参数和适配器。

(2) UnloadConnection_ex6:关闭连接,必须在退出应用前调用。

(3) db_read_ex6:读取背景数据块中的数据。

(4) db_write_ex6:向背景数据块中写入数据。

(5) field_read_ex6:读取I,Q,M等区域中的数据。

(6) field_write_ex6:向I,Q,M等区域中写入数据。

3.5WEB 应用

服务器为接入到本系统的intranet用户提供WEB应用,主要功能是在线数据查询、分析和报表。

WEB应用的架构属于轻量级JAVA EE,采用MVC架构模式使表现层、业务逻辑层和实体之间的代码分离[10]。其基于STRUTS2和HIBERNATE框架,前者是较为成熟的MVC框架,核心是采用拦截器来处理请求;后者是著名的ORM框架,可使用对象编程思维来操纵数据库[11-13]。在请求方式上,运用AJAX使页面能够实时响应请求,具体采用JQUERY+JSON实现。JQUERY是AJAX的一个框架,其实际上是一个轻量级的JavaScript库。要实现异步请求就需要使用JQUERY中的.ajax()函数,该函数将请求通过GET或POST方式发送至服务器,STRUTS2的拦截器拦截到ACTION后执行相应的SERVICE,SERV-ICE通过DAO层对数据库进行读写。当请求成功后,$.ajax()会回调一个包含STRUTS2返回数据的函

数,可以把返回数据显示在页面上。JSON是一种”KEY/VALUE”形式的数据格式,其优点是相比XML更小、更快、更容易解析。须注意,在STRUTS2中只有引入JSON的插件包才能使STRUTS2支持JSON。

4 结 语

将ADO,SQL及控件等技术应用到WinCC的平台上开发了起重机监控管理系统,并结合PLC控制、信息技术、视频技术及相关组件的应用构建了一个综合性的系统平台,实现了大型起重机的监控与管理。系统在架构上结合了自动化技术和信息化技术,借助互联网技术将底层的过程数据融入到了企业的生产管理中,对提高企业的生产效率和管理水平具有积极作用。该系统的架构不局限于起重机监控领域的应用,同样适用于其他类型设备的监控系统。

[1]大型船厂造船门式起重机安全监控管理系统研究与开发[J].机电工程,2014,31(1):72-75.

[2]GB/T 28264—2012,起重机械安全监控管理系统[S].北京:中国标准出版社出版,2012.

[3]杨继雪,李丽.门座起重机网络安全监控管理系统[J].起重运输机械,2012(10):75-77.

[4]SCEPPA D. ADO.NET 2.0技术内幕[M].北京:清华大学出版社,2007.

[5]杨辉,刘海龙.塔式起重机远程安全监控管理系统设计[J].自动化仪表,2012(10):27-29.

[6]罗朝盛.Visual Basic 6.0程序设计教程[M].3版.北京:人民邮电出版社,2009.

[7]姜桂洪.SQL Server 2005数据库应用与开发[M].北京:清华大学出版社,2010.

[8]VPort SDK ActiveX Control,Moxa,2014.

[9]PRODAVE MPI/IE V6.2 Manual,simens,2012.

[10]李刚.轻量级Java EE企业应用实战:Struts 2+Spring 3+Hibernate整合开发[M].北京:电子工业出版社,2008.

[11]诶克尔.JAVA编程思想[M].陈昊鹏北京:机械工业出版社,2007.

[12]李刚.Struts 2.x权威指南[M].北京:电子工业出版社,2012.

[13]孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京:电子工业出版社,2010.

Design and implementation of Crane Management System

LU Zhongjie,GUO Shengjun

(ChinaShippingNetworkTechnologyCo.,Ltd,Shanghai200135,China)

The Crane Management System uses S7-300 PLC for data collection and the combination of software technologies, such as the WINCC, Java EE framework, visual basic and database technology, to build the crane management system. The system is an effective tool for improving the safety management, and the information management as well.

PLC; WINCC; database; Java EE framework; VB

2015-10-16

陆中杰(1982—),男,上海市人,工程师,主要从事工业自动化系统设计工作。

1674-5949(2016)01-076-05

TH213.5; TP277

A

猜你喜欢
控件起重机报警
基于.net的用户定义验证控件的应用分析
关于.net控件数组的探讨
象形起重机
桥门式起重机检验中常见问题及解决策略探讨
随车起重机的优化分析
2015款奔驰E180车安全气囊报警
2014款奥迪Q5车发动机OBD灯报警
死于密室的租住者
奔驰E260车安全气囊报警
特雷克斯 拓能Powerlift 3000履带式起重机