Есть ли способ печатать на консоль вывода? (близнец3)

Есть ли способ распечатать вывод на консоль, например debug.print() в VB.NET, используя структурированный текст? (близнец3)


person Jess    schedule 06.08.2018    source источник


Ответы (1)


Вы можете отправлять сообщения через команды ADS из кода TwinCAT. Функция называется ADSLOGSTR. Существуют также собственные функции для DINT и REAL, но функцию STRING, конечно, можно использовать с чем угодно.

Функция имеет три входа:

  • msgCtrlMask
    • Mask that describes the message type
    • Типы можно найти здесь
    • Например, чтобы отобразить предупреждающее сообщение и сохранить его в журнале Windows: msgCtrlMask := ADSLOG_MSGTYPE_WARN OR ADSLOG_MSGTYPE_LOG
    • Чтобы показать только окно сообщений Windows: msgCtrlMask := ADSLOG_MSGTYPE_MSGBOX
  • msgFmtStr
    • The message to be shown as STRING
    • %s можно использовать для добавления параметра без функций CONCAT. См. последний параметр.
  • strArg
    • A STRING that is replaces the %s in previous string.

Вот пример, вероятно, это то, что вам нужно:

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

person Quirzo    schedule 06.08.2018