- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Сброс данных при потери связи с Modbus слэйвом
Модераторы: Глоб.модераторы, специалисты Flexem
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 27 июн 2023, 09:11
- Имя: Дмитрий
- Страна: Россия
- город/регион: Екатеринбург / Свердловская область
- Поблагодарили: 1 раз
Сброс данных при потери связи с Modbus слэйвом
Добрый день. У меня есть программа для управления частотными преобразователями. На 3 насоса. Все работает хорошо пока не пропадает связь с одним из частотников. По факту связи с ПЧ1 нет но программа видимо пытается обращаться в адреса этого устройства и ничего там не получив считает истинным то значение которое было последним до обрыва связи. (например, что частотник находится в режиме авто), и из за этого нарушается вся структура отображения элементов. Появляются кнопки которые не должны появляются, по прежнему показывает что насос крутится и т.д. Как от этого избавиться подскажите пожалуйста. Я нашел в системных регистрах адрес SRW 120 в который прописывается 10 значение двоичного кода массива из устройств в которых связь пропала (например устройство №1 = 2, устройство №1 = 4, устройство №1 = 8, а если устройства №1 и №2 то = 4). Так же нашел адрес SRW 10230 в котором можно активировать или деактивировать automatic stop COM1 communication. То есть как я понял панель перестает обращаться в устройство в котором пропала связь. Я его активировал (задал значение 10), увидел в адресе SRW 800 все тот же номер устройства которое "заблокирована" (например устройство №1 = 2), но почему то в случае с 3м устройством зависания и глюки все равно есть. Продолжает отображаться что насос крутится. И что он находится в автоматическом режиме, и все эти условия влияют на отображение кнопок.
Как то можно сделать так, что если связь пропала то панель перестала к устройству обращаться? Может я не правильно разобрался с параметром SRW10230
Отправлено спустя 49 минут 2 секунды:
se_sib, где можно получить помощь по работе с программой.
Например сколько максимум можно задать условий для отображения элемента? При определенных случаях некоторые условия начинают просто игнорироваться. У меня прописаны условия все через оператор AND они все выполняются (я вижу это вытащив специально экраны всех адресов) по при этом элемент не отображается. В чем проблема может быть?
Я пытался сделать это через макрос, и потом просто добавить переменные в условия отображения. Вроде получилось. Но при обрыве связи с одним из устройств макрос продолжает каждую секунду обращаться в адреса устройства которого в сети нет и это вызывает жуткий глюк. Панель тормозит.
Второй момент в разделе тревоги и события. Условия для запуска события можно задать только 3. А мне надо как минимум 5.
Как то можно сделать так, что если связь пропала то панель перестала к устройству обращаться? Может я не правильно разобрался с параметром SRW10230
Отправлено спустя 49 минут 2 секунды:
se_sib, где можно получить помощь по работе с программой.
Например сколько максимум можно задать условий для отображения элемента? При определенных случаях некоторые условия начинают просто игнорироваться. У меня прописаны условия все через оператор AND они все выполняются (я вижу это вытащив специально экраны всех адресов) по при этом элемент не отображается. В чем проблема может быть?
Я пытался сделать это через макрос, и потом просто добавить переменные в условия отображения. Вроде получилось. Но при обрыве связи с одним из устройств макрос продолжает каждую секунду обращаться в адреса устройства которого в сети нет и это вызывает жуткий глюк. Панель тормозит.
Второй момент в разделе тревоги и события. Условия для запуска события можно задать только 3. А мне надо как минимум 5.
-
- специалист по FLEXEM
- Сообщения: 315
- Зарегистрирован: 14 дек 2015, 12:15
- Имя: Евгений
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 7 раз
- Поблагодарили: 84 раза
Сброс данных при потери связи с Modbus слэйвом
Здравствуйте, какую модель панели Flexem вы используете? Версия среды разработки FStudio 2.x или Fsudio 3.x?DimaDrobot писал(а): ↑14 сен 2023, 12:02 Добрый день. У меня есть программа для управления частотными преобразователями. На 3 насоса. Все работает хорошо пока не пропадает связь с одним из частотников. По факту связи с ПЧ1 нет но программа видимо пытается обращаться в адреса этого устройства и ничего там не получив считает истинным то значение которое было последним до обрыва связи. (например, что частотник находится в режиме авто), и из за этого нарушается вся структура отображения элементов. Появляются кнопки которые не должны появляются, по прежнему показывает что насос крутится и т.д. Как от этого избавиться подскажите пожалуйста. Я нашел в системных регистрах адрес SRW 120 в который прописывается 10 значение двоичного кода массива из устройств в которых связь пропала (например устройство №1 = 2, устройство №1 = 4, устройство №1 = 8, а если устройства №1 и №2 то = 4). Так же нашел адрес SRW 10230 в котором можно активировать или деактивировать automatic stop COM1 communication. То есть как я понял панель перестает обращаться в устройство в котором пропала связь. Я его активировал (задал значение 10), увидел в адресе SRW 800 все тот же номер устройства которое "заблокирована" (например устройство №1 = 2), но почему то в случае с 3м устройством зависания и глюки все равно есть. Продолжает отображаться что насос крутится. И что он находится в автоматическом режиме, и все эти условия влияют на отображение кнопок.
Как то можно сделать так, что если связь пропала то панель перестала к устройству обращаться? Может я не правильно разобрался с параметром SRW10230
Отправлено спустя 49 минут 2 секунды:
se_sib, где можно получить помощь по работе с программой.
Например сколько максимум можно задать условий для отображения элемента? При определенных случаях некоторые условия начинают просто игнорироваться. У меня прописаны условия все через оператор AND они все выполняются (я вижу это вытащив специально экраны всех адресов) по при этом элемент не отображается. В чем проблема может быть?
Я пытался сделать это через макрос, и потом просто добавить переменные в условия отображения. Вроде получилось. Но при обрыве связи с одним из устройств макрос продолжает каждую секунду обращаться в адреса устройства которого в сети нет и это вызывает жуткий глюк. Панель тормозит.
Второй момент в разделе тревоги и события. Условия для запуска события можно задать только 3. А мне надо как минимум 5.
Если у вас какой-то ОЕМ-ый вариант панели(т.е. под именем и моделью другой компании), то это вам к ним обращаться нужно.
Закину ваш случай инженерам Flexem. Напишу чтобы доработали драйвер, сделали выбор сбрасывать значения каналов в 0 или замораживать последние значения при обрыве связи.
Позже, как освобожусь, потестирую сам с несколькими слэйвами Modbus RTU.
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 27 июн 2023, 09:11
- Имя: Дмитрий
- Страна: Россия
- город/регион: Екатеринбург / Свердловская область
- Поблагодарили: 1 раз
Сброс данных при потери связи с Modbus слэйвом
Да. Вот выбор сбрасывать значения в ноль очень нужно. Третий день бьюсь с этой проблемой. В первых двух устройствах вроде проблема ушла, когда начал везде в условиях добавлять состояние адреса SRW 120. А вот в третьем ни в какую не хочет. В условиях отображения кнопки написаны условия, все через AND, одно из них SRW120 != 8. При этом SRW120 = 8 (вижу на вытащенном экране),а кнопка все равно отображается. Почему не могу понять. После перезагрузки панели (3е устройство так и остается отключенным) отображается все нормально, согласно условиям. Среда разработки 3.0 Панель у меня Flexem FE6100WE.
Отправлено спустя 14 минут 28 секунд:
Вот фото условий отображения индикатора работы на мнемосхеме, например. Отправлено спустя 15 минут 15 секунд:
А вот то что на экране HMI
Отправлено спустя 14 минут 28 секунд:
Вот фото условий отображения индикатора работы на мнемосхеме, например. Отправлено спустя 15 минут 15 секунд:
А вот то что на экране HMI
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- специалист по FLEXEM
- Сообщения: 315
- Зарегистрирован: 14 дек 2015, 12:15
- Имя: Евгений
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 7 раз
- Поблагодарили: 84 раза
Сброс данных при потери связи с Modbus слэйвом
Коллега из Flexem ответил, на вкладе расширеных настроек можно настроить отображение.DimaDrobot писал(а): ↑14 сен 2023, 15:11 Да. Вот выбор сбрасывать значения в ноль очень нужно. Третий день бьюсь с этой проблемой. В первых двух устройствах вроде проблема ушла, когда начал везде в условиях добавлять состояние адреса SRW 120. А вот в третьем ни в какую не хочет. В условиях отображения кнопки написаны условия, все через AND, одно из них SRW120 != 8. При этом SRW120 = 8 (вижу на вытащенном экране),а кнопка все равно отображается. Почему не могу понять. После перезагрузки панели (3е устройство так и остается отключенным) отображается все нормально, согласно условиям. Среда разработки 3.0 Панель у меня Flexem FE6100WE
По SRW120 неправильно сопоставляете данные слэйвам.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 27 июн 2023, 09:11
- Имя: Дмитрий
- Страна: Россия
- город/регион: Екатеринбург / Свердловская область
- Поблагодарили: 1 раз
Сброс данных при потери связи с Modbus слэйвом
se_sib, Не совсем понял что мне это дает. Отображение до получения данных, и отображение когда данные перестали поступать вроде разные вещи.
По SRW120 неправильно сопоставляете данные слэйвам. - Тут я тоже не понял, что хотели сказать.
В SRW120 (так же как и в SRW800) данные отображаются правильно просто замудрено немного.
2 ( 0010 в двоичном коде) - соответствует первой станции;
4 ( 0100 в двоичном коде)- соответствует второй;
8 ( 1000 в двоичном коде) - соответствует 3й;
6 ( 0110 в двоичном коде) (2+4) соответствует первая и вторая в ошибке;
10 ( 1010 в двоичном коде) (2+8) - первая и третья в ошибке.;
12 ( 1100 в двоичном коде) (4+8) - вторая и третья в ошибке.;
14 ( 1110 в двоичном коде) (2+8+4) - первая вторая и третья.
Через двоичный код это все прекрасно выглядит.
По SRW120 неправильно сопоставляете данные слэйвам. - Тут я тоже не понял, что хотели сказать.
В SRW120 (так же как и в SRW800) данные отображаются правильно просто замудрено немного.
2 ( 0010 в двоичном коде) - соответствует первой станции;
4 ( 0100 в двоичном коде)- соответствует второй;
8 ( 1000 в двоичном коде) - соответствует 3й;
6 ( 0110 в двоичном коде) (2+4) соответствует первая и вторая в ошибке;
10 ( 1010 в двоичном коде) (2+8) - первая и третья в ошибке.;
12 ( 1100 в двоичном коде) (4+8) - вторая и третья в ошибке.;
14 ( 1110 в двоичном коде) (2+8+4) - первая вторая и третья.
Через двоичный код это все прекрасно выглядит.
-
- специалист по FLEXEM
- Сообщения: 315
- Зарегистрирован: 14 дек 2015, 12:15
- Имя: Евгений
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 7 раз
- Поблагодарили: 84 раза
Сброс данных при потери связи с Modbus слэйвом
Сейчас занимался вашей задачей, пока вариантов обнулить данные при обрыве нет.DimaDrobot писал(а): ↑15 сен 2023, 17:08 se_sib, Не совсем понял что мне это дает. Отображение до получения данных, и отображение когда данные перестали поступать вроде разные вещи.
По SRW120 неправильно сопоставляете данные слэйвам. - Тут я тоже не понял, что хотели сказать.
В SRW120 (так же как и в SRW800) данные отображаются правильно просто замудрено немного.
2 ( 0010 в двоичном коде) - соответствует первой станции;
4 ( 0100 в двоичном коде)- соответствует второй;
8 ( 1000 в двоичном коде) - соответствует 3й;
6 ( 0110 в двоичном коде) (2+4) соответствует первая и вторая в ошибке;
10 ( 1010 в двоичном коде) (2+8) - первая и третья в ошибке.;
12 ( 1100 в двоичном коде) (4+8) - вторая и третья в ошибке.;
14 ( 1110 в двоичном коде) (2+8+4) - первая вторая и третья.
Через двоичный код это все прекрасно выглядит.
В понедельник буду обсуждать с Flexem чтобы добавили в системные переменные или в настройки выбор сбрасывать/удерживать значения переменных слэйва после обрыва связи.
По SRW120~135 вы правы, но усложняете.
Просто начиная с 1 бита, каждый бит отвечает за связь с соответствующим слэйвом.
Бит0 - не используется
Бит1 - Cлэйв с Modbus адресом 1
Бит2 - Cлэйв с Modbus адресом 2
и т.д. с переходом на следующие регистры(до 255 адресов)
Проще использовать биты из слова, а не значение всего регистра для условия отображения.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 27 июн 2023, 09:11
- Имя: Дмитрий
- Страна: Россия
- город/регион: Екатеринбург / Свердловская область
- Поблагодарили: 1 раз
Сброс данных при потери связи с Modbus слэйвом
Добрый день.
"Просто начиная с 1 бита, каждый бит отвечает за связь с соответствующим слэйвом."
Ну да я это так и понял, просто описал по другому. На счет "Проще использовать биты из слова" спасибо это попробую.
Буду ждать от Вас информацию по обнулению значений слейвов. могу указать личный телефон, если нужно.
"Просто начиная с 1 бита, каждый бит отвечает за связь с соответствующим слэйвом."
Ну да я это так и понял, просто описал по другому. На счет "Проще использовать биты из слова" спасибо это попробую.
Буду ждать от Вас информацию по обнулению значений слейвов. могу указать личный телефон, если нужно.
-
- специалист по FLEXEM
- Сообщения: 315
- Зарегистрирован: 14 дек 2015, 12:15
- Имя: Евгений
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 7 раз
- Поблагодарили: 84 раза
Сброс данных при потери связи с Modbus слэйвом
Обсудил с коллегами из Flexem, они отправят заявку на реализацию в отдел разработок(R&D).DimaDrobot писал(а): ↑18 сен 2023, 07:57 Добрый день.
"Просто начиная с 1 бита, каждый бит отвечает за связь с соответствующим слэйвом."
Ну да я это так и понял, просто описал по другому. На счет "Проще использовать биты из слова" спасибо это попробую.
Буду ждать от Вас информацию по обнулению значений слейвов. могу указать личный телефон, если нужно.
Я пробовал сбросить в 0 переменные на экране в случае обрыва связи по битовым триггерам из SWR120.X через настраиваемые действия экрана и через вызов макроса, к сожалению это не работает.
В данный момент единственный вариант сбросить данные это смена экрана. Т.е. при возврате на экран будет отображение в соответствии с выбранными настройками в Extended Settings.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 27 июн 2023, 09:11
- Имя: Дмитрий
- Страна: Россия
- город/регион: Екатеринбург / Свердловская область
- Поблагодарили: 1 раз
Сброс данных при потери связи с Modbus слэйвом
Добрый день. Спасибо за попытку. Подскажите, Всплывающее окон в этом случае подойдет? Для сброса на ноль? При обрыве выкидывается системное окно, которое не закрывается, а только можно перетащить. Вот может с этим окном что то можно придумать...
-
- специалист по FLEXEM
- Сообщения: 315
- Зарегистрирован: 14 дек 2015, 12:15
- Имя: Евгений
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 7 раз
- Поблагодарили: 84 раза
Сброс данных при потери связи с Modbus слэйвом
Всплывающее не подойдет. Информационным окном о коммуникационной ошибки связи можно управлять с помощью бита в системном слове SRW496.2. Выставите в True и оно не будет появляться.DimaDrobot писал(а): ↑19 сен 2023, 17:14 Добрый день. Спасибо за попытку. Подскажите, Всплывающее окон в этом случае подойдет? Для сброса на ноль? При обрыве выкидывается системное окно, которое не закрывается, а только можно перетащить. Вот может с этим окном что то можно придумать...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 27 июн 2023, 09:11
- Имя: Дмитрий
- Страна: Россия
- город/регион: Екатеринбург / Свердловская область
- Поблагодарили: 1 раз
Сброс данных при потери связи с Modbus слэйвом
Добрый день.
Информационным окном о коммуникационной ошибки связи можно управлять с помощью бита в системном слове SRW496.2. Выставите в True и оно не будет появляться.
Да нее. Это я знаю. Я имел ввиду, что возможно как-то его можно использовать для сброса на ноль.
Так тогда мне нужно создать условие, при обрыве связи переход в другое окно, допустим в котором то же самое предупреждение об обрыве. И кнопка вернуться на главный. И при возврате на главный, в таком случае будет сбрасываться если стоит галочка Display Zero.
Верно?
Информационным окном о коммуникационной ошибки связи можно управлять с помощью бита в системном слове SRW496.2. Выставите в True и оно не будет появляться.
Да нее. Это я знаю. Я имел ввиду, что возможно как-то его можно использовать для сброса на ноль.
Так тогда мне нужно создать условие, при обрыве связи переход в другое окно, допустим в котором то же самое предупреждение об обрыве. И кнопка вернуться на главный. И при возврате на главный, в таком случае будет сбрасываться если стоит галочка Display Zero.
Верно?
-
- специалист по FLEXEM
- Сообщения: 315
- Зарегистрирован: 14 дек 2015, 12:15
- Имя: Евгений
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 7 раз
- Поблагодарили: 84 раза
Сброс данных при потери связи с Modbus слэйвом
Да, но в настройках экрана нельзя настроить переход на другой экран по условию, в макросах тоже нет функции смены экрана.DimaDrobot писал(а): ↑20 сен 2023, 10:58 Добрый день.
Информационным окном о коммуникационной ошибки связи можно управлять с помощью бита в системном слове SRW496.2. Выставите в True и оно не будет появляться.
Да нее. Это я знаю. Я имел ввиду, что возможно как-то его можно использовать для сброса на ноль.
Так тогда мне нужно создать условие, при обрыве связи переход в другое окно, допустим в котором то же самое предупреждение об обрыве. И кнопка вернуться на главный. И при возврате на главный, в таком случае будет сбрасываться если стоит галочка Display Zero.
Верно?
Коллеги сегодня прислали пример с костылем.
Создаете на экране кнопку с функцией перехода на другой экран и на нее накладываете элемент который называется Touch Trigger, он имитирует нажатие на экран в месте где располагается, по условию.
Например, будет нажимать на кнопку если SRW120.1=1
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 32
- Зарегистрирован: 27 июн 2023, 09:11
- Имя: Дмитрий
- Страна: Россия
- город/регион: Екатеринбург / Свердловская область
- Поблагодарили: 1 раз
Сброс данных при потери связи с Modbus слэйвом
Добрый день. В продолжении этой темы хотел поинтересоваться нет ли новостей?
И так же у меня есть вопрос к организации работы адресных меток. Вопрос такой при создании адресной метки, например я указываю COM2 устройство номер 1 адрес например 12290. Сохраняю. Далее у меня на основном экране программы есть цифровой дисплей который отображает значение адреса 12290 устройства №1 в шине COM2. Потом есть 2 индикатора которые отображаются когда значение в этом адресе больше нуля, и окно цифрового ввода, которое отображается если значение в этом адресе меньше нуля.
Те есть если я просто прописываю вручную все эти адреса мы имеем 4 постоянных запроса в один и тот же адрес.
А вот в случае использования адресной метки запросы в шину так же отправляются 4 раза (для каждого элемента на экране) или создается переменная во внутренней памяти и в устройство отправляется один запрос, а на элементах берется информация из внутренней переменной? Или это все таки просто для упрощения ввода адресов сделано?
Вопрос связан с перегрузкой шины запросами. И если адресная метка сделана для упрощения ввода адресов, тогда мне нужно будет самому создать внутреннюю переменную и запросы с элементов отправлять на нее? Или это тоже не поможет?
И так же у меня есть вопрос к организации работы адресных меток. Вопрос такой при создании адресной метки, например я указываю COM2 устройство номер 1 адрес например 12290. Сохраняю. Далее у меня на основном экране программы есть цифровой дисплей который отображает значение адреса 12290 устройства №1 в шине COM2. Потом есть 2 индикатора которые отображаются когда значение в этом адресе больше нуля, и окно цифрового ввода, которое отображается если значение в этом адресе меньше нуля.
Те есть если я просто прописываю вручную все эти адреса мы имеем 4 постоянных запроса в один и тот же адрес.
А вот в случае использования адресной метки запросы в шину так же отправляются 4 раза (для каждого элемента на экране) или создается переменная во внутренней памяти и в устройство отправляется один запрос, а на элементах берется информация из внутренней переменной? Или это все таки просто для упрощения ввода адресов сделано?
Вопрос связан с перегрузкой шины запросами. И если адресная метка сделана для упрощения ввода адресов, тогда мне нужно будет самому создать внутреннюю переменную и запросы с элементов отправлять на нее? Или это тоже не поможет?