Просмотр полной версии : ПЛК110[M02]: Сетевые переменные
S#716_0P
11.04.2022, 12:35
Добрый день,
В настройках целевой платформы ПЛК110[M02] есть вкладка "Network functionality". Однако нигде в документации не могу найти как конфигурируются сетевые переменные и сетевые взаимодействия между контроллерами. Может кто подскажет в каком документе искать?
Евгений Кислов
11.04.2022, 12:50
Добрый день.
https://ftp.owen.ru/CoDeSys23/07_Examples/05_Communication/02_NetVarUDP.zip
S#716_0P
11.04.2022, 13:17
Спасибо. Буду разбираться.
Решил не плодить новую тему, для, как мне кажется немного глупого вопроса.
Задача создать проект в Codesys с предустановленными энергонезависимыми переменными RETAIN.
К контроллеру подключена панель СП307 Мастером. Эти переменные должны задаваться с панели. Но при подключении на экран выводятся нули. Если я с панели задаю новое значение, то оно сохраняется. Это ок. Но как сделать, чтобы панель видела предустановленные значения? Чтобы вновь не вводить все начальные уставки. Раньше вроде делал, все ок.... а тут чего то в ступоре
Евгений Кислов
14.11.2022, 16:24
Решил не плодить новую тему, для, как мне кажется немного глупого вопроса.
Задача создать проект в Codesys с предустановленными энергонезависимыми переменными RETAIN.
К контроллеру подключена панель СП307 Мастером. Эти переменные должны задаваться с панели. Но при подключении на экран выводятся нули. Если я с панели задаю новое значение, то оно сохраняется. Это ок. Но как сделать, чтобы панель видела предустановленные значения?
А как в проекте формируются "предустановленные значения"?
Лучше всего выложить проекты для ПЛК и панели - так будет проще понять, что у вас происходит.
Евгений Кислов
14.11.2022, 16:34
Проекты во вложении
Вы не ответили - как в проекте формируются "предустановленные значения"?
Какие переменные ПЛК у вас на панели "выводятся нулями"?
В области описания пишу например так:
VAR RETAIN
SP_manual: REAL := 70.0;
SP_Tul_min: REAL := -15;
SP_Tul_max: REAL := 20;
SP_Heat_max: REAL := 80;
SP_Heat_min: REAL := 40;
SP_P_pid: REAL := 1;
SP_I_pid: REAL := 200;
SP_kontur_mode: BOOL:= TRUE;
SP_selector: BOOL := FALSE;
SP_sourse_sel: BOOL := FALSE;
SP_pump_mode: WORD := 0;
SP_pump_pusk: BOOL := FALSE;
END_VAR
Далее в конфигурации ПЛК создаю слэйв устройство. В нем создаю новые переменные. А в теле самой программы просто связываю "кубики" переменные из модбаса присоединяю к моим RETAIN переменным.
Пробовал еще описывать так:
VAR RETAIN
SP_heat_valve_time AT %QD7.37.0: REAL:= 60;
END_VAR
Т.е. напрямую в модбас переменную. но тоже не вышло.
В панели ставлю адрес переменной, а переменну "обратной связи" ставлю такой же адрес.
Вопрос как правильно задавать переменные ретэйн, чтоб сохранились и считывались значения
Евгений Кислов
14.11.2022, 16:55
В области описания пишу например так:
VAR RETAIN
SP_manual: REAL := 70.0;
SP_Tul_min: REAL := -15;
SP_Tul_max: REAL := 20;
SP_Heat_max: REAL := 80;
SP_Heat_min: REAL := 40;
SP_P_pid: REAL := 1;
SP_I_pid: REAL := 200;
SP_kontur_mode: BOOL:= TRUE;
SP_selector: BOOL := FALSE;
SP_sourse_sel: BOOL := FALSE;
SP_pump_mode: WORD := 0;
SP_pump_pusk: BOOL := FALSE;
END_VAR
Далее в конфигурации ПЛК создаю слэйв устройство. В нем создаю новые переменные. А в теле самой программы просто связываю "кубики" переменные из модбаса присоединяю к моим RETAIN переменным.
Но чтобы панель "увидела" начальные значения ваших RETAIN-переменных - вам нужно наоборот записать их в переменные Modbus.
Сделать это нужно однократно в первом цикле программы.
Пример на языке ST есть здесь:
https://www.owen.ru/forum/showthread.php?t=28167&p=304642&viewfull=1#post304642
Были подозрения сделать так. Но что то закрались сомнения, что должен быть какой то другой способ.
Спасибо!
kondor3000
14.11.2022, 17:23
Были подозрения сделать так. Но что то закрались сомнения, что должен быть какой то другой способ.
Спасибо!
У вас помимо всего переменные RETAIN при старте программы в ПЛК, записываются нулями, смотри скрин 63842
Нули из "пустого" модбаса летят, я так понимаю?
Пробовал еще описывать так:
VAR RETAIN
SP_heat_valve_time AT %QD7.37.0: REAL:= 60;
END_VAR
Т.е. напрямую в модбас переменную. но тоже не вышло.
В панели ставлю адрес переменной, а переменну "обратной связи" ставлю такой же адрес.
Вопрос как правильно задавать переменные ретэйн, чтоб сохранились и считывались значения
Попробуйте здесь убрать "RETAIN" - память сетевых переменных и так энергонезависимая. Тогда при сбросе контроллера переменные будут инициализированы заданными начальными значениями.
kondor3000
14.11.2022, 18:08
Нули из "пустого" модбаса летят, я так понимаю?
Да из пустого модбаса, присвоение надо делать наоборот, из RETAIN в переменные модбаса.
Во первых в слейве переменные и так RETAIN. Можно конечно и начальную инициализацию сделать.
Но в данном случае, можно прописать уставки прямо в панели в PFW, а при старте, копировать их в переменные модбаса в панели.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot