• IIANews微官网
    扫描二维码 进入微官网
    IIANews微信
    扫描二维码 关注微信
    移动客户端
  • English
2025全景工博会
传感器

LabWindows/CVl实现远程虚拟测控技术

  2009年04月26日  

 Lab Windows/CVI为美国NI公司的虚拟测控软件,具有超强的实时数据采集和处理能力,以及丰富的图形界面GUI设计功能.它主要的直接支持硬件设备为NI公司的AD/DA板卡和远程的Field Paints等产品,价格昂贵.这些硬件设备对工业控制中常用的设备,如PLC、变频器及自我开发的微控制器、采集器等设备缺乏有效的兼容,无法满足国内工业控制仪表和测试的现实需要,故其优越的性能还没有在这一领域得到充分发挥.本文通过实践,研讨了基于LabWindows/CVl实现一般设备网络远程虚拟测控方法.从系统性和实用性的角度,较好解决了CVI应用存在问题,丰富了虚拟测控的形式和内容.

 1远程控制的框架结构

  本文采用的是客户端/服务器的网络模式,如图1所示.客户端放置于远端,主要提出控制申请、递交控制参数和观测分析实验结果等.服务器(本地机)放置于最接近现场或对象的地方,实现对现场或对象的数据采集与控制、返回现场的实时录像等.服务器的另一个重要任务是,认证来自客户端的控制申请,根据具体控制项目的不同,服务端可采用灵活的控制方式,有的在计算机PCIISA槽插上数据采集卡对对象实行UDC测控C3),有的则通过串_口通讯(RS232 , RS485 )操纵专门的仪器设备或微控制器对对象实行监督型测控。

 

 2关键技术的研究和开发

 2.1  LabWindowsJCVIMatlab的软接口技术

  为了方便实现各种复杂的算法,服务器端的系统Matlab设于后台,完成控制系统建模和算法计算工作.其他程序如通讯、数据库、数据采集、部分数据处理等用CVI编写,通过对Matlab的调用,获取算法计算结果等数据.CVI1VIatlab的调用关键是数据和命令的交换,即软接口技术.本文采用引擎程序实现软接口。Lab W indowslCV I环境的引擎程序是ANSIC编写的,它通过在程序中调用引擎函数完成与Matlab之间的数据交换和命令传递.其环境建立即创建引擎函数的使用条件,包括建Libeng. lib,,3个静态链接库文件.引擎程序中会使用到的engine函数和mx函数都包括在这些静态库中了.此外,是对engine.h头文件的包含.因为engine.h中不但含有对引擎函数及相关数据类型的定义,还对matrix.h进行了包含.如果缺少了它们,将无法使用Matlab引擎.引擎程序的主体部分如下:

#includeengine.h//包含引擎头文件

                    //其他编译预处理

int main()

{//变量定义及初始化

Engine *ep; //定义引擎指针ep

mxArray * A=NULL, * B=NULL;//定义结构体变量1

double * Breal* Bimag;

double a[10]={0123456789};

char buffer[360];//程序主体,所涉及的函数已经在静态库和engine. h中声明了

if(j (ep=engOpen(NULL)))//引擎调用函数engOpen

{

fprintf(buffer,“\n Cant start Matlab engine!\n");

return EXIT_FAILURE;//不成功返回值EXIT_FAILURE

}

A=mxCreateDoubleMatrix(1, 10, mxREAL);//构造1X10的双精度矩阵

mxSetName(A"A");//矩阵命名,这个名字是在Matlab环境中使用的

memcpy((void *) mxGetPr(A), (void *)a, sizeof(a));//为矩阵的实部赋值,a已定义engPutArray(ep, A) ;//将已定义的变量输人Matlab环境

engEvalString(ep,"Y=3. *sir(A);")//使用Matlab的计算函数求解Y= 3 sin(x)

B=engGetArray(ep, "Y");//Matlab中获得矩阵值,并赋给结构体指针变量BengCloSe(ep);//关闭引擎,对Matlab的调用就此结束

                //下面是对输出矩阵变量的处理

Breal=mxGetPr (B);//获得矩阵实部

Bimag=mxGetPi (B);//获得矩阵虚部

if(Bimag)//计算结果应是实数矩阵,如果虚部不为空,则显示出错

Sprintf(buffer, "Get array wrong!);//释放内存

mxDestroyArray(A);

mxDestroyArray(B);

return 0;}

 2.2 数据通讯技术

 2.2.1 LabWindows/CVI环境下使用TCP/IP协议

 LabWindows/CVITCP库函数提供丁与平台无关的,面向连接的字节流网络通信协议编程接口.与用户接口库目标文件回调函数处理用户接口事件的方法类似,TCP回调函数可以处理3TCP消息,即TCP_CONNECT, TCP_ DISCONNECTTCP_DATA 库函数可以分为服务器函数、客户函数和支持函数.

 2.2.2 LabWindows/CVI环境下使用串口通讯

  许多外设都可以采用RS232/RS485的控制模式控制.变频器的控制就是一个典型例子.2CVI实现变频器控制的结构示意图.LG公司的iG5系列的变频器有其自带的专用驱动程序DriveView,可对变频器各项参数进行调节和控制.但其操作界面刻板,使用形式单一,通过发挥CVI的优势,可以大大扩展其控制的内容和形式.但由于iG5不是NI公司的产品,必须编制另外的通迅控制程序.LabWindows/CVI实现对变频器通迅控制的技术思路是,远程服务器使用CVIRS232串口命令,利用变频器说明书提供的LG专用通讯协议实现对变频器实施控制.客户端通过设定控制参数和Ethernet上的网络摄像机,监控其运行.通讯协议可选择用MODB-US-RTU通讯协议和LG公司专用协议.考虑控制的可靠性和可控内容的多样性,选择LG公司的专用通讯方式.协议主要部分为读请求、写请求和应答回复等.

 

 (1)请求读取.总字节为12 B,如表1所示.

 

 (2)请求写入.总字节为12n*4=44 B(最大值),表1,2中,标记“”是字符,以ENQ为头码,EOT为尾码发送请求。变频器编号是I/048中的设定值,该编号是两位的ASCII-HEX.CMD是表示命令的选项,读的时候为字符“R”,写的时候为字符“W.地址表示要从变频器里面去读或写的数据的地址,用字符型表示.其表示从地址开始的连续几个单元,用字符“1~8”中的一个表示.SUM是校验码.具体计算公式是将ENQSUM之间的所有字符每个转换为十六进制数的形式,然后相加最后取低8位比.

 

 SUM是将来通信中唯一的校验码,是调试程序中主要的标志符号。CVl实现通迅控制的程序可按以下3类来编制.

 (a)与变频器实现通讯的程序,即读请求和写请求程序.

 (b)上位机对收回来的数据进行处理,形成整型数据显示在面板上。

 (C)面板功能函数.通过CVI丰富的GUI函数调用,设计出如图3所示的客户端响应控制界面,其中包含着变频器的常用控制参数的设定,如频率、转向等.通过面板上的网络功能钮,可以单独或统一地设定每台变频器的参数.

 

  另外,采用CVI 6.0。提供的fictive X技术调用网络摄像机的专门监控软件,可实时观察被控电机的运行现状(3中变频器驱动的电机运转清晰可见).由此可见,用CVI软件来实现变频器控制,可以更丰富、更灵活扩展变频器的使用形式和内容,充分体现了CVI的测控领域应用的优势。

 3结束语

  虚拟测控从近距离测控发展到远程测控是必然趋势.虽然LahWindows/CVI对网络通讯提供了很好的库函数支持,但对非我外设的连接、开发和利用方面,仍需用户自主进行设计.本文提供技术和方法在实践中得到了验证.这些技术方法可为拓展LabWindows/CVII业虚拟测控领域的应用,增添新的远程控制形式和内容,提供有力的帮助.

最新视频
75秒,致敬万可连接之路   
重磅加码具身智能!华沿机器人全新发布七轴人形手臂   
福禄克钢铁冶金行业测温解决方案专题
Creo:在更短的时间内交付更好的设计
专题报道
《我们的回答》ABB电气客户故事
《我们的回答》ABB电气客户故事 ABB以电气问题解决专家之志,回答未来之问。讲述与中国用户携手开拓创新、引领行业发展、推动绿色转型的合作故事,共同谱写安全、智慧和可持续的电气化未来。
企业通讯
普罗精工寰宇共生-普罗宇宙全球合作伙伴大会
普罗精工寰宇共生-普罗宇宙全球合作伙伴大会

在具身智能跨越商业化临界点的关键时刻,我们以“普罗精工”为核,让机器人真正胜任复杂多变的工业现场;我们以“寰宇共生”为愿

图尔克电子杂志-202604
图尔克电子杂志-202604

本期杂志将展示数字化与智能自动化解决方案不仅赋能技术,更重要的是服务于人。协助用户将复杂问题化繁为简,提高透明度与效率,

在线会议
热门标签
PCI

社区