专利名称:一种基于opc 技术的船舶机舱数据采集与监测系统的制作方法
技术领域:
本发明涉及一种基于OPC (OLE for Process Control)技术的船舶机舱数据采集与监测系统。
背景技术:
船舶机舱数据采集与监测系统负责船舶系统中机舱内部众多设备运行状态数据的采集、处理,并通过较直观的方式将设备运行的状态显示供船舶相关人员实时查看,及时掌握机舱工作状况。目前,作为船舶机舱数据采集与监控系统基础的底层数据采集卡有多种实现形式,例如PLC、DCS、RS-485总线以及多种现场总线等。并且由于不同的公司提供的数据采集卡是面向整个船舶市场通用化开发设计的,所以其通讯方式和数据采集点数量通常和实际工程需要有较大差距。这样就给船舶企业带来了以下几个问题基于市场通用型的状态数据采集卡设计开发的船舶机舱状态数据采集系统,会造成大量的数据采集卡采集点资源的闲置浪费;不同公司生产的数据采集卡通讯方式可能并不相同,即使采用相同通讯方式的数据采集卡由于其各自采用的通讯协议不同,必然使得上层船舶机舱监测软件系统需要开发越来越多的底层现场设备通讯驱动程序,造成通讯驱动程序不断开发和重复开发的现象;在船舶使用过程中进行升级改造时,如果船舶机舱的底层数据采集卡发生变化, 将由于采集卡通讯接口的变化可能导致整个上层船舶机舱监控软件系统崩溃现象的发生。出现上述问题的关键在于一是,由于作为整个系统基础的船舶机舱的底层数据采集卡采用市场通用型号,其面向市场通用化的设计初衷客观的决定了其必定会与实际工程应用有一定的差异。二是,由于船舶机舱上层监测软件系统的接口标准不统一。
发明内容
针对目前船舶机舱数据采集与监测系统的现状,本发明要提出一种基于OPC技术的船舶机舱数据采集与监测系统,解决状态数据采集卡的采集点资源闲置浪费的问题;解决软件系统中硬件设备通讯驱动程序重复开发的问题;解决在船舶使用过程中进行升级改造时,如果船舶机舱的底层数据采集卡发生变化,由于采集卡通讯接口的变化可能导致整个上层船舶机舱监控软件系统崩溃的问题。为了达到上述目的,本发明的技术方案如下一种基于OPC技术的船舶机舱数据采集与监测系统,包括OPC机舱监测系统、OPC 机舱数据访问服务器、串口模块、CAN模块、数字量采集卡模块和模拟量采集卡模块,所述的 OPC机舱监测系统与OPC机舱数据访问服务器采用基于Microsoft公司C0M/DC0M的OPC接口技术规范进行相互通讯,OPC机舱数据访问服务器与底层状态数字量采集卡模块利用串口模块通过RS-485串口通讯技术进行相互通讯,模拟量采集卡模块利用CAN模块通过CAN 现场总线技术进行相互通讯;所述的数字量采集卡模块和模拟量采集卡模块均为智能采集卡,配置有工业用嵌入式微控制器,能够独立完成机舱各设备的状态数据采集和同OPC机舱数据访问服务器之间的通讯任务;所述的OPC机舱监测系统遵循OPC规范的技术标准;
所述的数字量采集卡模块包括ATmega32主控制芯片模块、12 5V直流电源模块、 工作模式和地址选择模块、RS-485通讯模块、16路数字量输入模块、16路数字量输出模块和JTAG编程调试模块,所述的工作模式和地址选择模块负责数字量采集卡模块的工作模式和地址的设定,12 5V直流电源模块负责将输入的DC12V电压转换成DC5V电压输出、使之适合ATmega32主控制芯片模块的工作需要,JTAG编程调试模块用于芯片内部测试和编程调试,RS-485通讯模块用于RS-232/RS-485串口通信之间的转换,16路数字量输入模块和16路数字量输出模块用于完成数字量采集卡模块的输入和输出。
本发明所述的数字量采集卡模块通过8位拨码开关进行其工作模式和地址的设定,其中拨码开关的高两位为数字量采集卡模块工作模式选择开关,01表示数字量采集卡模块为数字量输出模式,10表示数字量采集卡模块为数字量输入模式;拨码开关的低六位为数字量采集卡模块地址选择开关,数字量采集卡模块地址范围为0X00 0X3F共64个地址选择。
本发明所述的OPC机舱监测系统和OPC机舱数据访问服务器用的开发软件是 VC++,在设计数字量采集卡模块时用到了 ICCAVR编译器和ftOtel软件。
本发明的工作过程如下
A、完成OPC机舱监测系统的启动,OPC机舱监测系统启动后,完成对OPC机舱数据访问服务器与数字量采集卡模块、模拟量采集卡模块之间的通信参数的配置;
B、启动OPC机舱监测系统的主界面来读取OPC机舱数据访问服务器的命令,从OPC 机舱数据访问服务器中获取底层数字量采集卡模块和模拟量采集卡模块的数据,其中OPC 机舱数据访问服务器与数字量采集卡模块、串口模块和模拟量采集卡模块、CAN模块是通过 RS-485串口通讯技术和CAN现场总线技术进行相互通讯的,此时OPC机舱数据访问服务器获取到了需要的数据;数据将显示在OPC机舱监测系统的主界面下。
本发明的优点和有益效果是
1、本发明采用的数字量采集卡模块通过8位拨码开关进行其工作模式和地址的设定,对最大化利用采集卡的采集点资源,节省工程开发成本有较大实际意义。
2、本发明由于采取OPC规范的技术标准设计开发船舶机舱状态监测软件系统可以很好地解决软件系统中硬件设备通讯驱动程序重复开发问题。
3、本发明能够大大的减轻上层软件系统的开发和维护难度。船舶机舱在修理维护和改进时底层的状态数据采集卡发生了变化,只需要在OPC服务器中编写新的硬件设备的通讯驱动程序即可,而不需要再在其他上层软件系统中重复地编写通讯驱动程序,更不会出现由于底层硬件设备的变化导致上层的软件系出现崩溃现象地发生。这样就能够大大的的减轻上层软件系统的开发和维护难度,在实际的工程应用中有较大的意义。
本发明共有附图2张,其中
图1是本发明的组成结构框图。
图2是本发明数据采集卡模块结构框图。
图中1、OPC机舱监测系统,2、OPC机舱数据访问服务器,3、串口模块,4、CAN模块,5、数字量采集卡模块,6、模拟量采集卡模块,51、ATmega32主控制芯片模块,52、12 5V直流电源模块,53、工作模式和地址选择模块,54、RS-485通讯模块,55、16路数字量输入模块,56、16路数字量输出模块,57、JTAG编程调试模块。
具体实施例方式下面结合附图对本发明做进一步详细地描述如图1所示,一种基于OPC技术的船舶机舱数据采集与监测系统,主要由OPC机舱监测系统1、0PC机舱数据访问服务器2、串口模块3、CAN模块4、数字量采集卡模块5、模拟量采集卡模块6六部分组成。OPC机舱监测系统模块1与OPC机舱数据访问服务器2采用基于Microsoft公司C0M/DC0M的OPC接口技术规范进行通讯,OPC机舱数据访问服务器2与底层状态数据采集设备,数字量采集卡模块5、串口模块3和模拟量采集卡模块6、CAN模块4通过RS-485串口通讯技术和CAN现场总线技术相互联。如图2所示,本发明所述的数字量采集卡模块5通过工作模式和地址选择模块53 来实现模块工作模式和地址的设定。12 5V直流电源模52主要功能是将输入的DC12V电压输出DC5V电压,使之适合ATmega32主控制芯片模块51的工作需要。JTAG编程调试模块 57采用国际标准的测试协议(兼容IEEE1149. 1),用于芯片内部测试和编程调试。RS-485 通讯模块M用来实现RS-232-RS-485串口通信转换接。为了节省ATmega32微控制器的引脚资源,将16路数字量输入模块55、16路数字量输出模块56都分成独立的低8路和高8 路两部分,在系统设计中通过译码电路,顺序选择访问这两部分数字量信息,这样在系统工作的同一时刻只有8路输入或输出。下面对本发明各个模块的功能进行详细描述。一、OPC机舱监测系统11、基于OPC的船舶机舱监测系统的方案设计从OPC机舱监测系统1的职能出发考虑,并兼顾整个机舱数据采集与监测系统的实际情况,本发明将监测系统分为以下几个部分来实现(1)异步通讯。主要功能是,实现OPC机舱监测系统1与OPC机舱数据访问服务器2之间的异步通讯。(2) OPC机舱数据访问服务器2启动。( OPC机舱数据访问服务器2与底层硬件设备通讯参数设置。(4)船舶机舱设备运行状态显示。主要功能是,通过异步通讯的异步读取方式,将OPC机舱数据访问服务器2采集到的机舱设备运行状态参数,读取到OPC机舱监测系统1中,并将这些状态数据保存,以及将其分类显示供船舶的相关操作人员实时查看,以利于其对整个机舱运行状态的准确掌握。2、基于OPC的船舶机舱监测系统的实现作为OPC客户端程序的机舱监测系统,在其开发前需要对它的开发环境进行设置,安装基于COM的OPC Proxy/Stub (0PC代理/存根)DLL文件。OPCProxy/Stub文件主要包括:opcproxy. dll 文件、opccomn_ps. dll 文件、opchda_ps. dll 文件、opc_aeps. dll 文件、opcenum. exe文件和aprxdist. exe文件,这些文件可以从OPC Foundation的官方网站下载。上述文件的安装方法如下。
(1)将上述ftOxy/^tub文件拷贝到操作系统的system32文件夹中,例如当操作系统安装在C盘,则拷贝opcproxy. dll到C: \WIND0WS\system32路径下。
(2)安装ftOxy DLL文件,具体方法如下
REGSVR32 opcproxy.dll
REGSVR32opchda_ps.dll
REGSVR32 opc_aeps.dll
REGSVR32opccomn_ps.dll
(3)在操作系统system32文件夹下运行aprxdist. exe生成aprxdist. dll文件;
(4)在,,开始”- >,,运行”输入” opcenum/regserver,,安装 opcenum. exe 文件。
完成上述四个步骤后,OPC客户程序开发的环境设置就完成了,这样就可以对基于 OPC的机舱监测系统1进行编程开发了。
在完成系统开发环境的设置后,本发明通过微软公司的Visual C++6. 0集成开发工具进行系统的编程开发。
二、OPC机舱数据访问服务器2
在本发明中,考虑到本系统中OPC服务器的实用性,把OPC Data ACCeSS2.04规范应用在该系统中。本发明的OPC机舱数据访问服务器2与OPC客户程序之间的通讯,采用了 OPC Data Access 2. 04规范中的异步通讯方式。
在OPC Data Access2. 04规范中,OPC数据访问服务器包含三个对象0PC的 Server对象、OPC的Group对象以及OPC的Item对象,其中krver对象和Group对象是标准COM对象,Item对象为非COM对象。
1、OPC客户程序对OPC机舱数据访问服务器2的访问流程如下
(I)OPC机舱数据访问服务器2
首先建立类工厂,只有利用类工厂,OPC客户程序才能够建立OPC机舱数据访问服务器2;
(2)OPC客户程序利用OPC机舱数据访问服务器2的ftx)gID(服务器在注册表中的名字),找到注册表中关于服务器的注册信息,然后通过CoCreatehstance ()函数在OPC 机舱数据访问服务器2中建立OPC krver对象。CoCreatehstance ()函数主要负责两方面的工作创建OPC krver对象、建立类工厂。
(3) OPC客户程序利用krver对象的COM接口,实现OPC机舱数据访问服务器2建立Group对象、获取服务器状态等一系列操作。
(4) OPC机舱数据访问服务器2在完成Group对象的创建后,利用Group对象的COM 接口,实现OPC客户程序添加Item、读写Item属性、删除Item等其他操作。
2、在服务器中完成krver对象、Group对象和Item对象的创建工作后,还需要为它们建立相应的类来进行管理。上述对象类的设计思想如下
(1) Server对象管理类的设计。在本发明中设计了 OPCCabir^erver类来作为OPC 机舱数据访问服务器2SerVer对象的容器,用来对krver对象进行管理,并且负责完成OPC 机舱数据访问服务器2SerVer对象实例的数据刷新等任务。
(2) Group对象管理类的设计。在本发明中设计了 OPCCabinGroup类作为OPC机舱数据访问服务器2GroUp对象的容器,用来对Group对象进行管理,并且负责完成OPC 机舱数据访问服务器2各个Group对象实例的数据刷新、异步通讯访问通知的检查、对 OPCCabinItem类(Item对象的管理类)的管理、回调通知检查等任务。
(3) Item对象管理类的设计。在本发明中设计了 OPCCabinItem类作为OPC机舱数据访问服务器2Item对象的容器,用来对Item对象进行管理,并负责各个Item实例到底层数据采集设备的连接、对硬件设备的访问等。
虽然基于COM的OPC技术在实现上是和语言无关的(COM的语言无关性),但是在 COM开发的诸多语言中,最适合的仍然是C++,所以在对本发明所设计的OPC机舱数据访问服务器2进行开发时,采用了 Visual C++6. 0提供的ATL COM AppWizard(活动模板库COM 向导)。
三、串口模块3
由于本发明的数字量采集卡模块5采用的是RS-485串口通信方式,为了实现PC 主机与本发明的数字量采集卡模块5之间的通讯,需要在数字量采集卡模块5和OPC机舱数据访问服务器2的主机之间,添加一个电平转换接口卡,这里选用由安泰高科公司生产的ATC-107智能型RS-232-RS-485串口通信转换接口卡。数字量采集卡模块5的RS-485通信控制芯片选用由MAXIM公司设计的MAX-485芯片,其传输速率最高可以达到2. 5Mbps。
在本发明中,为了提高系统数字量采集卡模块5的抗干扰能力,在MAX-485的数据发送/接收端,设计了相应的抗干扰电路。从而较好的解决了通讯距离和通讯速度之间的矛盾并具有较强的抑制共模干扰能力。
四、数字量采集卡模块5
本发明的数字量采集卡模块5的点数为16路,包括16路数字量输入模块和16 路数字量输出模块两部分功能,通过模块上的拨码开关实现输入功能和输出功能的自由切换。数字量采集卡模块5主要包括ATmega32主控制芯片模块51、12 5V直流电源模块 52、工作模式和地址选择模块53、RS-485通讯模块54、16路数字量输入模块55、16路数字量输出模块56、JTAG编程调试模块57。
船舶机舱数字量采集卡模块5微控制器采用ATmega32 ( 一种低功耗的8位CMOS 微控制器,其指令集基于增强型的AVR RISC结构,并且由于其指令执行采用单时钟周期,使得ATmega32的数据吞吐率能够达到lMIPS/MHz)可以很好的解决微控制器的处理速度和功耗之间的矛盾。
本发明的数字量采集卡模块5通过8位拨码开关来实现模块工作模式和地址的设定,其中拨码开关的高两位为模块工作模式选择开关,01表示模块为数字量输出模式, 10表示模块为数字量输入模式;拨码开关的低六位为板卡地址选择开关,模块地址范围为 0X00 0X3F共64个地址选择。
在本发明中通过JTAG对AVR内核的ATmega32微控制器进行在线编程。
在本发明中为了节省ATmega32微控制器的引脚资源,将16路的数字量输入、输出部分都分成独立的低8路和高8路两部分,在系统设计中通过一个由74HC138构成的3_8 译码电路,顺序选择访问这两部分数字量信息,这样在系统工作的同一时刻只有8路输入或输出。
在设计本发明的16路数字量采集卡模块5的驱动程序中,微控制器ATmega32通过片内的USART (通用串行同步/异步接收器与收发器)对MAX485芯片进行控制,实现 RS-485串口通讯。本发明规定的串口通讯协议帧格式为1个停止位、1个开始位、8个数据位、波特率为9600bps、不使用奇偶校验位。 在本发明中根据采集卡硬件的电路设计,利用程序设计的自顶向下分析方法和模块化的设计思想,将系统驱动程序的设计分成为主程序模块、看门狗程序模块、串口中断通讯程序模块、模块工作模式与地址选择程序模块、数字量输入程序模块、数字量输出程序模块和定时器程序模块等。
权利要求
1.一种基于OPC技术的船舶机舱数据采集与监测系统,其特征在于包括OPC机舱监测系统(1)、OPC机舱数据访问服务器O)、串口模块(3)、CAN模块G)、数字量采集卡模块 (5)和模拟量采集卡模块(6),所述的OPC机舱监测系统(1)与OPC机舱数据访问服务器 (2)采用基于Microsoft公司C0M/DC0M的OPC接口技术规范进行相互通讯,OPC机舱数据访问服务器( 与底层状态数字量采集卡模块( 利用串口模块C3)通过RS-485串口通讯技术进行相互通讯,模拟量采集卡模块(6)利用CAN模块(4)通过CAN现场总线技术进行相互通讯;所述的数字量采集卡模块( 和模拟量采集卡模块(6)均为智能采集卡,配置有工业用嵌入式微控制器,能够独立完成机舱各设备的状态数据采集和同OPC机舱数据访问服务器( 之间的通讯任务;所述的OPC机舱监测系统(1)遵循OPC规范的技术标准;所述的数字量采集卡模块(5)包括ATmega32主控制芯片模块(51)、12 5V直流电源模块(52)、工作模式和地址选择模块(5 、RS-485通讯模块(M)、16路数字量输入模块(55)、16路数字量输出模块(56)和JTAG编程调试模块(57),所述的工作模式和地址选择模块(5 负责数字量采集卡模块(5)的工作模式和地址的设定,12 5V直流电源模块 (52)负责将输入的DC12V电压转换成DC5V电压输出、使之适合ATmega32主控制芯片模块 (51)的工作需要,JTAG编程调试模块(57)用于芯片内部测试和编程调试,RS-485通讯模块(54)用于RS-232/RS-485串口通信之间的转换,16路数字量输入模块(5 和16路数字量输出模块(56)用于完成数字量采集卡模块(5)的输入和输出。
2.根据权利要求1所述的一种基于OPC技术的船舶机舱数据采集与监测系统,其特征在于所述的数字量采集卡模块( 通过8位拨码开关进行其工作模式和地址的设定,其中拨码开关的高两位为数字量采集卡模块(5)工作模式选择开关,01表示数字量采集卡模块 (5)为数字量输出模式,10表示数字量采集卡模块( 为数字量输入模式;拨码开关的低六位为数字量采集卡模块( 地址选择开关,数字量采集卡模块( 地址范围为0X00 0X3F 共64个地址选择。
3.根据权利要求1所述的一种基于OPC技术的船舶机舱数据采集与监测系统,其特征在于所述的OPC机舱监测系统(1)和OPC机舱数据访问服务器( 用的开发软件是VC++, 在设计数字量采集卡模块(5)时用到了 ICCAVR编译器和ftOtel软件。
全文摘要
本发明公开了一种基于OPC技术的船舶机舱数据采集与监测系统,包括OPC机舱监测系统、OPC机舱数据访问服务器、串口模块、CAN模块、数字量采集卡模块和模拟量采集卡模块,所述的OPC机舱监测系统与OPC机舱数据访问服务器采用基于OPC接口技术规范进行相互通讯,所述的数字量采集卡模块和模拟量采集卡模块均为智能采集卡,所述的OPC机舱监测系统遵循OPC规范的技术标准。本发明采用的数字量采集卡模块通过8位拨码开关进行其工作模式和地址的设定,可以最大化利用采集卡的采集点资源。本发明由于采取OPC规范的技术标准设计开发船舶机舱状态监测软件系统可以很好地解决软件系统中硬件设备通讯驱动程序重复开发问题。
文档编号G05B19/048GK102520655SQ20111040026
公开日2012年6月27日 申请日期2011年12月5日 优先权日2011年12月5日
发明者刘玉博, 张炳权, 徐野, 沈智鹏 申请人:大连海事大学