Есть ли способ печати на выходной консоли? (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, если вы хотите записать что-то, что будет видно позже.

Другие вопросы по тегам