【问题标题】:Error 2: Memory Full - Opening .exe From LabView错误 2:内存已满 - 从 LabView 打开 .exe
【发布时间】:2016-10-16 23:09:07
【问题描述】:

我正在尝试打开一个 .exe 以从 LabVIEW 对 PLC 进行编程。我将 .exe 包含在项目文件中,它也作为源文件包含在内,因此在安装此工具时它会安装在安装目录中。问题是有时在打开时(以及在关闭时)我收到错误 2:内存已满错误。

这是我目前正在使用 LabView 中包含的 SystemExec.vi 所做的工作的 sn-p:

你可以在这里看到我的文件包含在依赖项中(对不起,为了客户,不想显示某些 .vis 和某些文件名):

如果我做错了什么,或者是否有更好的方法从 LabView 启动外部 .exe,请告诉我。

提前致谢!

【问题讨论】:

  • 除了修复此错误消息的原因之外,此代码应该如何退出?如果您使用“中止”工具栏按钮停止它,您可能会使事物处于不确定状态。有一个事件或条件将 True 传递给循环的停止终端。
  • while 循环中有多个事件结构打开 sub vis。还有一个面板关闭事件,当点击 windows x 时会退出程序。
  • 我希望您的意思是多个事件案例而不是多个事件结构。然后您是否使用 Quit LabVIEW 功能退出?干净的方法是捕获 Panel Close? 事件(注意问号),执行任何清理操作,例如关闭文件和引用,退出所有循环,然后退出 LabVIEW,并且为了更容易开发,仅当您的程序作为构建应用程序运行时才这样做。 Panel Close 事件可能无法正确执行,除非您先添加代码来停止 LabVIEW 退出:zone.ni.com/reference/en-XX/help/371361K-01/lvprop/…
  • 是的,不是结构。是的,我使用的是问号。

标签: labview


【解决方案1】:

尝试将输入字符串更改为 "cmd /c fploader.exe"

使用 System Exec VI 与在命令提示符中输入命令不同;相反,这就像在“运行...”窗口中输入命令。

请看这里: http://digital.ni.com/public.nsf/allkb/EA1600EBA422E97286256AA20073C616

编辑:以下是使用 exe 的完整路径创建字符串命令的方法:

【讨论】:

  • 我看过了,问题是我没有使用批处理文件。在我尝试输入您输入的内容后,我得到:错误 1 ​​发生在 'fploader.exe' 未被识别为内部或外部命令、可运行程序或批处理文件。
  • 您可以尝试安装 fploader.exe 的整个路径。但是,当您将 LabView 应用程序安装到不同的位置时,这当然会成为一个问题。
  • 是的,这就是问题所在。安装程序设置为安装到 [Program Files],但这对于 32 位和 64 位操作系统是不同的。所以我不太确定从这里去哪里。是否有其他方法可以从 vi 打开 .exe?
  • 你可以使用这个VI:zone.ni.com/reference/en-XX/help/371361H-01/glang/…来获取你的可执行文件的路径,然后动态构建你的字符串
  • 使用 SystemExec.vi 中的那个作为工作目录?然后只是 cmd /c fploader.exe?
猜你喜欢
  • 2012-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-16
  • 2010-10-21
  • 2011-11-14
相关资源
最近更新 更多