Промышленные интерфейсы RS-232 и RS-485 на ноутбуке инженера КИПиА и наладчика: почему поддельный переходник сжигает материнскую плату и как настроить Modbus RTU
Каждый опытный инженер КИПиА хотя бы раз в жизни видел эту вспышку и чувствовал запах палёного текстолита в шкафу управления венткамерой или котельной: молодой наладчик включает свой дорогой ноутбук в розетку удлинителя в щитовой, вставляет в USB-порт копеечный прозрачный «свисток USB-RS485 за двести пятьдесят рублей без корпуса» и касается отвёрткой клемм A / B частотного преобразователя за 120 метрами кабеля в соседнем цеху.
Искра — и материнская плата ноутбука за сто тридцать тысяч рублей мгновенно умирает с пробитым насквозь процессорным хабом PCH!
Почему это произошло? Между защитным заземлением PE цеха № 1 и вашей щитовой гуляет уравнительная разность потенциалов 35–90 Вольт переменного тока, которая через экран импульсного блока питания вашего ноутбука напрямую пошла через неизолированный USB-свисток в 3,3-вольтовые линии данных южного моста процессора!
ЗОЛОТОЕ ПРАВИЛО ЖИЗНИ НОУТБУКА НАЛАДЧИКА № 1: ТОЛЬКО ПРОМЫШЛЕННЫЙ КОНВЕРТЕР С ПОЛНОЙ ГАЛЬВАНИЧЕСКОЙ РАЗВЯЗКОЙ 1500–2500 В (ОВЕН АС4-М, Болид USB-RS485 изол., Moxa UPort 1150I, Waveshare Industrial Isolated)!
Настоящий промышленный преобразователь USB <-> RS-485 / RS-232 стоит всего три тысячи пятьсот — семь тысяч рублей` и имеет внутри:
- Полную оптическую/магнитную гальваническую развязку
2 500 Вмежду USB-стороной вашего ноутбука и клеммной колодкой линии связиA / B / GND+ изолированный DC-DC источник питания; - Трёхступенчатую грозо- и импульсную защиту (
TVS-супрессоры 600 Вт+ самовосстанавливающиеся предохранители) — даже если монтажник по ошибке подаст фазу220 Впрямо на витую паруRS-485, сгорит максимум супрессор внутри коробочки за четыре тысячи рублей, а ваш ноутбук не получит НИ ОДНОЙ ЦАРАПИНЫ! - При работе в сырой подвальной тепловой камере или на автомобильных весах элеватора — по возможности работайте на ноутбуке ОТ СОБСТВЕННОГО АККУМУЛЯТОРА, НЕ ВТЫКАЯ БЛОК ПИТАНИЯ В СОМНИТЕЛЬНУЮ ВРЕМЕННУЮ РОЗЕТКУ СТРОЙПЛОЩАДКИ!
Сравнение чипов мостов USB-UART и важнейшая скрытая настройка FTDI Latency Timer = 1 мс!
| Чип внутри конвертера | Надёжность на помехах в цеху | Секретная тонкость настройки в Windows и Linux! |
|---|---|---|
Оригинальный FTDI FT232RL / FT231X (Великобритания) |
Эталон 10/10! Никогда не зависает при искрении магнитных пускателей рядом с кабелем! |
ВАЖНЕЙШИЙ СЕКРЕТ БЫСТРОГО ОПРОСА MODBUS RTU: по умолчанию в драйвере Windows FTDI параметр Время ожидания (BM Options -> Latency Timer) выставлен в 16 мс! Из-за этого опрос 30 регистров ПЛК тормозит в 8 раз и рвёт межсимвольную паузу 3.5 char стандарта Modbus! Зайдите в Диспетчер устройств -> Порт COM -> Параметры порта -> Дополнительно и поменяйте 16 мс на 1 мс (а в Linux: echo 1 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer) — скорость обмена вырастает мгновенно в 6 раз! (Остерегайтесь поддельных клонов FTDI с нулевым серийником — покупайте конвертеры у официальных производителей автоматики!) |
Silicon Labs CP2102N / CP2104 и современный WCH CH343G |
Твёрдые 9/10 |
Встроены в ядро всех современных Windows и Linux без скачивания драйверов; сохраняют фиксированный номер COM-порта благодаря уникальному серийному номеру чипа (в отличие от копеечного старого CH340G без серийника, который меняет COM3 -> COM7 -> COM11 при перетыкании в соседний USB-порт ноутбука — такая же проблема подробно разобрана в диагностике виртуальных COM-портов ККТ!) |
Пять классических ошибок пусконаладки шины RS-485 Modbus RTU, из-за которых ноутбук пишет Timeout Error!
- Перепутана полярность
AиB! Внимание: у разных производителей разная маркировка (Data+ / D+ = Aу одних иData+ = Bу американских приборов!) — ничего не сгорит, просто поменяйте проводаAиBместами на клеммнике конвертера! - Не висит согласующий резистор (терминатор)
120 Омна ДВУХ ФИЗИЧЕСКИХ КОНЦАХ длинной магистрали (или наоборот — монтажники по незнанию щёлкнули тумблер120 Ом ONна всех 15 промежуточных приборах подряд, посадив сопротивление линии до8 Ом!). Терминатор120 Омвключается СТРОГО НА ПЕРВОМ (конвертер ноутбука) И НА ПОСЛЕДНЕМ ДАЛЬНЕМ ПРИБОРЕ В ЦЕПОЧКЕ (шлейфеDaisy Chainбез «звёзд»!)! - Не совпадает чётность (
Parity)! По официальному стандарту Modbus over Serial Line Specification для режима8-E-1используется чётностьEven (Чёт)(или8-N-2— 2 стоповых бита приNone), тогда как большинство китайских датчиков и счётчиков коммерческого учёта электроэнергии с завода идут с9600 8-N-1! - Занят порт в фоне! На ноутбуке осталась свёрнутой в трей служба
ОВЕН OPC Serverили конфигуратор под WINE — COM-порт является монопольным ресурсом, закройте вторую программу! - В Linux нет прав на
/dev/ttyUSB0: выполните один разsudo usermod -aG dialout $USERи удалите/отключите службуModemManager(sudo systemctl mask ModemManager), которая в первые 15 секунд после втыкания USB-переходника шлёт в ваш ПЛК мусорныеAT-команды поиска 3G-модема!
Чек-лист чемодана пусконаладчика
- [ ] В сумке с ноутбуком лежат: изолированный конвертер
USB <-> RS-485 + RS-232, горсть выводных резисторов120 Ом 0,25 Вт, нуль-модемный переходникDB9 Female-Female(перекрёстTX 2 <-> RX 3,GND 5 <-> 5), часовая шлицевая отвёртка2,5 ммс изолированным жалом1000V VDEи карманный мультиметр!
Частые вопросы
Как подсмотреть на ноутбуке реальные сырые HEX-пакеты чужого неизвестного протокола в работающей линии RS-485 между контроллером и панелью оператора, НЕ РАЗРЫВАЯ линию?
Включите ваш изолированный конвертер на ноутбуке параллельно на клеммы A и B с ОТКЛЮЧЁННЫМ терминатором (High-Z вход) и запустите бесплатный сниффер последовательного порта (RealTerm / IO Ninja / python pyserial в режиме HEX + Timestamp milliseconds): вы на 100 % пассивно, не посылая в шину ни одного бита, запишете весь живой обмен байт-в-байт (например, 01 03 00 0A 00 02 E4 09) с контрольными суммами CRC-16!