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
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
Адрес: Москва
Сообщения: 862
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию Ответ: Предотвращение сброса переменных в ноль 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 331
Благодарил(а): 0 раз(а)
Поблагодарили: 255 раз(а) в 251 сообщениях
По умолчанию Ответ: Предотвращение сброса переменных в ноль 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 код Выкл.



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


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