PDA

Просмотр полной версии : ПЛК110-30 Modbus алгоритм опроса регистров



Васильев
01.08.2023, 20:42
Прошу помощи..
в каком порядке происходит опрос (чтение, запись) регистров modbus устройств?
надо контролировать работу устройств.

Есть связка ПЛК110-30 (мастер) + МВ110-8А (10шт) + МВ110-6у(5шт). ModBus RTU.
в проекте определен мастер, порт, добавлены modbus устройства с регистрами ввода и вывода.
режим работы by poll time 100мс. Собственно вопрос в каком порядке происходит опрос.

1. время проходит 100мс считывается одна переменная, в следующий период вторая?
2. в каждый период все объявленные регистры одного устройства, в следующий период следующее устройство?
3. или в каждый период регистры всех устройств?

если авария modbus slave устройства как идентифицировать какое устройство свалило в аварию?

если готовая библиотека modbus для чтения настроек OWEN устройств (узнать имя, прошивку)?

при ручном опросе (подачи в командый канал FF) в мануале написано, что происходит опрос очередного регистра.


Спасибо большое.

petera
01.08.2023, 20:59
Прошу помощи..
в каком порядке происходит опрос (чтение, запись) регистров modbus устройств?
надо контролировать работу устройств.

Есть связка ПЛК110-30 (мастер) + МВ110-8А (10шт) + МВ110-6у(5шт). ModBus RTU.
в проекте определен мастер, порт, добавлены modbus устройства с регистрами ввода и вывода.
режим работы by poll time 100мс. Собственно вопрос в каком порядке происходит опрос.

1. время проходит 100мс считывается одна переменная, в следующий период вторая?
2. в каждый период все объявленные регистры одного устройства, в следующий период следующее устройство?
3. или в каждый период регистры всех устройств?

если авария modbus slave устройства как идентифицировать какое устройство свалило в аварию?

если готовая библиотека modbus для чтения настроек OWEN устройств (узнать имя, прошивку)?

при ручном опросе (подачи в командый канал FF) в мануале написано, что происходит опрос очередного регистра.


Спасибо большое.

время проходит 100мс считывается одна переменная, в следующий период вторая
а если есть устройства на запись, то время проходит 100мс считывается одна переменная, в следующий период записывается одна переменная, затем опять чтение очередной одной переменной, затем запись очередной одной переменной

kondor3000
01.08.2023, 21:05
Прошу помощи..
в каком порядке происходит опрос (чтение, запись) регистров modbus устройств?
надо контролировать работу устройств.

Есть связка ПЛК110-30 (мастер) + МВ110-8А (10шт) + МВ110-6у(5шт). ModBus RTU.
в проекте определен мастер, порт, добавлены modbus устройства с регистрами ввода и вывода.
режим работы by poll time 100мс. Собственно вопрос в каком порядке происходит опрос.
Спасибо большое.

При таком количестве устройств, надо делать опрос группами. Тут пример, как это реализовать, с помощью String https://owen.ru/forum/showthread.php?t=22915&page=40&p=244022&viewfull=1#post244022
Тут пример чтения блока МВ110-8А с помощью String https://owen.ru/forum/showthread.php?t=35094#10

Здесь обсуждают пример опроса 7 шт. модулей 8АС с помощью String и структур https://owen.ru/forum/showthread.php?t=10555&page=980

В Модбас Мастере есть Last Address ( адрес слейва) и Last Error (ошибки слейва), устройства опрашиваются по очереди, адреса и ошибки меняются, можете определить какое устройство отвалилось или с ним проблемы. Если Last Error=0, устройство успешно читается, нет опроса Last Error=81 ( разные коды ошибок) .

Васильев
01.08.2023, 21:12
отлично.

тогда как узнать (если возникла ошибка) адрес устройства?
потому как если устройство перестало отвечать, в переменной будет предыдущее значение.

Валенок
01.08.2023, 21:29
connect_чего_то(in := last_address = адрес_чего_то and last_error = 0, pt := t#2..15s); //tof

Васильев
01.08.2023, 21:57
connect_чего_то(in := last_address = адрес_чего_то and last_error = 0, pt := t#2..15s); //tof

не совсем понимаю как я смогу определить устройство с ошибкой, поясните пожалуйста..

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

Васильев
01.08.2023, 22:06
При таком количестве устройств, надо делать опрос группами. Тут пример, как это реализовать, с помощью String https://owen.ru/forum/showthread.php?t=22915&page=40&p=244022&viewfull=1#post244022
Тут пример чтения блока МВ110-8А с помощью String https://owen.ru/forum/showthread.php?t=35094#10

Здесь обсуждают пример опроса 7 шт. модулей 8АС с помощью String и структур https://owen.ru/forum/showthread.php?t=10555&page=980

В Модбас Мастере есть Last Address ( адрес слейва) и Last Error (ошибки слейва), устройства опрашиваются по очереди, адреса и ошибки меняются, можете определить какое устройство отвалилось или с ним проблемы. Если Last Error=0, устройство успешно читается, нет опроса Last Error=81 ( разные коды ошибок) .


получается в цикле (чуть быстрее опроса устройств) надо вести контроль значения ошибки и если ошибка фиксировать адрес устройства

kondor3000
01.08.2023, 22:08
не совсем понимаю как я смогу определить устройство с ошибкой, поясните пожалуйста..

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

Включите 2 или больше блоков, сделайте их опрос, один отключите и смотрите что будет. Опрос будет и 16 и 17 слейва, по очереди. Например отвалился слейв 17, при 17 слейве будет и ошибка 81, а при 16 будет 0 ошибок.
Читать нужно одновременно адрес и ошибку, в данный момент времени и например проверять на равенство 0.

Валенок
01.08.2023, 22:11
определить устройство с ошибкой, поясните пожалуйста..

connect_чего_то(in := last_address = адрес_чего_то and last_error = 0, pt := t#2..15s); //tof

Васильев
01.08.2023, 22:32
видится вот такое решение
в основ цикле делаем проверку last_error, если отличается от 0, то фиксируем адрес и сбрасываем last_error

остаётся найти библиотеку modbus считывания конфигурации ОВЕН
находил в каком то мануале по команде 17 можно считать (изменить) данные конфигурации
не могу найти сейчас этот документ, но всё равно нужна библиотека (думаю она должна быть)

спасибо большое.