Подключение устройства с интерфейсом RS-485 к персональному компьютеру

Подключение устройства имеющего интерфейс RS-485 к персональному компьютеру используется не только в готовой собранной системе, но и на этапах разработки, отладки и проверки. Центральное звено системы автоматического управления, как правило, промышленный логический контроллер с интерфейсом RS-485. При проверке устройства с интерфейсом RS-485, входящего в систему на основе сети RS-485 можно использовать персональный компьютер. Стандартная конфигурация  персонального компьютера не имеет интерфейс RS-485, но часто включает СОМ-порт, имеющий интерфейс RS-232.

ac3m

Преобразователь интерфейса RS-232<<=>>RS-485.

 

Согласование устройств с различными интерфейсами выполняет преобразователь интерфейса RS-232<<=>>RS-485. Один из вариантов подключения устройств с интерфейсом RS-485 к персональному компьютеру это объединение нескольких приборов благодаря единой информационной линии подключенной к преобразователю интерфейса. При таком подключении создается сеть RS-485, объединяющая несколько устройств в одну систему, где каждое устройство имеет свой уникальный адрес в сети и выполняет свою функцию.

 

СХЕМА  ПОДКЛЮЧЕНИЯ

 

Приборы и модули с интерфейсом RS-485 подключаются к розеткам XS1-XS3. Количество розеток обусловлено требуемым количеством устройств, объединяемых в сеть. Преобразователь интерфейса U1 соединяется с персональным компьютером стандартным кабелем СОМ-портов. Выбор номера СОМ-порта для соединением с преобразователем интерфейса U1 осуществляется программным обеспечением, установленным в персональном компьютере U2.

ris1

Структурная схема подключения устройств с интерфейсом RS-485 к персональному компьютеру.

 

Питание преобразователя интерфейса U1 осуществляется от источника постоянного напряжения 24 вольта. Информационный сигнал передается по витой паре проводов А и B. Сигнал передаваемый по жгуту проводов соединяющих устройства может отражаться от конца жгута к которому подсоединена последняя вилка XS. Для уменьшения отражений сигнала приводящих к искажению информации устанавливается резистор R1. Его сопротивление согласовано с волновым сопротивление витой пары проводов А и В и составляет 120 ом. Резистор R1 устанавливается на последней розетке XS находящейся на наибольшем удалении от преобразователя интерфейса U1. Если к преобразователю интерфейса предполагается подключать только одно устройство с интерфейсом RS-485 резистор R1 можно не устанавливать. Для повышения надежности соединения устройств с интерфейсом RS-485 контакты разъемов дублируются.

ris2

Электрическая схема подключения устройств с интерфейсом RS-485 к персональному компьютеру.

 

КОМПОНЕНТЫ  СХЕМЫ

Позиционное обозначение

Наименование

U1

Преобразователь интерфейса AC3-M-024 ф. Овен

R1

С2-23-0,25-120 Ом ± 5%

XS1…XS3

Розетка  DIN41612-396 FSW

 

Преобразователь интерфейса AC3-M-024 можно заменить другой модификацией, использующей питание 220 вольт.

 

ПРОГРАММНОЕ  ОБЕСПЕЧЕНИЕ

Персональный компьютер управляет работой подключенных устройств под руководством программного обеспечения. Для работы устройств с интерфейсом RS-485 программа должна производить обмен информацией через COM-порт. Для транслирования информации через COM-порт персонального компьютера программа производит установку режима COM-порта, необходимый для работы подключенного прибора – инициализацию порта.

Программа написана на языке TURBO PASCAL 7.0. В состав программы входит процедура INIT_RS232 инициализации COM-порта. Здесь используется входное значение SPEED – скорость обмена информацией в формате WORD. При вызове процедуры нужно указывать скорость обмена информацией, которую должен обеспечить COM-порт. Процедура работает с СОМ-портом № 1, его адрес в шестнадцатеричном представлении – 3F8. Этот адрес называется базовым, он является младшим адресом группы ячеек памяти дающих доступ к порту. Для COM2 базовый адрес 2F8. Для установки скорости обмена информацией необходимо открыть доступ к делителю скорости порта. Для этого записывается единица в старший бит DLAB, расположенный в ячейке с адресом 3F8+3=3FB. Команда выполняющая эту операцию:

 

PORT[$3F8+3]:=PORT[$3F8+3] OR $80; { РАЗРЕШЕНИЕ ЗАГРУЗКИ СКОРОСТИ }

 

Входная переменная SPEED описываемой процедуры INIT_RS232 может принимать стандартные значения скоростей, например 19200 или 9600. В ячейки памяти порта записывается не величина скорости, а целочисленный коэффициент, представляющий собой  результат операции деления константы 115200 на величину скорости передачи. Для этого в процедуре выполняется команда:

 

FREQ:=115200 DIV SPEED;

 

Например, при скорости 19200 переменная SPEED=19200 и переменная FREQ примет значение 6. Именно 6 записывается в одну из ячеек порта, устанавливая скорость обмена информацией. Если требуется низкая скорость, например 200, то переменная  FREQ примет значение 576 и одной ячейки памяти для записи такого коэффициента будет мало, поэтому для указания скорости порт имеет две ячейки, расположенные по адресам 3F8 и 3F9. Запись коэффициента, соответствующего скорости производится двумя командами:

 

PORT[$3F8]:=FREQ;

PORT[$3F9]:=FREQ SHR 8;

 

После установки скорости необходимо указать другие параметры режима работы СОМ-порта и перевести COM-порт из режима установки параметров в нормальный режим обмена информацией. Это можно сделать одной командой:

 

PORT[$3F8+3]:=$03;

 

Бит DLAB переводится в значение нуль, а биты DAB1 и DAB0 переводятся в значение единица каждый, что устанавливает режим посылки восемь бит. Изменяя константу, записываемую в ячейку с адресом $3F8+3 можно установить другой режим работы порта.

 

Процедура установки режима работы COM-порта. В тексте процедуры комментарии заключены в фигурные скобки.

 

PROCEDURE INIT_RS232 (SPEED : WORD);

VAR     NFS : STRING[7];

 

BEGIN

FREQ:=115200 DIV SPEED;

{4800, 19200, 28800, 38400, 57400 — СКОРОСТЬ РАБОТЫ RS-232}

{BASEADR:=$3F8;}

PORT[$3F8+3]:=PORT[$3F8+3] OR $80; { РАЗРЕШЕНИЕ ЗАГРУЗКИ СКОРОСТИ }

PORT[$3F8]:=FREQ;

PORT[$3F9]:=FREQ SHR 8;

PORT[$3F8+3]:=$03;{ УСТАНОВКА ФОРМАТА, ДОСТУП К РЕГИСТРУ ДАННЫХ }

{ ОПИСАНИЕ ПОРТА LSR (PORT[$3F8+3]) — УСТАНОВКА ФОРМАТА ДАННЫХ }

{ НАЗНАЧЕНИЕ БИТОВ }

{ DLAB  BRK  PAR2  PAR1  PAR0  STOP  DAB1  DAB0 }

{ DLAB   = 1  ДОСТУП К УСТАНОВКЕ СКОРОСТИ, = 0  ДОСТУП К РЕГИСТРУ }

{ ПРИЁМНИКА / РЕГИСТРУ ПЕРЕДАТЧИКА (00H) И К РЕГИСТРУ РАЗРЕШЕНИЯ }

{ ПРЕРЫВАНИЙ }

{ BRK       =1   ОСТАНОВКА ВКЛЮЧЕНА, =0   ОСТАНОВКА ВЫКЛЮЧЕНА }

{PAR2,1,0 =000 НЕТ ПРОВЕРКИ, 001 НЕЧЁТНАЯ, 011 ЧЁТНАЯ, 101 ВСЕГДА 1, 111 ВСЕГДА 0}

{ STOP   =1 — 2 СТОП БИТА, 0 — 1 СТОП БИТ

{ DAB1,0  00 — 5 БИТ,  01 — 6 БИТ, 10 — 7 БИТ,   11 — 8 БИТ}

END;

 

После выполнения процедуры INIT_RS232 проинициализированный COM-порт готов к работе. Для передачи нескольких байт через COM-порт внешнему прибору предназначена процедура TRANSMIT. Количество байт и сами байты указываются при вызове процедуры В1…В8 – байты, ТRА – количество байт. Внутри процедуры TRANSMIT содержится процедура TRANSCOM, передающая один байт. Для передачи байта используется прерывание BIOS № 14. Инициализация СОМ-порта проводится каждый раз при передаче группы байт.

 

Процедура передачи нескольких байт через COM-порт. В тексте процедуры комментарии заключены в фигурные скобки.

 

PROCEDURE TRANSMIT   (B1, B2, B3, B4, B5, B6, B7, B8, TRA : BYTE);

PROCEDURE TRANSCOM (BT : BYTE);    { ВТ-ПЕРЕДАВАЕМЫЙ БАЙТ }

VAR E:BYTE;

BEGIN

ASM

MOV AH, 1    { ПЕРЕДАЧА }

MOV DX, 0    { НОМЕР ПОРТА — СОМ1 }

MOV AL, BT { ПЕРЕДАВАЕМЫЙ БАЙТ }

INT 14H         { ВЫЗОВ ПРЕРЫВАНИЯ 14 }

END;

REPEAT  { ОПРОС: ПЕРЕДАЧА БАЙТА ОКОНЧЕНА ? }

ASM

MOV DX, $3F8

ADD DX, 5

IN  AL, DX

AND AL, $20

MOV E, AL

END;

UNTIL E=$20;

END; { ЗАВЕРШЕНИЕ ПРОЦЕДУРЫ TRANSCOM }

 

BEGIN

INIT_RS232(SPEED);   { УСТАНОВКА РЕЖИМА РАБОТЫ ПОРТА }

delay(220);                     { ВРЕМЕННАЯ ЗАДЕРЖКА, ДЛЯ НАДЕЖНОЙ ИНИЦИАЛИЗАЦИИ }

TRANSCOM(B1);         { ВЫБОР КОЛИЧЕСТВА ПЕРЕДАВАЕМЫХ БАЙТ }

IF TRA > 1 THEN TRANSCOM(B2);

IF TRA > 2 THEN TRANSCOM(B3);

IF TRA > 3 THEN TRANSCOM(B4);

IF TRA > 4 THEN TRANSCOM(B5);

IF TRA > 5 THEN TRANSCOM(B6);

IF TRA > 6 THEN TRANSCOM(B7);

IF TRA > 7 THEN TRANSCOM(B8);

 

ASM                               { ЧИСТКА ПОРТА — ХОЛОСТОЕ ЧТЕНИЕ }

MOV DX, $3F8

IN AL, DX

END;

 

INIT_RS232(SPEED);   { УСТАНОВКА РЕЖИМА РАБОТЫ ПОРТА }

END;

 

По окончании процедуры опять проводится инициализация COM-порта.

Подпрограммы являются частью программного обеспечения, управляющего исполнительными механизмами или выводящего графическую информацию на экран монитора, содержащую данные о эффективности приема и передачи или отражающую картину работы приборов с интерфейсом RS-485. Эти подпрограммы можно применить при создании программ управляющих работой приборов с интерфейсом RS-485.

 

  1. Последовательные интерфейсы ПК. Практика программирования. Агуров П. В.
  2. http://www.owen.ru/catalog/37471589

 

Платон Константинович Денисов, г. Симферополь, simferopol1970@gmail.com

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Проверочный код *

Разработка сайта: cryptonic