You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1与M2互斥运行逻辑代码报错:Busy()和Suspend()未定义求助

问题描述

我拥有M1和M2两台设备,设备模型如下:
我的模型

使用场景需求:

  • M1仅能在M2未运行时工作
  • M2仅能在M1未运行时工作
  • M1与M2不能同时运行

为实现上述场景,我编写了如下逻辑代码:
M1的"On Enter"事件代码:

if (M2.Busy()) { M1.suspend(); }

M2的"On Enter"事件代码:

if (M1.Busy())  { M2.suspend(); }

但代码运行时出现错误:Busy()和Suspend()方法未定义,求帮忙解决,谢谢!


解决方案

1. 针对工业仿真平台(如Plant Simulation)的修正

这类平台中设备状态判断和暂停的API通常有固定命名,比如Plant Simulation里:

  • 判断设备繁忙用isBusy属性而非Busy()方法
  • 暂停设备用stop()方法而非Suspend()

修正后的代码:

  • M1的"On Enter"事件:
if (M2.isBusy) { M1.stop(); }
  • M2的"On Enter"事件:
if (M1.isBusy) { M2.stop(); }

2. 通用自定义状态方案

如果不确定平台API,可通过全局变量实现互斥逻辑:

  1. 定义全局布尔变量isDeviceRunning,初始值设为false
  2. M1的"On Enter"事件:
if (isDeviceRunning) { 
    M1.abort(); // 替换为你所用平台的终止/暂停方法
} else {
    isDeviceRunning = true;
}
// 同时在M1的"On Exit"事件添加:
// isDeviceRunning = false;
  1. M2的"On Enter"事件:
if (isDeviceRunning) { 
    M2.abort(); // 替换为你所用平台的终止/暂停方法
} else {
    isDeviceRunning = true;
}
// 同时在M2的"On Exit"事件添加:
// isDeviceRunning = false;

3. 最可靠的排查方式

直接查阅你所用平台的设备对象API文档,搜索「设备状态检测」「设备暂停」相关关键词,确认对应方法/属性的准确名称。

内容的提问来源于stack exchange,提问作者Vinayak Mulye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 13:15:01