ADSLOGSTR(msgCtrlMask := ADSLOG_MSGTYPE_LOG, msgFmtStr := 'OSIO: %s', strArg := 'Autostrsys');
我在 TwinCAT 3 中使用这个函数,但是当我运行我的代码时,它由于 ADSLOGSTR 函数而被挂起。如果我对此发表评论,那么它工作正常,但在这种情况下我看不到消息。
为什么系统会因为这个消息显示功能(ADSLOGSTR)而挂起?
我的猜测是您在每个周期都调用该函数。您需要确保只调用一次,如下所示:
IF NOT bAdsLogStrBeenCalled THEN
ADSLOGSTR(...);
bAdsLogStrBeenCalled := TRUE;
END_IF