主页
技术支持
在数据采集过程中自动重新连接以太网DAQ
在数据采集过程中自动重新连接以太网DAQ
更新 Sep 29, 2023
环境
环境显示经过验证可用于本文描述的解决方案的产品。此解决方案也可能适用于其他类似产品或应用程序。
硬件
cDAQ-9191
NI-9232
软件
LabVIEW
程式语言
C# .NET
我买了cDAQ 9191和NI 9232连续运行一个数据采集任务(超过1小时)。但是,cDAQ 系统由于未知原因停止了数据采集。有没有办法自动重新连接cDAQ?
策略
在每次获取数据之前预留机箱 (cDAQ 9191)。
如果 cDAQ 机箱失去连接,程序编码只是返回错误,但不会停止数据采集。
方法 1 在 NI MAX 中预留机箱
您可以在 NI MAX 中点击“Reserve Chassis”来预留 cDAQ 9191。
方法二:在LabVIEW中预留机箱
以下组件是遇到未知问题后重新连接机箱的主要因素:
外部 While 循环
即使保留设备失败,也能保持 VI 运行。
DAQmx 备用网络设备
储备 cDAQ 9191
条件结构
错误条件
必须将
FALSE
常量链接到外部 While 循环条件接线端
无错误条件
DAQ-Data Acquisition VI 必须放置在内部 While 循环中。
必须
在 NI MAX 中为 NI-DAQmx 设备创建任务
,如果使用 DAQmx 创建通道方法,内部 While 循环将每轮创建任务。
方法 3 用 C# 编程语言预留机箱
**NI提供其他编程语言示例API,通常在驱动程序中提供(例如:NI-DAQmx驱动程序)。在本文中,选择 C# 作为示例编程语言。 C# 编程资源可以参考链接
.NET Resources for NI Hardware and Software - NI
。
确保在发生错误时不会停止 C# 代码。
不幸的是,C# 是非 NI 编程语言,我们无法提供这部分的详细信息。
预留机箱代码:
DaqSystem.Local.AddNetworkDevice("
IPv4地址
","
机箱名称
",
超时
);
DaqSystem.Local.LoadDevice("
机箱名称
").ReserveNetworkDevice();
数据采集代码部分下增加了Reserve Chassis 代码。
方法二:在LabVIEW中预留机箱
方法 3 用 C# 编程语言预留机箱
private void startButton_Click(object sender, System.EventArgs e)
{
if (runningTask == null)
{
DaqSystem.Local.AddNetworkDevice("10.10.10.3","cDAQ9191-16E500C",10);
DaqSystem.Local.LoadDevice("cDAQ9191-16E500C").ReserveNetworkDevice();
相关链接
cDAQ Reserved by Another Host in NI MAX - National Instruments
How Do I Reserve an Ethernet Based cDAQ Chassis from LabVIEW? - National Instruments (ni.com)
Ethernet cDAQ Chassis Disconnects or Loses Connection While Acquiring Data - National Instruments (ni.com)
其他支持选项
询问NI社区
在我们的论坛中与其他用户协作
搜索NI社区以寻求解决方案
请求工程师的支持
可能需要有效的服务协议或有效的软件订阅,同时支持选项因国家/地区而异
打开服务请求
了解软件订阅和服务
了解硬件服务计划
Was this information helpful?
Helpful
Not Helpful