I/O Mapping Matrix: различия между версиями

Строка 207: Строка 207:
==== Датчик протечки ====
==== Датчик протечки ====


Пусть датчик протечки подключен ко входу 1, а реле 1 управляет приводом шарового крана. Реле 2 управляет сигнальной лампой или зуммером. При смачивании датчика протечки реле 1 замыкается и привод закрывает шаровой кран. Реле 2 замыкается и включает зуммер.
Пусть датчик протечки подключен ко '''входу 1''', а '''реле 1 и 2''' управляют приводами шаровых кранов. '''Реле 3''' управляет сигнальной лампой или зуммером. При смачивании датчика протечки '''реле 1 и реле 2''' замыкаются и приводы закрывают шаровые краны. '''Реле 3''' замыкается и включает зуммер. '''Вход 2''' запрограммируем для сброса тревоги и открытия шаровых кранов.


Применим в нашем случае режим, когда состояние входа повторяется каждые 20 минут, для этого запишем в регистр 10 значение 5.  
Очистим mapping-матрицу:
<pre>modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x10 -r384 $(printf ' 0%.0s' {1..64})</pre>


Для проверки отработки этого режима запрограммируем вход 0 на отключение всех реле.
Применим в нашем случае режим, когда состояние входа повторяется каждые 20 минут, для этого запишем в регистр 9 значение 5 (управлять в соответствии с Mapping-матрицей, через 20 минут повторно имитировать состояние ввода), а в остальные — значение 4.
<pre>modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x10 -r9 5 4 4 4 4 4</pre>
 
Для входа датчика протечки (вход 1) используем режим 1000 (8) — включать при замыкании. Для входа кнопки сброса (вход 2) используем режим 0100 (4) — выключить при замыкании.
 
По карте mapping-регистров определяем, что для входа 1 надо записать значение 8 в регистры 384, 385, 386, а для входа 2 — записать значение 4 в регистры 392, 393, 394:
 
<pre>modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x10 -r384 8 8 8</pre>
<pre>modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x10 -r392 4 4 4</pre>
5813

правок