Структурная схема подключения разветвителя RS-485 PoE термометрии силосов элеватора
Действующий элеватор состоит из десяти корпусов, расположенных симметрично относительно центра, и диспетчерской с компьютером для термометрии. Исходный проект создан для девятого корпуса, нумерация корпусов указана жёлтыми цифрами, рис. 1.
Суммарная длина линии составляет не менее 250 метров. Для расширения по условиям эксплуатации потребовалось подключение восьмого корпуса. Структура линии преобразовалась в «древовидную», и также увеличилась суммарная длина линии. Установленный разветвитель позволил выполнить плановую модернизацию без остановки работы системы термометрии.
Принципиальная схема разветвителя RS-485
Схема разветвителя (рис. 2) модернизирована из схемы «гроза-защита» [2] и практически повторяет входные и выходные линии RS-485.
Первоначально предполагалось использовать схему [2] в качестве «повторителя-ответвителя» RS-485, но в этом случае уже длинная линия объекта получала бы дополнительную нагрузку в середине линии. Анализ такой топологии предсказывал, наоборот, повышение вероятности помех, поскольку середина линии в случае передачи от неё представляет два достаточно длинных луча. И компенсации наведённых сигналов может и не быть, так как эти лучи разные по длине.
Для полного дублирования разветвителя уже требовалось два повторителя, что было неудобно и неконструктивно. Таким образом, возникло решение создать отдельный разветвитель на два направления.
Отличие предлагаемой схемы в использовании микроконтроллера (МК) с большим количеством выходных линий. Поскольку обмен интерфейса определён для 1200 бод, допустимо отказаться и от кварцевого резонатора. Однако, в случае необходимости, выводов МК хватает для его использования.
Далее в описании одинаковые функциональные элементы входных и выходных цепей разветвителя указываются в скобках.
На разъём XP3,4 (XP1,2; XP5,6) подключены линии с двумя проводами питания и двумя проводами интерфейса RS-485. Микросхема U2 (U1, U3) типа RS-485 преобразует парные противофазные входные сигналы в уровни логических сигналов =0= и =1=, которые поступают на выводы 4 (13, 10) RA3 (RA0, RC0) микроконтроллера (МК) U4 (PIC16F630) [5].
Резисторы R7, R11 (R1, R3, R10, R13) формируют начальные уровни напряжения для линий A, B интерфейса. Резисторы R9 (R2, R12) выполняют согласование с входным сопротивлением интерфейса. Все диоды в цепях А, B обеспечивают защиту от возможных импульсных наведённых напряжений.
Сигнализацию обмена обеспечивают светодиоды D4, D6, D8, включённые через ограничительные резисторы R3, R5, R6.
Для проверки работоспособности разветвителя предусмотрена кнопка теста S1. Если её нажать, то программа в МК начинает выдавать в сторону PK1 тестовую АТ-комбинацию на скорости 1200 бод, и, таким образом, приём этой комбинации подтверждает исправность линии и схемы. Кроме того, светодиод сигнализирует о наличии питания на МК.
Питание элементов выполняется через стабилизатор Q1 (78L05), при этом общий потребляемый ток схемы не превышает 10 миллиампер.
Входные цепи А, B и резистор согласования включаются через штыревые перемычки на плате, что позволяет быстро «прозвонить» участки линии по сопротивлению обычным мультиметром и определиться с неисправностью.
Все компоненты схемы собраны на печатной плате и предназначены для монтажа входной линии под «винт». На рис. 3 представлены: слева – фото собранной печатной платы в прозрачном защитном боксе на объекте, справа – 3D-модель той же платы.
Печатная плата разработана в среде проектирования DipTrace, проект доступен в ка талоге программ [3] и находится в файле shema_vetvitel_rs485.zip.
На печатной плате предусмотрена установка некоторых компонентов под два размера: DIP и SOIC. Все микросхемы устанавливаются через переходные колодки DIP-8 и DIP-14, что позволяет ремонтировать блок, модифицировать и изменять программное обеспечение и возможные функции использования.
В печатной плате предусмотрены отверстия и «пустые» участки для установки на DIN-рейку аналогично конструкции [2].
Программное обеспечение
Для настройки разветвителя RS-485 используется программное обеспечение, представленное по адресу [3]. Программа shema_vetvitel_rs485.exe подготовлена на языке программирования FORTH [5]. Программа содержит все компоненты для программирования и модификации разветвителя RS-485, а также печатные платы и схемы.
Программный код для МК формируется при первом включении программы и выборе режима «восстановление всех файлов – компиляция нового кода». Для этого режима нажать клавишу =4= после старта программы. Код формируется в папку povtoritel1_2_rs485_16f630_v1 и подготовлен в двух файлах с расширением hex.
После программирования МК при первом включении требуется выдать код «ATT» на скорости 1200 бод в разветвитель. Этот код выполняет настройку на выбранную скорость. Всего для ретрансляции без кварца доступно две скорости: 1200 и 2400 бод. Для других скоростей требуется использование кварцевого резонатора, поскольку максимальная частота работы МК без кварца не более четырёх мегагерц.
Используется алгоритм ретранслирования по тактовым интервалам старт-стопной последовательности. В исходном состоянии проверяется последовательно уровень =1= от PK1, PK2, PK3 и нажатие кнопки теста.
Как только любой из этих уровней установится равным =0=, это будет означать, что на соответствующем входе появился сигнал данных и начался стартовый интервал от соответствующего PK или передача теста. Для используемой схемы разветвителя сигнал с разъёма PK1 ретранслируется на PK2 и PK3. Обратная ретрансляция выполняется только на PK1. Соответственно, сигнал с PK2 передаётся только на PK1, и сигнал с PK3 также только на PK1. Сигнал теста передаётся тоже только на PK1.
Фрагмент текста программы основного алгоритма приведён далее на языке форт-ассемблера:
ORG @ m1 ! portc 0x3 btfss \ проверка на тест нажатия
m5 goto \ появился 0, выдача теста кнопки
porta 0x3 btfss \ проверка PK1 пропустить, если 1
m2 goto \ появился 0, переходим к ретрансляции
porta 0x0 btfss \ проверка PK2 пропустить, если 1
m3 goto \ появился 0, переходим к ретрансляции
portc 0x0 btfss \ проверка PK3 пропустить, если 1
m4 goto \ появился 0, переходим к ретрансляции
m1 goto \ проверяем снова
ORG @ m2 ! 1 WORK_PK1PK2ATPK3# \ передача от PK1 к PK2 PK3
m1 goto \ проверяем снова
ORG @ m3 ! 1 WORK_PK2PK1AT# \ передача от PK2 на PK1
m1 goto \ проверяем снова
ORG @ m4 ! 1 WORK_PK3PK1AT# \ передача от PK3 на PK1
m1 goto \ проверяем снова
ORG @ m5 ! 1 OUT_TEST_OTV# \ передача теста на PK1
m1 goto \ проверяем снова
После передачи байта в выбранном направлении программа возвращается к опросу входов. Таким образом, ретрансляция не зависит от количества байтов, и направление передачи определяется только по принципу «кто первый».
Подробное описание приведено в тексте файла povtoritel1_2_rs485_16f630_v1.f на языке Форт [5]. Текст форт-ассемблера находится в файле assmb_pik12f_v1.f и компилируется при формировании кода исполнения для МК. Все тексты программ имеют подробные комментарии и доступны для модификации и изменений.
Выводы
Предложенная схема разветвителя RS-485 позволяет формировать различные структуры линий интерфейса и, кроме того, выполняет тестирование линии и защиту участков линии. Использование питания устройств термометрии по линии связи увеличивает надёжность и ремонтопригодность системы измерений. Дополнительное программное обеспечение МК при необходимости допускает ввести и другие функции работы, кроме простой ретрансляции. Например, резервирование, независимую работу между шинами или передачу специальных сигналов или кодов управления.
Литература
- Повторитель RS-485. URL: https://ipc2u.ru/catalog/mwe485-ygs/.
- Шабронов А. «Гроза-зонт» RS-485 // Современная электроника. 2024. № 2. С. 48–49. URL: https://www.cta.ru/articles/soel/2024/2024-2/178207/.
- Каталог программы, платы. URL: http://90.189.213.191:4422/temp/predohranim_i_uvelichim_rs485_v1/test/.
- Описание 16F630. URL: https://www.chipdip.ru/product/pic16f630-i-sl.
- Описание языка Форт spf4.exe, автор версии А. Черезов. URL: http://www.forth.org.ru/.
© СТА-ПРЕСС, 2024