Вы пишете, что надо отключать один из модулей из опроса, так как при отключения этого модуля панель начинает зависать, не отвечает на нажатия и.т.д.
Логичное и описанное в РЭ поведение устройства.
Возможно и остальные процессы в панели в это время "подвисают", в ней же нет (наверное) задач, тасков и параллельных потоков, все в одном цикле и если нет ответа от устройства, то панель ждет таймаут. Как тогда будет работать скрипты и отключать слейв, если она висит в таймауте ответа?
Хорошо, через несколько подвисаний определили что нет ответа от слейва, отключили его. Что дальше? Через сколько опять проверять с ним связь? Допустим через 30 сек например. Слейв отключен и панель опять зависает в таймауте, а оператор в это время то-то там нажимает, а панель не отвечает. И так по кругу. Ненадежно это все.
1. Панель опрашивает только те Modbus-устройства, регистры которых отображаются в текущий момент на экране.
2. Если после всех попыток получить значение регистра не выходит - выводится окно на 2 сек. с указанием того, что связь с устройством № ? потерянна, и так для каждого регистра.
3. Во время выдачи этого сообщения, панель на касания не реагирует (подвисает).
Есть 2 способа это обойти:
1. Выставить бит, который будет запрещать панели опрашивать устройство с определенным адресом (надо знать адреса и соответствующие биты + отдельное окно для управления ими).
2. Опрашивать в макросах с обработкой ошибок и заполнять результатами внутренние регистры, которые потом и отображать на экранах.
Я понимаю что задачи, в том числе скорость обработка разные. В моем случае это не так важно как определить что показания на панели не достоверны. Далее устройство отключаем, подаем сигнал и ждём электрика с тестером и отверткой - то бишь авто возобновления обмена не требуется.
Следы то есть, но чтобы их найти и принять решение, Вам придется использовать макросы, которые должны активизироваться в нужный момент.
Я, например, по результату функции чтения:
Owen.jpg
соответственно вижу какой SlaveID не прочитался и сам выставляю нужный SetPSB или PSW[?] |= 0x01
Я же Вам писал ранее в этом сообщении https://owen.ru/forum/showthread.php...l=1#post451379
Посмотрите внимательно вложение, есть прям регистр где записывается адрес устройства с которым проблемы со связью.
Я это помню - вопрос встал в том что если отвалилось несколько слейвоф то значение в процессе обмена меняется. И Что там будет в момент обращения к нему не понятно.
Вообще исходя из всего сказанного вижу два варианта:
1. Реализовывать обмен через макрос целиком, отслеживая ответы онлайн.
2. Запускать макрос который к примеру раз в 10-20 сек делает трехкратный опрос по одному регистру со слейвов и принимает на основании ответов решение - жив пациент или нет, и выставляет запрет обмена.
Добрый день!
Возник вопрос касательно панели оператора СП307-Р.
Какое количество архивных записей может храниться во внутренней памяти панели и какого объема.
Для ведения архива на USB в руководстве указан максимальный объем записи в 127 регистров и настройка перезаписи по заполнению. Для внутреннего такого описания не нашла.