有没有办法打印到输出控制台? (双猫3)
Is there a way to print to output console? (twincat3)
有没有办法像 VB.NET 中的 debug.print() 那样使用结构化文本打印输出到控制台? (twincat3)
您可以从 TwinCAT 代码通过 ADS 命令发送消息。该函数称为 ADSLOGSTR。 DINT 和 REAL 也有自己的函数,但是 STRING 函数当然可以与任何东西一起使用。
该函数有三个输入:
- msgCtrlMask
- 描述消息类型的掩码
- 可以找到类型here
- 例如,要显示警告消息并将其保存到 Windows 日志:
msgCtrlMask := ADSLOG_MSGTYPE_WARN OR ADSLOG_MSGTYPE_LOG
- 只显示一个 Windows 消息框:
msgCtrlMask := ADSLOG_MSGTYPE_MSGBOX
- msgFmtStr
- 要显示为 STRING 的消息
- A
%s
可以用来添加没有CONCAT函数的参数。见最后一个参数。
- strArg
- 替换前一个字符串中的
%s
的字符串。
这是一个示例,可能是您需要的:
IF test THEN
ADSLOGSTR(
msgCtrlMask := ADSLOG_MSGTYPE_HINT,
msgFmtStr := 'Test message. Parameter is %s',
strArg := 'ABC'
);
test := false;
END_IF
当您将测试设置为真并调用该函数时,您将在 Visual Studio 错误列表中看到它。请注意,它不会写入控制台。
我经常使用错误消息 (ADSLOG_MSGTYPE_ERROR
),因为我经常隐藏注释和警告,而我不会注意到自己的条目。另一个好方法是将条目添加到 Windows 日志中,如果你想记录一些东西以便稍后查看。
有没有办法像 VB.NET 中的 debug.print() 那样使用结构化文本打印输出到控制台? (twincat3)
您可以从 TwinCAT 代码通过 ADS 命令发送消息。该函数称为 ADSLOGSTR。 DINT 和 REAL 也有自己的函数,但是 STRING 函数当然可以与任何东西一起使用。
该函数有三个输入:
- msgCtrlMask
- 描述消息类型的掩码
- 可以找到类型here
- 例如,要显示警告消息并将其保存到 Windows 日志:
msgCtrlMask := ADSLOG_MSGTYPE_WARN OR ADSLOG_MSGTYPE_LOG
- 只显示一个 Windows 消息框:
msgCtrlMask := ADSLOG_MSGTYPE_MSGBOX
- msgFmtStr
- 要显示为 STRING 的消息
- A
%s
可以用来添加没有CONCAT函数的参数。见最后一个参数。
- strArg
- 替换前一个字符串中的
%s
的字符串。
- 替换前一个字符串中的
这是一个示例,可能是您需要的:
IF test THEN
ADSLOGSTR(
msgCtrlMask := ADSLOG_MSGTYPE_HINT,
msgFmtStr := 'Test message. Parameter is %s',
strArg := 'ABC'
);
test := false;
END_IF
当您将测试设置为真并调用该函数时,您将在 Visual Studio 错误列表中看到它。请注意,它不会写入控制台。
我经常使用错误消息 (ADSLOG_MSGTYPE_ERROR
),因为我经常隐藏注释和警告,而我不会注意到自己的条目。另一个好方法是将条目添加到 Windows 日志中,如果你想记录一些东西以便稍后查看。