有没有办法打印到输出控制台?(双猫3)

Jes*_*ess 4 structured-text twincat

有没有办法使用结构化文本在 VB.NET 中像 debug.print() 这样的控制台打印输出?(双猫3)

Qui*_*rzo 9

您可以通过来自 TwinCAT 代码的 ADS 命令发送消息。该函数称为ADSLOGSTR。也有自己的 DINT 和 REAL 函数,但 STRING 函数当然可以用于任何东西。

该函数具有三个输入:

  • msgCtrl掩码
    • 描述消息类型的掩码
    • 类型可以在这里找到
    • 例如,要显示警告消息并将其保存到 Windows 日志: msgCtrlMask := ADSLOG_MSGTYPE_WARN OR ADSLOG_MSGTYPE_LOG
    • 只显示一个 Windows MessageBox: msgCtrlMask := ADSLOG_MSGTYPE_MSGBOX
  • msgFmtStr
    • 要显示为 STRING 的消息
    • A%s可用于在没有 CONCAT 函数的情况下添加参数。查看最后一个参数。
  • 字符串参数
    • 替换%s前一个字符串的字符串。

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

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

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

在此处输入图片说明

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