1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Сброс данных при потери связи с Modbus слэйвом

Модераторы: Глоб.модераторы, специалисты Flexem

Ответить

Автор темы
DimaDrobot
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 27 июн 2023, 09:11
Имя: Дмитрий
Страна: Россия
город/регион: Екатеринбург / Свердловская область
Поблагодарили: 1 раз

Сброс данных при потери связи с Modbus слэйвом

Сообщение DimaDrobot »

Добрый день. У меня есть программа для управления частотными преобразователями. На 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.

se_sib
специалист по FLEXEM
специалист по FLEXEM
Сообщения: 315
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 7 раз
Поблагодарили: 84 раза

Сброс данных при потери связи с Modbus слэйвом

Сообщение se_sib »

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 вы используете? Версия среды разработки FStudio 2.x или Fsudio 3.x?
Если у вас какой-то ОЕМ-ый вариант панели(т.е. под именем и моделью другой компании), то это вам к ним обращаться нужно.

Закину ваш случай инженерам Flexem. Напишу чтобы доработали драйвер, сделали выбор сбрасывать значения каналов в 0 или замораживать последние значения при обрыве связи.
Позже, как освобожусь, потестирую сам с несколькими слэйвами Modbus RTU.

Автор темы
DimaDrobot
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 27 июн 2023, 09:11
Имя: Дмитрий
Страна: Россия
город/регион: Екатеринбург / Свердловская область
Поблагодарили: 1 раз

Сброс данных при потери связи с Modbus слэйвом

Сообщение DimaDrobot »

Да. Вот выбор сбрасывать значения в ноль очень нужно. Третий день бьюсь с этой проблемой. В первых двух устройствах вроде проблема ушла, когда начал везде в условиях добавлять состояние адреса SRW 120. А вот в третьем ни в какую не хочет. В условиях отображения кнопки написаны условия, все через AND, одно из них SRW120 != 8. При этом SRW120 = 8 (вижу на вытащенном экране),а кнопка все равно отображается. Почему не могу понять. После перезагрузки панели (3е устройство так и остается отключенным) отображается все нормально, согласно условиям. Среда разработки 3.0 Панель у меня Flexem FE6100WE.

Отправлено спустя 14 минут 28 секунд:
Вот фото условий отображения индикатора работы на мнемосхеме, например.
2023-09-14_14-54-36.png
Отправлено спустя 15 минут 15 секунд:
А вот то что на экране HMI
photo_2023-09-14_15-08-05.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.

se_sib
специалист по FLEXEM
специалист по FLEXEM
Сообщения: 315
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 7 раз
Поблагодарили: 84 раза

Сброс данных при потери связи с Modbus слэйвом

Сообщение se_sib »

DimaDrobot писал(а): 14 сен 2023, 15:11 Да. Вот выбор сбрасывать значения в ноль очень нужно. Третий день бьюсь с этой проблемой. В первых двух устройствах вроде проблема ушла, когда начал везде в условиях добавлять состояние адреса SRW 120. А вот в третьем ни в какую не хочет. В условиях отображения кнопки написаны условия, все через AND, одно из них SRW120 != 8. При этом SRW120 = 8 (вижу на вытащенном экране),а кнопка все равно отображается. Почему не могу понять. После перезагрузки панели (3е устройство так и остается отключенным) отображается все нормально, согласно условиям. Среда разработки 3.0 Панель у меня Flexem FE6100WE
Коллега из Flexem ответил, на вкладе расширеных настроек можно настроить отображение.
По SRW120 неправильно сопоставляете данные слэйвам.
IMG_20230915_000358_334.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Автор темы
DimaDrobot
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 27 июн 2023, 09:11
Имя: Дмитрий
Страна: Россия
город/регион: Екатеринбург / Свердловская область
Поблагодарили: 1 раз

Сброс данных при потери связи с Modbus слэйвом

Сообщение DimaDrobot »

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) - первая вторая и третья.
Через двоичный код это все прекрасно выглядит.

se_sib
специалист по FLEXEM
специалист по FLEXEM
Сообщения: 315
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 7 раз
Поблагодарили: 84 раза

Сброс данных при потери связи с Modbus слэйвом

Сообщение se_sib »

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 адресов)

Проще использовать биты из слова, а не значение всего регистра для условия отображения.
CommErr.png
Bit.JPG
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Автор темы
DimaDrobot
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 27 июн 2023, 09:11
Имя: Дмитрий
Страна: Россия
город/регион: Екатеринбург / Свердловская область
Поблагодарили: 1 раз

Сброс данных при потери связи с Modbus слэйвом

Сообщение DimaDrobot »

Добрый день.
"Просто начиная с 1 бита, каждый бит отвечает за связь с соответствующим слэйвом."
Ну да я это так и понял, просто описал по другому. На счет "Проще использовать биты из слова" спасибо это попробую.
Буду ждать от Вас информацию по обнулению значений слейвов. могу указать личный телефон, если нужно.

se_sib
специалист по FLEXEM
специалист по FLEXEM
Сообщения: 315
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 7 раз
Поблагодарили: 84 раза

Сброс данных при потери связи с Modbus слэйвом

Сообщение se_sib »

DimaDrobot писал(а): 18 сен 2023, 07:57 Добрый день.
"Просто начиная с 1 бита, каждый бит отвечает за связь с соответствующим слэйвом."
Ну да я это так и понял, просто описал по другому. На счет "Проще использовать биты из слова" спасибо это попробую.
Буду ждать от Вас информацию по обнулению значений слейвов. могу указать личный телефон, если нужно.
Обсудил с коллегами из Flexem, они отправят заявку на реализацию в отдел разработок(R&D).
Я пробовал сбросить в 0 переменные на экране в случае обрыва связи по битовым триггерам из SWR120.X через настраиваемые действия экрана и через вызов макроса, к сожалению это не работает.
В данный момент единственный вариант сбросить данные это смена экрана. Т.е. при возврате на экран будет отображение в соответствии с выбранными настройками в Extended Settings.
InitData.JPG
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Автор темы
DimaDrobot
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 27 июн 2023, 09:11
Имя: Дмитрий
Страна: Россия
город/регион: Екатеринбург / Свердловская область
Поблагодарили: 1 раз

Сброс данных при потери связи с Modbus слэйвом

Сообщение DimaDrobot »

Добрый день. Спасибо за попытку. Подскажите, Всплывающее окон в этом случае подойдет? Для сброса на ноль? При обрыве выкидывается системное окно, которое не закрывается, а только можно перетащить. Вот может с этим окном что то можно придумать...

se_sib
специалист по FLEXEM
специалист по FLEXEM
Сообщения: 315
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 7 раз
Поблагодарили: 84 раза

Сброс данных при потери связи с Modbus слэйвом

Сообщение se_sib »

DimaDrobot писал(а): 19 сен 2023, 17:14 Добрый день. Спасибо за попытку. Подскажите, Всплывающее окон в этом случае подойдет? Для сброса на ноль? При обрыве выкидывается системное окно, которое не закрывается, а только можно перетащить. Вот может с этим окном что то можно придумать...
Всплывающее не подойдет. Информационным окном о коммуникационной ошибки связи можно управлять с помощью бита в системном слове SRW496.2. Выставите в True и оно не будет появляться.
DisableCommPopUp.JPEG
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Автор темы
DimaDrobot
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 27 июн 2023, 09:11
Имя: Дмитрий
Страна: Россия
город/регион: Екатеринбург / Свердловская область
Поблагодарили: 1 раз

Сброс данных при потери связи с Modbus слэйвом

Сообщение DimaDrobot »

Добрый день.
Информационным окном о коммуникационной ошибки связи можно управлять с помощью бита в системном слове SRW496.2. Выставите в True и оно не будет появляться.
Да нее. Это я знаю. Я имел ввиду, что возможно как-то его можно использовать для сброса на ноль.
Так тогда мне нужно создать условие, при обрыве связи переход в другое окно, допустим в котором то же самое предупреждение об обрыве. И кнопка вернуться на главный. И при возврате на главный, в таком случае будет сбрасываться если стоит галочка Display Zero.
Верно?

se_sib
специалист по FLEXEM
специалист по FLEXEM
Сообщения: 315
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 7 раз
Поблагодарили: 84 раза

Сброс данных при потери связи с Modbus слэйвом

Сообщение se_sib »

DimaDrobot писал(а): 20 сен 2023, 10:58 Добрый день.
Информационным окном о коммуникационной ошибки связи можно управлять с помощью бита в системном слове SRW496.2. Выставите в True и оно не будет появляться.
Да нее. Это я знаю. Я имел ввиду, что возможно как-то его можно использовать для сброса на ноль.
Так тогда мне нужно создать условие, при обрыве связи переход в другое окно, допустим в котором то же самое предупреждение об обрыве. И кнопка вернуться на главный. И при возврате на главный, в таком случае будет сбрасываться если стоит галочка Display Zero.
Верно?
Да, но в настройках экрана нельзя настроить переход на другой экран по условию, в макросах тоже нет функции смены экрана.
Коллеги сегодня прислали пример с костылем.
Создаете на экране кнопку с функцией перехода на другой экран и на нее накладываете элемент который называется Touch Trigger, он имитирует нажатие на экран в месте где располагается, по условию.
Например, будет нажимать на кнопку если SRW120.1=1
Pic1.JPG
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Автор темы
DimaDrobot
здесь недавно
здесь недавно
Сообщения: 32
Зарегистрирован: 27 июн 2023, 09:11
Имя: Дмитрий
Страна: Россия
город/регион: Екатеринбург / Свердловская область
Поблагодарили: 1 раз

Сброс данных при потери связи с Modbus слэйвом

Сообщение DimaDrobot »

Добрый день. В продолжении этой темы хотел поинтересоваться нет ли новостей?
И так же у меня есть вопрос к организации работы адресных меток. Вопрос такой при создании адресной метки, например я указываю COM2 устройство номер 1 адрес например 12290. Сохраняю. Далее у меня на основном экране программы есть цифровой дисплей который отображает значение адреса 12290 устройства №1 в шине COM2. Потом есть 2 индикатора которые отображаются когда значение в этом адресе больше нуля, и окно цифрового ввода, которое отображается если значение в этом адресе меньше нуля.
Те есть если я просто прописываю вручную все эти адреса мы имеем 4 постоянных запроса в один и тот же адрес.
А вот в случае использования адресной метки запросы в шину так же отправляются 4 раза (для каждого элемента на экране) или создается переменная во внутренней памяти и в устройство отправляется один запрос, а на элементах берется информация из внутренней переменной? Или это все таки просто для упрощения ввода адресов сделано?
Вопрос связан с перегрузкой шины запросами. И если адресная метка сделана для упрощения ввода адресов, тогда мне нужно будет самому создать внутреннюю переменную и запросы с элементов отправлять на нее? Или это тоже не поможет?
Ответить

Вернуться в «Общие вопросы»