Сетевые переменные

Top  Previous  Next

Для доступа по протоколу Modbus память контроллера должна быть разделена на 4 банка.

Input Status
Coil
Input Register
Holding Register

Название банка памяти

Тип переменных

Чтение/запись

Название Направления переменной

Input Status

bool

только чтение

R(in)

Coil

bool

запись/чтение

R/W(out), R(out)

Input Register

integer, float, long

только чтение

R(in)

Holding Register

integer, float, long

запись/чтение

R/W(out), R(out)

 

Соответствие функций Modbus Названиям направлений переменных смотрите в описаниях ниже.

 

Переменная R (in)

Переменная R (in) имеет выход, с которого считывается её значение.

Рис.1 - Переменная R (in)

Выход может иметь тип bool, integer, long и float. Данные на выходе обновляются  в соответствии с периодом опроса и пропускной способностью сети.

Для чтения используются функции Modbus:

2 (0x02) — чтение значений из нескольких дискретных входов (Read Discrete Inputs)
4 (0x04) — чтение значений из нескольких регистров ввода (Read Input Registers)

 

Переменная R/W (out)

Рис.2 - Переменная R/W (out)

Переменная R/W (out) имеет вход записи нового значения и выход для чтения последнего записанного значения. Вход и выход могут иметь тип bool, integer, long и float. Данные на вход поступают согласно периоду опроса, считываются с выхода в том же периоде.

При обращении к этой переменной мастер формирует 2 последовательных запроса:

запрос на запись переменной
запрос на чтение переменной

 

Для чтения используются функции Modbus:

1 (0x01) — чтение значений из нескольких регистров флагов (Read Coil Status)
3 (0x03) — чтение значений из нескольких регистров хранения (Read Holding Registers)

 

Для записи:

Если флаг Групповые запросы выключен:
o5 (0x05) — запись значения одного флага (Force Single Coil)
o6 (0x06) — запись значения в один регистр хранения (Preset Single Register)
Если флаг Групповые запросы включен:
o15 (0x0F) — запись значений в несколько регистров флагов (Force Multiple Coils)
o16 (0x10) — запись значений в несколько регистров хранения (Preset Multiple Registers)

 

Переменная R (out)

Переменная R (out) имеет выход, с которого считывается значение переменной.

Рис.3 - Переменная R (out)

Выход может иметь тип bool, integer, long и float. Данные на выходе обновляются  в соответствии с периодом опроса и пропускной способностью сети.

Для чтения используются функции Modbus:

1 (0x01) — чтение значений из нескольких регистров флагов (Read Coil Status)
3 (0x03) — чтение значений из нескольких регистров хранения (Read Holding Registers)

 

Переменные R (in), R (out) и R/W (out) с нециклическим опросом

Рис.4 - Переменные нециклическим опросом

Переменные R (in), R (out) и R/W (out) с нециклическим опросом появляются, если цикл опроса равен 0.

В этом случае, она имеет дополнительные:

вход "^" -  по фронту производится отправка запроса на чтение/запись
выход "rdv" - подтверждение получения запроса слейвом.

Выставляется в "0" при получении фронта на вход "^"

Выставляется в "1" при получении подтверждения от слейва

При старте программы на выходе "rdv" выставляется "0".

Для переменной R/W лог "1" на выходе "rdv" выставляется только после обработки 2 -го запроса.

 

Если флаг Групповые запросы включен нециклические запросы могут быть объединены в один запрос, если:

на их входа "^" протянуты связи от одного выхода
соблюдены остальные условия объединения

 

Переменная Echo

Рис. 5 - Переменная Echo

Запрос-переменная Echo служит для диагностики связи со слейвом. Работает только в том случае, если данная функция поддерживается в устройстве-слейве.

Контроллеры Segnetics поддерживает функцию Echo как в качестве слейва, так и мастера.

В этом режиме, мастер делает запрос слейву и получает обратно ту же самую переменную. На этом основании можно судить о работоспособности канала связи между мастером и диагностируемым слейвом. Однако, следует помнить, что так можно установить только работоспособность физического канала связи со слейвом и его Modbus  - драйвера. Прикладная же программа слейва при этом, может работать ошибочно или вообще зависнуть. Для более точной диагностики используются алгоритмы на уровне проекта в SMLogix.

Входы и выходы:

Вход "R" - сброс чисел, накопленных на выходах
Выход "err" - количество ошибочных запросов Echo
Выход "n resp" - общее количество запросов Echo, отправленных с момента последнего срабатывания входа "R".