在LabVIEW中使用MATLAB®脚本节点时遇到错误1047

更新 Sep 26, 2019

适用于

软件

  • LabVIEW Full
  • LabVIEW Base

操作系统

  • Windows

问题详述

当我在LabVIEW中尝试使用MATLAB脚本节点去与MathWorks公司的MATLAB®软件进行交互的时候,遇到错误1047

可能的原因:

LabVIEW:(Hex 0x417)LabVIEW无法将变量发送到脚本服务器。


我已经正确安装了MATLAB®和LabVIEW软件,并能运行它们,但我不能使它们相互进行通讯。

解决方案

发生此错误的原因是因为ActiveX脚本服务器无法正常启动。您可以考虑以下解决方案:
  1. 如果您已经安装了MATLAB®软件并且之前至少运行过一次,那么所有的ActiveX组件都会在操作系统中进行注册。要使用 Script Server 脚本服务器,请关闭所有程序(MATLAB®和LabVIEW)。然后打开MATLAB®软件,等MATLAB®完全装载入内存之后,再启动LabVIEW。这时,脚本服务器应该会有回应,错误也不会再出现了。 
  2. 为了重新注册ActiveX组件,请打开命令提示符(单击“开始”»“运行”,在“打开”字段中键入cmd ,然后单击“确定”),然后执行以下操作:
    1. 导航到MATLAB \(版本)\ bin目录(例如MATLAB \ R2008b \ bin )。
    2. 在提示符下输入matlab -regserver ,然后按Enter键。
    3. 退出出现的MATLAB®软件实例。
    4. 这时,MATLAB脚本节点应该可以正常运行。 (您可能需要重新启动LabVIEW)。
  3. 如果您仍然遇到这个错误,请尝试在本地安装MATLAB®软件并设置环境变量MATLAB_RESERVE_LO = 0
  4. 如果仍然出现相同的错误,那问题可能与读取输入的脚本语言相关,这些脚本使用 MathWorks, Inc. MATLAB® 语言语法。如果是这种情况,请运行范例程序"Lorenze Diff Eq.vi"看问题是否仍然存在,该范例程序有变量输入到脚本。然而, 范例程序"Fractal.vi" 可能成功执行是因为它仅有脚本节点输出。最简单的解决方法是把输入数据的类型改为复数形式。

相关信息

MATLAB®是The MathWorks,Inc。的注册商标。列出的其他产品和公司名称是其各自公司的商标和商品名称。