PDA

Просмотр полной версии : Обмен ПЛК210 и СП315Р



KIB52
02.05.2023, 17:08
Добрый день. На обучающем видео «настройка обмена в режиме Modbus TCP Slave» показано каким образом настроить обмен между панелью оператора СП310 (Мастер) и ПЛК 210 (Слейв). Задание значения , которое должно передаться на ПЛК, происходит с одного цифрового табло, а прием значения с ПЛК на другое табло. Объясняется это тем (если я не прав прошу поправить), что в одном случае применяются Холдинг-регистры , а в другом случае Input-регистры контроллера. Но вот вопрос. Как быть в том случае если при первоначальном включении установки переменным должны быть присвоены значения по умолчанию, заложены программой, которые в последствии изменяются пользователем? Т.е. как в холдинг-регистры записать значения «по-умолчанию»? Это же сделать, наверное, невозможно. Может для этого можно применить ФБ MB_TcpSlave, как показано в видео «настройка обмена в реж. Modbus TCP Slave через библ. OwenCommun-on. ПРОШУ СОВЕТА.

kondor3000
02.05.2023, 17:45
Добрый день. На обучающем видео «настройка обмена в режиме Modbus TCP Slave» показано каким образом настроить обмен между панелью оператора СП310 (Мастер) и ПЛК 210 (Слейв). Задание значения , которое должно передаться на ПЛК, происходит с одного цифрового табло, а прием значения с ПЛК на другое табло. Объясняется это тем (если я не прав прошу поправить), что в одном случае применяются Холдинг-регистры , а в другом случае Input-регистры контроллера. Но вот вопрос. Как быть в том случае если при первоначальном включении установки переменным должны быть присвоены значения по умолчанию, заложены программой, которые в последствии изменяются пользователем? Т.е. как в холдинг-регистры записать значения «по-умолчанию»? Это же сделать, наверное, невозможно. Может для этого можно применить ФБ MB_TcpSlave, как показано в видео «настройка обмена в реж. Modbus TCP Slave через библ. OwenCommun-on. ПРОШУ СОВЕТА.

СП 315 вам для чего? Вы же с неё задаёте уставки, ну так и запишите их в энергонезависимую память PFW первый раз
и функц. областью при включении копируйте из PFW в PSW, а потом передавайте куда надо.
В ПЛК можно инициализировать переменные при включении или записать их в RETAIN. И не обязательно они должны быть в регистрах обмена,
когда надо передать , тогда и присваиваете.
Кроме того переменные (холдинг регистры) в слейве и так RETAIN, они будут сохраняться, если их не перезаписывать в программе. Короче вариантов полно.

KIB52
03.05.2023, 08:22
Спасибо за ответ. Поскольку Овеновскими приборами занимаюсь недавно, многого еще не знаю и совет про использование функц.области надо посмотреть. На счет дальнейших рекомендаций поспорил бы. Я ведь так и поступаю. Создаю Retain переменную, присваиваю ей значение "по-умолчанию". Так как оператор должен знать какое значение "по-молчанию" заложено в установке значит эта переменная уже будет участвовать в обмене. Через входной регистр будет передана в панель и отображаться на цифровом табло. Оператору может потребоваться изменить это значение на свое, для этого он должен будет ввести новое значение , но уже в табло цифрового ввода, где будет задействован холдинг регистр. Получается две переменных, одна привязана к входному регистру, вторая к холдинг регистру. Здесь-то и возникает, у меня по крайней мере трудность, а как из этих двух переменных значения передать в третью, рабочую в коде программы переменную. Сначала передать значение входной переменной, со значением по-умолчанию, а затем значение переменной холдинг регистра со значением введенным оператором?

kondor3000
03.05.2023, 09:04
Спасибо за ответ. Поскольку Овеновскими приборами занимаюсь недавно, многого еще не знаю и совет про использование функц.области надо посмотреть. На счет дальнейших рекомендаций поспорил бы. Я ведь так и поступаю. Создаю Retain переменную, присваиваю ей значение "по-умолчанию". Так как оператор должен знать какое значение "по-молчанию" заложено в установке значит эта переменная уже будет участвовать в обмене. Через входной регистр будет передана в панель и отображаться на цифровом табло. Оператору может потребоваться изменить это значение на свое, для этого он должен будет ввести новое значение , но уже в табло цифрового ввода, где будет задействован холдинг регистр. Получается две переменных, одна привязана к входному регистру, вторая к холдинг регистру. Здесь-то и возникает, у меня по крайней мере трудность, а как из этих двух переменных значения передать в третью, рабочую в коде программы переменную. Сначала передать значение входной переменной, со значением по-умолчанию, а затем значение переменной холдинг регистра со значением введенным оператором?
Вот простой пример
Есть уставка температуры Т уст, задаётся с панели, ваш алгоритм должен поддерживать Т воды около уставки.
При достижении уставки, выключается нагрев, при снижении включается. Если оператор меняет Т уст ( параметры настройки с панели),
то и Т воды изменится ( оперативные параметры из ПЛК).
Ничего перезаписывать не надо, одно не мешает другому.

KIB52
03.05.2023, 11:48
Да, вот еще один момент. В панели на табло цифрового ввода задал значение, это значение в плк присвоилось retain переменной. Выключил питание плк и панели. После подачи напряжения питания на плк и панель, переменная значение сохранила, как и должно быть, а вот на табло с которого ввод производился высвечивается ноль. Почему не поясните?

kondor3000
03.05.2023, 13:23
Да, вот еще один момент. В панели на табло цифрового ввода задал значение, это значение в плк присвоилось retain переменной. Выключил питание плк и панели. После подачи напряжения питания на плк и панель, переменная значение сохранила, как и должно быть, а вот на табло с которого ввод производился высвечивается ноль. Почему не поясните?

Очевидно запись с Дисплея в ПЛК, происходит однократно, в момент нажатия Enter после ввода значения.
Поэтому и надо, при включении панели, записать в дисплей уставки из PFW.
Вот похожая тема с перезаписью значений PFW.
https://owen.ru/forum/showthread.php?t=37801&page=2&p=407365#post407365

KIB52
03.05.2023, 13:57
Еще раз спасибо, буду пробовать.

Андрей Чернов
03.05.2023, 14:12
При использовании OCL регистры ведь наложены друг на друга? я для обмена использую массив ворд`ов и инициализирую нужные элементы при первом цикле плк. пока не проверял на практике, но должно работать