Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.04.2021, 08:27   #1
wildegor
Новичок
 
Регистрация: Apr 2021
Сообщения: 2
Благодарил(а): 2 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Предотвращение сброса переменных в ноль Modbus (нет проблемы)

Здравствуйте, столкнулся с проблемой, что при включении панели Trim 5 в переменные Modbus с типом R/W записывается 0. Обычно использовал скриптовые языки, поэтому в FBD не особо силен. Пример, исходя из начального значения в регистре по кнопкам увеличивать или уменьшать его же значение. При перезапуске панели записывается 0 в регистр...

Нажмите на картинку для увеличения

Название:  Screenshot_1.png
Просмотров: 76
Размер:  11.4 Кбайт
wildegor вне форума   Ответить с цитированием
Старый 28.04.2021, 09:09   #2
RomanIst
Senior Member
 
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили: 4 раз(а) в 4 сообщениях
По умолчанию Ответ: Предотвращение сброса переменных в ноль Modbus

Цитата:
Сообщение от wildegor Посмотреть сообщение
Здравствуйте, столкнулся с проблемой, что при включении панели Trim 5 в переменные Modbus с типом R/W записывается 0. Обычно использовал скриптовые языки, поэтому в FBD не особо силен. Пример, исходя из начального значения в регистре по кнопкам увеличивать или уменьшать его же значение. При перезапуске панели записывается 0 в регистр...

Вложение 9315
Подписываюсь под тем что написал Младшой.

Последний раз редактировалось RomanIst, 28.04.2021 в 09:38
RomanIst вне форума   Ответить с цитированием
Благодарность от:
Старый 28.04.2021, 09:30   #3
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 858
Благодарил(а): 4 раз(а)
Поблагодарили: 85 раз(а) в 66 сообщениях
По умолчанию Ответ: Предотвращение сброса переменных в ноль Modbus

Во-первых, вы используете блок записи с цикличным опросом.
В карте памяти слейва для этого блока указан период отличный от 0 (по умолчанию стоит 100 мсек).
Таким образом, периодически туда идет запрос на запись значения, которое у вас на выходе блока ADD.

Вам лучше бы использовать блок записи с нецикличным опросом (поставить период опроса = 0). Тогда на этом блоке появится дополнительный вход для отправки запроса.

Во-вторых, вы берете текущее значение параметра с выхода этого же блока. Однако, какое либо значение отличное от 0 там появляется только после записи по этому адресу нового значения (с последующим чтением, которое производится автоматически).
То есть, при запуске контроллера значение на этом выходе = 0.
Оно приходит на блок ADD, на котором ещё два входа = 0. Сумма на выходе = 0. А так как производится циклический запрос на запись, то через установленное в карте памяти время в регистр запишется 0.

Если вы хотите организовать такой функционал, то для этого Holding регистра в карте памяти заведите 2 переменных:
- с направлением R (out) и цикличным опросом (период >0) - так вы будете постоянно получать текущее значение регистра;
- с направлением R/W (out) и нецикличным опросом (период = 0) - для записи нового значения, но уже по необходимости.

Также рекомендую после кнопок ставить блоки Rise, чтобы изменения уставок происходило по событию "нажатие", но не срабатывало при дальнейшем удержании.
младшой вне форума   Ответить с цитированием
Благодарность от:
Старый 28.04.2021, 11:19   #4
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 302
Благодарил(а): 0 раз(а)
Поблагодарили: 254 раз(а) в 250 сообщениях
По умолчанию Ответ: Предотвращение сброса переменных в ноль Modbus

Цитата:
Сообщение от wildegor Посмотреть сообщение
Здравствуйте, столкнулся с проблемой, что при включении панели Trim 5 в переменные Modbus с типом R/W записывается 0. Обычно использовал скриптовые языки, поэтому в FBD не особо силен. Пример, исходя из начального значения в регистре по кнопкам увеличивать или уменьшать его же значение. При перезапуске панели записывается 0 в регистр...
А с чем панель связываете?


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. сейчас на форуме   Ответить с цитированием
Старый 28.04.2021, 11:42   #5
wildegor
Новичок
 
Регистрация: Apr 2021
Сообщения: 2
Благодарил(а): 2 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Предотвращение сброса переменных в ноль Modbus

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
А с чем панель связываете?
ПЧ Unidrive. Вопрос решен, спасибо всем за подсказку с нециклическим опросом.
wildegor вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описание работы FMR про протоколу ModBus (нет проблемы) Taimer81 Вопросы о FMR и MRL 23 06.07.2020 15:35
Matrix как Modbus TCP Master (нет проблемы) Omap Вопросы о Matrix 15 14.02.2020 13:30
Modbus переменные в конструкторе (нет проблемы) SlavikP SMConstructor (теплопункты) 26 04.09.2019 17:21
Некорректная передача переменных слейву (нет проблемы) ViS SMLogix 6 11.04.2018 21:36
Проблема зависание 2Gi/MC djaval Вопросы о SMH-2G(i) 108 20.09.2017 18:58


Часовой пояс GMT +4, время: 17:39.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023