1

我有 Qt 的问题,我使用带有 open 6254 的 QOpcUa 在 PLC 上读取和写入标签,但有时会出现以下错误:“错误/客户端不活动订阅”并且我的程序崩溃。我已经确定了问题,这是因为 PLC 同时在此标签中写入。我想知道是否有办法在编写之前检查标签的可用性?

我已经了解了该主题,并且有 StatusCode 或 monitoringStatus 之类的功能,但我无法正确使用它们。

void NodeLoad::writeOrderNumber(QString value)
{
    //if("method that checks the availability of the tag" == true)
        OrderNumber->writeAttribute(QOpcUa::NodeAttribute::Value,value,QOpcUa::Types::String);
    //else qDebug() << "Error";

}

如果在撰写本文时该标签不可用,则会发生以下错误:[2019-08-30 09:07:07.019 (UTC+0100)] error/client Inactivity for Subscription 36。

  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 35 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 36 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 35 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 34 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 33 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 32 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 31 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 30 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 29 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 28 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 27 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 26 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 25 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 24 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 23 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 22 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 21 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 20 的错误/客户端不活动。
  • [2019-08-30 09:07:07.019 (UTC+0100)] 订阅 19 的错误/客户端不活动。
  • 09:07:07:程序意外结束。
  • 09:07:07:进程被强行结束。
4

0 回答 0