1 引言
随着现代航运的发展,船舶系统各个部件的实时运行信息与控制对于航运的安全都起到了非常重要的作用,对于船舶自动化控制的要求也在逐步提升,为了能够保证船舶的运行安全,需要对船舶系统的信息进行实时的监测与控制,因此设计一套高性能的船舶信息监控系统显得尤为重要。
监控系统的发展主要可分为三个阶段:计算机集中监控系统(Computer Centralized Monitoring System)、集散控制系统(Total Distributed Control System)和现场总线控制系统(Field Bus Control System)[1]。随着数字控制系统和计算机的飞速发展,监控系统技术也趋于多样化,如基于CAN总线的监控系统[2],基于物联网技术的控制系统[3-4],基于B/S结构的监控系统[5],基于嵌入式Linux系统的监控系统[6]等。各种监控系统各有优势与劣势,目前船舶自动化监控系统中,大部分采用的还是直接数字控制系统(Direct Digital Systems),这种监控系统的实时性受到信号数量的限制,当需要监测的信号数目较多时,实时性无法得到保证,而且需要大量的电缆造成维护成本的提高与可扩展性很差。
本文针对现在船舶监控系统存在的实时性易受影响、可扩展性差、信号数量受限等问题,设计了一种大容量、实时性和可扩展性强的监控系统。在不改变通信协议的基础上,通过智能网关实现数据传输的强实时性和大容量扩展功能。设计的系统实现了上位机50ms内对1000个节点的数据巡检功能,并可以对各个节点进行控制。成功实现了对底层设备的监控与管理。
2 实时数据监控系统设计与功能分析
2.1 监控系统总体
监控系统总体设计如图1所示。该监测系统的总体设计分为三个部分,第一部分是上位机,即人机交互端,用户可以通过上位机软件对底层设备进行信息读取与控制;第二部分是下位机,下位机即图1中所示的智能网关部分,智能网关的功能是将上位机的命令下发至各个节点和收集各个节点的数据信息,之后将数据信息打包处理传输至上位机;第三个部分为模拟节点。
2.2 上位机软件功能设计
根据需求,上位机软件系统被划分为界面显示模块、数据存取模块、数据传输模块和冗余切换模块。界面显示模块需要完成的功能是将实时的节点数据与数据的巡检时间在计算机界面上进行显示;数据存取模块的功能是将节点的历史数据及其对应时间存入数据库并且可以供用户随时查询;数据传输模块的功能是负责上位机与下位机之间的通信以及主PC与冗余PC之间的通信;冗余切换模块的功能是当主PC发生故障时,负责将主机上的参数备份至冗余PC上,并且将系统的控制权从主PC切换到冗余PC上。
2.3 下位机硬件与功能设计
如图1所示,该监控系统中下位机即智能网关分为主板和从板两部分,主板与从板的主控芯片(CPU)均为STM32F407,主频可以达到168MHz,每块从板上挂载了两个CAN总线接口。主板通过路由器与两台上位机连接进行数据传输,每块从板上的CPU通过一个FPGA与主板上的CPU进行数据传输。
上位机与主板之间的通信方式为以太网通信,速度可达到100Mbps,选择这种通信方式的优势在于可以高通信速率可以大大提升传输效率,而且这种传输方式只需要一根网线,可以有效的减少电缆的使用量;主板与从板之间通过高速16位数据总线进行通信,采用高速16位数据总线的方式进行通信;从板与节点之间的通信方式采用CAN总线通信协议,CAN总线是控制器局域网总线(Controller Area Network)的简称,是当前应用最广泛的现场总线之一[7]。
智能网关内部的数据传输方式如下(以数据从主板发往从板为例进行说明):
(1)主板接收到上位机发来的数据之后,会根据数据的内容中的标识码(即从板号)向相应从板的FPGA中写入数据;
(2)每个从板的CPU每隔一个定时周期会去读取对应FPGA里面的数据,如果检测到数据的标识码(即序列号)刷新,就将FPGA的数据读取出来并发送至相应节点,否则读取结束之后无动作。
数据从从板发往主板的方式与数据从主板发往主板类似,每块从板的CPU先将数据写入对应的FPGA中,之后主板CPU每隔一个周期对每块从板的FPGA依次进行巡检,如果检测到某块从板的FPGA的数据刷新,就将该FPGA中的数据读取出来,收集完所有挂载从板的数据或到了定时时间之后,就将所有的数据打包发往上位机。
下位机需要完成的功能是当上位机发送巡检命令时,在50ms以内完成对节点数据的采集并将节点数据送回至上位机;当上位机向底层节点发送命令时,将数据送至相应节点使节点完成对应的功能。上位机的数据送至智能网关主板CPU之后,主板CPU会将数据依次送至各个从板CPU,之后各个从板CPU会向挂载的节点发送数据,如果发送的是广播帧,则节点会把数据送至从板,这样各个从板可以并行进行数据采集或者数据传输工作,这种数据的采集与传输方式可以很大程度上减少完成整个数据传输所需的时间,而且当系统需要采集的节点增多时,只需要增加从板并在上面挂载节点即可,该系统可扩展从板数目最多为8个,一个从板最多挂载126个节点,可挂载节点最多达到了1008个。
2.4 监控系统实时性功能分析
该系统的主要设计目标是在50ms以内完成对1000个节点的数据进行巡检,下面通过分析系统的工作流程来验证方案的可行性。
监控系统的巡检功能数据传输方式及各个传输阶段所需时长计算如下:
(1)主PC向主板发送以太网帧巡检命令,以太网的最小帧字长为64个字节,以100Mbps的传输速度进行传输,所需时间为5.12us;
(2)主板CPU接收到以太网帧后,需要向各从板写入数据。写入一次数据需要经过的步骤及时间如下:
①写入数据之前需要先写入地址,所需时间为15个时钟周期;
②地址写入完毕之后进行数据写入,所需时间为32个时钟周期;
③数据写入完毕之后延时20个时钟周期;
④数据写入完毕之后,需要再写入一次0xFFFF释放总线,方法和时间与步骤①、②、③相同。
因此可以推算出写一次数据总共需要134个时钟周期。CPU主频为168MHz,一个时钟周期约为6ns,写一次数据总共需804ns。
数据总线的数据传输格式定义如图2所示,巡检命令只需要写入序列号、数据长度、从板ID和数据类型,因此巡检过程中,主板需要向一块从板的FPGA进行3次写操作,以系统可以承载的最大从板数目(8块)进行计算,所需的总时间为804ns*3*8=19.3us;
(3)从板CPU以50us的定时周期读取FPGA的数据,读取一次所需时间与写操作相同,因此读取所需时间为804ns*2=1.6us。加上定时周期值即为读取数据所需最长时间,时长为51.6us;
(4)各从MCU向各自节点广播巡检命令帧,节点收到巡检命令之后将收集的数据送回到从板CPU,通信格式为CAN帧格式,一个CAN帧字节长度为79bit,传输速度为1MHz,一个CAN帧所需时间为79us,一个从板挂载节点数为126个,因此一次巡检从板需要接收126个CAN帧,加上发送到节点的广播巡检命令帧,共127帧,所需总时间约为127*79us=11ms;
(5)从板CPU收集完数据之后,首先会对节点的数据进行打包,之后再向FPGA中写入数据,写入的打包数据格式与图2相同,共需要写入382次,所需时间约为804ns*382=307.2us;
(6)主板CPU通过16位高速数据总线分别读取8个从板中FPGA的数据,主板CPU读取一块从板FPGA的数据所需时间与写入时间相同,因此读取8块从板的总时间所需约为8*307.2us=2.46ms;
(7)主板接收到8块从板采集的数据之后,会将数据提取出来并进行打包,传输数据格式如图3所示。需要传输的最大数据量为6084个字节,因为一帧以太网帧最大数据长度为1460个字节,所以数据会被拆分为5帧进行发送,前4帧数据量为1460个字节,最后一帧数据量为244个字节,所以总的数据长度需要加上5个TCP的帧头,一个帧头的数据长度为40个字节,共6284个字节,以100Mbps的传输速度进行传输,所需时间为502.72us。
整个系统运行时间如表1所示。
表1 系统运行流程时间表
序号 |
运行流程 |
所需时间 |
1 |
主PC发送巡检命令 |
5.12us |
2 |
主板向8块FPGA写入数据 |
19.3us |
3 |
从板读取FPGA数据 |
51.6us |
4 |
从板收集节点数据 |
11ms |
5 |
从板写FPGA数据 |
307.2us |
6 |
主板读取8块从板FPGA数据 |
2.46ms |
7 |
主板向主PC发送数据 |
502.72us |
8 |
总计 |
14.35ms |
从表1中可以看出理论上系统对1008个节点所需的数据巡检时间长度为14.35ms,完全可以满足1000个节点数据50ms的巡检周期要求,由此说明该系统的底层架构设计是合理的。
3 实验结果与分析
图4所示为实时监控系统的测试平台。由于受到实验条件的限制,所以每个从板上的两个CAN口分别只挂载一块节点板,每块节点板每次均发送63次节点号不同的数据来模拟63个节点。
数据巡检功能实验结果截图如图5所示,本次实验所带节点数为系统所能挂载最大节点数1008个,从图5中的实验结果可以看出,数据巡检所需时间为18.23ms,每个巡检周期数据巡检的时间与此次截图的巡检时间处于大概上下浮动的关系,浮动范围约从16ms到25ms之间,与理论计算时间相差不大,完全符合系统设计的50ms的需求。图6、图7所示分别为历史数据查询界面和节点配置界面,在图6所示的界面中输入所需要查询数据的相应信息(时间、挂载从板及节点号),便可以查询到相应的数据;在图7所示的界面中选择对应的从板与节点之后,便可以对相应的节点进行配置。
4 结语
船舶系统数据的实时监测与控制对于船舶航行安全的保障具有举足轻重的作用。本文利用已经较为成熟的通信协议通过改变数据采集装置(即智能网关)的硬件结构再配合软件设计,大大缩短了监测系统数据传输的时间,而且使监测系统具有很强的扩展能力与挂载能力,实现了一个实时性强、容量大、可扩展性强的数据监测与管理系统,具有很高的应用价值。
参考文献
[1] 高翔. 动力锂电池生产线上位机监控系统的设计与实现[D]. 电子科技大学, 2014.
[2] 秦娟英, 冯欣. 基于CAN总线的分布式嵌入式远程监控系统研制[J]. 电气传动, 2004, 34(6):26-28.
[3] 苏东海, 冯文婷, 梁全,等. 基于物联网实现的远程控制工业系统[J]. 物联网技术, 2015, 5(8):38-39.
[4] 魏星. 工业远程控制与物联网技术[D]. 内蒙古科技大学, 2012.
[5] 刘俊峰, 赵恒永. 基于B/S结构的工业生产数据监测系统的实现[J]. 计算机工程与设计, 2004, 25(2):288-290.
[6] 郭小炼. 基于嵌入式Linux系统的船舶电力监控系统的设计与实现[D]. 武汉理工大学, 2010.
[7] 邬宽明. CAN总线原理和应用系统设计[M]. 北京航空航天大学出版社, 1996.
作者简介
共0条 [查看全部] 网友评论