Вот это ерунда полная. Это чтоб исключить устройство из опроса. Если подали еденицу она там будет пока не уберете.
Вид для печати
итак подытоживаем...
1. Работа с несколькими Slave устройствами возможно, всё работает.
Чтобы сетевая переменная была в трассировке (читалась в автоматическом режиме или записывалась)- она должна быть задействована в проекте.
(просто её записывать, где нибудь на экране или в энергонезависимую переменную - она должна быть задействована в проекте)
2. Период опроса всех устройств (переменных) со всеми возможными задержками (таймаутами) должен быть больше этого значения.
3. Разрешение опроса - это видимо как разрешение работы 1 -модуль работает, 0 нет
4. Переменная статуса устройства становиться 1 после трех любых последовательных успешных запросов (главное без таймаута) на Slave устройство.
сброс в ноль, когда нет связи (сколько запросов не могу понять). Отключение разрешения опроса не сбрасывает в ноль.
5. Если установить переменную внеочередной записи в 1 через экран - происходит отправка пакета, прием ответа и сброс.
Но вот если эту же переменную записать (один раз) в программе, она не сбрасывается - идет отправка, прием ответа и через таймаут указанный для обмена повторяется, пока сами не запишете ноль.
ПР200 почему то не сбрасывает. Вот это пока не могу понять почему и как сбросить если удачный прием?
а если такой костыль попробовать?
Вложение 74999
п.1 Работает ( в частности 5 устройств точно, с опросом от двух до 8 регистров)
п.2 Особенность : период опроса указан для одного устройства , на все переменные этого слейва оптом. Недавно этот вопрос рассматривался. У человека часть читалось, а вторая часть нет.
п.3. "Опрос" то что у Вас в кружочке №1 именно так и работает. 1- устройство опрашиваться будет 0-нет.
п.4. Не думаю что после именно трех, скорее количества попыток заданных в настройках (ниже адреса) и возможно всех регистров опрошенных успешно конкретного слейва, но это следует проверить, т.к насколько помню, это был модуль вывода и один или два первых выхода срабатывали, остальные нет . но "статус" при этом не выставлялся в 1 вообще. При этом ПР как мастер не может делать групповых, возможно ответ не приходил. Помогло увеличение именно таймаута, а не опроса , это точно. То же самое бывает при связи через конвертор rs485-wifi и обратно, но тут понятно , некоторая задержка канала связи. А там была витая пара.
по п.5 ничего не могу сказать не пробовал делать так, если не ошибаюсь, представители овен как то комментировали ситуацию в части отключения цикличного опроса. Поищите по форуму. Врать не буду, вроде как в этой части что то некорректно. Но у Вас железо на руках, проверить не сложно. Связь сделайте устойчивой сперва.
Я что то не догоняю, как выставить программно 1 , а сброситься она автоматом. Должна быть какая то выходная служебная переменная типа "статуса". И тогда по ней сбрасывать. Экспериментировать видимо надо. Возможно в описании косяк, такое бывает. Можно и сравнивать как предлагалось выше, но если часто меняются значения, то может быть накладка.Цитата:
ПР200 почему то не сбрасывает. Вот это пока не могу понять почему и как сбросить если удачный прием?
Пункты 1 ..5 это не вопрос. Это утверждение и проверено. Под вопросом остаётся сброс переменной записи.
Поскольку. Как уже написал, если выставить через экран - то всё отрабатывается согласно РЭ. А вот если выставить запись через фб переменная уже не сбрасывается. Вот в чём вопрос?
всё правильно мой алгоритм работать не будет..
получается на выходе ФБ я устанавливаю 1 и по логике работы ПР200
это единица при каждом цикле записывается заново и поэтому даже если переменная была сброшена
в начале следующего цикла будет установлена вновь...
как сделать чтобы записывалась один раз?
Попробуйте макрос прикрутить SelChgB
Да, видимо это я вчера пропустил.
Сейчас сделал запись команды в конце цикла и сброс переменной по условию.
Вроде все заработало, так как было задумано.
Но появился ещё один вопрос -
почему не у всех выходных переменных есть расширенные параметры (запись в конце цикла)?