远程仪器操控

上传人:pu****.1 文档编号:562087755 上传时间:2023-07-27 格式:DOCX 页数:21 大小:1.18MB
返回 下载 相关 举报
远程仪器操控_第1页
第1页 / 共21页
远程仪器操控_第2页
第2页 / 共21页
远程仪器操控_第3页
第3页 / 共21页
远程仪器操控_第4页
第4页 / 共21页
远程仪器操控_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《远程仪器操控》由会员分享,可在线阅读,更多相关《远程仪器操控(21页珍藏版)》请在金锄头文库上搜索。

1、第五篇 远程仪器操控在学习完TCP通信和仪器控制后,将两者结合起来即可实现仪器的远程操控了。 将客户端设置为指令输入端,当服务器与客户端成功连接后,服务器接收到客户端 的信息,并将此执行指令输入VISA,实现仪器的操控。下面举2个远程操控仪器的 例子帮助理解。例 1 远程操控发光二级管的亮与灭要求:当客户端写入“0”指令时,实现开灯操作;当客户端写入“1”时, 关灯。分析:设计思路如图5-1.建立连接服务器客户端写入指令读取指令通过VISA得到反馈,完成操作; 关闭与服务器的连接将指令写入串口,依靠单片机完成指令图 5-1 设计流程图服务器的程序设计:分析:服务器端要实现接收TCP信息(指令)

2、和向VISA写入信息的过程,且为了避 免连续发送同一指令给VISA浪费空间,可以将程序设计为2个模块,其一用于接收 TCP指令,另一个模块用于向VISA发送指令,且该部分要承担判断指令是否与灯的 当前状态一致的责任。例如,客户端向服务器写入“0”指令,即开灯指令,如果当 前灯已经是亮的状态“0”,那便不必向VISA写入该指令,反之则要写入VISA将 灯打开。所以,只有当接收到的指令与灯的状态不一致时服务器才向VISA写入指令, 操控单片机改变灯的状态。为实现上述功能可将指令接收模块放在平铺式顺序结构 内以便区分;写入VISA模块则放入条件选择结构中,当指令与灯的状态一致时(true) 不写入,

3、当指令与灯的状态不一致时(false,时执行写入。该判断需借助移位寄存器 和反馈节点才能实现。1、新建一个VI,命名为“远程操控服务器vi”打开该VI的程序框图,按照常规添加 While循环函数。同时,为了实现读取TCP指令和对串口的操作,可添加一个平铺 式顺序结构函数和一个条件选择结构函数(具体功能稍后介绍,。这些函数都放在函 数选板下的Express/执行程序控制子选板中。具体如图5-2所示。时间延迟图 5-2H函数Q搜索Express卜While循环此处首次接触平铺式顺序结构和条件结构,可将鼠标移至相应函数,选择即时 帮助中的“详细帮助信息”获取更多相关介绍。平铺式顺序结构包括一于或哆平

4、顺序执行的子程序框閣或帧-平領式顺序结构可确保子程序框圉按一 定顺序执行-平铺式顺序结构的数据疣不同于苴它结构的数据疣-平铺式顺序结构的帧当所有连接 至帧的数据都可用时,按照从左至右的顺序执行-毎帧执行完毕后会将数据至倍递至 下一帧O这意味着某于帧的输入可能取决于另一于帧的输出O放置在程序框图上 在函数选板中定位与层叠式顺序结构不同,在平铺式顺序结构中无需使用顺序局部变量来传递帧与帧之 间的数据-平铺式顺序结构在程序框图上显示毎平帧,故无需使用顺序局部变量即可 完成帧与帧之间的连线,同时也不会把代码隠赫起来口在平铺式顺序结构中蕊加或删除换时,结构会自动调整尺寸犬小- 右键单击平铺式顺序结构,在

5、快捷菜单中选挥替换为层靈式顾序,可将平铺式顺序 结构转换为层叠式顺序结构口不可在平铺式顺序结构的各个帧之间拖曳隧道-条件结构包括一亍或容平子程序框圉或分支,当结构执行时,仅有一亍子程序框图或分支在 执行。连接至选择器接线端的值可以是布尔、字符串、整数,或枚举类型,它决定了 执行哪个分支-右键单击结构边框,可忝加或删除分支-UE可使用标签工具来输入条 件选择器标签的值,并配置毎于分支处理的值。-I放置在程序框閣上-I在函数选板中定位单击选挥器标签中的递減和递増箭头可滚动浏览已有的条件分支-创連条件结构后,可添加、复制、重排或删除子程序框图-对于毎平分支”使用标签 工具在调节结构上方的条件选择器掠

6、釀中馭一于值、值列表或值范围-可为条件结构创建窖于输入输出隧道并指定一于默认条件分支-2、为实现向串口写入操控指令,则需添加“VISA配置”函数、“VISA写入”函数和 “关闭VISA”函数。其中“VISA配置”函数和“关闭VISA”函数放在循环外。VISA 函数放在函数选板下的仪器I/O /串口子选板下。详见图5-3。W5JI5EF:IAL|七函数仗器I/O褊程 iRiJBi/o视觉与运动数学信号处理 数据通信 互连接口 控制设计与图 5-3仪器驰动程序3、为实现从TCP读取指令,则需在While循环内添加“TCP侦听”、“读取TCP数据” 和关“闭TCP”函数。在TCP通信学习中介绍过,T

7、CP侦听函数一般放在While循 环外,因此此处应再添加一个While函数。TCP函数放在函数选板的数据通信/协议 /TCP协议子选板下。因为是先读取TCP数据再将此信息写入VISA,考虑到这一需 求将“读取TCP数据”函数放入平铺式顺序结构中。具体见图5-4。U75J_I SEFilAL|全局变量信号操作打开TCF连接IF地址至字.字符串至IF.解释机器别名创建TCFf贞听器等待TUFf贞听器附加工具包 收藏 用户库 选择VI.图 5-4盟函数0索編程卜测 Bi/o役器时0卜观觉与运动卜数学信号处理数据通信互连接口 控制设计与仿真4、考虑到要判断指令与当前灯的状态值是否相同,故应在循环内添加

8、移位寄存器。移 位寄存器用来实现读取将前、后状态值,添加比较函数“等于?”以便比较输入的 指令与灯的当前状态是否一致(true),如果一致(false)则不改变灯的状态,如果不一 致则向 VISA 写入指令改变灯的状态。这一比较结果的反馈需反馈节点函数才能实 现,该函数放在函数选板下的编程/结构子选板中;将鼠标移至循环框边上单击鼠标 右键选择“添加移位寄存器”即可创建移位寄存器;比较函数“等于?”放在函数 选板下Express/算术与比较/比较子选板下。同时,将条件选择结构改为“假”,将“VISA 写入”函数放入其中。这一操作即可实现当指令与灯的状态不同时(比较结果为 false),通过VIS

9、A写入函数向单片机发送指令。具体参见图5-5。iISERIAL“假”时执行VISA写入假卄严1LS&SSSS!:1H结构反馈节点Foi循环显示项帮助范例说明和提示.设置斷点结构选板y自动扩展?替换为FoHJf环 替换为定时循环 删除WhiX循环While循环事件结构定时结构结构忝加移位寄存器条件结构平铺式顺序层叠式顺序MatbiScript.程序框图禁共享变量条件禁用结构|1_口苗口局部变量公式节点IGLDBI全局变量应用程序控樹图 5-55、完成相关函数的输入控件的配置。在 VISA 资源配置函数的相应接线口创建 VISA 资源名称、波特率输入控件。在TCP侦听函数的相应接线口创建端口输入控

10、件。控 件的创建只需在相应接线口单击鼠标右键,选择“创建/输入控件”即可实现。由于 TCP函数只能接收字符串,因此应在写入TCP数据前添加一类型转换函数,此函数 在函数选板下编程/数值/数据操作子选板下。最后,在关闭VISA函数后添加简易错 误处理函数,单击鼠标右键在对话框与用户界面子选项中选择“简易错误处理”即 可。完成后,如图 5-6 所示。.VISA .资源名图 5-66、完成连线。具体参见图 5-7。注意:A、错误输出端从VISA函数到TCP函数首尾串接,以实现错误信息统一输出。B、使移位寄存器右端连接数据,保证数据流的方向是从TCP至VISA,让当前指令与灯的状态进行比较。比较后的结

11、果通过反馈节点连接至条件选择结构的选择器“?”。假停止遊特率(9601:1:1停止wsa-SERIALBBOCBl图 5-7-riipl I | |ri;jri-ik 1;皿丨I按名称解除按名称捆綁E1解除捆绑捆绑创逹探针自定殳探针 设置斷点I图 5-8 “按名称捆绑”与或“函数”E)旦与或异或E与非或非同或7、完善。细心的同学会注意到此程序有两个停止按键,此外,通信过程出现的错误信息也 未能起到终止循环的作用,使得操作比较繁琐也难以理解,故可将这两个开关与错误信息进 行整合。即将错误输出信息捆绑,与开关通过“或”逻辑函数输入While循环的判断端。“按 名称解除捆绑”在函数选板下编程/簇、类

12、与变体选板下的子选板中。“或”函数在函数选板 下Express/算术与比较/布尔子选板下。如图5-8所示。I U H=ll U=I .m ! r-按名称解除捆绑簇、类与变体选板添加完成后,将错误输出端连接至“按名称捆绑”函数,再接入“或”函数,从内循 环的循环控制端引出一根接线连至“或”函数,这样,就完成了整个循环的统一控制。到此 设计完成,具体如图5-9。远程操控服务器程序框图条件结构函数为“假”:假port| U16 |波特率(9600)远程操控服务器程序框图条件结构函数为“真”:rwsaSERIALVI即再源名| I/LWSA资源名波特率i:9600:i图 5-9 完成后的服务器程序框图

13、客户端程序设计:分析:与服务器相比较,客户端的程序相对简单,只需向服务器发送指令即可。1、创建一个新VI,命名为“远程操控客户端vi”打开该VI的程序框图,添加Whlie 循环函数,在循环外添加“打开TCP” “关闭TCP”函数,在循环内添加2个“写 入TCP数据”函数。相关函数出去前面以讲过,此处不再累述。2、在打开 TCP 函数的相应接线端创建地址输入控件和远程端口输入控件,将鼠标移 至相应接线端单击鼠标右键在选板下选择“创建/输入控件”即可。在关闭TCP函 数后创建简易错误处理函数,创建方法同上。要实现指令的输入,因此需添加指令输入控件。在写入 TCP 函数数据接线口单击鼠标右键,选择“

14、创建/输入控件”并 将其重命名为“输入指令”。完成后如图 5-10 所示。图 5-103、完成连线。注意:TCP函数只接收字符类型数据,且TCP通信时应先写入数据包的长度,再发送数据 包,因而应添加“字符串长度”函数来读取指令的长度。该函数在函数选板下的编程/字符 串子选板中。为使客户端发送的指令及时送达服务器,又不至于数据溢出,故在循环条件内 添加时间等待函数,设置等待时间为100ms。时间等待函数在函数选板下的编程/定时子选 板下。具体如图 5-11。15函数截取字符串搜索替换字.匹配模式編程测量:加 仪器工加 视觉与运动5-11 字符串长度函数-tl函数iftfii/o仪器视觉与运动信号处理数据逋信互连接口5-11 时间等待函数完成后的客户端程序如图5-12 所示。Error1 ?!,地址远程端口Foolh 输入指缓ILajI削醪图 5-12运行程序检测结果,完成设计。例 2 远程操控电容器、电感箱与电阻箱电路元件型号为:“X10000 ”的电阻箱、“X1000 ”的电阻箱、“X0.1UF”的电 容器、“X0.1H”的电感箱分析:要实现远程操控电阻、电感及电容,则应把电阻、电感、电容置于服务 器端,当客户端与服务器建立连接

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号