• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 以太网技术在继电器可靠性检测系统中的应用

以太网技术在继电器可靠性检测系统中的应用

录入:edatop.com     点击:

3.2 通信的实现

系统通信采用客户机/服务器模式,利用VC的微软基础类(MFC)进行网络开发,MFC提供了两种类型描述Windows Socket,分别是CAsynSocket和CSocket。其中CAsynSocket类封装了Windows Sockets API,并将与Socket有关的Windows消息转换为回调函数。CAsynSocket处于网络更底层,其使用就更具灵活性,相应要求编程者应熟悉网络底层细节。而CSocket类是CAsynSocket类的派生类,通过MFC中的CArchive类的对象提供了更高层次的抽象,它封装了Socket实现中的许多细节。这里我们采用CAsynSocket类实现系统中"一对多"的数据发送,通过在服务器中建立Winsock空间数组的方式来解决[7]。

首先,构造CAsyncSocket类型的对象,然后利用该对象创建内嵌的Socket句柄。例如:

CAsyncSocket m_listen;

m_listen.Create(nPort);//服务器指定端口

若是客户端,需要用CAsyncSocket::Connect()函数连接服务器端的套接字。

其次,若是服务器端的套接字,创建完成就可以侦听端口,以便接收试图连接到此端口的客户端的套接字。接收了一个连接请求后就可以进行口令验证或直接建立连接等工作。服务器侦听的函数是CAsyncSocket::Listen(),接收客户端套接字的函数是CAsyncSocket::Accept()。

继而采用CAsyncSocket类的成员函数进行数据的收发。发送的函数是CAsyncSocket::send(),接收的函数是CAsyncSocket::Receive()。

最后,通信结束后,通过CAsyncSocket::Close()函数销毁对象。服务器与检测装置的通讯流程见图3。

图 3 服务器与检测装置通信流程图

CAsyncSocket类对网络回调函数做了较好的封装。当有连接请求时,服务器端的套接字就会收到OnAccept消息,此消息触发网络回调函数OnAccept();当服务器接收了连接后,客户端的套接字就会收到OnConnect消息,此消息触发网络回调函数OnConnect();当有数据传来时,套接字会收到OnReceive消息,此消息触发网络回调函数OnReceive()。程序员也可以在CAsyncSocket类的派生类中重载以上回调函数,实现特定的功能。

3.3 数据传输及服务器功能

服务器与检测装置在不同的状态下需要传输大量的数据,数据所代表的含义也各不相同,例如服务器通过以太网对检测装置的操作:简单的有开始试验、暂停试验等,复杂的有设置检测装置工作参数、对号设置、读取失效信息等。因此需要对服务器和检测装置传输的数据进行严格的定义,这里采取:

Command+Length+Content

Command:通信命令号,Length:文本字节长度,Content:文本字节内容。

如果传输内容为简单的控制数据,则文本字节长度和文本字节内容都为零,否则应按具体的通信内容进行添加。

服务器内部配置一预先定义的超时时间间隔,这个时间要足够长,以使检测装置能够作出正常的反应,超时事件将触发服务器来处理错误。

服务器操作界面的菜单项和检测装置基本一致,在文本显示区显示所有建立连接的检测装置的试验状态和数据。建立连接后,通过服务器对检测装置进行操作和在现场直接操作检测装置的效果是一样的。

4、实验验证

为了验证本方案的可行性,整个检测系统在宏发公司进行了长期的运行,通过网络监视软件的分析,数据传输的误码率极低,在同一局域网内数据传输的往返时间大部分集中在100ms以内,达到了传输时间的要求,网络传输中断的情况基本没有出现。

因此,本文所提出的基于以太网的继电器可靠性检测系统的通信方案,实时性较好,可靠性较高,能够实现服务器对现场设备的实时数据采集与监控的功能,是切实可行的。且其开放性、可操作性也较高能够适用于很多数据采集与监控场合。

作者:杨彬、李志刚、冯勇、王双存 天津天仪集团   来源:仪器仪表学报

上一篇:基于ASP.NET的B2C在线支付接口设计
下一篇:HDLC协议芯片PT7A6525及其在交换机中的应用

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图