重新启动电脑后,在MAX中出现只能识别到机箱但未识别到模块的问题
硬件: CompactDAQ>>Backplanes>>cDAQ-9188XT
问题:
目前在局域网中已连接两台CDAQ-9188XT,发现只要重新启动电脑,在MAX中只能识别到机箱,对于机箱下的模块会显示不存在的状态,实际这些模块都是存在于机箱中的,必须点击机箱自检才可以通过。由于客户目前是在产线使用,想省去这一步操作,问是否有其他方法来避免手动自检?

解答: 一般这种情况会有以下原因引起:1. IP静态(or 动态)设置导致链路不稳定;2. 由于电脑在重新启动时,会分配一定的时间去处理来自其他应用服务的请求,这种情况下,会引起NI Device Loader与NI Configuration Manager Services的超时,所以不能正确加载一些启动项;这些都会导致以上问题的发生。
目前的解决方案有两个:
1. 配置CDAQ IP
a. 如果目前是将CDAQ与PC直连,建议将CDAQ IP设置成为静态IP地址,同时将PC端的IP设置为IP 自动获取,此时经过试验发现,并未出现之前的问题;
注意:不推荐将CDAQ的IP 地址设置为动态,此时无论PC端的IP地址如何设置,均会出现上述问题;
b. 如果目前是将CDAQ接入局域网内,发现无论IP 地址如何设置,依然也会出现识别不到模块的情况,此时建议利用软件编程的方法进行处理;
2. 软件编程
a. 可以利用DAQmx数据采集自检设备API 来实现,具体可以在程序框图中测量I/OàDAQmx-数据采集àDAQmx设备配置àDAQmx自检设备找到,具体的使用信息可以参见及时帮助;

图1 自检设备API 查找路径

图2 DAQmx 自检设备及时帮助
当设备输入接入相应机箱名称时,即可以完成机箱的自检。若目前检测到设备断开连接,会收到-88705的错误代码,若查找不到设备,会收到-200220的错误代码。
但需要注意的是:此时会根据接入的设备名称对相应设备进行自检,并不会对系统当中的所有设备进行自检,这一点在使用的时候多加注意。
如果想查询特定机箱下的板卡信息,可以选择DAQmx设备属性节点,ActiveDev接入机箱名称,Chassis.ModuleDevNames即可显示所属板卡信息。

但需注意的是:此时如果是已经经过机箱自检,此时只会显示目前存在的卡名,并不会显示故障卡名。
以下是我依据客户需求,简单做的对于相应机箱包括机箱所述模块的检测,若检测到卡名不匹配,会将错误结果返回;

图3 显示结果与MAX存在硬件对比
.png)
图4 程序框图展示(DAQmx自检设备API)
b. 可以利用系统硬件自检API 来实现,具体可以在程序框图中系统配置à硬件管理à自检找到,具体的使用信息可以参见及时帮助;

图5 系统硬件自检API查找路径

图6 系统硬件自检API及时帮助
注意:此API可以配合以下的API(初始化会话,创建过滤器,查找硬件)使用,可以实现对系统中存在的硬件统一进行检测,可以根据自己的要求选择合适的方法进行使用。

以下程序主要实现对于系统存在硬件的检测。

图8 显示结果展示(显示包括硬件别名及产品类型)
.png)
图9 程序框图展示(系统硬件自检API)
相关链接:
https://forums.ni.com/t5/Multifunction-DAQ/cDAQ-automatic-module-detection/td-p/3152461
附件:
Identify Chassis(DAQmx).vi
Self-test(System).vi
报告日期: 08/31/2017
最近更新: 09/28/2017
文档编号: 7OU2NKCD
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.