水上拖曳式测量系统及以太网数据有线传输方法
技术领域
本发明涉及一种水上拖曳式测量系统技术领域,尤其涉及一种水上拖曳式测量系统及以太网数据有线传输方法。
背景技术
水上拖曳式测量系统,由作业船舶、拖曳缆和无人测量平台组成。作业船舶与无人测量平台之间数据传输,一般分为有线传输和无线传输两类。有线传输通过拖曳缆实现作业船舶与无人测量平台之间的数据传输,通信可靠性高,作业布放与回收难度较低,但是拖曳缆的可靠性受海况影响较大;无线传输通过电台等无线设备实现作业船舶与无人测量平台之间的数据传输,不需要拖曳缆的硬件连接,但是作业布放与回收难度较高,通信可靠性受通信距离和天气条件的影响较大。
作业船舶搭载的控制计算机与无人测量平台内部的主控MCU(MicrocontrollerUnit微控制单元)之间,通过拖曳缆中的以太网线缆进行有线传输,实现对无人测量平台的控制与监测。
传统的水上拖曳式测量系统的有线传输,一般选择TCP模式实现数据通信,如图1所示,在TCP连接中进行心跳包数据的传输,基本流程如下:
s1.无人测量平台主控MCU初始化为TCP服务器端,等待TCP客户端的连接请求;
s2.作业船舶控制计算机作为TCP客户端,发送连接请求,与无人测量平台建立TCP连接;
s3.作业船舶控制计算机与无人测量平台主控MCU之间进行数据交互,包括心跳包数据;
s4.在通信交互过程中,无人测量平台主控MCU实时判断心跳包数据接收是否发生超时,若超时,进入s6;若未发生超时,进入S5,接收作业船舶发送的控制指令并回传数据信息;
s5.接收作业船舶发送的控制指令并回传数据信息;
s6.作业船舶控制计算机断开TCP连接,完成一次TCP通信过程。
现有技术使用TCP模式收发心跳包数据,由于TCP需要先建立连接,所以当心跳包数据收发超时,无法第一时间区分是硬件断开还是TCP连接断开。
传统的水上拖曳式测量系统的有线传输方法存在以下三处缺点:
缺点一:无法实时监测拖曳缆硬件线路的连接状态。
传统的水上拖曳式测量系统的有线传输方法,需要在TCP连接建立后,通过TCP客户端发送的心跳包数据是否超时来让TCP服务器判断连接是否已断开。当TCP连接无法正常建立时,将无法判断拖曳缆硬件线路的连接状态,也无法让作业船舶实时监测拖曳缆硬件线路的连接状态。
缺点二:TCP连接未建立时,无法监测无人测量平台的工作状态。
作业船舶与无人测量平台之间的通信交互需要先建立TCP连接,当连接未建立或者建立失败时,作业船舶无法监测无人测量平台搭载的各个传感器设备是否工作正常。
缺点三:TCP连接在客户端断开时存在服务器端资源未完全释放的风险。
传统的水上拖曳式测量系统的有线传输方法,在TCP通信作业完成后,通过TCP客户端主动断开TCP连接。当TCP客户端产生误操作或者TCP连接断开失败时,服务器端TCP连接可能未完全释放,当新的TCP客户端需要接入时,存在接入失败的风险。
发明内容
本发明的目的是提供一种水上拖曳式测量系统及以太网数据有线传输方法,以解决使用TCP模式收发心跳包数据无法第一时间区分是硬件断开还是TCP断开的技术问题。
为实现上述发明目的,本发明提供的水上拖曳式测量系统的以太网数据有线传输装置采用下述技术方案予以实现:
一种水上拖曳式测量系统的无人测量平台,包括:
无人测量平台UDP端口,用于向作业船舶UDP端口发送固定频率的心跳包数据b,用于接收所述作业船舶UDP端口发送的固定频率的心跳包数据a;
无人测量平台控制器,用于在所述心跳包数据a接收没有发生超时且收到作业船舶TCP客户端连接请求时,控制无人测量平台的TCP服务器与请求连接的作业船舶的TCP客户端之间建立TCP连接;用于在所述心跳包数据a接收发生超时时,更新心跳数据包b的网络连接状态指示信息并复位所述TCP服务器;
无人测量平台TCP服务器端口,用于接收作业船舶TCP客户端连接请求,用于在所述TCP连接后与所述作业船舶TCP客户端端口进行通信数据交互。
如上所述的水上拖曳式测量系统的无人测量平台,所述无人测量平台控制器用于在TCP连接后判断所述心跳包数据a接收是否发生超,在所述心跳包数据a接收发生超时,更新心跳数据包b的网络连接状态指示信息并复位所述TCP服务器。
一种水上拖曳式测量系统的作业船舶,包括:
作业船舶UDP端口,用于向无人测量平台UDP端口发送固定频率的心跳包数据a,用于接收所述无人测量平台UDP端口发送的固定频率的心跳包数据b;
作业船舶控制器,用于在需要通过TCP连接与无人测量平台进行通信数据交互且所述心跳包数据b接收没有发生超时时,控制作业船舶的TCP客户端向无人测量平台的TCP服务器发送作业船舶TCP客户端连接请求并建立TCP连接;用于在需要通过TCP连接与无人测量平台进行通信且所述心跳包数据b接收发生超时时,控制所述作业船舶UDP端口停止发送心跳包数据a;
作业船舶TCP客户端端口,用于发送作业船舶TCP客户端连接请求,用于在所述TCP连接后与所述无人测量平台TCP服务器端口进行数据传输。
如上所述的水上拖曳式测量系统的作业船舶,所述作业船舶控制器用于在TCP连接后判断所述心跳包数据b接收是否发生超时或者TCP通信数据交互是否完成,在所述心跳包数据b接收发生超时或者TCP通信数据交互完成时,控制所述作业船舶UDP端口停止发送心跳包数据a。
一种水上拖曳式测量系统,所述系统包括上述的无人测量平台和上述的作业船舶。
一种水上拖曳式测量系统的无人测量平台以太网数据有线传输方法,所述方法为:
S1、无人测量平台UDP端口初始化,向作业船舶UDP端口发送固定频率的心跳包数据b,接收所述作业船舶UDP端口发送的固定频率的心跳包数据a;
S2、无人测量平台的TCP服务器初始化;
S3、心跳包数据a接收是否发生超时,若是,进入S7,否则,进入S4;
S4、判断是否有作业船舶TCP客户端连接请求,若是,进入S5,否则,进入S3;
S5、无人测量平台的TCP服务器与请求连接的作业船舶的TCP客户端之间建立TCP连接;
S6、无人测量平台的TCP服务器与请求连接的作业船舶的TCP客户端之间进行通信数据交互;
S7、更新心跳数据包b的网络连接状态指示信息;
S8、复位所述TCP服务器,进入S2。
如上所述的水上拖曳式测量系统的无人测量平台以太网数据有线传输方法,所述S6之后还包括S9,判断心跳包数据a接收是否发生超时,若是,进入S7,否则进入S6。
一种水上拖曳式测量系统的作业船舶以太网数据有线传输方法,所述方法为:
S1、作业船舶UDP端口初始化,向无人测量平台UDP端口发送固定频率的心跳包数据a,接收所述无人测量平台UDP端口发送的固定频率的心跳包数据b;
S2、判断是否需要通过TCP连接与无人测量平台进行通信数据交互,若是,进入S3,否则进入S2;
S3、判断心跳包数据b接收是否发生超时,若是,进入S6,否则进入S4;
S4、作业船舶TCP客户端向无人测量平台的TCP服务器发送作业船舶TCP客户端连接请求并建立TCP连接;
S5、作业船舶的TCP客户端与无人测量平台的TCP服务器之间进行通信数据交互;
S6、作业船舶UDP端口停止发送心跳包数据a,进入S2。
如上所述的水上拖曳式测量系统的作业船舶以太网数据有线传输方法,所述S5之后还包括S7、判断心跳包数据b接收是否发生超时或者TCP通信数据交互是否完成,若是,进入S6,否则进入S5。
一种水上拖曳式测量系统的以太网数据有线传输方法,包括上述的无人测量平台以太网数据有线传输方法和上述的作业船舶以太网数据有线传输方法。
与现有技术相比,本发明的优点和积极效果是:(1)拖曳缆大部分处于水面或水下,拖曳缆的连接状态与无人测量平台的安全性息息相关。作业船舶控制计算机与无人测量平台主控MCU之间,通过UDP这种无连接的网络传输模式传输心跳包数据,可以更加快速准确的判读拖曳缆硬件网络线路的连接状态。如果使用TCP模式收发心跳包数据,由于TCP需要先建立连接,所以当心跳包数据收发超时,无法第一时间区分是硬件断开还是TCP连接断开。
(2)心跳包数据b在无人测量平台主控MCU正常工作后会持续输出,心跳包数据中包含部分无人测量平台状态数据,因此当作业船舶控制计算机既没有建立TCP连接也没有发送心跳包数据a的情况下,作业船舶依然可以通过接收心跳包数据b监测无人测量平台的工作状态。
(3)作业船舶控制计算机主动停止发送1Hz固定频率心跳包数据a,使无人测量平台主控MCU接收心跳包数据a发生超时,主动复位TCP服务器。从而避免TCP客户端主动断开连接时,服务器端TCP连接可能未完全释放,导致新客户端接入失败的风险。
结合附图阅读本发明的具体实施方式后,本发明的其他特点和优点将变得更加清楚。
附图说明
图1为传统的水上拖曳式测量系统的有线传输流程图。
图2为水上拖曳式测量系统组成图。
图3为作业船舶控制计算机与无人测量平台主控MCU数据交互示意图。
图4为水上拖曳式测量系统-无人测量平台端有线传输的工作流程图。
图5为水上拖曳式测量系统-作业船舶端有线传输的工作流程图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步详细的说明。
如图2所示,水上拖曳式测量系统,由作业船舶、拖曳缆和无人测量平台组成。作业船舶控制计算机与无人测量平台主控MCU之间,通过拖曳缆内部的以太网线缆进行数据传输,实现对无人测量平台搭载的各类传感器的控制与监测。
本实施例基于以太网数据传输层常用的两种传输协议UDP (User DatagramProtocol, 用户数据报协议)与TCP (Transmission Control Protocol,传输控制协议)设计了拖曳式测量系统的以太网数据传输方法。
首先,通过UDP模式,作业船舶控制计算机向指定的无人测量平台主控MCU的以太网UDP端口(例如192.168.0.99:5000)发送1Hz固定频率的心跳包数据a,无人测量平台主控MCU向指定的作业船舶控制计算机以太网UDP端口(例如192.168.0.100:8080)发送1Hz固定频率的心跳包数据b。
然后,在无人测量平台主控MCU接收心跳包数据a正确且未发生超时,同时作业船舶控制计算机接收心跳包数据b正确且未发生超时的条件下,作业船舶控制计算机(TCP客户端)与无人测量平台主控MCU(TCP服务器)之间建立TCP连接并进行数据交互。通过TCP模式,作业船舶控制计算机向无人测量平台发送控制指令,接收无人测量平台上报的数据信息;无人测量平台主控MCU接收作业船舶下发的控制指令,上报采集到的各类数据信息。
当无人测量平台主控MCU接收心跳包数据a发生超时,无人测量平台主控MCU判定拖曳缆硬件网络线路连接已断开,无人测量平台主控MCU将主动关闭TCP服务器端口的TCP连接,复位TCP服务器,并更新UDP心跳包数据b中的指示连接状态的数据字,等待心跳包通信恢复正常。当作业船舶控制计算机接收心跳包数据b发生超时,或者监测到心跳包数据b中指示硬件连接状态的数据字异常,作业船舶控制计算机可及时判读拖曳缆硬件网络线路连接状态异常。
如图3所示,一种水上拖曳式测量系统的无人测量平台,包括:
无人测量平台UDP端口,用于向作业船舶UDP端口发送固定频率的心跳包数据b,用于接收作业船舶UDP端口发送的固定频率的心跳包数据a。
无人测量平台控制器,用于在心跳包数据a接收没有发生超时且收到作业船舶TCP客户端连接请求时,控制无人测量平台的TCP服务器与请求连接的作业船舶的TCP客户端之间建立TCP连接;用于在心跳包数据a接收发生超时时,更新心跳数据包b的网络连接状态指示信息并复位TCP服务器;无人测量平台控制器用于在TCP连接后判断所述心跳包数据a接收是否发生超,在心跳包数据a接收发生超时,更新心跳数据包b的网络连接状态指示信息并复位TCP服务器。
无人测量平台TCP服务器端口,用于接收作业船舶TCP客户端连接请求,用于在TCP连接后与作业船舶TCP客户端端口进行通信数据交互。
一种水上拖曳式测量系统的作业船舶,包括:
作业船舶UDP端口,用于向无人测量平台UDP端口发送固定频率的心跳包数据a,用于接收无人测量平台UDP端口发送的固定频率的心跳包数据b;
作业船舶控制器,用于在需要通过TCP连接与无人测量平台进行通信数据交互且心跳包数据b接收没有发生超时时,控制作业船舶的TCP客户端向无人测量平台的TCP服务器发送作业船舶TCP客户端连接请求并建立TCP连接;用于在需要通过TCP连接与无人测量平台进行通信且心跳包数据b接收发生超时时,控制作业船舶UDP端口停止发送心跳包数据a;作业船舶控制器用于在TCP连接后判断心跳包数据b接收是否发生超时或者TCP通信数据交互是否完成,在心跳包数据b接收发生超时或者TCP通信数据交互完成时,控制作业船舶UDP端口停止发送心跳包数据a。
作业船舶TCP客户端端口,用于发送作业船舶TCP客户端连接请求,用于在TCP连接后与无人测量平台TCP服务器端口进行数据传输。
一种水上拖曳式测量系统,包括上述的无人测量平台和上述的作业船舶。
一帧心跳包数据a的具体内容如表1所示。
表1 心跳包数据a
字节 |
内容 |
说明 |
备注 |
0:1 |
帧头 |
一帧新的心跳包数据a的开始 |
|
2:5 |
时间戳 |
当前帧心跳包数据b发出的时间 |
时*10^7+分*10^5+秒*10^3+毫秒 |
6 |
帧长度 |
一帧心跳包数据a的总字节数量 |
最大值255 |
7 |
帧计数 |
心跳包帧计数,每发送一包计数加1 |
0-255循环,用于检验是否存在丢帧 |
8 |
校验和 |
字节0-字节7累加和的低字节 |
|
一帧心跳包数据b的具体内容如表2所示。
表2 心跳包数据b
字节 |
内容 |
说明 |
备注 |
0:1 |
帧头 |
一帧新的心跳包数据b的开始 |
|
2:5 |
时间戳 |
当前帧心跳包数据b发出的时间 |
时*10^7+分*10^5+秒*10^3+毫秒 |
6 |
帧长度 |
一帧心跳包数据b的总字节数量 |
最大值255 |
7 |
帧计数 |
心跳包帧计数,每发送一包计数加1 |
0-255循环,用于检验是否存在丢帧 |
8 |
|
网络线缆状态 |
0x00:正常;0xFF:已断开 |
9 |
|
无人测量平台1#传感器工作状态 |
0x00:正常;0xFF:异常 |
10 |
|
无人测量平台2#传感器工作状态 |
0x00:正常;0xFF:异常 |
… |
… |
… |
… |
9+(N-1) |
|
无人测量平台N#传感器工作状态 |
0x00:正常;0xFF:异常 |
9+N |
校验和 |
字节0-字节9+(N-1)累加和的低字节 |
|
如图4所示,一种水上拖曳式测量系统的无人测量平台以太网数据有线传输方法:
S1、无人测量平台主控MCU的 UDP端口初始化,通过UDP模式向作业船舶UDP端口发送固定频率的心跳包数据b,接收作业船舶UDP端口发送的固定频率的心跳包数据a。
S2、无人测量平台主控MCU的TCP服务器初始化。
S3、心跳包数据a接收是否发生超时,若是,说明无人测量平台主控MCU判读拖曳缆硬件网络连接已断开,进入S7,否则,说明无人测量平台主控MCU判读拖曳缆硬件网络连接状态正常,进入S4。
S4、无人测量平台等待新的TCP客户端的连接请求,判断是否有作业船舶TCP客户端连接请求,若是,进入S5,否则,进入S3。
S5、无人测量平台的TCP服务器与请求连接的作业船舶的TCP客户端之间建立TCP连接。
S6、无人测量平台的TCP服务器与请求连接的作业船舶的TCP客户端之间进行通信数据交互,例如,接收作业船舶控制计算机发送的控制指令,无人测量平台主控MCU上报监测的数据信息等。进入S9。
S7、更新心跳数据包b的网络连接状态指示信息。
S8、复位所述TCP服务器,进入S2。
S9、无人测量平台与TCP客户端进行数据通信交互的过程中,判断心跳包数据a接收是否发生超时,若是,进入S7,否则进入S6。
如图5所示,一种水上拖曳式测量系统的作业船舶以太网数据有线传输方法:
S1、作业船舶控制计算机的UDP端口初始化,向无人测量平台UDP端口发送固定频率的心跳包数据a,接收所述无人测量平台UDP端口发送的固定频率的心跳包数据b。
S2、判断是否需要通过TCP连接与无人测量平台进行通信数据交互,若是,进入S3,否则进入S2。
S3、判断心跳包数据b接收是否发生超时,若是,进入S6,否则进入S4。
S4、作业船舶控制计算机TCP客户端向无人测量平台的TCP服务器发送作业船舶TCP客户端连接请求并建立TCP连接。
S5、作业船舶控制计算机TCP客户端与无人测量平台的TCP服务器之间进行通信数据交互,进入S7。
S6、作业船舶UDP端口停止发送心跳包数据a,退出与无人测量平台的TCP通信交互,进入S2。
S7、判断心跳包数据b接收是否发生超时或者TCP通信数据交互是否完成,若是,进入S6,否则进入S5。
一种水上拖曳式测量系统的以太网数据有线传输方法,包括上述的无人测量平台以太网数据有线传输方法和上述的作业船舶以太网数据有线传输方法。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施例对本发明进行了详细的说明,对于本领域的普通技术人员来说,依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明所要求保护的技术方案的精神和范围。