- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
MT8121 запретить связь
Модераторы: Глоб.модераторы, специалисты Weintek
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
MT8121 запретить связь
Доброе время!
MT8121XE, EbPro последний.
Каким образом (системный бит, слово) можно полностью запретить связь с ModBUS-Slave устройством? Требуется сделать такой "выключатель", который запрещал бы любые посылки на определённое устройство, из макросов и из форм, даже если устройство физически подключено и с ним возможна связь. Устройства разные, подключение - как ModBUS-TCP, так и RS-485 ModBUS-RTU.
Спасибо!
MT8121XE, EbPro последний.
Каким образом (системный бит, слово) можно полностью запретить связь с ModBUS-Slave устройством? Требуется сделать такой "выключатель", который запрещал бы любые посылки на определённое устройство, из макросов и из форм, даже если устройство физически подключено и с ним возможна связь. Устройства разные, подключение - как ModBUS-TCP, так и RS-485 ModBUS-RTU.
Спасибо!
По вопросам работы Форума можно обратиться по этим контактам.
-
- эксперт
- Сообщения: 1030
- Зарегистрирован: 27 июн 2013, 12:20
- Имя: Валерич
- Страна: СССР
- Благодарил (а): 44 раза
- Поблагодарили: 106 раз
MT8121 запретить связь
Предложу наверное, костыльное решение:
можно использовать переменный адрес устройства (LW-10000 и далее) и для исключения связи с определенным слейвом менять адрес слейва на несуществующий. Будет ошибка связи (можно отключить) но на слейв запросы не пойдут.
можно использовать переменный адрес устройства (LW-10000 и далее) и для исключения связи с определенным слейвом менять адрес слейва на несуществующий. Будет ошибка связи (можно отключить) но на слейв запросы не пойдут.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
MT8121 запретить связь
Вот как раз этого-то я и хочу избежать. :) Раз связь отключена - значит и ошибок быть не должно.
Отправлено спустя 14 минут 19 секунд:
Руками-то я это делаю (вкл/выкл), но есть подозрение что корявенько и не досмотрел стандартных средств для этого, хотя искал.
По вопросам работы Форума можно обратиться по этим контактам.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
MT8121 запретить связь
:) 20 устройств, все сходятся в один коммутатор, но он не единственный и отключать каждое - к иным придется довольно далеко сбегать, потому что за головным коммутатором ещё оптика, одномодовая. :) Поэтому сделан набор битовых переключателей, который программно обработан. Но суть задачи обратная. Где-то там одно или несколько устройств могут выдернуться или замолчать по другим причинам, а бежать далеко и некому, и пока туда не сбегали - будут таймауты, они тормозят панель. Вот поэтому и возникла идея просто отключать обмен с проблемным устройством чтобы не тормозить панель таймаутами, потому что потеря одного или даже нескольких устройств не даёт оснований для остановки техпроцесса и персонал должен продолжать рулить с минимумом проблем. Такой процесс.
По вопросам работы Форума можно обратиться по этим контактам.
-
- освоился
- Сообщения: 233
- Зарегистрирован: 11 апр 2013, 13:22
- Имя: Вишневский Денис
- Благодарил (а): 11 раз
- Поблагодарили: 13 раз
MT8121 запретить связь
а если по отключению бита опроса, отключать тот элемент(прятать или менять на другой), который с ним связан? по идее ошибка должна уйти
"- Знаешь, дружище, в чем истинный смысл второго закона термодинамики?
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
MT8121 запретить связь
Само собой, этот бит ставится в свойства элемента в раздел "безопасность". Но в проекте огромное количество элементов графики, и 20 устройств. представьте, сначала создать это для одного устройства, а потом растиражировать на 19 остальных, и в каждом элементе не забыть переправить этот бит. Кроме того, данные нужны и в скриптах и там тоже это обрабатывается. В результате это всё очень усложняет проект. Вот и ищется решение проще.
По вопросам работы Форума можно обратиться по этим контактам.
-
- освоился
- Сообщения: 233
- Зарегистрирован: 11 апр 2013, 13:22
- Имя: Вишневский Денис
- Благодарил (а): 11 раз
- Поблагодарили: 13 раз
MT8121 запретить связь
прописать максимально длинные таймауты ?Jackson писал(а): ↑23 апр 2020, 14:02 Само собой, этот бит ставится в свойства элемента в раздел "безопасность". Но в проекте огромное количество элементов графики, и 20 устройств. представьте, сначала создать это для одного устройства, а потом растиражировать на 19 остальных, и в каждом элементе не забыть переправить этот бит. Кроме того, данные нужны и в скриптах и там тоже это обрабатывается. В результате это всё очень усложняет проект. Вот и ищется решение проще.
"- Знаешь, дружище, в чем истинный смысл второго закона термодинамики?
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
MT8121 запретить связь
Само собой. Но ввиду того что обмен данными интенсивный, задержки чувствуются при работе, хотелось бы их нивелировать.
По вопросам работы Форума можно обратиться по этим контактам.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
MT8121 запретить связь
Этот вопрос по топику сам же и раскрутил.
Итак. Можно запретить попытку ре-коннекта после ошибки таймаута - это LB-9153 и далее. Если его отключить, то связь будет продолжаться до первой ошибки таймаута, после неё устройство будет считаться отключенным и отсутствующим, запросы к нему не уйдут из панели.
Признак того что устройство подключено - это LB-10100 и далее, с учётом LB-9153. Отключили LB9153 - LB-10100 будет в 1 до тех пор пока устройство фактически есть, по ошибке таймаута LB-10100 станет 0 и так и останется, до тех пор пока LB-9153 не переключат в 1 и связь не возобновится (устройство ответит).
Вывод 1: каким-либо параметром прервать связь пока она есть - штатными средствами никак. Мне пришлось делать нештатными. Когда устройства и фактически нет - это можно сделать, а когда оно есть и отвечает - такой штатной возможности нет.
Вывод 2: Как-то глючно это работает. Сделал управление по LB-9153 и признаком "связь есть" использовал LB-10100 - в итоге после рестарта панели связь сама не восстанавливается. LB-10100 устанавливается в 1, но запросы не уходят. Почему - так и не понял до конца. В какой-то момент достаточно просто перейти на экран где есть формы прямого отображения LB-9153 и LB10100 - после этого связь поднимается сама. То ли я чего-то не понял, то ли тут глюк в драйвере ModBUS-TCP.
В итоге от штатных средств отказался и вернул свои собственные, это кушает больше ресурсов панели (15-20% загрузки процессора) и вообще сложнее, зато работает.
Итак. Можно запретить попытку ре-коннекта после ошибки таймаута - это LB-9153 и далее. Если его отключить, то связь будет продолжаться до первой ошибки таймаута, после неё устройство будет считаться отключенным и отсутствующим, запросы к нему не уйдут из панели.
Признак того что устройство подключено - это LB-10100 и далее, с учётом LB-9153. Отключили LB9153 - LB-10100 будет в 1 до тех пор пока устройство фактически есть, по ошибке таймаута LB-10100 станет 0 и так и останется, до тех пор пока LB-9153 не переключат в 1 и связь не возобновится (устройство ответит).
Вывод 1: каким-либо параметром прервать связь пока она есть - штатными средствами никак. Мне пришлось делать нештатными. Когда устройства и фактически нет - это можно сделать, а когда оно есть и отвечает - такой штатной возможности нет.
Вывод 2: Как-то глючно это работает. Сделал управление по LB-9153 и признаком "связь есть" использовал LB-10100 - в итоге после рестарта панели связь сама не восстанавливается. LB-10100 устанавливается в 1, но запросы не уходят. Почему - так и не понял до конца. В какой-то момент достаточно просто перейти на экран где есть формы прямого отображения LB-9153 и LB10100 - после этого связь поднимается сама. То ли я чего-то не понял, то ли тут глюк в драйвере ModBUS-TCP.
В итоге от штатных средств отказался и вернул свои собственные, это кушает больше ресурсов панели (15-20% загрузки процессора) и вообще сложнее, зато работает.
По вопросам работы Форума можно обратиться по этим контактам.