网络化仪器仪表协议客户端设计与实现


  摘 要: 提出如何通过实现网络化仪器仪表间的通信来完成仪器间协同工作,从而最大程度地发挥网络化仪器测量系统的效率。为了实现网络化仪器间的通信,需将HiSLIP协议、虚拟仪器设计技术与网络化测控系统相结合,并利用HiSLIP协议的可靠连接以及高效数据传输特点,设计网络化仪器间的通信,从而给出协议客户端设计与实现。
  关键词: 网络化仪器; HiSLIP协议; 通信; 网络化测控系统
  中图分类号: TN911?34; TP312 文献标识码: A 文章编号: 1004?373X(2015)18?0122?03
  Abstract: The way how to realize collaborative work of instruments by communication among the networked instruments is proposed to bring the efficiency of measurement system into play for networked instruments to the maximum extent. To achieve communication among networked instruments, it is necessary to combine the networked measurement and control system with HiSLIP protocol, design technology of virtual instrument, and design the communicationn among the networked instruments by utilizing the characteristics of reliable connection and high?efficiency data transmission of the HiSLIP protocol. The design and implementation of protocol client?side are presented.
  Keywords: networked equipment; HiSLIP protocol; communication; networked measurement and control system
  0 引 言
  随着网络技术的广泛应用,仪器仪表已开始向计算机化、网络化、智能化方向发展,仪器网络化的发展趋势,使得其已经不再是孤立的、单独的设备,而是将测试技术、互联网技术、计算机技术结合在一起的网络仪器系统。但网络化仪器间难以进行协同工作,进而限制测量系统测量效率。为了实现网络化仪器间的通信,本文将HiSLIP协议、虚拟仪器设计技术与网络化测控系统相结合,利用HiSLIP协议的可靠连接以及高效数据传输特点,设计网络化仪器间的通信原理,并给出了协议客户端设计与实现。
  仪器代理作为网络管理结构中的核心实体,存在于被管理的网络设备中,用来访问设备的运行状态,对设备参数进行配置,是被管设备与管理中心交互的中间接口。
  HiSLIP协议客户端的功能主要划分为4部分:协议启动和前期准备;与服务器端建立连接;与服务器端的数据交互;容错处理.。客户端与服务器端的交互种类分为14类,通过这14类交互,完整实现协议所需要的功能,在进行交互说明时以“<消息类型> <控制码>
  <消息参数> <数据长度> <数据>”的格式来表示消息。
  1 协议启动
  在控制端应用程序启动时,协议的客户端即开始启动,在启动过程中,向操作系统申请Socket套接字资源[1?2]。并进行端口绑定,协议规范中建议使用4880端口。对4880端口绑定完成后,即可向由VISA提供的仪器端的网络代理IP地址发起连接。
  2 建立连接
  HiSLIP协议连接的建立使用的是TCP机制,由客户端向服务器端发起2次TCP连接,分别是该协议的同步通道连接和异步通道连接。在建立好2个TCP连接之后,还需要检查服务器端仪器上加锁的情况,相互协商交互信息时的消息尺寸。为后续的数据和控制信息的交互提供服务。
  2.1 建立连接使用到的消息类型序列
  (1) 由客户端发起第1个TCP连接;
  (2) 使用消息类型Initialize 进行同步通道连接初始化;在该消息中包含的数据有客户端协议版本;客户端厂商ID;子地址。消息格式为: <0>
  (3) 发起第2个TCP连接;
  (4) 使用消息类型AsyncInitialize 进行异步通道连接初始化,在该消息中包含由应用软件推送的SessionID(会话号)。格式为: <0> <0>。
  2.2 对远端仪器进行锁操作的消息类型序列
  (1) 首先通过AsyncLockInfo消息类型,来向远端服务器请求当前仪器资源上锁的情况,有服务器返回是否已经加锁、锁的类型以及锁的数目等消息。格式为:
   <0> <0> <0>。
  (2) 在查询后确认可以对远端仪器加锁时,使用消息类型AsyncLock来实现对远端仪器资源加锁和释放锁。在该消息中包含的数据有,请求加锁标志位和请求释放锁标志,等待加锁超时时间,锁信息描述等。加锁消息的格式为: <1=request>