有没有办法打印到输出控制台? (twincat3)

时间:2018-08-06 03:50:38

标签: twincat structured-text

是否有一种方法可以使用结构化文本将输出打印到VB.NET中的debug.print()这样的控制台? (twincat3)

1 个答案:

答案 0 :(得分:2)

您可以通过TwinCAT代码通过ADS命令发送消息。该函数称为ADSLOGSTR。还有DINT和REAL的函数,但是STRING函数当然可以与任何东西一起使用。

该函数具有三个输入:

  • msgCtrlMask
    • 描述消息类型的掩码
    • 可以找到类型here
    • 例如,要显示警告消息并将其保存到Windows日志:msgCtrlMask := ADSLOG_MSGTYPE_WARN OR ADSLOG_MSGTYPE_LOG
    • 仅显示Windows消息框:msgCtrlMask := ADSLOG_MSGTYPE_MSGBOX
  • msgFmtStr
    • 要显示为STRING的消息
    • 可以使用%s添加不带CONCAT功能的参数。请参阅最后一个参数。
  • strArg
    • 一个STRING替换上一个字符串中的%s

这里是一个示例,可能正是您所需要的:

IF test THEN
    ADSLOGSTR(
        msgCtrlMask := ADSLOG_MSGTYPE_HINT, 
        msgFmtStr   := 'Test message. Parameter is %s', 
        strArg      := 'ABC'
    );      
    test := false;
END_IF

将测试设置为true并调用该函数时,您将在Visual Studio错误列表中看到此错误。请注意,它没有写入控制台。

enter image description here

我经常使用错误消息(ADSLOG_MSGTYPE_ERROR),因为我经常隐藏注释和警告,并且我不会注意到自己的条目。另一个好方法是,如果您想记录一些内容以便以后查看,请将该条目添加到Windows日志中。