Вход

Просмотр полной версии : ПР 200 нужна помощь



maintenancekbk24@gmail.com
27.05.2024, 07:22
Доброго дня. Уважаемые комрады. Прошу помощь в решении проблемы. Создана блок программа в OwenLogic которая упраляет через ПР200 клапаном подачи топлива в горелку. Столкнулся со следующей проблемой. Никак не удается создать работающую схему по аварийному останову по превышению температуры . Использовал макрос 2PHreg+1. Данные температуры приходят с 4-20 . все

МихаилГл
27.05.2024, 07:38
Функцию сравнения GT ставь и её выход на останов...
На входе заданное и текущее значения температуры.
Без макросов.

1exan
27.05.2024, 08:16
Доброго дня. Уважаемые комрады. Прошу помощь в решении проблемы. Создана блок программа в OwenLogic которая упраляет через ПР200 клапаном подачи топлива в горелку. Столкнулся со следующей проблемой. Никак не удается создать работающую схему по аварийному останову по превышению температуры . Использовал макрос 2PHreg+1. Данные температуры приходят с 4-20 . все

А та что на картинке почему не устраивает?

maintenancekbk24@gmail.com
27.05.2024, 08:54
не работает...

maintenancekbk24@gmail.com
27.05.2024, 08:57
с Gt пробовал изначально тоже не работает. В этой теме я пока новичок совсем.
Подозреваю что проблема может быть еще и в том что при онлайн отладке показания с датчика рознятся. если на ПР200 допустим 100 гр то в программе показывает 10. где зарылась эта настройка пока что не нашел.

kondor3000
27.05.2024, 09:01
с Gt пробовал изначально тоже не работает. В этой теме я пока новичок совсем.
Подозреваю что проблема может быть еще и в том что при онлайн отладке показания с датчика рознятся. если на ПР200 допустим 100 гр то в программе показывает 10. где зарылась эта настройка пока что не нашел.

Так и надо было писать, что температура не правильно измеряется. Проверяйте настройки токового входа.
Надо забить в настройках, Диапазон измерений вашего датчика.
Или использовать макрос Scale, из Менеджера компонентов, для правильных показаний.

maintenancekbk24@gmail.com
27.05.2024, 09:04
нет показания реальные он выдает в пр корректно. но в программе они на одно значение меньше.

maintenancekbk24@gmail.com
27.05.2024, 09:05
диапазон и все остальное выставлено.

МихаилГл
27.05.2024, 09:07
Мистика...
Значит выдаёт уже скорректированную переменную.

kondor3000
27.05.2024, 09:10
диапазон и все остальное выставлено.

Может смещение точки не правильно, скрин сделайте в настройках входа.
Проще было проект выложить сразу. Добавить файл в расширенном режиме.

maintenancekbk24@gmail.com
27.05.2024, 09:25
Спасибо за помощь. Пересоздал заново переменную температуры и его экрана и заработало. :)

maintenancekbk24@gmail.com
27.05.2024, 09:52
Спасибо за помощь и коллективный разум. Проблема решилась пересозданием переменной температуры и ее экрана.

Сергей0308
27.05.2024, 10:20
Значит ранее на экран другая переменная выводилась, в смысле, со сдвигом(наклоном), в смысле, надо было бы, по хорошему, убрать сдвиг(наклон) и всё!
Возможно со временем Вам понадобится сдвиг(наклон) и Вы вернёте всё взад, в смысле, как изначально было.
Сразу конечно этого не делайте, а то потом нечего делать будет!

maintenancekbk24@gmail.com
28.05.2024, 11:26
Друзья подскажите пожалуйста реально для пр200 создать на экран шкалу уровня жидкости в емкости. Допустим в горизонтальном направлении слева на право от мин к мах.

Sergej_
28.05.2024, 11:38
Конечно реально из символов .

maintenancekbk24@gmail.com
28.05.2024, 11:46
функцию отдельно в ST писать или можно на готовых блоках собрать?

Сергей0308
28.05.2024, 11:55
Друзья подскажите пожалуйста реально для пр200 создать на экран шкалу уровня жидкости в емкости. Допустим в горизонтальном направлении слева на право от мин к мах.

Мне кажется проще и лучше 0-100% написать, в смысле, чем это не подходит?

Dimensy
28.05.2024, 12:50
функцию отдельно в ST писать или можно на готовых блоках собрать?

На чем угодно и кучей способов. Но на таком экранчике, по мне, лучше все-таки циверки выводить

EFrol
28.05.2024, 14:13
Друзья подскажите пожалуйста реально для пр200 создать на экран шкалу уровня жидкости в емкости. Допустим в горизонтальном направлении слева на право от мин к мах.

Как вариант!

Cs-Cs
28.05.2024, 15:31
Друзья подскажите пожалуйста реально для пр200 создать на экран шкалу уровня жидкости в емкости. Допустим в горизонтальном направлении слева на право от мин к мах. Я делал для диммера.
Использовал динамический текст: пересчитывал проценты в цифры по ширине экрана через пропорцию (0 - 100% = 0 - 16 символов) и выводил число в зависимости от величины.
В динамический текст вбивал значения по нарастанию:
(пусто)
#
##
###
и так далее.

Dimensy
28.05.2024, 15:52
Как вариант!

Так, я думаю, чуть лучше будет



function_block Level
var_input
Max : real;
Val : real;
end_var

var_output
L0 : bool;
L1 : bool;
L2 : bool;
L3 : bool;
L4 : bool;
L5 : bool;
L6 : bool;
L7 : bool;
L8 : bool;
L9 : bool;
L10 : bool;
L11 : bool;
L12 : bool;
L13 : bool;
L14 : bool;
L15 : bool;
end_var

var
delta : real;
blink : SYS.BLINK;
end_var

delta := Max / 16;
blink(I := true, Th := t#500ms, Tl := t#500ms);
L0 := Val > 0.5 * delta or (blink.Q and Val > 0);
L1 := Val > 1.5 * delta or (blink.Q and Val > delta);
L2 := Val > 2.5 * delta or(blink.Q and Val > delta * 2);
L3 := Val > 3.5 * delta or (blink.Q and Val > delta * 3);
L4 := Val > 4.5 * delta or (blink.Q and Val > delta * 4);
L5 := Val > 5.5 * delta or (blink.Q and Val > delta * 5);
L6 := Val > 6.5 * delta or (blink.Q and Val > delta * 6);
L7 := Val > 7.5 * delta or (blink.Q and Val > delta * 7);
L8 := Val > 8.5 * delta or (blink.Q and Val > delta * 8);
L9 := Val > 9.5 * delta or (blink.Q and Val > delta * 9);
L10 := Val > 10.5 * delta or (blink.Q and Val > delta * 10);
L11 := Val > 11.5 * delta or (blink.Q and Val > delta * 11);
L12 := Val > 12.5 * delta or (blink.Q and Val > delta * 12);
L13 := Val > 13.5 * delta or (blink.Q and Val > delta * 13);
L14 := Val > 14.5 * delta or (blink.Q and Val > delta * 14);
L15 := Val > 15.5 * delta or (blink.Q and Val > delta * 15);

end_function_block


Но в таком виде 16 разрядов не очень информативен в количественной оценке. Должна быть целая пропорция, например 0..100% - 10 разрядов, 0..150 литров - 15 разрядов

Cs-Cs
28.05.2024, 16:30
Dimensy Ой! я думал, что у меня в коде простое деление и хотел ругнуться на то, что нафиг всё жёстко хардкодить в числах, а потом посмотрел свой и понял, что я сам лох - и тоже всё захардкодил. Вот мой вариант для диммера:
76087 76088

Dimensy
28.05.2024, 17:59
Dimensy Ой! я думал, что у меня в коде простое деление и хотел ругнуться на то, что нафиг всё жёстко хардкодить в числах, а потом посмотрел свой и понял, что я сам лох - и тоже всё захардкодил. Вот мой вариант для диммера:


А не проще так?

76090

EFrol
28.05.2024, 18:47
А не проще так?

76090

Я почему и ратую за публичную помощь новичкам. Делая это - мы сами можем друг-друга многому научить!

Dimensy
28.05.2024, 19:27
Я почему и ратую за публичную помощь новичкам. Делая это - мы сами можем друг-друга многому научить!

Никто не против помощи новичкам. Просто, если просьба озвучена криво или звучит типа "сделайте мне это, я не могу (не хочу, мне лень и т.п.), то у многих гуру начинает одно место подгорать

Cs-Cs
28.05.2024, 19:48
А не проще так? Во-во! Я не догадался про округление и сам-то подумал, что что-то не то сделал.

Я почему и ратую за публичную помощь новичкам. Делая это - мы сами можем друг-друга многому научить! Тогда, когда эта помощь требуется. Тут видно (мне), что чел спрашивает по делу и готов делать. А не в стиле "Как сделать чтобы ворота открывались-закрывались на ПР завтра к утру"

АРТ.Кар 64
28.05.2024, 20:08
https://disk.yandex.ru/i/8pCAvPT5J5cWNA

Про сложности вычисления вроде как бы разговор у автора и не шёл,но...
Какой бы ни был "замысловатый макрос" на Экран нужно выводить не только "Шкалу",но и "Значение"
Раз был вопрос "Можно?"-то и ответ "Можно".

maintenancekbk24@gmail.com
30.05.2024, 14:05
Вот что получилось в итоге.

kondor3000
30.05.2024, 15:32
Вот что получилось в итоге.

Вам же EFrol, то же самое выложил, только универсальный ФБ, можно Мах менять и будет работать с любым числом.

maintenancekbk24@gmail.com
31.05.2024, 06:54
Вам же EFrol, то же самое выложил, только универсальный ФБ, можно Мах менять и будет работать с любым числом.

уже в работе прибор работает без нареканий.

maintenancekbk24@gmail.com
05.06.2024, 07:15
И снова здравствуйте уважаемые коллеги. Кто сможет подсказать. Как для ПР 200 реализовать алгоритм при котором после окончания выполнения программы она переходит в стартовый режим. запуск программы идет с дискретного входа с переключателя пуск . Просмотрел форум как показалось сброс идет только после перезагрузки полностью ПР. На скрине выход Q8 активируется по завершению программы. I1 счетчик I2 Пуск стоп.

kondor3000
05.06.2024, 07:44
И снова здравствуйте уважаемые коллеги. Кто сможет подсказать. Как для ПР 200 реализовать алгоритм при котором после окончания выполнения программы она переходит в стартовый режим. запуск программы идет с дискретного входа с переключателя пуск . Просмотрел форум как показалось сброс идет только после перезагрузки полностью ПР. На скрине выход Q8 активируется по завершению программы. I1 счетчик I2 Пуск стоп.

Например поставить после кнопки Т-триггер со сбросом. Или нарисуйте сами 76265
В программе надо предусмотреть сброс.
можете взять только Т-триггер в ФБ на ST.
Здесь пример реализации, 7 вариант https://owen.ru/forum/showthread.php?t=38239&page=43#424

Или здесь, 5 вариант https://owen.ru/forum/showthread.php?t=38239&page=11#105

EFrol
05.06.2024, 07:55
И снова здравствуйте уважаемые коллеги. Кто сможет подсказать. Как для ПР 200 реализовать алгоритм при котором после окончания выполнения программы она переходит в стартовый режим. запуск программы идет с дискретного входа с переключателя пуск . Просмотрел форум как показалось сброс идет только после перезагрузки полностью ПР. На скрине выход Q8 активируется по завершению программы. I1 счетчик I2 Пуск стоп.

Вообще-то надо предусматривать вход Reset в таких случаях:
76266
Что у Вас в PPGH?

maintenancekbk24@gmail.com
05.06.2024, 09:03
Вообще-то надо предусматривать вход Reset в таких случаях:
76266
Что у Вас в PPGH?

Это цикл полоскания цистерны.

maintenancekbk24@gmail.com
05.06.2024, 09:04
Например поставить после кнопки Т-триггер со сбросом. Или нарисуйте сами 76265
В программе надо предусмотреть сброс.
можете взять только Т-триггер в ФБ на ST.
Здесь пример реализации, 7 вариант https://owen.ru/forum/showthread.php?t=38239&page=43#424

Или здесь, 5 вариант https://owen.ru/forum/showthread.php?t=38239&page=11#105

с резетом и тригером пробывал. процесс деактивируется но при повторном включении незапускается.

maintenancekbk24@gmail.com
05.06.2024, 09:08
Вообще-то надо предусматривать вход Reset в таких случаях:
76266
Что у Вас в PPGH?

ВОТ макрос цикла

maintenancekbk24@gmail.com
05.06.2024, 09:09
Со свободными входами напряженка. есть идея реализовать вход пуска при нуле будет запускать сброс выполнения программы.

EFrol
05.06.2024, 09:30
ВОТ макрос цикла

Т.е. SR1 если сработает, то это навсегда?!

EFrol
05.06.2024, 09:31
Со свободными входами напряженка. есть идея реализовать вход пуска при нуле будет запускать сброс выполнения программы.

Вы можете Q8 от ALM11 использовать как входной сигнал сброса в исходное состояние.

kondor3000
05.06.2024, 09:58
с резетом и тригером пробывал. процесс деактивируется но при повторном включении незапускается.

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

maintenancekbk24@gmail.com
05.06.2024, 10:31
И снова здравствуйте уважаемые коллеги. Кто сможет подсказать. Как для ПР 200 реализовать алгоритм при котором после окончания выполнения программы она переходит в стартовый режим. запуск программы идет с дискретного входа с переключателя пуск . Просмотрел форум как показалось сброс идет только после перезагрузки полностью ПР. На скрине выход Q8 активируется по завершению программы. I1 счетчик I2 Пуск стоп.

Разве отсюда непонятен смысл? Проект не получается залить сюда.

maintenancekbk24@gmail.com
05.06.2024, 10:32
сброс переменной нужно создать вы имеете ввиду?

kondor3000
05.06.2024, 10:37
сброс переменной нужно создать вы имеете ввиду?

Проект можно залить в расширенном режиме, добавить файл. Было бы проще всем.
А так да, сделать сброс в макросах, для возможности запуска проекта снова.

Sp[ai]der
10.06.2024, 19:11
Всем доброго времени суток. Подскажите кто как решал такую задачку:
Есть ПР200, который управляет вытяжкой с частотником. Этим ПР200 можно управлять по Modbus RTU.
Хотел организовать местное управление с экрана и дистанционное по Modbus RTU. Рассмотрим управление частотой 0..100%. Если входящую сетевую переменную связать с переменной локальной, привязанной к экрану, а локальную преобразовать в вид 0..1 float и подать на AO1, то выход АО1 будет меняться только по Modbus, с экрана не будет, так как сетевая переменная затирает локальную.
Кто то решал подобную задачку? Может выход локальной подать в сетевую обратно? Правда боюсь зацикливание будет... Не пробовал.
Пока что вижу выход только в использовании мультиплексора (управляющий вход, вход от modbus и вход с экрана и один выход), переводим в дист. - работает только от Modbus, переводим в местн. - работает только с экрана.
76454

МихаилГл
10.06.2024, 19:26
Я примерно так же делаю, но не на пр200, а на связке плк210-сп315р-ип320. Может быть только одно с основным заданием, остальные при этом у меня игнорируются.

Dimensy
10.06.2024, 19:28
der;439222']Всем доброго времени суток. Подскажите кто как решал такую задачку:
Есть ПР200, который управляет вытяжкой с частотником. Этим ПР200 можно управлять по Modbus RTU.
Хотел организовать местное управление с экрана и дистанционное по Modbus RTU. Рассмотрим управление частотой 0..100%. Если входящую сетевую переменную связать с переменной локальной, привязанной к экрану, а локальную преобразовать в вид 0..1 float и подать на AO1, то выход АО1 будет меняться только по Modbus, с экрана не будет, так как сетевая переменная затирает локальную.
Кто то решал подобную задачку? Может выход локальной подать в сетевую обратно? Правда боюсь зацикливание будет... Не пробовал.
Пока что вижу выход только в использовании мультиплексора (управляющий вход, вход от modbus и вход с экрана и один выход), переводим в дист. - работает только от Modbus, переводим в местн. - работает только с экрана.


Сетевую переменную АО1 привязывайте напрямую к экрану и будет вам счастье (если, конечно, мастер не пишет в нее циклически).

EFrol
10.06.2024, 19:35
der;439222']Всем доброго времени суток. Подскажите кто как решал такую задачку:
Есть ПР200, который управляет вытяжкой с частотником. Этим ПР200 можно управлять по Modbus RTU.
Хотел организовать местное управление с экрана и дистанционное по Modbus RTU. Рассмотрим управление частотой 0..100%. Если входящую сетевую переменную связать с переменной локальной, привязанной к экрану, а локальную преобразовать в вид 0..1 float и подать на AO1, то выход АО1 будет меняться только по Modbus, с экрана не будет, так как сетевая переменная затирает локальную.
Кто то решал подобную задачку? Может выход локальной подать в сетевую обратно? Правда боюсь зацикливание будет... Не пробовал.
Пока что вижу выход только в использовании мультиплексора (управляющий вход, вход от modbus и вход с экрана и один выход), переводим в дист. - работает только от Modbus, переводим в местн. - работает только с экрана.
76454

Что Вам мешает в качестве переменной для экрана использовать саму сетевую?
76457

Sp[ai]der
10.06.2024, 19:47
Сетевую переменную АО1 привязывайте напрямую к экрану и будет вам счастье (если, конечно, мастер не пишет в нее циклически).

Спасибо! Попробую!

Sp[ai]der
10.06.2024, 19:48
Что Вам мешает в качестве переменной для экрана использовать саму сетевую?
76457

Спасибо, я попробую!