На главную Форум Проекты Ссылки Скачать Статьи ProgCode_Help

 Универсальный релейный модуль

5 входов 5 выходов + RS485

block_author
Релейный модуль был разработан для применения в производстве и предназначен для встраивания в существующую систему мониторинга производственного процесса. Схема релейного модуля была изначально задумана как универсальная, и может быть с успехом применена как в производстве, так и в радиолюбительских целях.

Характеристики модуля:
Количество цифровых входов:                                5
Количество релейных выходов:                              5
Интерфейс обмена данными:                                   2W-RS485\RS232
Напряжение цифровых входов:                               24В
Максимальный коммутируемый ток
(зависит от применяемого реле):                             6А

Схема релейного модуля представлена на рисунке:
Схема релейного модуля

Основой модуля является микроконтроллер PIC16F628A. Порт А которого использован как цифровые входы, а часть порта B как релейные выходы через соответствующие усилители управляющие реле. Все цифровые входы имеют опторазвязку.

Для реализации RS485 применена микросхема MAX1483. При необходимости вместо  RS485 интерфейса можно применить RS232, использовав микросхему MAX232 или ее аналог.
Однако следует отметить, что максимальная дальность линии RS485 может достигать 1 км, а RS232 как правило не более 5 метров.

Схема для желающих применить RS232 интерфейс представлена на рисунке:
Схема пдключения релейного модуля к компьютеру


Детали:
VT1 – VT5 – KT645, если необходимо применить реле с током потребления больше 250 мA данный транзистор лучше заменить на более мощный, например КТ815. Или Дарлингтона  КТ972, что так же избавит от необходимости установки защитных диодов VD1 – VD5.
Оптопары VU1 – VU5 – АОТ128Б или аналоги.
Реле K1-K5  типа TRD-12VDC-FB-CL или другие в зависимости от необходимых требований.

Формат обмена данными

Данные передаваемые от релейного модуля и к нему представляют собой  8-разрядные символы ASCII без бита четности с одним стоповым битом. Время между двумя командами посылаемыми в модуль не должно быть меньше 50 мс.

Запрос состояния:

ASCII

STX

R

x

S

LRC

HEX формат

02h

52h

x

53h

LRC

Где: x-байт адреса модуля в 16-ричном формате, LRC-байт контрольной суммы.

Ответ модуля:

ASCII

ENQ

K

x

x1

x2

LRC

HEX формат

05h

4Bh

x

x1

x2

LRC

Где: x1-байт состояния цифровых входов, x2-байт состояния релейных выходов.

Возможные значения байта x1:

ЦВ.ВХ 5

ЦВ.ВХ 4

ЦВ.ВХ 3

ЦВ.ВХ 2

ЦВ.ВХ 1

Байт x1

0

0

0

0

0

00h

0

0

0

0

1

01h

0

0

0

1

0

02h

0

0

0

1

1

03h

0

0

1

0

0

04h

0

0

1

0

1

05h

0

0

1

1

0

06h

.
.
.

1

1

1

1

1

1Fh



Возможные значения байта x2:

РЛ.ВЫХ 5

РЛ.ВЫХ 4

РЛ.ВЫХ 3

РЛ.ВЫХ 2

РЛ.ВЫХ 1

Байт x2

0

0

0

0

0

00h

0

0

0

0

1

08h

0

0

0

1

0

10h

0

0

0

1

1

18h

0

0

1

0

0

20h

0

0

1

0

1

28h

0

0

1

1

0

30h

.
.
.

1

1

1

1

1

F8h



Включение релейного выхода:

ASCII

STX

R

x

O

x3

LRC

HEX формат

02h

52h

x

4Fh

x3

LRC

Где: x3-номер релейного выхода   01h - 1й рл. вых, 02h - 2й рл.вых. и т.д. до 05h

Выключение релейного выхода:

ASCII

STX

R

x

F

x3

LRC

HEX формат

02h

52h

x

46h

x3

LRC

Где: x3-номер релейного выхода   01h-1й рл. вых, 02h-2й рл.вых. и т.д.

Ответ модуля на успешное выполнение команды включения или выключения реле – 59h.

Программирование

Модуль позволяет изменять 3 параметра
1. Адрес в сети (может принимать значения от 0 – 00h до 85 – 55h)
2. Скорость обмена данными
3. Режим сохранения статуса релейных выходов

Запрос данных:

ASCII

P

D

x

LRC

HEX формат

50h

44h

x

LRC


Ответ модуля:

ASCII

D

x4

x5

x6

LRC

HEX формат

44h

x4

x5

x6

LRC

Где: x4-адрес модуля, x5-скорость обмена данными, x6-включен\выключен режим сохранения статуса релейных выходов.

Скорость обмена данными представляет собой байт и имеет следующее соответствие с реальной скоростью в бодах:
1200 бод/с – CFh
2400 бод/с – 67h
9600 бод/с – 19h
19200 бод/с – Ch

Включенный режим сохранения статуса релейных выходов дает возможность модулю записывать текущее состояние релейных выходов в энергонезависимую память. При пропадании питания и повторном включении модуль самостоятельно включит ранее включенные релейные выходы.

Состояние байта x6: 00h - режим выключен, 01h – режим включен.

Загрузка настроек в модуль:
1 этап – установка режима программирования.

ASCII

P

S

R

x

LRC

HEX формат

50h

53h

52h

x

LRC


2 этап – загрузка настроек в модуль.

ASCII

S

x4

x5

x6

LRC

HEX формат

53h

x4

x5

x6

LRC


Ответ модуля на успешно завершенный процесс программирования:
53h     59h
После чего, модуль производит повторную инициализацию.

Расчет контрольной суммы

Для предотвращения возможного ложного включения от помех или глюков возникающих от шума в сети в строки обмена данными добавлена контрольная сумма передаваемой команды. Для расчета контрольной суммы необходимо произвести следующие действия:
Например, модуль имеет 0 - й адрес, тогда строка запроса состояния в 16-ричном виде будет выглядеть: 

02h     52h     00h     53h        

Для расчета контрольной суммы необходимо сложить все байты, произвести инвертирование бит в получившейся сумме, и прибавить 1.

02h+52h+00h+53h=A7

Или в двоичном виде:

1010  0111

После инверсии бит:

0101  1000   =   58h

+1

0101   1001  =  59h  - контрольная сумма.

Тогда строка запроса состояния окончательно:

02h     52h     00h     53h     59h  

При неверной контрольной сумме или ошибке приема релейный модуль посылает - 07h.

Программное обеспечение

Скриншот окна программы

Программа для проверки и настройки релейных модулей :    RmodulTool5x5.rar  
(Для установки разархивируйте и запустите setup)

Прошивка для микроконтроллера PIC16F628A в HEX формате :  RModul5x5.rar    
Та-же прошивка в формате программы ProgCode :  RModul5x5.sfr         
(Прошивка модуля являются демо-версией, и имеет ограничения по максимально возможному количеству адресов равным 5. Т.е. в единой сети можно использовать до 6 таких модулей включая 0й адрес)










Страница создана 29 сентября 2009 года


Rambler's Top100


Hosted by uCoz