当前位置:首页 >> >>

船舶机舱监控报警平台的设计

船舶机舱监控报警平台的设计
摘 要 介绍船舶机舱监控报警平台的基本组成、功能及软硬件的实现方法,并给出了在Labview环境下 数据采集和数据库的操作程序框图,实践证明,该系统运行稳定可靠,性能优良,提高了船舶机舱监控的自动 化水平。 关键词 Labview 机舱监控 以太网 数据库
ActiveX 控件

Design of the alarm analysis system of ship′s engine room
Abstract The basic composition , function and the implement method of the automatic monitor system for ship′s engine room are introduced in detail , as well as the procedure of data collection and accessing to database in the environmentof Labview. The running result shows that the control system is reliable with good performance ,it can prompt the automatic level of the monitor of ship′s engine room. Key words Labview monitor of ship′s engine room Ethernet database ActiveX

为了保障船舶正常运行,必须对机舱内的各工作部件的运行情况加以实时监控,这是一项非 常繁复的工作,需要实时监控的部件不但数量多,,包括了多台主机、发电机、离合器、舵桨 等;而且每个部件又有很多需要实时监控的参数点,如:主机的转速、水压、水温、油压、轴温 等。 要采集所有这些数据,就需要轮机人员跑遍几乎整个机舱,不但费时费工,而且不能达到实 时监控的效果。国内目前有不少船舶装备了机舱监控系统,但大多数是基于RS485或RS422总 线的单机监控系统,无法实现系统冗余,系统的可靠性较低,同时没有形成模块化和通用化,无 法实现灵活组态。基于工业以太网(TCPPIP) 的设计使其便于实现系统冗余,系统可靠性高, 维护方便,在降低维护成本的同时提高了操作的效率和准确度,保证了船舶的安全运行。采用 传统的编程环境(VB ,VC + + ,C 等) 开发周期长、运行速度慢、调试和维护困难。该系统采 用较新的Labview编程语言,提供了大量现成的子VI ,使得开发周期大大缩短。 Labview程序运 行模式类似于并行模式,可大大增加程序运行速度。 同时由于Labview是图形化语言,使得调试 和维护变得相对容易和方便,而且界面直观、醒目、可操作性好。

1

系统设计

1. 1 硬件设计 系统硬件由服务器、数据库、数据采集模块等几部分组成,见图1

服务器及客户机选用可靠性高的工业控制计算机,适于克服在船舶运行中有着严重干扰 的恶劣环境;船舶内部局域网通过D2Link公司的8 端口10 MP100 M交换机实现连接增加了 系统的可扩展性和冗余性; 数据采集模块采用研华公司的ADAM25000PTCP系列,该系列数 据采集设备特别适合于网络连接,局域网中的计算机可以直接通过该设备上的以太网接口访 问所采集到的数据,而无需在网络与设备中间另外加上其它的转换器。可编程控制器采用西 门子公司的SIMATIC S72200 系列可编程序控制器,用于常规报警,延伸报警和重要控制对象 的控制(实现与研华模块的冗余) ,其高速(响应速度为ms级) 、精确、稳定的性能使系统可靠 性进一步加强。S72200 的报警信息,可利用西门子的OPC软件MicroComputing通过PPIPPC 电缆直接读写S72200 的内部寄存器。上位机既可以显示PLC的报警信息,又可以控制PLC的 输出。传感器设备是测量、监控的关键,本系统根据所测数据类型的不同,支持多种传感器, 其中包括测量发电机电压、电流、频率、功率以及各种气压、油压的传感器,它们提供4~20 mA工业标准电流信号;另外还包括采集各种温度、转速所用的传感器,包括热电阻、热电耦、 频率传感器等。这些传感器所输出的模拟量经过32 位的APD 转换写入特定寄存器中,局域 网中的计算机可以通过调用模块所提供的ActiveX控件访问模块的接口,读取所采样的数据。

对于开关量的数据,模块支持开关量的输入P 输出, 数据的读取与输出同样可以通过调用ActiveX控件实现,但是输出时的电流较小,需要外 加驱动(一般为DC24 V) [1 ] 。 1. 2 软件设计 系 统 采 用 自 主 设 计 开 发 监 控 软 件 , 采 用 Microsoft 公 司 的 Windows 2000 为 操 作 系 统,Access2000 为数据库,程序全部由Labview图形化语言开发,这对于提高系统的稳定性、可 维护性和可读性具有重大意义,且相对于使用固定模式的监控软件,自主开发的软件更具灵活 性和针对性,且方便扩充功能和升级,这也是系统在设计时考虑的重要一点。系统的软件设计 采用模块化的程序设计思想。通过功能模块的划分,设计各个模块之间的数据流向,以保持良 好的可读性、可移植性和可扩充性。软件模块根据功能的不同可以划分为监控组态模块、数

据库操作模块、报警模块、数据通讯接口模块、数据库访问接口模块以及数据库查询打印操 作模块。各模块的关系见图2。监控系统通过数据库访问接口从数据采集模块获取采样数据, 并对采样数据进行处理、分析,处理后的数据保存在系统数据库中。当发现有报警信息时则 调用报警模块提供声光报警,同时通过数据库通讯接口将报警信息记录到报警数据库中,供查 询、分析使用。处理的数据还可以通过数据通讯接口供局域网中的其他用户使用。由于本系 统使用的数据采集模块对模拟量输入进行采样时采用的是32 位APD 转换,精度非常高。而 且在对温度、转速等模拟量进行测量时,还配有补偿输入端,进一步提高了采集数据的精度因 此实际输入精度取决于各被监控设备的参数输出精度。

2

数据的获取方法

2. 1 ADAM5000PTCP 的设置 要访问 ADAM5000PTCP的以太网 端口,首先 必须对它进行 配置。配置前要安装 ADAM Ethernet IPO Utility。运行它,如果ADAM5000PTCP已经连接到局域网上,该软件会检测到,同 时显示其IP。 如果ADAM5000PTCP没有接到局域网上,该软件无法获取它的信息,也就无法配 置。配置ADAM5000PTCP主要的任务是设置IP ,将其的IP地址最好设置在与主机在同一网段 且掩网子码和网关设置与主机相同(例如: 主机: IP =202. 195. 195. 151 ,SubnetAddress = 255. 255. 255. 0 ,DefaultGateway = 202. 195. 195. 1 ;ADAM5000PTCP :IP = 202. 195. 195. 152 , SubnetAddress = 255. 255.255. 0 ,DefaultGateway = 202. 195. 195. 1) 。设置完成后,可以通过研 华的测试软件查看ADAM500PTCP由那些模块组成和各模块的数据。 2. 2 读取 读取ADAM5000PTCP 的数据 由于研华公司没有提供ADAM5000PTCP 的Labview驱动,没有现成的VI可用。所要只有通过 重新编译ADAM5000PTCP的动态连接库或者通过Labview的自动化接口利用ActiveX控件技 术来访问ADAM5000PTCP。 如果重新编译动态连接库,需要进行底层编程,工作量比较大。 而 利用ActiveX控件技术则相对容易、简单。因此在本系统中采用ActiveX控件技术访问 ADAM5000PTCP。 2. 2. 1 读取ADAM5000PTCP 的模拟量 要读取ADAM5000PTCP 的模拟量,可以直接读取ADAM5000PTCP内所对应的寄存器。寄存 器的地址与模块的排列顺序有关,而对应寄存器的地址可以通过ADAM5000PTCP的测试软 件获得。读取模拟量的步骤是:1) 初始化ADAMTCP ActiveX 控件,如果初始化失败则弹出提 示对话框。2) 初始化成功后将端口号(TCPPort) 设置为502 ,连接时间(connection Timeout) 、 发 送 时 间 (SendTimeout) 、 接 受 时 间 ( Receive Timeout ) 均 设 为 2 000 ms , 并 将 ADAM5000PTCP的IP地址一起送出,开始连接ADAM5000PTCP ,如果连接失败,弹出对话框 提示。3) 连接成功后,将所要读取数据的模块设备号送出,同时将与所要读取数据对应的寄存 器的地址和所要读取数据的数量与IP地址一起送出。此时ADAMTCP. ipReg输出的就是所要 的数据[2 ] 。 2. 2. 2 读取ADAM5000PTCP 的开关量 读取模拟量的步骤及方法和读取模拟量的步骤及方法类似。 将程序中的ADAMTCP. ReadReg 改为ADAMTCP. ReadCoil即可。 2. 2. 3 输出开关量 输出开关量的步骤及方法和读取模拟量的步骤及方法类似。只要将程序中的ADAMTCP. ReadReg改为ADAMTCP.WriteCoil即可。

3

数据存储及分析

将数据采集到主机内后,分别对不同的值进行数值转换,使这些数值具有实际的意义并将它们

定时地存入历史数据库。同时分别判断其值是否超过阀值,如果超过阀值发出报警信号并分 析产生故障的原因,同时将这些数据存入报警数据库,以便以后对故障进行分析和学习,如果 没有报警信号,数据只存入历史数据库,而不存入报警数据库。 该系统中每0. 5 s采集一次数据, 每1 s 存一次历史数据库(数据采集间隔和写历史数据库间隔可根据用户的要求调整) 。在该 系统中数据库采用Access数据库,因为该数据库使用于中小型数据库,且操作灵活方便,可移 植性强。 ADO (ActiveX Data Object) 是ActiveX 数据对象,这是Microsoft开发数据库应用程序 的面向对象的新接口。 ADO技术基于通用对象模型(COM) ,提供了多种语言的访问技术,同时, 由于ADO提供了访问自动化接口,所以,Labview可以通过访问其自动化接口来实现对数据库 的操作。在创建数据库脚本之前,需要提供一条使ADO定位、标识和与数据库通信的途径。 数据库驱动程序可以使用DatSourceName (DSN) 定位和标识特定的ODBC兼容的数据库。但 是通过ODBC连接的数据库时使程序灵活性和可移植性受到限制,所以我们采用 “无ODBC的 数据库连接” ,不设定数据源(DSN) 而是将数据库的路径、 名称及数据库驱动送到ADO.Open. ConnectionString中,直接打开数据库。 3. 1 创建数据库 3. 1. 1 创建一个空数据库 1) 用Automation Open 打开Catalog 节点,然后点击右键选择“Select ActiveX ClassPBrowse ? ?”,此时会打开一个对话框,从中选择“Microsoft ADOExt . 2. 5 for DLL and SecurityVersion 2. 5 ”, 在“Objects”中选择“Create” 。2) 连接数据源,将数据源提供者(Provider) 和数据库的 路径(Data source) 写到“ConnectString” 。3) 利用“ADOX. Catalog”中的“Create”创建一 个空数据库(Database) 。 3. 1. 2 创建表和字段 1) 打开一个连接,同时将指定数据库驱动程序(Driver) 和指定要访问的数据库的路径(Dbq) 送到“ConnectionString”或者将数据源DSN 连接到“ConnectionString”[3]。2) 生成SQL命 令,执行SQL命令———创建一个表( 包括其字段) , SQL 的命令语法为: CREATETABLE tablename (field1 type ,field2 type , ?) 。3) 关闭连接。系统的数据库每天创建一个数据库,在 每次运行该系统时,首先检测是否有今天的数据库,如果没有就新建一个。如今天的数据库已 经存在,就直接打开今天的数据库,在最后添加数据,不覆盖原有数据。系统以每天的日期为数 据库的名字,这样可方便地对数据库进行维护和数据导出。 3. 2 写数据库 从数据采集模块中读出的数据,经过相应的 数据转换要存储到数据库中,供查询、分析使用。 1) 创建一个连接。 2) 打开一个连接,同时将指定数据库驱动程


更多相关标签: