System Exec.vi

LabVIEW 的 System Exec.vi 是一个非常常用的系统调用节点,用于在 VI 中执行 外部命令或程序(exe、bat、cmd、python等)

下面是详细讲解与示例:


🧩 一、System Exec.vi 功能说明

路径:

Functions Palette → Connectivity → Libraries & Executables → System Exec.vi

它的作用相当于在命令行里执行一条命令,然后把输出结果和返回码返回给 LabVIEW。


⚙️ 二、输入输出端口详解

端口名方向说明
command line 输入 要执行的命令字符串,例如 "ping 127.0.0.1""notepad.exe"
standard input 输入(可选) 如果命令需要输入,可以通过此端口提供内容
run minimized? 输入 如果为 True,则程序在后台运行(窗口最小化)
wait until completion? 输入 若为 True(默认),LabVIEW 会等待命令执行完再继续执行下一步
time limit (ms) 输入 命令执行超时时间(毫秒)
standard output 输出 命令行的输出字符串(例如 ping 结果)
standard error 输出 命令行的错误输出
exit code 输出 程序返回值(0 表示成功)

🧠 三、基本使用示例

✅ 示例1:打开记事本

 
command line = "notepad.exe"

效果:运行后打开记事本。


✅ 示例2:执行一个批处理文件

 
command line = "cmd /C D:\\Test\\run.bat"

注意路径中要用 \\ 或用引号括起来
例如 "cmd /C \"D:\Test\run.bat\""


✅ 示例3:运行外部程序并获取输出结果

 
command line = "ping 127.0.0.1"

然后把 standard output 输出接到一个 String Indicator,就能看到命令行返回的文本。


✅ 示例4:调用 Python 脚本

 
command line = "python D:\\script\\test.py"

或者如果环境变量没配置:

 
command line = "C:\\Python39\\python.exe D:\\script\\test.py"

🧱 四、进阶技巧

🚀 1. 不等待执行完成(异步执行)

如果不想阻塞 LabVIEW 流程(例如后台运行程序):

  • wait until completion? 设为 False

 
command line = "notepad.exe" wait until completion? = False

⚡ 2. 输出重定向到文件

有时命令输出太长可重定向:

 
command line = "ping 127.0.0.1 > D:\\pinglog.txt"

🧩 3. 调用带空格路径的程序

路径中含空格时必须用引号包起来:

 
command line = "\"C:\\Program Files\\7-Zip\\7z.exe\" x D:\\test.zip"

🧰 五、典型应用场景

应用场景示例
调用外部测试程序 cmd /C RunTest.exe --port COM3
启动测试脚本 python run_test.py
控制系统命令 shutdown /r /t 0
调用第三方工具 ffmpeg -i input.mp4 output.mp3
与 TestStand 协同 由 TestStand 调用 LabVIEW VI,再由 VI 调用外部脚本

🚦 六、错误排查技巧

现象原因解决方法
无输出结果 没连接 standard output 添加字符串显示器
命令执行失败 路径错误或没引号 检查路径、加引号
乱码 中文输出编码问题 可改用 chcp 65001 或写到文件再读
VI 卡死 命令没退出、等待超时 设置超时时间或取消等待

posted on 2025-11-05 14:15  lydstory  阅读(0)  评论(0)    收藏  举报

导航