Есть ли способ печати на выходной консоли? (Twincat3)
Есть ли способ печати для вывода на консоль, как debug.print() в VB.NET, используя структурированный текст? (Twincat3)
1 ответ
Вы можете отправлять сообщения с помощью команд ADS из кода TwinCAT. Функция называется ADSLOGSTR. Также есть собственные функции для DINT и REAL, но функцию STRING, конечно, можно использовать с чем угодно.
Функция имеет три входа:
- msgCtrlMask
- Маска, которая описывает тип сообщения
- Типы можно найти здесь
- Например, чтобы показать предупреждающее сообщение и сохранить его в журнале Windows:
msgCtrlMask := ADSLOG_MSGTYPE_WARN OR ADSLOG_MSGTYPE_LOG
- Чтобы показать только Windows MessageBox:
msgCtrlMask := ADSLOG_MSGTYPE_MSGBOX
- msgFmtStr
- Сообщение, которое будет показано как STRING
%s
может использоваться для добавления параметра без функций CONCAT. Смотрите последний параметр.
- strArg
- СТРОКА, которая заменяет
%s
в предыдущей строке.
- СТРОКА, которая заменяет
Вот пример того, что вам нужно:
IF test THEN
ADSLOGSTR(
msgCtrlMask := ADSLOG_MSGTYPE_HINT,
msgFmtStr := 'Test message. Parameter is %s',
strArg := 'ABC'
);
test := false;
END_IF
Когда вы установите значение true и вызовете функцию, вы увидите это в списке ошибок Visual Studio. Обратите внимание, что это не записано в консоли.
Я часто использую сообщения об ошибках (ADSLOG_MSGTYPE_ERROR
) потому что я довольно часто скрываю заметки и предупреждения и не замечал бы своих записей. Другим хорошим способом является добавление записи в журнал Windows, если вы хотите записать что-то, что будет видно позже.