LXI 仪器中VXI-11协议windows和linux系统实现

完成的目的:提供通过VXI-11协议定义的使用TCP/IP网络实现上位机-仪器间的通信,发现仪器并可以程控仪器。

主要功能包括:

1)仪器的查找与识别功能

基于RPC技术的VXI-11协议,实现仪器的查找与识别的功能主要包括在仪器内部实现一个RPC服务器,用户上位机作为RPC客户端,在子网上广播RPC呼叫,仪器接收到RPC消息时,通过RPC服务器给出响应并提供相应的RPC服务。

   完成的程序包括端口映射程序和VXI-11服务器程序开发两部份内容。具体需实现的功能包括:在进行仪器发现时,客户端需向网络端口映射器程序发送广播RPC数据包,在该广播RPC数据包中应包含为VXI-11协议分配的核心服务程序号,此时端口映射程序也应接收仪器应用程序发送的RPC数据包,该RPC数据包中应包含仪器应用程序端口地址,之后客户端程序就会与仪器应用程序所在网络端口建立连接,从而完成设备发现过程。同时具备允许终止通道终止核心通道上活动的能力以及从仪器端向上位机发送中断请求的消息。

2) 控制仪器功能

VXI-11协议中规定了三个通道来完成对仪器的控制,由于VXI-11协议底层使用RPC协议,为保持RPC协议功能的独立性,已经将RPC协议功能单独封装成库,包括RPC协议定义的远程过程的格式、参数的格式以及被调用过程返回给调用者的结果的格式等,以与VXI-11协议层规定的实现三个通道的17个网络消息相隔离,便于日后RPC协议库的单独使用,具体包括连接管理、并发控制、读写数据、同步控制等功能。

通过调用符合VXI-11协议的函数,建立连接后,可以向仪器发送SCPI命令或其他非标准命令,同时也可以调用其他函数在上位机接收从仪器端发来的信息,在完成对仪器的操作后再释放该连接,同时该控制功能也应支持大数据传输(1GB字节及以上)。

使用VS软件完成了所有功能的测试,已经在实际仪器中使用。

征求项目合作开发qq 158534731

1.项目简介

本项目完成了VXI-11协议的开发并实现对网络仪器的控制,应用于所有基于LAN的测试设备。软件由VXI-11中转程序、VXI-11应用服务程序以及网络仪器控制网页三部分组成。VXI-11中转程序本身既是服务器也是客户端,起到连接客户端程序与应用服务程序的作用,VXI-11应用服务程序根据客户端发送过来的请求对该请求进行解析处理并将解析结果返回给中转程序。VXI-11中转程序与VXI-11应用服务程序起到服务器端的作用。网络仪器控制网页起到客户端的作用,可以根据用户需要向远程服务器端发起远程调用请求,开始远程过程调用。用户除了可以通过本项目开发网页对仪器进行控制外,还可以选择一些第三方软件对仪器进行控制,例如NI虚拟仪器控制和安捷伦IO Connection Expert。软件最终形态为可执行程序和动态库。此外,ONCRPC库和Portmap端口映射程序是VXI-11服务启动的基础,是本项目重要的依赖项。软件的整体框架如下图所示:

LXI 仪器中VXI-11协议windows和linux系统实现_第1张图片

VXI-11协议定义了三个通道:核心通道(Core  Channel)、中止通道(Abort  Channel)和中断通道(Interrupt Channel)。核心通道定义了15个函数,通过这15个函数完成对仪器网络控制的大部分控制任务;中止通道定义了1个函数,用于仪器控制端对仪器优先级较高或紧急的控制任务;中断通道定义了1个函数,用于仪器向控制器反馈信息。所有三个通道函数的调用方式均采用RPC方式进行调用。

VXI-11协议所有函数说明如下表1所示

表1  VXI-11协议函数及通道说明

函数名称

所属通道

功能

创建链接

核心通道

创建一个客户端到服务器端的链接

销毁链接

销毁一个链接

写入设备

向设备写入数据

读取设备

读取设备数据

读取状态字

读取设备状态字

设备触发

向设备发送一个触发信号

设备清除

向设备发送一个清除信号

远程状态

将设备设置为远程状态

本地状态

将设备设置为本地状态

设备锁定

获取当前设备的锁定权

设备解锁

释放当前设备的锁定权

创建中断通道

创建中断通道

销毁中断通道

销毁中断通道

使能中断请求

使中断请求有效或无效

执行命令

执行一系列命令

过程中止

中止通道

中止一个远程调用过程

中断请求

中断通道

发送一个中断请求

 

2. 项目优势

现在大部分网络仪器控制的项目使用的都是socket,而本项目使用的是RPC(Remote Procedure Call,远程过程调用)。RPC相比socket具有更好的效果,它自带负载均衡策略,性能消耗低,传输效率高,服务治理方便,能提升系统可扩展性、可维护性和持续交付能力。此外,各自模块各自业务隔离开来,满足面向对象思维,各自封装各自的业务逻辑,不会因为不熟悉业务的人的修改而导致系统崩溃。

如果拿RPC与Socket的做类比,可以用以下例子来描述: 
    两个老板手下各有一个负责接通MSN的秘书。这两个秘书就是基于RPC协议建立的会话层通信。基于Socket的通信,需要老板会使用MSN,这样老板需要事先培训一下MSN的简单使用常识。而基于RPC的通信,老板不需要知道怎么使用MSN,只要告诉秘书,秘书就会通过MSN与对方建立会话请求和响应。

此外,本项目提供网页浏览器接口,设计了具有控制功能的网页,即借助一般的网页浏览器即可实现控制仪器。同时该服务器应简单易用,实现基于网页的仪器固件升级。

通过网页控制仪器时,网页可以显示当前仪器的一些基本信息,比如仪器名、ID等等,并且允许用户通过按钮实现对仪器的基本控制,具体功能如下表2所示。

表2  网页功能描述

功能

功能描述

网页基本功能

显示仪器基本信息,包括仪器名、ID等;对仪器进行控制,包括写入设备、读取设备、读取设备状态字等

安全验证

对使用网页的用户进行身份认证,即需要输入账号和密码

定时任务

在约定的时间点执行相应的任务

网页自适应

网页可以自动识别屏幕宽度,并做出相应的调整

跨平台通信

网页可以进行跨平台之间的控制

 

 

 

你可能感兴趣的:(LXI 仪器中VXI-11协议windows和linux系统实现)