PDA

Просмотр полной версии : ПЛК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
Спасибо. Буду разбираться.

Welldi
14.11.2022, 16:23
Решил не плодить новую тему, для, как мне кажется немного глупого вопроса.
Задача создать проект в Codesys с предустановленными энергонезависимыми переменными RETAIN.
К контроллеру подключена панель СП307 Мастером. Эти переменные должны задаваться с панели. Но при подключении на экран выводятся нули. Если я с панели задаю новое значение, то оно сохраняется. Это ок. Но как сделать, чтобы панель видела предустановленные значения? Чтобы вновь не вводить все начальные уставки. Раньше вроде делал, все ок.... а тут чего то в ступоре

Евгений Кислов
14.11.2022, 16:24
Решил не плодить новую тему, для, как мне кажется немного глупого вопроса.
Задача создать проект в Codesys с предустановленными энергонезависимыми переменными RETAIN.
К контроллеру подключена панель СП307 Мастером. Эти переменные должны задаваться с панели. Но при подключении на экран выводятся нули. Если я с панели задаю новое значение, то оно сохраняется. Это ок. Но как сделать, чтобы панель видела предустановленные значения?

А как в проекте формируются "предустановленные значения"?
Лучше всего выложить проекты для ПЛК и панели - так будет проще понять, что у вас происходит.

Welldi
14.11.2022, 16:28
Проекты во вложении

Евгений Кислов
14.11.2022, 16:34
Проекты во вложении

Вы не ответили - как в проекте формируются "предустановленные значения"?
Какие переменные ПЛК у вас на панели "выводятся нулями"?

Welldi
14.11.2022, 16:47
В области описания пишу например так:
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 переменным.

Welldi
14.11.2022, 16:49
Пробовал еще описывать так:
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

Welldi
14.11.2022, 16:57
Были подозрения сделать так. Но что то закрались сомнения, что должен быть какой то другой способ.
Спасибо!

kondor3000
14.11.2022, 17:23
Были подозрения сделать так. Но что то закрались сомнения, что должен быть какой то другой способ.
Спасибо!

У вас помимо всего переменные RETAIN при старте программы в ПЛК, записываются нулями, смотри скрин 63842

Welldi
14.11.2022, 17:56
Нули из "пустого" модбаса летят, я так понимаю?

1exan
14.11.2022, 18:06
Пробовал еще описывать так:
VAR RETAIN
SP_heat_valve_time AT %QD7.37.0: REAL:= 60;
END_VAR

Т.е. напрямую в модбас переменную. но тоже не вышло.
В панели ставлю адрес переменной, а переменну "обратной связи" ставлю такой же адрес.

Вопрос как правильно задавать переменные ретэйн, чтоб сохранились и считывались значения

Попробуйте здесь убрать "RETAIN" - память сетевых переменных и так энергонезависимая. Тогда при сбросе контроллера переменные будут инициализированы заданными начальными значениями.

kondor3000
14.11.2022, 18:08
Нули из "пустого" модбаса летят, я так понимаю?

Да из пустого модбаса, присвоение надо делать наоборот, из RETAIN в переменные модбаса.
Во первых в слейве переменные и так RETAIN. Можно конечно и начальную инициализацию сделать.
Но в данном случае, можно прописать уставки прямо в панели в PFW, а при старте, копировать их в переменные модбаса в панели.

Welldi
14.11.2022, 19:03
о..тоже вариант