【问题标题】:how to implement a watchdog for a labview application in python如何在python中为labview应用程序实现看门狗
【发布时间】:2015-08-26 13:23:37
【问题描述】:

我有一个labview 应用程序(2013 32 位),它会运行很长时间,有时整个labview 应用程序会因为未知原因而崩溃。我想做的是编写一个外部 python 脚本,作为这个 labview 应用程序的看门狗。

因此,labview 应用程序会定期向 python 脚本发送一些信息,如果 python 脚本没有收到,它会向我发送警报。

问题是我如何最容易地实现这种单向通信。看起来我可以使用dynamic data exchange,但这似乎有点矫枉过正。一种愚蠢的方法就是读取和写入文本文件。双方实际上都没有直接的交流方式。但这似乎并不完全可靠。

有没有更好更简单的替代方案?

【问题讨论】:

    标签: python labview watchdog


    【解决方案1】:

    如果我在你的位置,我只会每 5 秒发送一次本地 UDP 数据包。

    如果您的架构是模块化的,您可以从每个模块向您的看门狗模块发送信号(以确保每个模块都在运行)。

    我认为最好的方法是评估问题并使您的 LabVIEW 应用程序稳定运行。可以肯定的是,您的代码中有某些东西会导致 LabVIEW 崩溃(例如,某些队列已满,而您的写入器端点会无限等待)。

    【讨论】:

    • 欢迎,我在实时系统上做了这个,并把看门狗模块设为低优先级模块。因此,如果看门狗执行,我确信所有模块都可以正常工作。
    【解决方案2】:

    为什么要使用 IPC?根据您正在运行的系统,应该有监控正在运行的进程的方法(例如here)。您的 python 脚本可以检查您的 labview 应用程序是否正在运行。如果它检测到所需的进程已终止,您甚至可以重新启动。

    【讨论】:

    • 我主要担心的是,如果应用程序崩溃,它实际上并没有完全退出,并且可能仍会出现在正在运行的进程中。所以这个方法不会很健壮
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多