论文部分内容阅读
内容摘要:VTS (Vessel Traffic Service),即为船舶交通管理系统,是由国家海事主管机关实施的管理系统。该系统旨在保障海上交通安全、提高海上交通和港口运作效率的重要手段。VTS系统可以向用户提供如系统控制与系统辅助信息、目标跟踪信息、船舶数据信息、雷达视频信息等丰富的海上航行数据信息。本文还详细阐述如何利用VC++6.0中的MSComm控件编程来完成串口数据信息采集的软件实现,通过本次实验最终将得到的效果是实现计算机利用串口线直接与雷达相连进行雷达数据的采集。
关键词:VTS、串口通信、RS232
1 绪论
一、课题的提出
VTS(Vessel Traffic Service),即船舶交通管理系统,是由国家海事主管机关实施,旨在保障海上交通安全、提高海上交通和港口运作效率的重要手段。VTS系统通常由雷达及雷达数据处理系统、自动识别系统(AIS)、工业电视监控系统(CCTV)、船岸通信系统、交通数据处理系统以及交通管理信息系统等组成,可以提供多种信息服务,包括船舶信息、航行计划、环境信息和警告信息等,不仅为海上用户提供方便,也在船舶管理与搜救中发挥重要的作用。是保障海上交通安全、提高海上交通及港口運作效率、海上保安以及保护海洋环境等方面的重要工具。
随着近年来我国海上交通的迅猛发展,进出沿海港口船舶数量的增加,船舶交通管理系统的重要性也越来越显著。我国目前正在对外运行的VTS船舶交通服务中心共有26个,雷达中继站92个,另外正在规划和建设中的VTS中心还有10余个,覆盖水域面积达到84300平方公里,基本覆盖我国的大部分沿海和内陆河水域。
二、 课题的研究意义
我国VTS系统为改善中国沿海港口、水道的船舶交通安全发挥了重要作用。既然VTS系统能提供如此丰富的信息,所以如何实现VTS系统的信息采集与发送就显得尤为重要,利用一种既方便安全有普遍兼容的信息采集渠道是发挥VTS强大功能的关键所在,目前普遍采用的是串口采集提取VTS数据的方法,串口提取数据不仅简单易操作,而且安全性高,不易感染病毒,价格便宜,而且是世界通用的计算机接口,可以和计算机直接连接.。因此,从以上几个方面考虑,解决现有VTS系统数据采集与发送的问题,研究基于VTS的信息的采集技术,使得VTS系统信息得到最充分的利用,利用串口技术具有很高的现实意义。
三、 研究内容和研究方法
本文重点研究的内容是VTS信息的采集,研究的主要内容和主要的方法如下:
研究VTS系统的信息采集方式:主要分析VTS信息采集方式,依据现有的试验条件,研究VTS的信息分类,利用VC++ 6.0作为平台,基于串口采集S雷达数据信息。
四、 研究成果
本课题结合实际应用中遇到的问题和需求,主要对基于雷达信息的采集初步的研究,研究的成果如下:
船舶数据的提取:要利用VC++平台进行开发,首要的问题就是获得可用的有效信息。本文利用串口方式,获取了不同的数据格式雷达数据。
2 串口通信的软件实现
一、 设计方案
本文研究的方案就是通过串口线将雷达设备和计算机直接连接,进行雷达数据的接收与处理,如下即为设计原理框图。
实验过程中要经过如下流程,首先要对串口进行初始化,以便建立数据连接,数据连接成功后计算机将接收雷达系统发出的数据信息,当计算机接收到从雷达系统发出的数据信息后进行一系列的处理后即可以对数据信息进行发送等一系列的操作了,具体流程图如上图所示:
二、软件实现
本系统所显示的信息主要包括串口的设置信息实时显示。对于数据的采集主要是采用Visual C++6.0中的单线程编程。
串口采集使用VC++中的MSComm编程,MSComm是Microsoft公司提供的简化Windows下的串行通信编程的ActiveX控件。它的主要属性如下:
(a) CommPort属性
void SetCommPort(short nNew Value);short GetCommport();
这是用于设置串口端口号,Windows将会利用该串口和外界通信。在设计时,nNewValue可以设置成1~16的任意数(默认为1)。
(b) Settings属性
void SetSetting (LPSTSTR lpszNewValue);String GetSettings();
这是用于设置并返回数据传输速率、奇偶校验、数据比特、停止比特参数。其设置lpszNewValue用字符串表示,组成格式“BBBB,P,D,S”将分别表示上面所说的四个参数。本实验设置为“9600,N,8,1”,即9600bit/s,8bit数据位,1bit的停止位。
(c)Handshaking属性
设置硬件握手协议,默认值为0,即无握手协议。
(d) InputMode属性
void SetInputMode(long nNewValue);long GetInputMode();
这是用于设置或返回传输数据类型。其中“1”表示二进制方式取回数据;“0”表示文本方式取回数据。
(e) RThreshold属性
void SetRThreshold(short nNew Value);short GetRThreshold;
在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm之前,RThreshold设置并返回要接收的字符数。nNewValue表示要接收的字符数。 (f) InputLen属性
void SetInputLen(long nNewValue);long GetInputLen();
这是用于设置并返回从接收缓冲区读取的字符数。nNewValue表示字符数。
根据前面控件的属性,程序中的主要参数设置如下:
m_com.SetCommPort(1);选择端口
m_com.SetInBufferSize(4096);设置输入缓冲区的大小
m_com.SetOutBufferSize(4096);设置输出缓冲区的大小
if(!m_com.GetPortOpen());打开串口
m_com.SetPortOpen(TRUE);
InputMode(1);设置输入方式为二进制方式;
m_com.SetSettings(“9600,N,8,1”);设置波特率等参数
对于通过出串口获取的数据,每条数据的长度为112个字节,均以$开头,以下是实验室获取的三条实际的串口跟踪数据。
最终会得到如下对话框,可以利用串口连接,用计算机采集雷达数据:
此时即可以实现计算机与雷达通过串口线直连后采集雷达数据,出现此对话框后,点击设置按钮,串口即被成功打开,此时即可以进行雷达数据的发送与采集了,如下图所示,
即为在两台计算机上利用串口发送与接收雷达数据的效果图。
3小结
本课题主要是对数据的传输进行了探讨,本课题研究期间,在雷达数据的提取、传输显示方面作了很多的实践工作。但是由于其他客观条件的限制,系统中还存在着一些不足和需要完善之处,现总结如下:
1)、在船舶的數据管理方面需要建立数据库,通常利用串口采集雷达数据之后通常是分析数据格式之后直接将数据显示出来,这样在某些特殊情况下不方便船舶的管理。可以建立船舶信息数据库,方便的船舶的调度和管理。
2)、实际使用中,VTS系统中的船舶信息量很大,但串口的数据传输速率有限,使得整个系统的更新频率不能满足最初的设计条件,需要研究更适合的数据采集方式。另外,在环境复杂的控制系统中,也就是对实时性要求很高时,串口通信并不能很好的满足实际需求,可能无法满足用户的要求。
参考文献
[1] http://www.host01.com/Print.Html?88179
[2] http://movit.e-motive.com/project/index.htm
[3] 李现勇.Visual C++串口通信技术与工程实践.北京:人民邮电出版社
[4] Andrews,Mark.C++ Windows NT Programming.New York:M&T Books.
[5] http://movit.e-motive.com/project/index.htm
[6] W.Richard Stevens.TCP/IP协议详解 卷1/2/3.
关键词:VTS、串口通信、RS232
1 绪论
一、课题的提出
VTS(Vessel Traffic Service),即船舶交通管理系统,是由国家海事主管机关实施,旨在保障海上交通安全、提高海上交通和港口运作效率的重要手段。VTS系统通常由雷达及雷达数据处理系统、自动识别系统(AIS)、工业电视监控系统(CCTV)、船岸通信系统、交通数据处理系统以及交通管理信息系统等组成,可以提供多种信息服务,包括船舶信息、航行计划、环境信息和警告信息等,不仅为海上用户提供方便,也在船舶管理与搜救中发挥重要的作用。是保障海上交通安全、提高海上交通及港口運作效率、海上保安以及保护海洋环境等方面的重要工具。
随着近年来我国海上交通的迅猛发展,进出沿海港口船舶数量的增加,船舶交通管理系统的重要性也越来越显著。我国目前正在对外运行的VTS船舶交通服务中心共有26个,雷达中继站92个,另外正在规划和建设中的VTS中心还有10余个,覆盖水域面积达到84300平方公里,基本覆盖我国的大部分沿海和内陆河水域。
二、 课题的研究意义
我国VTS系统为改善中国沿海港口、水道的船舶交通安全发挥了重要作用。既然VTS系统能提供如此丰富的信息,所以如何实现VTS系统的信息采集与发送就显得尤为重要,利用一种既方便安全有普遍兼容的信息采集渠道是发挥VTS强大功能的关键所在,目前普遍采用的是串口采集提取VTS数据的方法,串口提取数据不仅简单易操作,而且安全性高,不易感染病毒,价格便宜,而且是世界通用的计算机接口,可以和计算机直接连接.。因此,从以上几个方面考虑,解决现有VTS系统数据采集与发送的问题,研究基于VTS的信息的采集技术,使得VTS系统信息得到最充分的利用,利用串口技术具有很高的现实意义。
三、 研究内容和研究方法
本文重点研究的内容是VTS信息的采集,研究的主要内容和主要的方法如下:
研究VTS系统的信息采集方式:主要分析VTS信息采集方式,依据现有的试验条件,研究VTS的信息分类,利用VC++ 6.0作为平台,基于串口采集S雷达数据信息。
四、 研究成果
本课题结合实际应用中遇到的问题和需求,主要对基于雷达信息的采集初步的研究,研究的成果如下:
船舶数据的提取:要利用VC++平台进行开发,首要的问题就是获得可用的有效信息。本文利用串口方式,获取了不同的数据格式雷达数据。
2 串口通信的软件实现
一、 设计方案
本文研究的方案就是通过串口线将雷达设备和计算机直接连接,进行雷达数据的接收与处理,如下即为设计原理框图。
实验过程中要经过如下流程,首先要对串口进行初始化,以便建立数据连接,数据连接成功后计算机将接收雷达系统发出的数据信息,当计算机接收到从雷达系统发出的数据信息后进行一系列的处理后即可以对数据信息进行发送等一系列的操作了,具体流程图如上图所示:
二、软件实现
本系统所显示的信息主要包括串口的设置信息实时显示。对于数据的采集主要是采用Visual C++6.0中的单线程编程。
串口采集使用VC++中的MSComm编程,MSComm是Microsoft公司提供的简化Windows下的串行通信编程的ActiveX控件。它的主要属性如下:
(a) CommPort属性
void SetCommPort(short nNew Value);short GetCommport();
这是用于设置串口端口号,Windows将会利用该串口和外界通信。在设计时,nNewValue可以设置成1~16的任意数(默认为1)。
(b) Settings属性
void SetSetting (LPSTSTR lpszNewValue);String GetSettings();
这是用于设置并返回数据传输速率、奇偶校验、数据比特、停止比特参数。其设置lpszNewValue用字符串表示,组成格式“BBBB,P,D,S”将分别表示上面所说的四个参数。本实验设置为“9600,N,8,1”,即9600bit/s,8bit数据位,1bit的停止位。
(c)Handshaking属性
设置硬件握手协议,默认值为0,即无握手协议。
(d) InputMode属性
void SetInputMode(long nNewValue);long GetInputMode();
这是用于设置或返回传输数据类型。其中“1”表示二进制方式取回数据;“0”表示文本方式取回数据。
(e) RThreshold属性
void SetRThreshold(short nNew Value);short GetRThreshold;
在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm之前,RThreshold设置并返回要接收的字符数。nNewValue表示要接收的字符数。 (f) InputLen属性
void SetInputLen(long nNewValue);long GetInputLen();
这是用于设置并返回从接收缓冲区读取的字符数。nNewValue表示字符数。
根据前面控件的属性,程序中的主要参数设置如下:
m_com.SetCommPort(1);选择端口
m_com.SetInBufferSize(4096);设置输入缓冲区的大小
m_com.SetOutBufferSize(4096);设置输出缓冲区的大小
if(!m_com.GetPortOpen());打开串口
m_com.SetPortOpen(TRUE);
InputMode(1);设置输入方式为二进制方式;
m_com.SetSettings(“9600,N,8,1”);设置波特率等参数
对于通过出串口获取的数据,每条数据的长度为112个字节,均以$开头,以下是实验室获取的三条实际的串口跟踪数据。
最终会得到如下对话框,可以利用串口连接,用计算机采集雷达数据:
此时即可以实现计算机与雷达通过串口线直连后采集雷达数据,出现此对话框后,点击设置按钮,串口即被成功打开,此时即可以进行雷达数据的发送与采集了,如下图所示,
即为在两台计算机上利用串口发送与接收雷达数据的效果图。
3小结
本课题主要是对数据的传输进行了探讨,本课题研究期间,在雷达数据的提取、传输显示方面作了很多的实践工作。但是由于其他客观条件的限制,系统中还存在着一些不足和需要完善之处,现总结如下:
1)、在船舶的數据管理方面需要建立数据库,通常利用串口采集雷达数据之后通常是分析数据格式之后直接将数据显示出来,这样在某些特殊情况下不方便船舶的管理。可以建立船舶信息数据库,方便的船舶的调度和管理。
2)、实际使用中,VTS系统中的船舶信息量很大,但串口的数据传输速率有限,使得整个系统的更新频率不能满足最初的设计条件,需要研究更适合的数据采集方式。另外,在环境复杂的控制系统中,也就是对实时性要求很高时,串口通信并不能很好的满足实际需求,可能无法满足用户的要求。
参考文献
[1] http://www.host01.com/Print.Html?88179
[2] http://movit.e-motive.com/project/index.htm
[3] 李现勇.Visual C++串口通信技术与工程实践.北京:人民邮电出版社
[4] Andrews,Mark.C++ Windows NT Programming.New York:M&T Books.
[5] http://movit.e-motive.com/project/index.htm
[6] W.Richard Stevens.TCP/IP协议详解 卷1/2/3.