Последовательный терминал — самый недооценённый инструмент инженера. Он показывает «сырые» байты там, где программа с графическим интерфейсом молча пишет «нет связи», и позволяет сохранить лог, который потом можно приложить к отчёту. Настройка занимает пять минут, но именно в ней допускают ошибки: не та кодировка, не тот поток управления, забытое логирование.
Что настроить в первую очередь
| Параметр | Типичное значение | Когда меняется |
|---|---|---|
| Скорость | 9600, 19200, 115200 | по документации устройства |
| Биты данных | 8 | 7 — устаревшие протоколы |
| Чётность | нет (N) | Even для части промышленных приборов |
| Стоп-биты | 1 | 2 — редко, по документации |
| Управление потоком | нет | RTS/CTS на длинных линиях и модемах |
| Кодировка | UTF-8 | CP1251 для части русскоязычных приборов |
| Логирование | включено всегда | — |
Правило: если вы не знаете параметров устройства, начинайте с 9600 8N1 без потока. Это самый распространённый вариант и безопасная отправная точка.
PuTTY: минимум действий
- В разделе Session выберите Serial, укажите COM-порт и скорость.
- В Connection → Serial задайте биты данных, чётность, стоп-биты и поток.
- В Session → Logging включите запись в файл: All session output. Без этого лог потеряется при закрытии окна.
- Сохраните сессию под понятным именем (например, «PLC-port-9600»), чтобы не настраивать заново.
- Подключитесь и проверьте, что при отправке Enter устройство отвечает.
Полезные мелочи: в Terminal можно включить локальное эхо (если устройство не эхоит введённое), а в Window → Translation — выбрать кодировку. Кириллица в PuTTY часто отображается «кракозябрами» именно из-за неверной трансляции.
Tera Term: когда нужны макросы и передача файлов
Tera Term удобен там, где нужен сценарий: автоматическая отправка команд при подключении, ожидание ответа, передача файлов по XMODEM/YMODEM/ZMODEM.
- Макросы (TTL) позволяют автоматизировать последовательность «подключиться → отправить команду → дождаться строки → сохранить лог».
- Передача файлов встроена в меню File → Transfer; протокол должен поддерживать и устройство.
- Логирование включается в File → Log и пишет с метками времени, если включить соответствующую опцию.
- Настройки порта дублируют стандартный набор: скорость, биты, чётность, поток.
Tera Term полезен и как «второй терминал»: если PuTTY почему-то не открывает порт, стоит проверить, не занят ли он другим процессом.
minicom: Linux
В Linux последовательный порт — это файл /dev/ttyUSB0 или /dev/ttyACM0. Базовые шаги:
- Проверьте, что устройство появилось:
dmesg | tailпосле подключения. - Убедитесь, что у пользователя есть права: членство в группе
dialout(илиuucpв некоторых дистрибутивах). - Запустите
minicom -D /dev/ttyUSB0 -b 9600. - Настройте параметры через
Ctrl-A, затемO(Configure). - Включите захват в файл:
Ctrl-A, затемL.
Для скриптов удобнее picocom или socat, а для проверки «есть ли вообще обмен» — cat /dev/ttyUSB0 с предварительной настройкой через stty.
Кодировки и «кракозябры»
Причины неправильного текста:
- устройство передаёт CP1251, а терминал показывает UTF-8 (или наоборот);
- терминал вставляет переводы строк, которых нет в протоколе;
- эхо и локальный ввод дублируются;
- битые байты из-за неверной скорости или помех.
Проверка: отправьте строку из латинских символов. Если она читается, а кириллица нет — вопрос в кодировке. Если «мусор» и в латинице — вопрос в скорости, чётности или кабеле.
Логирование: зачем и как
Лог сессии — доказательство и материал для анализа:
- фиксируйте время начала и параметры порта в первой строке лога;
- включайте метки времени, если терминал это умеет;
- сохраняйте лог в отдельную папку проекта, а не в «Загрузки»;
- для длительных сессий следите за размером файла;
- прикладывайте лог к описанию неисправности — это экономит часы переписки.
Безопасность
- Не отправляйте команды «наугад» в терминале: некоторые устройства интерпретируют любой символ как команду управления.
- Не оставляйте открытую сессию с правами администратора без присмотра.
- Проверяйте, что порт — именно то устройство: подключение к чужому COM-порту может отправить команды в соседнее оборудование.
- Не логируйте пароли и ключи в открытые файлы.
Автоматизация: когда терминал становится инструментом
Если одну и ту же последовательность команд вы вводите каждый выезд, её стоит автоматизировать:
- Сохранённые сессии в PuTTY с готовыми параметрами порта;
- макросы Tera Term для сценариев «подключиться, отправить команду, дождаться ответа, сохранить лог»;
- скрипты на Python (pyserial) для регулярного опроса и записи в CSV;
socatиsttyв Linux для проброса порта в TCP или настройки без интерактивного интерфейса.
Автоматизация особенно полезна при длительных испытаниях: скрипт пишет данные каждую секунду, а вы занимаетесь другим. Главное — не автоматизировать запись команд, меняющих состояние оборудования, без защиты от повторного запуска.
Что проверять перед выездом
- Терминал установлен и запускается, драйверы USB-COM стоят.
- Есть кабель нужного типа (прямой/null-modem) и переходники.
- Сохранены профили для типовых приборов.
- Включено логирование по умолчанию.
- Проверен запасной вариант: второй терминал или виртуальная машина со старым ПО.
Сравнение терминалов
| Критерий | PuTTY | Tera Term | minicom |
|---|---|---|---|
| ОС | Windows (есть сборки для Linux) | Windows | Linux |
| Сохранение сессий | есть | есть | профили в конфиге |
| Макросы и автоматизация | ограниченно | да (TTL) | ограниченно |
| Передача файлов | нет | XMODEM/YMODEM/ZMODEM | через внешние утилиты |
| Логирование | есть | есть, с метками времени | есть (Ctrl-A, L) |
| Шестнадцатеричный просмотр | есть | есть | ограниченно |
Для разовой диагностики достаточно PuTTY; для регулярных выездов с автоматизацией удобнее Tera Term; в Linux minicom остаётся стандартом де-факто.
Частые вопросы
Терминал пишет «Access denied» при открытии порта
Порт занят другой программой (монитор порта Arduino IDE, вторая копия терминала) или нет прав. Закройте лишние приложения; в Linux проверьте группу dialout.
Почему вместо текста идут символы?
Неверная скорость или кодировка. Сначала проверьте скорость и чётность, затем трансляцию символов.
Как отправить файл на устройство?
Через протокол передачи (XMODEM/YMODEM) в Tera Term или через sz/rz в Linux, если устройство поддерживает эти протоколы. Для прошивки чаще используют специализированный загрузчик.
Нужно ли включать RTS/CTS?
Только если этого требует устройство или длинная линия. В большинстве случаев поток отключён, и включение приводит к «зависанию» передачи.
Можно ли использовать терминал для диагностики Modbus?
Для просмотра «сырых» байтов — да, но разбирать CRC и исключения удобнее специализированными инструментами. Терминал хорош как первый тест «есть ли обмен вообще».