问题背景:
如果改成打开TCP来连接仪表,只要支持网口的设备,应该都可以获得有效连接。这样就摆脱了NI MAX。
但是,官方驱动(很庞大的Vi群,上万的Vi)都是VISA接口。
而仅重写一个常用的Read Y Trace Vi (改为TCP接口)有时要重写几十个子Vi(多态)。
因此才有这样的问题。
问题背景:
如果改成打开TCP来连接仪表,只要支持网口的设备,应该都可以获得有效连接。这样就摆脱了NI MAX。
但是,官方驱动(很庞大的Vi群,上万的Vi)都是VISA接口。
而仅重写一个常用的Read Y Trace Vi (改为TCP接口)有时要重写几十个子Vi(多态)。
因此才有这样的问题。
6
举报
-
王志博:
NIMAX无法单独安装,只要你安装VISA,daqmx等任一驱动就会有NIMAX,你是想摆脱VISA还是MAX,MAX在大部分编程里并没有什么用呀
-
荣琪
回复
王志博:
VISA是肯定要装了。但好像必须有NI MAX才能自动识别出某些设备(VISA资源名句柄)。
我尝试过生成安装包时将NI MAX打包进去,但原理还是附带一个LabVIEW的安装包,感觉和安装LabVIEW没区别,因此想摆脱 NI MAX。
-
荣琪
回复
王志博:
根据前辈的经验,就算有NI MAX有些设备可能也识别不到(有些国产的),即VISA句柄识别不到。因此考虑主动尝试打开TCP(Connect ID句柄),这样只要有适配的IP和Port,就可以识别到各类设备了。
-
荣琪
回复
王志博:
官方文档好像也暗示若是VISA资源名函数识别不出仪表,要打开NI MAX配置一下才行,但是我不想让用户还要再学习怎么配置NI MAX。
-
王志博
回复
荣琪:
那你试过NI的VISA驱动向导没有,做一个驱动后再试试看目标电脑能不能正常识别
-
荣琪
回复
王志博:
我换个简单的描述吧,我可能没表达清楚。
目前使用TCP的方式已经可以识别任意仪表了。但是这样获得的是Connect ID,而不是VISA资源句柄,因此不能使用设备厂家官方提供的控制Vi(是VISA端口的)。
请问如何解决?
我的预计方式:
方式1:放弃TCP方式,直接改为VISA方式,通过编程直接获取VISA(或直接放置VISA句柄控件)。缺点:依赖NI MAX,当然肯定也更依赖VISA驱动。某些情况下,识别不到设备,还需要用户手动配置NI MAX,易用性不强。
放弃方式1
方式2:继续使用TCP方式识别设备型号,保证能识别全部设备,随后通过某种方式(见图片),在知道IP和Port情况下,转换出VISA句柄。但是目前不知道这样的句柄能否有效?若有效,能不能在没有NI MAX的情况下依然有效?
请教您方式2。