PDA

Просмотр полной версии : Уставка с СП307 для ПР200



CFC-ST
17.04.2025, 17:05
Есть ПР200 (slave) И СП307(Master). Связь по RS485 Modbus RTU. Как решить такую задачу: есть уставка (FLOAT), можно)/нужно менять с экрана СП307, уставка хранится и используется в ПР200. Уставка с энергонезависимой памятью.
Хотелось бы что решение выглядело так: на экране СП307 отображается уставка и при нажатии на это отображение возникала клавиатура изменения. Может надо использовать невидимый элемент?

kondor3000
17.04.2025, 17:10
Есть ПР200 (slave) И СП307(Master). Связь по RS485 Modbus RTU. Как решить такую задачу: есть уставка (FLOAT), можно)/нужно менять с экрана СП307, уставка хранится и используется в ПР200. Уставка с энергонезависимой памятью.
Хотелось бы что решение выглядело так: на экране СП307 отображается уставка и при нажатии на это отображение возникала клавиатура изменения. Может надо использовать невидимый элемент?

На панели, используйте Дисплей ввода данных FLOAT, в ПР используйте макрос SelChgF из менеджера компонентов, изменение переменной из двух мест.
Записываете из панели, используете в ПР.
Как настроить Дисплей и панель Мастер, тут, ниже есть скрин https://owen.ru/forum/showthread.php?t=26216&p=461969&viewfull=1#post461969

FPavel
17.04.2025, 19:37
Можно объявить эту переменную сразу как сетевую - получите и доступ от СП и работу из алгоритма ПР (ввод с экрана, обработка, чтение из OwenConfigurator). Не понадобится макрос SelChgF.

CFC-ST
17.04.2025, 20:49
Можно объявить эту переменную сразу как сетевую - получите и доступ от СП и работу из алгоритма ПР (ввод с экрана, обработка, чтение из OwenConfigurator). Не понадобится макрос SelChgF.

тут не понял. понятно, что если будет обмен, то на ПР200 эта переменная будет как сетевая (правда еще и энергонезависимость должна быть). Но как и индицировать её на СП и в то же время изменять? похоже (как ране писали) надо организовывать "запись из двух мест". Как то пока туманно....

EFrol
17.04.2025, 21:10
РЭ на ПР200 (стр. 23):
https://owen.ru/forum/attachment.php?attachmentid=79180&d=1728367618
Если СП3хх мастер, кто кроме неё может изменить значение такой переменной?
Если элемент "Цифровой ввод" настроить на эту переменную, то СП3хх будет извлекать её для отображения.
Нажатие на элемент вызовет цифровую клавиатуру. После ввода, новое значение запишется в неё и ПР200 будет её хранить как Retain.
Какие тут могут быть проблемы? Не понимаю?

Если собираетесь изменять значение такой переменной в ПР200 по любому событию, то используйте:
83236

ПР200 допускает редактирование сетевых переменных с экрана:
83237
при этом - кто последний ввел значение, тот и прав (и ПР200, и СП3хх будут отображать это значение корректно)

CFC-ST
17.04.2025, 22:28
РЭ на ПР200 (стр. 23):
https://owen.ru/forum/attachment.php?attachmentid=79180&d=1728367618
Если СП3хх мастер, кто кроме неё может изменить значение такой переменной?
Если элемент "Цифровой ввод" настроить на эту переменную, то СП3хх будет извлекать её для отображения.
Нажатие на элемент вызовет цифровую клавиатуру. После ввода, новое значение запишется в неё и ПР200 будет её хранить как Retain.
Какие тут могут быть проблемы? Не понимаю?

Если собираетесь изменять значение такой переменной в ПР200 по любому событию, то используйте:
83236

ПР200 допускает редактирование сетевых переменных с экрана:
83237
при этом - кто последний ввел значение, тот и прав (и ПР200, и СП3хх будут отображать это значение корректно)

я когда пробовал - не получилось. сейчас вопрос стал актуальным. затруднения были в том, что если я объявил переменную, а затем её значение присвоил сетевой переменно, то на на мнемосхеме обычная переменная слева- сетевая справа.
Те сетевая получает значение. А вот если сетевая в свою очередь изменяется с панели, то теперь сетевая должна изменить "обычную" переменную. И визуально на мнемосхеме данные должны пойти в "обратную" сторону. Как вроде так не бывает.

kondor3000
17.04.2025, 22:36
я когда пробовал - не получилось. сейчас вопрос стал актуальным. затруднения были в том, что если я объявил переменную, а затем её значение присвоил сетевой переменно, то на на мнемосхеме обычная переменная слева- сетевая справа.
Те сетевая получает значение. А вот если сетевая в свою очередь изменяется с панели, то теперь сетевая должна изменить "обычную" переменную. И визуально на мнемосхеме данные должны пойти в "обратную" сторону. Как вроде так не бывает.

Не надо вторую переменную, сетевая и есть эта переменная, она и сохраняется в слейве и меняется по сети. В простом случае так 83240
её же можно вывести на экран ПР. Только при первом включении, надо ввести Значение, потом она сохранится при отключении питания ПР.

EFrol
18.04.2025, 08:21
я когда пробовал - не получилось. сейчас вопрос стал актуальным. затруднения были в том, что если я объявил переменную, а затем её значение присвоил сетевой переменно, то на на мнемосхеме обычная переменная слева- сетевая справа.
Те сетевая получает значение. А вот если сетевая в свою очередь изменяется с панели, то теперь сетевая должна изменить "обычную" переменную. И визуально на мнемосхеме данные должны пойти в "обратную" сторону. Как вроде так не бывает.

Это называется синхронизация значений переменных.
83247



function_block Exchange

var_input
netVar : udint;
ramVar : udint;
end_var

var_output
Q : udint;
end_var

if netVar <> Q then Q := netVar; ramVar := netVar; end_if
if ramVar <> Q then Q := ramVar; end_if

end_function_block


Идея заключается в том, чтобы сравнивать входное значение с текущим и, если оно изменилось, то его значение переносится в синхронизируемую переменную.

CFC-ST
26.04.2025, 09:35
спасибо. буду пробовать