You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LabVIEW新手求助:基于TCP与QMH控制TTI电源的实现疑问

LabVIEW QMH架构下TTI电源TCP控制解决方案

一、QMH消息循环与TCP通信的结合实现

针对你已有的Case分支,逐个对应TCP操作:

  • Init分支:除初始化控件值,新增TCP连接引用的初始化(设为无效引用),存入QMH移位寄存器,同时初始化错误簇为无错误状态。
  • Open Connection分支:调用TCP Open Connection函数,填入TTI电源的IP地址和对应端口(参考手册,常见为5025),将返回的连接引用更新到移位寄存器。添加错误处理:若连接失败,弹窗提示并终止后续通信操作。
  • Set Values分支:从前面板获取用户输入的电压、电流值,按照TTI的SCPI命令格式拼接字符串,例如设置通道1电压用VOLTage1 <输入电压值>\n,电流用CURRent1 <输入电流值>\n。调用TCP Write函数发送命令,注意末尾必须加换行符(\n或\r\n,以电源手册要求为准)。发送完成后,向消息队列插入Measure/Display消息,触发实时采集显示。
  • Output分支:发送SCPI开启输出命令,例如OUTPut1 ON\n,通过TCP Write发送至电源,确认通道1输出开启。
  • Stop分支:先发送OUTPut1 OFF\n关闭电源输出,再调用TCP Close Connection关闭TCP连接,最后停止QMH循环,释放所有资源。

二、疑问解答

1. 每200ms采集并显示电压电流

在Measure/Display分支中实现:

  1. 发送查询命令:依次发送MEASure:VOLTage1?\n和MEASure:CURRent1?\n,分别查询通道1的电压和电流。
  2. 读取响应:调用TCP Read函数读取电源返回的字符串,设置合理的超时时间(如1000ms)。
  3. 解析并显示:将读取到的字符串转换为数值后赋值给显示控件(具体解析方法见下一小节)。
  4. 循环触发:添加Wait (ms)函数设置200ms延迟,然后向消息队列再次插入Measure/Display消息,实现周期性采集。

注意:移位寄存器需持续传递TCP连接引用和错误状态,若检测到通信错误,立即停止循环触发。

2. TCP响应解析

TTI电源返回的响应为ASCII格式字符串,处理步骤如下:

  • 清理字符串:用Trim Whitespace函数去除字符串中的换行符、空格等冗余字符。
  • 转换数值:调用String to Number函数将清理后的字符串转换为数值型数据,直接赋值给显示控件。
  • 多参数处理:若命令返回多个参数(如部分批量查询命令),使用Split String函数按分隔符(通常为逗号)拆分字符串,再分别转换为数值。
  • 错误处理:若TCP Read超时或返回异常字符串,标记通信错误并提示用户。

三、关键注意事项

  • 所有TCP操作必须串联错误簇,通过QMH移位寄存器传递错误状态,一旦出现错误立即终止后续通信操作。
  • 严格遵循TTI电源的SCPI命令规范,不同型号的命令可能存在差异,务必对照官方手册调整命令格式。
  • 避免使用全局变量传递TCP连接引用和关键数据,全部通过QMH的移位寄存器进行传递,保证程序稳定性。

内容的提问来源于stack exchange,提问作者Aldocest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 00:50:08