Embedded TwinCAT 3控制台信息显示

Embedded TwinCAT 3控制台信息显示,embedded,plc,twincat,ethercat,Embedded,Plc,Twincat,Ethercat,ADSLOGSTR(msgCtrlMask:=ADSLOG\u MSGTYPE\u LOG,msgFmtStr:=“OSIO:%s”,strArg:=“Autostrsys”) 我在Twincat3中使用了这个函数,但是当我运行代码时,它会因为ADSLOGSTR函数而挂起。如果我评论这个,那么它的工作很好,但在这种情况下,我无法看到消息 为什么系统因为这个消息显示功能(ADSLOGSTR)而挂起?在没有看到完整的示例的情况下,我们都不得不猜测到底出了什么问题 我的猜测是,您正在每个周期调用该函数

ADSLOGSTR(msgCtrlMask:=ADSLOG\u MSGTYPE\u LOG,msgFmtStr:=“OSIO:%s”,strArg:=“Autostrsys”)

我在Twincat3中使用了这个函数,但是当我运行代码时,它会因为ADSLOGSTR函数而挂起。如果我评论这个,那么它的工作很好,但在这种情况下,我无法看到消息


为什么系统因为这个消息显示功能(ADSLOGSTR)而挂起?

在没有看到完整的示例的情况下,我们都不得不猜测到底出了什么问题

我的猜测是,您正在每个周期调用该函数。您需要确保只调用一次,如下所示:

IF NOT bAdsLogStrBeenCalled THEN
    ADSLOGSTR(...);
    bAdsLogStrBeenCalled := TRUE;
END_IF
供日后参考:

谢谢@Jakob,我尝试了if条件,这样它只能运行一次,而且运行良好(y)。但在我的场景中,我希望在每个周期更新后看到特定的消息。为此,请你帮忙。