Просмотр полной версии : ПЛК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) в мануале написано, что происходит опрос очередного регистра.
Спасибо большое.
Прошу помощи..
в каком порядке происходит опрос (чтение, запись) регистров 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
отлично.
тогда как узнать (если возникла ошибка) адрес устройства?
потому как если устройство перестало отвечать, в переменной будет предыдущее значение.
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.
определить устройство с ошибкой, поясните пожалуйста..
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 можно считать (изменить) данные конфигурации
не могу найти сейчас этот документ, но всё равно нужна библиотека (думаю она должна быть)
спасибо большое.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot