PDA

Просмотр полной версии : разные вопросы новичка



Страницы : 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15

Василий Кашуба
17.09.2020, 19:48
Добрый день. Не могу понять в чем проблема: На аналоговый вход, настроенный на измерение сопротивления, ставлю макрос Pt1000, для преобразования сопротивления в температуру. При запуске симуляции не получается внести новое значение на вход. Вход не подсвечивается. Подскажите в чем проблема?
51077
настройка входа
51078
Owen logic Версия 1.17.253 ПР200-220.5.X

Скорее всего выход макроса не связан с выходом прибора.

Kondratev.S
17.09.2020, 20:07
Да, спасибо, так и есть.
Сделал переменную энергонезависимой и все заработало.
Не знал про такую особенность.

Сергей0308
17.09.2020, 20:21
Да, спасибо, так и есть.
Сделал переменную энергонезависимой и все заработало.
Не знал про такую особенность.

А температуру бойлера Вы собираетесь куда-либо выводить, чтобы показывало? Например на ИТП-11, СМИ2, ТРМ200.

Sulfur
17.09.2020, 20:36
Не знал про такую особенность.
Сделал наипростейшую программу - аналоговый вход воткнул в переменную. Не работает симуляция. Сделал переменную энергонезависимой - работает. Чудесато как-то.

Сергей0308
17.09.2020, 20:40
Чудеса, это когда бессмысленную программу проверяют(пытаются проверить), мне так кажется!

игорь68
18.09.2020, 21:05
Сделал наипростейшую программу - аналоговый вход воткнул в переменную. Не работает симуляция. Сделал переменную энергонезависимой - работает. Чудесато как-то.

И не должна была работать. Вы ее ни куда не записали(сеть , экран). Лоджик отработал правильно. НЕ ВЫХОДА= НЕТ СИМУЛЯЦИИ.

СергейНовосиб
21.09.2020, 07:12
Нашел в этой теме.
Сообщение #291 было в далеком 2017 году.
Цитата Сообщение от Серёга Букашкин
Чего то "мастер тиражирования" не работает... выдает для любого проекта "MSBUILD : error MSB1009: Project file does not exist". Может ПР200 должен быть при этом подключен или это не важно?

Так как тема свежая, нужно больше подробностей, какая версия OL, что пытаетесь делать, в какой момент происходит ошибка.

У меня это проявилось и не один раз. Это происходит, когда ОЛ с программой открыт несколько дней подряд. Лечится только закрытием всех открытых ОЛ и заново открытие Ол с нужной программой.
Версия ОЛ и МТ последние.

Sulfur
21.09.2020, 09:24
НЕ ВЫХОДА= НЕТ СИМУЛЯЦИИ.
Получается, что просто переменная не есть выход с точки зрения Лджика?

Алексеев
21.09.2020, 09:45
Получается, что просто переменная не есть выход с точки зрения Лджика?

Это удобно . Если не задействованы переменные или ФБ в реальном алгоритме входа - выхода ( энергонезависимые переменные ) то это сразу видно в симуляторе .
Это как метод поиска ошибок .

Newcomer
21.09.2020, 14:04
Добрый день.

Не понятно какие-такие циклические связи в макросе делают макрос желтым. Замена желтой линии в макросе на линию с задержкой проблему не решает.

Ревака Юрий
21.09.2020, 14:09
Добрый день.

Не понятно какие-такие циклические связи в макросе делают макрос желтым. Замена желтой линии в макросе на линию с задержкой проблему не решает.

У вас из-за желтых линий что-то не так функционирует?

Newcomer
21.09.2020, 14:13
У вас из-за желтых линий что-то не так функционирует?

Это другой вопрос. А мой изначальный вопрос - почему макрос желтый и как это поправить.

Алексеев
21.09.2020, 14:19
Это другой вопрос. А мой изначальный вопрос - почему макрос желтый и как это поправить.

Если хоть одна циклическая связь будет присутствовать в макросе он будет жёлтым . Я их всегда заменяю на линию задержки . Меня это тоже раздражает .

Newcomer
21.09.2020, 14:22
Если хоть одна циклическая связь будет присутствовать в макросе он будет жёлтым . Я их всегда заменяю на линию задержки . Меня это тоже раздражает .

Час от часа не легче.;) Вы мой первый пост на эту тему внимательно посмотрите и прочтите.

Сергей0308
21.09.2020, 14:27
Можно и переменную сделать энергонезависимой, если эта память не занята, тоже поможет желтизну побороть!
И, ранее неоднократно приходилось в этом макросе это делать, как бы всё пропадало, в смысле желтизна, выложите проект с этим макросом, поправлю Вам без проблем!

Алексеев
21.09.2020, 14:31
Час от часа не легче.;) Вы мой первый пост на эту тему внимательно посмотрите и прочтите.

Вот смотрите 51104 вот в макросе 51103 У вас присутствует одна желтая линия .

Ревака Юрий
21.09.2020, 14:33
Это другой вопрос. А мой изначальный вопрос - почему макрос желтый и как это поправить.

Затрудняюсь ответить, у меня тут https://youtu.be/pB37ALpPYnE?list=PLTJJg6aLoOUoxXWShgH9KLf8uB-CXsKH-&t=107 все исправляется.

Newcomer
21.09.2020, 14:35
Можно и переменную сделать энергонезависимой, если эта память не занята, тоже поможет желтизну побороть!
И, ранее неоднократно приходилось в этом макросе это делать, как бы всё пропадало, в смысле желтизна, выложите проект с этим макросом, поправлю Вам без проблем!

А это помогло. Благодарю. Линия задержки тоже помогает. Оказывается надо еще проект после этого сохранить.

СергейНовосиб
24.09.2020, 07:15
У меня задача: при превышении заданного параметра, перейти на экран сообщения. Это сделал, но там должно быть квитирование с возвратом на предыдущий экран.
Не могу сообразить, как переменную BOOL при изменении с экрана с 0 на 1, автоматически после квитирования вернуть переменную в 0.
Может кто то делал?

Ревака Юрий
24.09.2020, 08:00
У меня задача: при превышении заданного параметра, перейти на экран сообщения. Это сделал, но там должно быть квитирование с возвратом на предыдущий экран.
Не могу сообразить, как переменную BOOL при изменении с экрана с 0 на 1, автоматически после квитирования вернуть переменную в 0.
Может кто то делал?

Посмотрите тут: http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineMacroes/Shablon%20RS/PR200-1_test_MK110-X.4X.4X.owl, а вообще нужно смотреть как у Вас реализовано, может достаточно переднего или заднего детектора фронта.

СергейНовосиб
24.09.2020, 10:46
Спасибо. Правда не сразу разобрался. НЕ увидел "Расширенная настройка" - запись в конце цикла. Надо было поставить "Да"

lord2210
25.09.2020, 10:22
Добрый день. Есть ли возможность скрывать поле Int/float на экране, при нулевых значениях или при изменении какой либо переменной. Хотелось бы при остановке агрегата, записывать поверх скорости какое либо слово, а так нули мешаются... ПР200

petera
25.09.2020, 10:56
Добрый день. Есть ли возможность скрывать поле Int/float на экране, при нулевых значениях или при изменении какой либо переменной. Хотелось бы при остановке агрегата, записывать поверх скорости какое либо слово, а так нули мешаются... ПР200

Используйте переменные для координат X или Y полей Int/float, которые хотите скрывать.
При нулевых значениях или при изменении какой либо переменной присваивайте координате Х значение >16, или Y >2

lord2210
25.09.2020, 11:25
Используйте переменные для координат X или Y полей Int/float, которые хотите скрывать.
При нулевых значениях или при изменении какой либо переменной присваивайте координате Х значение >16, или Y >2

Спасибо, не знал!

dan75
25.09.2020, 11:38
Используйте переменные для координат X или Y полей Int/float, которые хотите скрывать.
При нулевых значениях или при изменении какой либо переменной присваивайте координате Х значение >16, или Y >2
Строго X>16. При задании Y>2 экран будет попросту листаться кнопками вверх/вниз (ежели им на данном экране не присвоено функций перехода).

Сергей0308
25.09.2020, 11:51
Строго X>16. При задании Y>2 экран будет попросту листаться кнопками вверх/вниз (ежели им на данном экране не присвоено функций перехода).

Делал бегущую строку из нескольких переменных(элементов), очень неудобно, все элементы в одной строке, накладываются друг на друга, чтобы нужную найти и подредактировать приходится все элементы по очереди доставать и так искать нужную!

dan75
25.09.2020, 13:53
Делал бегущую строку из нескольких переменных(элементов), очень неудобно, все элементы в одной строке, накладываются друг на друга, чтобы нужную найти и подредактировать приходится все элементы по очереди доставать и так искать нужную!

Ну, в процессе написания/отладки программы можно накладывающиеся переменные и по вертикали растащить, томущо редактировать их в одной строке действительно жутко неудобно. У самого сейчас в проекте экран, в первой строке которого динамический список, а во второй -- 4 разных варианта отображения (либо температура, либо таймер, либо булевая переменная -- переключатель, либо текстовый блок).

Serg290
13.10.2020, 12:37
Друзья! Прошу помощи. Как остановить таймер TP1?
51331
PUSK- Сетевая переменная, задает время для таймера TP1. На входе I появляется 1 и запускает таймер. Если на входе I появится 0 то таймер продолжает работать. Вопрос.... Как можно сделать чтобы при нажатии кнопки СТОП (предполагаемая кнопка) переменная PUSK обнулась и таймер прервал работу. Заранее всем спасибо.
https://yadi.sk/d/t2vDuj4J88Tdxg

Ревака Юрий
13.10.2020, 12:54
Друзья! Прошу помощи. Как остановить таймер TP1?
51331
PUSK- Сетевая переменная, задает время для таймера TP1. На входе I появляется 1 и запускает таймер. Если на входе I появится 0 то таймер продолжает работать. Вопрос.... Как можно сделать чтобы при нажатии кнопки СТОП (предполагаемая кнопка) переменная PUSK обнулась и таймер прервал работу. Заранее всем спасибо.
https://yadi.sk/d/t2vDuj4J88Tdxg

Используйте запись уставки через Write to FB и блок SEL, когда нужно остановить записываете уставку 0.

Сергей0308
13.10.2020, 13:22
Друзья! Прошу помощи. Как остановить таймер TP1?
51331
PUSK- Сетевая переменная, задает время для таймера TP1. На входе I появляется 1 и запускает таймер. Если на входе I появится 0 то таймер продолжает работать. Вопрос.... Как можно сделать чтобы при нажатии кнопки СТОП (предполагаемая кнопка) переменная PUSK обнулась и таймер прервал работу. Заранее всем спасибо.
https://yadi.sk/d/t2vDuj4J88Tdxg

Непонятно, зачем использовать то, что Вам не подходит? Неужели нет других, более подходящих элементов, короче, какую логику Вы пытаетесь сделать?

Может быть Вас как-то так или так устроит?

51338

Serg290
13.10.2020, 13:26
Используйте запись уставки через Write to FB и блок SEL, когда нужно остановить записываете уставку 0.

СПАСИБО!!! Огромное за подсказку!!!

Serg290
13.10.2020, 15:03
И еще вопрос. Я ПР-200 связал с панелью Weintek. Спасибо за помощь Юрию, все работает. Прошу еще помощь в одном моменте. Как сделать чтобы на панели бежал обратный отсчет с таймера TP1??? Заранее спасибо за помощь.
51339

Сергей0308
13.10.2020, 22:03
Друзья! Прошу помощи. Как остановить таймер TP1?
51331
PUSK- Сетевая переменная, задает время для таймера TP1. На входе I появляется 1 и запускает таймер. Если на входе I появится 0 то таймер продолжает работать. Вопрос.... Как можно сделать чтобы при нажатии кнопки СТОП (предполагаемая кнопка) переменная PUSK обнулась и таймер прервал работу. Заранее всем спасибо.
https://yadi.sk/d/t2vDuj4J88Tdxg

Кстати, суточную выдежку не получится напрямую из одного регистра получить, максимально 18,2 часа!
И с этого таймера ничего, кроме того, что Вы и так знаете, получить нельзя!

Alex469
14.10.2020, 00:49
Уважаемые знатоки, прошу помощи в реализации следующей задачи (см. ниже). Заранее спасибо!!!

Имеется два устройства, подключенные к цифровым выходам ПР100. Ус-во А подключено к выходу 1, ус-во В подключено к выходу 2. Выход=0: ус-во вЫключено. Выход=1: ус-во включено.
Имеется сетевая переменная Regim_MB, которая определяет режим работы. Если Regim_MB = 1, то работа ведется с ус-вом А. Если Regim_MB = 2, то работа ведется с ус-вом В.
Ус-во, с которым не ведется работа, находится в выключенном состоянии.

Имеется сетевая переменная Set_time_MB, которая устанавливает уставку времени в секундах (может принимать значение от 0 до 99999) для таймера обратного отсчета.

Имеется сетевая переменная Start_MB, которая запускает (при значении 1) или останавливает (при значении 0) работу одного из 2-х устройств.

1. Если уставка времени равна 0 (Set_time_MB = 0), то по команде Start_MB=1 (запуск) одно из ус-в (либо А, либо В) должно включиться и работать до поступления команды Start_MB=0 (останов).

2. Если уставка времени НЕ равна 0 (Set_time_MB = X сек) и Regim_MB = 1, то по команде Start_MB=1 (запуск) ус-во А должно включиться и работать в течение времени Х, по окончании которого ус-во А
должно выключится и Start_MB должно стать 0.
Если в процессе работы устройства А (т.е. таймер еще считает) поступит команда Start_MB=0 (останов), то устройства А должно выключится.
При этом ус-во В находится в выключенном состоянии.

3. Если уставка времени НЕ равна 0 (Set_time_MB = X сек) и Regim_MB = 2, то по команде Start_MB=1 (запуск) ус-во В должно включиться и работать до поступления команды Start_MB=0 (останов).
При этом ус-во 1 всегда находится в выключенном состоянии.

petera
14.10.2020, 10:01
Уважаемые знатоки, прошу помощи в реализации следующей задачи (см. ниже). Заранее спасибо!!!

Имеется два устройства, подключенные к цифровым выходам ПР100. Ус-во А подключено к выходу 1, ус-во В подключено к выходу 2. Выход=0: ус-во вЫключено. Выход=1: ус-во включено.
Имеется сетевая переменная Regim_MB, которая определяет режим работы. Если Regim_MB = 1, то работа ведется с ус-вом А. Если Regim_MB = 2, то работа ведется с ус-вом В.
Ус-во, с которым не ведется работа, находится в выключенном состоянии.

Имеется сетевая переменная Set_time_MB, которая устанавливает уставку времени в секундах (может принимать значение от 0 до 99999) для таймера обратного отсчета.

Имеется сетевая переменная Start_MB, которая запускает (при значении 1) или останавливает (при значении 0) работу одного из 2-х устройств.

1. Если уставка времени равна 0 (Set_time_MB = 0), то по команде Start_MB=1 (запуск) одно из ус-в (либо А, либо В) должно включиться и работать до поступления команды Start_MB=0 (останов).

2. Если уставка времени НЕ равна 0 (Set_time_MB = X сек) и Regim_MB = 1, то по команде Start_MB=1 (запуск) ус-во А должно включиться и работать в течение времени Х, по окончании которого ус-во А
должно выключится и Start_MB должно стать 0.
Если в процессе работы устройства А (т.е. таймер еще считает) поступит команда Start_MB=0 (останов), то устройства А должно выключится.
При этом ус-во В находится в выключенном состоянии.

3. Если уставка времени НЕ равна 0 (Set_time_MB = X сек) и Regim_MB = 2, то по команде Start_MB=1 (запуск) ус-во В должно включиться и работать до поступления команды Start_MB=0 (останов).
При этом ус-во 1 всегда находится в выключенном состоянии.

Вариант
51358

Макрос Интервал
51350

petera
14.10.2020, 10:22
1. Если уставка времени равна 0 (Set_time_MB = 0), то по команде Start_MB=1 (запуск) одно из ус-в (либо А, либо В) должно включиться и работать до поступления команды Start_MB=0 (останов).
..........................
3. Если уставка времени НЕ равна 0 (Set_time_MB = X сек) и Regim_MB = 2, то по команде Start_MB=1 (запуск) ус-во В должно включиться и работать до поступления команды Start_MB=0 (останов).
При этом ус-во 1 всегда находится в выключенном состоянии.

Это, что получается у второго устройства нет таймера?
Тогда программа упрощается
51356

Alex469
14.10.2020, 11:18
Тогда программа упрощается
Супер! Спасибо огромное!
А можно еще одну маленькую добавку: при работе таймера выдавать оставшееся время таймера в секундах в сетевую переменную Time_left_MB

petera
14.10.2020, 12:39
Супер! Спасибо огромное!
А можно еще одну маленькую добавку: при работе таймера выдавать оставшееся время таймера в секундах в сетевую переменную Time_left_MB

Можно
51364

ЗЫ
Замечание на условия задачи

Имеется сетевая переменная Set_time_MB, которая устанавливает уставку времени в секундах (может принимать значение от 0 до 99999) для таймера обратного отсчета.

Вы не сможете в простой сетевой переменной(WORD) передать значение до 99999, только до 65535.
Если нужно именно до 99999, то нужно использовать DWORD, т.е. два регистра Set_time_MB_HI и Set_time_MB_LO
а в программе ПР, на холсте собирать из них значение DWORD.

ЗЫ.

Добавил во вложения проект для ПР200
и проект в котором таймер использует время цикла в формате с плавающей точкой.

Alex469
14.10.2020, 14:31
Можно
Спасибо Вам огромное еще много раз!!! Как так можно написать, я вообще не понимаю :) Это очень круто!
Касательно пяти девяток, я понял и сам заметил эту не стыковку. Вы все верно заметили.

dimon_ag
29.10.2020, 09:20
Подскажите или дайте ссылку как работать с аналоговыми выходами, точнее как масштабировать значения в лоджике непосредственно к выходу.

ахметыч
02.11.2020, 16:09
Добрый день, подскажите макросы можно по команде исполнять и не исполнять.?

K123
02.11.2020, 16:23
Добрый день, подскажите макросы можно по команде исполнять и не исполнять.?
.
Вопрос сформулируйте корректно. А так могу ответить - макросы можно по команде исполнять и не исполнять. Каков вопрос, таков ответ.

Алексеев
03.11.2020, 09:40
Добрый день, подскажите макросы можно по команде исполнять и не исполнять.?

Используйте SEL 51661

Saint999
04.11.2020, 09:34
День добрый
Нужно переключать выводы одной кнопкой, перебор идет по кругу, 1 - нажатие - 2 - нажатие - 3 ... 7 - нажатие - 1 и т.д.
Реализовал я это так:
51691
Но появилась задача не просто знать nprg, для дальнейшего использования в проекте, но и задавать ее с дисплея, например было 6 - дали с дисплея 3 - нажатие кнопки - 4 - нажатие кнопки - 5 и т.д.
Прошу подсказать как реализовать данный алгоритм.
Спасибо

Sergej_
04.11.2020, 10:19
блок write to FB и импульс на R только в этом случае после достижения 8 установиться опять значение какое находиться в блоке "write to FB", если нужно чтоб начал с нуля поставьте еще SEL на входе в блок "write to FB"

dan75
04.11.2020, 11:19
День добрый
Нужно переключать выводы одной кнопкой, перебор идет по кругу, 1 - нажатие - 2 - нажатие - 3 ... 7 - нажатие - 1 и т.д.
Но появилась задача не просто знать nprg, для дальнейшего использования в проекте, но и задавать ее с дисплея, например было 6 - дали с дисплея 3 - нажатие кнопки - 4 - нажатие кнопки - 5 и т.д.
Прошу подсказать как реализовать данный алгоритм.
Спасибо
Может тогда ну его на фиг, этот счётчик? Можно сделать как-нить так:
51692

petera
04.11.2020, 11:23
Может тогда ну его на фиг, этот счётчик? Можно сделать как-нить так:
51692

SEL не нужен вообще, как и GT, впрочем
51694

petera
04.11.2020, 11:42
SEL не нужен вообще, как и GT, впрочем
51694

Можно еще применить дешифратор DC32
51695

dan75
04.11.2020, 12:01
Можно еще применить дешифратор DC32
Ндэ, до деления с остатком я не додумался. А в чём смысл применения DC32? Ну будет вместо 8ми блоков EQ 8 блоков EXTRACT (пусть даже в макросе). Что это даёт?

petera
04.11.2020, 12:15
Ндэ, до деления с остатком я не додумался. А в чём смысл применения DC32? Ну будет вместо 8ми блоков EQ 8 блоков EXTRACT (пусть даже в макросе). Что это даёт?

Думаю, что булевы операции процессору выполнять привычней, :)

dan75
04.11.2020, 12:56
Думаю, что булевы операции процессору выполнять привычней, :)
Тот вопрос, на который я всё не могу получить ответ: какие ФБ больше влияют на время цикла (считай, больше грузят процессор)? Помнится, кто-то мне доказывал, что для отслеживания изменения переменной верхний вариант предпочтительнее нижнего. В итоге пришёл Юрий и посоветовал не париться.51698
Вот, например, Вы заменили GT-SEL на деление, а я слышал, что "деление -- это всегда долго". Короче, мне требуется ликбез. Как раз и топик для этого подходящий.

Saint999
04.11.2020, 13:33
Спасибо всем кто откликнулся.
Выбрал этот вариант, полностью устроил.

SEL не нужен вообще, как и GT, впрочем

Sergej_
04.11.2020, 13:37
Тот вопрос, на который я всё не могу получить ответ: какие ФБ больше влияют на время цикла (считай, больше грузят процессор)?Было бы интересно и познавательно если бы ОВЕН выложил такие данные по всем функциям и ФБ. и их комбинациям.Вряд ли такие исследования кто делал. А из курса "автоматики и вычислительной техники" АЛУ процессора только складывать и сдвигать умеет ( мож. чего забыл:), а мож чему еще "научили" с тех пор).Все остальное как программисты наворотят, так и будет крутиться. Ваши ответы на последний вопрос подтверждают, как можно изящно сделать.

Saint999
04.11.2020, 16:27
Можно еще применить дешифратор DC32
51695

Я извиняюсь, я сегодня спал 3 часа всего, все занят был программированием, сразу не заметил.
У меня с дисплея задается 1-8, по Вашему алгоритму 0-7.
Что мне добавить что бы он удовлетворял моим потребностям, я просто уже совсем туплю, осталось только это и пойду спать)

Saint999
04.11.2020, 16:33
Я извиняюсь, я сегодня спал 3 часа всего, все занят был программированием, сразу не заметил.
У меня с дисплея задается 1-8, по Вашему алгоритму 0-7.
Что мне добавить что бы он удовлетворял моим потребностям, я просто уже совсем туплю, осталось только это и пойду спать)

Сделал, так, работает, не знаю на сколько верно так поступать)
51706

Сергей0308
04.11.2020, 16:42
Не знаю как там, не смотрел, у меня для аналогичного макроса существует настройка для каждого выхода извлекаемого бита:

51707

51708

Saint999
04.11.2020, 17:16
Не знаю как там, не смотрел, у меня для аналогичного макроса существует настройка для каждого выхода извлекаемого бита:

51707

51708

Этот мы имеем) и пользуемся регулярно.
Так же раз уж Вы появились, сам я стеснялся спросить.
Может можно как то сэкономить памяти энергонезависимой, я проект урезал, вписался он в 70%, до урезания был 99% и как бы что бы себя не ограничивать решил отказаться от определенных функций.

Смысл в чем, есть 8 автоматических программ, в каждой программе 8 шагов, каждый шаг имеет 4 типа и каждый шаг длится определенное время, все эти параметры пользователь с дисплея может редактировать сам, а потом уже в автоматическом режиме использовать. Так вот можно ли как то память сэкономить?
51710
51709

petera
04.11.2020, 18:00
Я извиняюсь, я сегодня спал 3 часа всего, все занят был программированием, сразу не заметил.
У меня с дисплея задается 1-8, по Вашему алгоритму 0-7.
Что мне добавить что бы он удовлетворял моим потребностям, я просто уже совсем туплю, осталось только это и пойду спать)
Какие были исходные данные,
51714
такое решение я и предложил :)



Сделал, так, работает, не знаю на сколько верно так поступать)
51706

Вместо этой лабуды в схеме, прямо на экране, взамен "классического" поля ввода переменной nProg, нужно использовать комбобокс со списком 1,2,3,..8
51713

И все опять упростится :rolleyes:

Сергей0308
04.11.2020, 18:21
Этот мы имеем) и пользуемся регулярно.
Так же раз уж Вы появились, сам я стеснялся спросить.
Может можно как то сэкономить памяти энергонезависимой, я проект урезал, вписался он в 70%, до урезания был 99% и как бы что бы себя не ограничивать решил отказаться от определенных функций.

Смысл в чем, есть 8 автоматических программ, в каждой программе 8 шагов, каждый шаг имеет 4 типа и каждый шаг длится определенное время, все эти параметры пользователь с дисплея может редактировать сам, а потом уже в автоматическом режиме использовать. Так вот можно ли как то память сэкономить?
51710
51709

У Вас в переменной ввода данных используется 4 десятичных разряда, даже не зная точного диапазона ввода, можно с уверенностью на 100% утверждать, что это занимает не более 14 бит и объём занимаемой энергонезависимой памяти, что используется сейчас для запоминания этих переменных можно без труда уменьшить в 2 раза, кстати, проект, что я выложил, для подобных целей и создавался, только там энергонезависимая переменная делится на байты, Вам достаточно на регистры поделить(пополам) по 2 байта(16 бит), всё! Можно располовинить и теми макросами, что в выложенном проекте, но удобнее, что в этом проекте:
51721

И зачем у Вас столько однотипных экранов редактирования программ, я делаю так в аналогичных случаях: ввожу переменную номер программы, она меняется, и таких экранов надо в 8 раз меньше!
И для номера шага используйте переменную, тогда у Вас все экраны редактирования уместятся в двух строках, номер программы и номер шага!

Вот посмотрите проекты с подобным подходом:
51715
51717

dan75
04.11.2020, 18:32
Я извиняюсь, я сегодня спал 3 часа всего, все занят был программированием, сразу не заметил.
У меня с дисплея задается 1-8, по Вашему алгоритму 0-7.
Что мне добавить что бы он удовлетворял моим потребностям, я просто уже совсем туплю, осталось только это и пойду спать)
Кстати гря, мою схему с GT-SEL можно подстроить и без комбо-бокса. На нижний вход блока SEL для этого надобно подавать не 0, а 1. Переменная nprg у меня была энергонезависимая, значение по умолчанию ставим 1, чтобы не было нуля при первом включении. Ну и константы на входах блоков EQ подправляем: не 0-7, а 1-8. А в свойствах экранной переменной nprg задаём такие же границы.

K123
04.11.2020, 21:47
Приветствую.

Есть два способа "донести" сигнал со входа DI до элементов схемы:
1. Занести значение входа в входную переменную, далее использовать переменную где необходимо.
2. Без использования переменной - сразу вести связь в нужную часть схемы.

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

Вопрос такой - есть ли какие-то минусы в первом способе, например - больше ресурсов используется, программа выполняется за большее кол-во тактов, еще что-то?
Может быть есть какие-то случаи, в которых стоит предпочесть использование второго способа?

bayk
05.11.2020, 19:51
K123 если не используете энергонезависимые переменные, то разницы в затрачиваемых ресурсах нет.
Сергей 0308 поинтересуюсь, раз уж речь зашла, а нет ли способа передавать из/в скада-системы отрицательные целые числа в формате обычного int? чтобы потом в программе уже превращать их во флоат?
просто я тут ваял себе свой собственный аналог ТРМ32, и столкнулся с тем, что для корректировки отрицательных значений по сети и локально приходится использовать float числа, что просто уничтожает запас сетевых переменных, хотя по факту передавать нужно обычные целые числа, но со знаком минус.
тут даже основная задача не преобразовать int во флоат, а как соорудить аналог selchgF (чтобы можно было и с экрана и по сети). раньше была беда с тем, что оператор мог внести во флоат не только целое число, а теперь нам стали доступны на экране флоат без знаков после запятой!
осталось только кому-нибудь соорудить такой классный макрос!

Сергей0308
05.11.2020, 21:12
K123 если не используете энергонезависимые переменные, то разницы в затрачиваемых ресурсах нет.
Сергей 0308 поинтересуюсь, раз уж речь зашла, а нет ли способа передавать из/в скада-системы отрицательные целые числа в формате обычного int? чтобы потом в программе уже превращать их во флоат?
просто я тут ваял себе свой собственный аналог ТРМ32, и столкнулся с тем, что для корректировки отрицательных значений по сети и локально приходится использовать float числа, что просто уничтожает запас сетевых переменных, хотя по факту передавать нужно обычные целые числа, но со знаком минус.
тут даже основная задача не преобразовать int во флоат, а как соорудить аналог selchgF (чтобы можно было и с экрана и по сети). раньше была беда с тем, что оператор мог внести во флоат не только целое число, а теперь нам стали доступны на экране флоат без знаков после запятой!
осталось только кому-нибудь соорудить такой классный макрос!

Насколько понял, это давно уже придумано, один из первых моих макросов:
https://owen.ru/forum/showthread.php?t=13106&page=3

51758

petera
05.11.2020, 22:28
...тут даже основная задача не преобразовать int во флоат, а как соорудить аналог selchgF (чтобы можно было и с экрана и по сети). раньше была беда с тем, что оператор мог внести во флоат не только целое число, а теперь нам стали доступны на экране флоат без знаков после запятой!
осталось только кому-нибудь соорудить такой классный макрос!
Вариант...
51760

Только не забываем, про допустимый диапазон чисел от -32768 до +32767

Votrj1
06.11.2020, 15:38
Никогда не задумывался , а тут... Если в блок BLINK в Th записать например 10, а в Ti НОЛЬ, то что физически будет на живом аппарате. В эмуляторе работает.

melky
06.11.2020, 15:58
Votrj1 пауза 1 цикл должна быть.

bayk
06.11.2020, 19:55
Вариант...
Только не забываем, про допустимый диапазон чисел от -32768 до +32767

большое спасибо. уже переписал ПО, для которого это было нужно. в итоге "добыл 12 регистров! это очень внушительный запас, теперь можно добавить функционала.

Сергей0308
07.11.2020, 02:15
большое спасибо. уже переписал ПО, для которого это было нужно. в итоге "добыл 12 регистров! это очень внушительный запас, теперь можно добавить функционала.

Вы прямо маньяк, на всю катушку хотите!
Сразу это вспомнилось: коли прыжок бесплатный, давайте на всю катушку!
https://www.youtube.com/watch?v=VlnrfizdvXU

И я это как-то так вижу:

51794

51796

51795

dan75
07.11.2020, 11:24
Всем добрый день. Возникла проблема с переменной статуса modbus-устройства. Для понимания сей проблемы прилагаю примитивную программу. Короче говоря, программа не работает. Независимо от состояния слейва, происходит переход на экран "нет связи", а переменная online = 0 (горит красный светодиод). Но стоит только убрать переход на экран "нет связи", ПР200 начинает показывать температуру, а зелёный светодиод загорается, сигнализируя о наличии связи. Кста, на слейве (ТРМ202) светодиод RS горит в обоих случаях.

Владимир31
07.11.2020, 19:45
Ткните пожалуйста как скачать макросы, которые описаны в разделе Макросы в онлайн базе OWEN Log
Описания открываются в пдф формате, а сами макросы где и как их скачать.

Ревака Юрий
07.11.2020, 20:17
Ткните пожалуйста как скачать макросы, которые описаны в разделе Макросы в онлайн базе OWEN Log
Описания открываются в пдф формате, а сами макросы где и как их скачать.

Слева есть чекбоксы скачать в проект или на пк.

melky
09.11.2020, 14:02
Подскажите как реализовать механизм запуска после того, как значение пойдет вверх и потом начнет опускаться.
Чтобы механизм не запускался, если сперва значение идет вниз...

з.ы. описание проблемы тут https://owen.ru/forum/showthread.php?t=31941&p=342768&viewfull=1#post342768

Sergej_
09.11.2020, 15:28
Подскажите как реализовать механизм запуска после того, как значение пойдет вверх и потом начнет опускаться.
Чтобы механизм не запускался, если сперва значение идет вниз...

з.ы. описание проблемы тут https://owen.ru/forum/showthread.php?t=31941&p=342768&viewfull=1#post342768 "вектор изменения вещественного числа" в МК есть.+ FTRIG или счетчик получиться наверное.

Сергей0308
09.11.2020, 16:04
Подскажите как реализовать механизм запуска после того, как значение пойдет вверх и потом начнет опускаться.
Чтобы механизм не запускался, если сперва значение идет вниз...

з.ы. описание проблемы тут https://owen.ru/forum/showthread.php?t=31941&p=342768&viewfull=1#post342768

Примерно как-то так:

51822

51823

melky
09.11.2020, 17:26
Как же меня начинает бесить фирма Овен со своим "программа была создана в более старшей версии" и без установленного Adobe Reader даже макрос из программы нельзя скачать, не читая его описания в pdf :(

Сергей0308 пока я тут занимаюсь очередными скачиваниями, макрос позволяет пропустить первое снижение или надо что-то прикрутить ?

Спасибо, кажется подойдет... подумаю, как его прикрутить к своей затеи.

Сергей0308
09.11.2020, 19:55
Как же меня начинает бесить фирма Овен со своим "программа была создана в более старшей версии" и без установленного Adobe Reader даже макрос из программы нельзя скачать, не читая его описания в pdf :(

Сергей0308 пока я тут занимаюсь очередными скачиваниями, макрос позволяет пропустить первое снижение или надо что-то прикрутить ?

Спасибо, кажется подойдет... подумаю, как его прикрутить к своей затеи.

Может так хочется?

51825

51826

В принципе мой макрос "VIP" определяет вектор(направление) изменения переменной и любую логику можно присобачить!

Или так?

51847

51844

dan75
10.11.2020, 17:51
Всем добрый день. Возникла проблема с переменной статуса modbus-устройства. Для понимания сей проблемы прилагаю примитивную программу. Короче говоря, программа не работает. Независимо от состояния слейва, происходит переход на экран "нет связи", а переменная online = 0 (горит красный светодиод). Но стоит только убрать переход на экран "нет связи", ПР200 начинает показывать температуру, а зелёный светодиод загорается, сигнализируя о наличии связи. Кста, на слейве (ТРМ202) светодиод RS горит в обоих случаях.
Сам спросил -- сам отвечаю, раз уж никто больше не сподобился. Помог вариант, когда переход на экран осуществляется не по самой переменной статуса, а по некоей промежуточной переменной. Видимо, это как-то связано со свойством переменных перехода автоматически обнуляться после того, как переход совершён.
51850

melky
11.11.2020, 10:25
Сергей0308 делал вчера упрощенный вариант, в результате утром ТН отключился совсем, был 0 на выходе Q2 то есть произошло то самое снижение температуры за 3 минуты (на входе макроса стояло 30 и внутри Х на 100 мс) и за это время не произошло увеличения температуры, чтобы сбросить триггер.

Проблема заключается в чем собственно. При включении компрессора разрешается работа блока и на SEL подается импульс, который фиксирует текущую температуру и запускает таймер TON1
1. при включении температура сперва может пойти вверх, а потом вниз из-за прокачки насосом. Так как ТН стоит вторым котлом с дизелем, работать может только один (установлен 3-х ходовой на обратке, циркуляционный насос один). Перед запуском например мог работать дизель и в системе достаточно горячая вода была, по этому возможно такое поведение Т сперва вверх, потом вниз и потом уже от нагрева ТН вверх - временной диапазон неизвестен.
2. Температура может сразу пойти вверх, без провала вниз и ТН ее продолжает греть
3. Температура сперва может пойти вниз, а потом вверх

Для всех режимом временной диапазон между падением температуры и повышением неизвестен. А так же неизвестно, по какому из 3-х вариантов начнется действие. Например если вариант 1 и 3, то можно было бы поставить счетчик на VIP (-) и отключать на второй итерации падения.
А если вариант 2, то тогда ничего не сработает со счетчиком.

Попробую 3-й вариант, а то замудренное там что-то во всех вариантах для моего понимания :)

Блин, нужен какой-то макрос, который будет сравнивать температуру строго 2-3 минуты назад, а не так, как в схеме обновление текущей каждые 3 минуты.... Кажется тут скорее всего собака зарыта...

Сергей0308
12.11.2020, 10:43
Сергей0308 делал вчера упрощенный вариант, в результате утром ТН отключился совсем, был 0 на выходе Q2 то есть произошло то самое снижение температуры за 3 минуты (на входе макроса стояло 30 и внутри Х на 100 мс) и за это время не произошло увеличения температуры, чтобы сбросить триггер.

Проблема заключается в чем собственно. При включении компрессора разрешается работа блока и на SEL подается импульс, который фиксирует текущую температуру и запускает таймер TON1
1. при включении температура сперва может пойти вверх, а потом вниз из-за прокачки насосом. Так как ТН стоит вторым котлом с дизелем, работать может только один (установлен 3-х ходовой на обратке, циркуляционный насос один). Перед запуском например мог работать дизель и в системе достаточно горячая вода была, по этому возможно такое поведение Т сперва вверх, потом вниз и потом уже от нагрева ТН вверх - временной диапазон неизвестен.
2. Температура может сразу пойти вверх, без провала вниз и ТН ее продолжает греть
3. Температура сперва может пойти вниз, а потом вверх

Для всех режимом временной диапазон между падением температуры и повышением неизвестен. А так же неизвестно, по какому из 3-х вариантов начнется действие. Например если вариант 1 и 3, то можно было бы поставить счетчик на VIP (-) и отключать на второй итерации падения.
А если вариант 2, то тогда ничего не сработает со счетчиком.

Попробую 3-й вариант, а то замудренное там что-то во всех вариантах для моего понимания :)

Блин, нужен какой-то макрос, который будет сравнивать температуру строго 2-3 минуты назад, а не так, как в схеме обновление текущей каждые 3 минуты.... Кажется тут скорее всего собака зарыта...

Как я понимаю, сначала задачу нужно решить математически! А так, я очень сомневаюсь, что в процессе рисования элементов из ОЛ придёт озарение и гениальным математиком станешь!

melky
12.11.2020, 11:39
Сергей0308 математически не получается :) забил... убрал фильтры и поставил задержку. Надо решать задачу иначе, добавлять датчики температуры на фреоновые трубки и изолировать их от внешней среды и контролировать температуру как это делают мозги внутреннего блока.

На самом деле мне все это не так нужно, так как делаю систему вода-вода и там по обмерзанию просто защиту по Т воды делать с отключением компрессора и прокачкой воды. А тут просто блок еще не разобрал, думал написать программу с возможностью работы и воздух-вода, но тут надо контролировать обмерзание и включать оттайку внешнего блока.

Пока так сделал, просто увеличил задержку на выходе. добавил SEL для сброса в начале пути... Он пишет 0 вместо текущей температуры и VIP начинает считать с начала, считая направление сперва в +. Так же внешнюю задержку сделал, чтобы En не сразу включался при старте компрессора.

ElectricTver
19.11.2020, 08:26
Решил тоже попробовать свои силы в программировании пр200. Хочется сделать небольшую автоматизацию в своём доме. Со светом вроде бы разобрался. Теперь бьюсь с управлением штор, но что-то не получается. Вроде бы алгоритм простейший(каждая штора управляется своей кнопкой, и есть одна общая кнопка, которая либо все закрывает, либо все открывает). В схеме просто копирую одинаковые блоки, соединяют их, но схема работает не корректно. Если собрать схему для трех штор все работает, а вот если для четырёх штор, то одна штора никак не хочет закрываться от общей кнопки. А вот если сделать схему для пяти штор, то четыре шторы работают правильно, а пятая опять не поддаётся управлению. Подскажите, может это какой-то баг, или я какие то настройки не правильно делаю. Может кто-то тоже сталкивались с такой проблемой.

Ревака Юрий
19.11.2020, 11:32
Решил тоже попробовать свои силы в программировании пр200. Хочется сделать небольшую автоматизацию в своём доме. Со светом вроде бы разобрался. Теперь бьюсь с управлением штор, но что-то не получается. Вроде бы алгоритм простейший(каждая штора управляется своей кнопкой, и есть одна общая кнопка, которая либо все закрывает, либо все открывает). В схеме просто копирую одинаковые блоки, соединяют их, но схема работает не корректно. Если собрать схему для трех штор все работает, а вот если для четырёх штор, то одна штора никак не хочет закрываться от общей кнопки. А вот если сделать схему для пяти штор, то четыре шторы работают правильно, а пятая опять не поддаётся управлению. Подскажите, может это какой-то баг, или я какие то настройки не правильно делаю. Может кто-то тоже сталкивались с такой проблемой.

Я думаю, шансы решения вопроса увеличатся если приложить проект.:) А так я Вам писал, что проблема скорее всего в логике.

ElectricTver
19.11.2020, 14:49
Хорошо пришлю. Как только буду у компьтера

ElectricTver
19.11.2020, 16:18
Хорошо пришлю. Как только буду у компьтера

Alex469
19.11.2020, 16:23
Приветствую всех. С месяц назад мной был задан вопрос (https://owen.ru/forum/showthread.php?t=26216&page=180&p=341267&viewfull=1#post341267) касательно одной задачи. На что были получены отличные ответы от уважаемого petera с конкретными примерами. Вкратце напомню, что речь шла о ПР100 в режиме слейв, которое должно было управлять двумя устройствами по командам от модбас мастера с использованием обратного таймера. Сейчас потребовалось решить аналогичную задачу, но при этом ПР100 должно работать в режиме мастер. Я было взял уже наработанный пример для слейва, "сделал" из слейва мастера и понял, что схема НЕ работает. Прилагаю два проекта: для слейва (от petera) и мою "переделку" для мастера (я здесь даже упростил и оставил только одно устройство).
Вижу где кроется "закавыка" (в обработке сетевой переменной Start_MB), но никак это "закавыку" не могу победить. А посему прошу помощи знатоков.
Еще раз поясню, что ус-во, подключенное к выходу Q1 должно включаться по значению переменной Start_MB = 1. И должно выключаться по Start_MB = 0, либо по истечению заданного (не нулевого) времени.
При этом важно, что если выключение устройства происходит по истечению времени, то переменная Start_MB должна обязательно устанавливаться в 0.

ElectricTver
20.11.2020, 09:53
52099 проектик

Сергей0308
20.11.2020, 10:06
52099 проектик

А что положение штор другим не бывает, кроме полностью закрыто или открыто, короче, не разумнее подавать сигнал на открытие или закрытие когда кнопка нажата?

ElectricTver
20.11.2020, 10:22
Суть проблемы описана выше

petera
20.11.2020, 12:28
Приветствую всех. С месяц назад мной был задан вопрос (https://owen.ru/forum/showthread.php?t=26216&page=180&p=341267&viewfull=1#post341267) касательно одной задачи. На что были получены отличные ответы от уважаемого petera с конкретными примерами. Вкратце напомню, что речь шла о ПР100 в режиме слейв, которое должно было управлять двумя устройствами по командам от модбас мастера с использованием обратного таймера. Сейчас потребовалось решить аналогичную задачу, но при этом ПР100 должно работать в режиме мастер. Я было взял уже наработанный пример для слейва, "сделал" из слейва мастера и понял, что схема НЕ работает. Прилагаю два проекта: для слейва (от petera) и мою "переделку" для мастера (я здесь даже упростил и оставил только одно устройство).
Вижу где кроется "закавыка" (в обработке сетевой переменной Start_MB), но никак это "закавыку" не могу победить. А посему прошу помощи знатоков.
Еще раз поясню, что ус-во, подключенное к выходу Q1 должно включаться по значению переменной Start_MB = 1. И должно выключаться по Start_MB = 0, либо по истечению заданного (не нулевого) времени.
При этом важно, что если выключение устройства происходит по истечению времени, то переменная Start_MB должна обязательно устанавливаться в 0.

Нет ПРки под рукой, проверить не могу

попробуйте включить "Запись в конце цикла"
52103

ЗЫ
В Вашем случае думаю можно упростить
52104

bayk
20.11.2020, 13:55
Поправка, чтобы функция "запись в конце цикла" стала активной переменная должна обязательно быть подключена к экранному элементу, или переменная должна быть энергонезависимой, тогда функция автоматически будет работать, если я ничего не путаю

Alex469
20.11.2020, 13:57
Нет ПРки под рукой, проверить не могу
попробуйте включить "Запись в конце цикла
ЗЫ
В Вашем случае думаю можно упростить

Отлично. Работает. Упрощенный вариант тоже (который мне больше понравился). Огромное спасибо!

Alex469
20.11.2020, 14:00
Поправка, чтобы функция "запись в конце цикла" стала активной переменная должна обязательно быть подключена к экранному элементу, или переменная должна быть энергонезависимой, тогда функция автоматически будет работать, если я ничего не путаю
В моем случае это сетевая переменная (ПРка в режиме мастер). Соответственно функция "запись в конце цикла" для данной переменной активна.

Alex469
26.11.2020, 20:56
Очередной вопрос: в ПР100 есть 6 цифровых входов I1,...,I6. ПР100 в режиме модбас мастер. Нужно сформировать сетевую слейв переменную Err_MB целого типа по следующему алгоритму.
Если все входы равны 0, то Err_MB = 0. Если хотя бы один вход стал равен 1, то переменная Err_MB должна стать равна номеру входа, на котором появился 1.
При этом важно, что бы в переменной Err_MB должен зафиксироваться номер первого сработавшего входа. Т.е. если сначала сработал вход I3, а потом вход I5, то Err_MB должна остаться = 3.
Более того, как только Err_MB изменилась из 0 в номер сработавшего входа, то изменить ее в 0 потом можно только слейвом (по модбас).

Сергей0308
27.11.2020, 02:00
Очередной вопрос: в ПР100 есть 6 цифровых входов I1,...,I6. ПР100 в режиме модбас мастер. Нужно сформировать сетевую слейв переменную Err_MB целого типа по следующему алгоритму.
Если все входы равны 0, то Err_MB = 0. Если хотя бы один вход стал равен 1, то переменная Err_MB должна стать равна номеру входа, на котором появился 1.
При этом важно, что бы в переменной Err_MB должен зафиксироваться номер первого сработавшего входа. Т.е. если сначала сработал вход I3, а потом вход I5, то Err_MB должна остаться = 3.
Более того, как только Err_MB изменилась из 0 в номер сработавшего входа, то изменить ее в 0 потом можно только слейвом (по модбас).

Не до конца ясно, как должно работать в тех или иных случаях, например должно ли сбрасываться при наличии активных аварий(ошибок), у меня можно сбросить и следующая авария(ошибка) появится только после пропадании всех и возникновении вновь или логика при одновременном нажатии более одного входа(у меня приоритет у более старшего входа), короче, наверно примерно так:

52197

52198

Alex469
28.11.2020, 12:38
Сергей0308, спасибо огромное, практически то, что нужно. Особенно интересно решение с приоритетами при одновременном нажатии более одного входа. Вот только не пойму назначение переменной IN1_8.
Если я понял правильно, то в OUT_w формируется код аварии (от 1 до 8). Как правильно сбрасывать это код в 0? Записью 0 в локальную переменную Q ? Или формированием некоторого значения (какого ?) в IN1_8 ?
Какова связь между срабатыванием входов и значением переменной IN1_8 ?

Сергей0308
28.11.2020, 14:01
Сергей0308, спасибо огромное, практически то, что нужно. Особенно интересно решение с приоритетами при одновременном нажатии более одного входа. Вот только не пойму назначение переменной IN1_8.
Если я понял правильно, то в OUT_w формируется код аварии (от 1 до 8). Как правильно сбрасывать это код в 0? Записью 0 в локальную переменную Q ? Или формированием некоторого значения (какого ?) в IN1_8 ?
Какова связь между срабатыванием входов и значением переменной IN1_8 ?

Насколько я смог понять, Вы хотели сбрасывать код ошибки(1-8) только по сети?!
В данном случае, для примера ПР200(мастер) считывает 51 регистр модуля дискретного ввода(слейв) и если на его первом входе появляется "1" сбрасывает значение ошибки в "0". Можно одним регистром передавать до 16 дискретных сигналов! Короче, сброс происходит значением "1" в сетевой переменной IN1_8, так как такой весовой коэффициент у первого входа(нулевого бита), у второго входа(первого бита) это будет "2" у третьего входа - "4", у четвёртого входа - "8", у пятого входа - "16", у шестого входа - "32", у седьмого входа - "64" и у восьмого входа - "128", если сброс сделать с этих входов, всё!

Для передачи кода ошибки(диапазона 0-6) достаточно задействовать три бита(диапазон 0-7)!

Alex469
28.11.2020, 14:29
Сергей0308, спасибо за пояснение. Я понял назначение данной переменной в Вашем примере.

Сергей0308
29.11.2020, 22:20
Сергей0308, спасибо за пояснение. Я понял назначение данной переменной в Вашем примере.

Может Вы планировали обойтись одной сетевой переменной?
Если куда Вы посылаете код ошибки и откуда его сбрасываете - одно устройство и достаточно "умное", например ПР, то можно обойтись и одной переменной, мастер читает и пишет эту переменную, например так:

52244

52245

Alex469
30.11.2020, 16:51
Сергей0308, еще раз спасибо! Тоже интересный вариант. Меня сейчас заботит несколько другой аспект, который пока не получается реализовать. Хочется, что бы код ошибки (OUT_w) можно сбросить в 0 при наличии активных аварий (ошибок) и следующая ошибка появится сразу же после сброса, если есть любые активные аварии на входах. Например, если по времени последовательно расписать так (ti - момент времени i):
t1: вход I5 = 1, OUT_w = 5 - сработал вход I5, код ошибки = 5
t2: вход I7 = 1 - сработал вход I7
t3: вход I5 = 0 - вход I5 сброшен
t4: OUT_w = 0 - сброс кода ошибки
t5: OUT_w = 7 - код ошибки = 7, т.к. вход I7 активен.
Так же должно работать, если мы сбрасываем код ошибки, а вход I5 все еще активен.

Сергей0308
30.11.2020, 18:28
Сергей0308, еще раз спасибо! Тоже интересный вариант. Меня сейчас заботит несколько другой аспект, который пока не получается реализовать. Хочется, что бы код ошибки (OUT_w) можно сбросить в 0 при наличии активных аварий (ошибок) и следующая ошибка появится сразу же после сброса, если есть любые активные аварии на входах. Например, если по времени последовательно расписать так (ti - момент времени i):
t1: вход I5 = 1, OUT_w = 5 - сработал вход I5, код ошибки = 5
t2: вход I7 = 1 - сработал вход I7
t3: вход I5 = 0 - вход I5 сброшен
t4: OUT_w = 0 - сброс кода ошибки
t5: OUT_w = 7 - код ошибки = 7, т.к. вход I7 активен.
Так же должно работать, если мы сбрасываем код ошибки, а вход I5 все еще активен.

Тогда наверно как-то так:

52272

Вы, наверно, в первый раз с логикой сталкиваетесь?

52273

Fox-spd
30.11.2020, 18:56
Прошу помощи. Мною написан алгоритм управления котлом, при симуляции и на пр200 все работает, но при выключении питания на пр и последующем его запуске прибор включается но алгоритм не запускается. Алгоритм запускается по кнопке пуск выходная переменная которой назначена энергонезависимой. Прошу совета как сделать чтобы при откл. питания и его появлении алгоритм запускался сам. Спасибо всем откликнувшимся.

Сергей0308
30.11.2020, 19:11
Прошу помощи. Мною написан алгоритм управления котлом, при симуляции и на пр200 все работает, но при выключении питания на пр и последующем его запуске прибор включается но алгоритм не запускается. Алгоритм запускается по кнопке пуск выходная переменная которой назначена энергонезависимой. Прошу совета как сделать чтобы при откл. питания и его появлении алгоритм запускался сам. Спасибо всем откликнувшимся.

Вероятно Вы используете RS-триггер из ОЛ, он не обладает энергонезависимостью.
Может лучше Вам поставить тумблер вместо кнопок, хотя бы временно, пока не разберётесь с энергонезависимыми RS-триггерами, а то систему отопления разморозите и себя заморозите, короче, думаю тумблер решит ваши проблемы на ближайшую перспективу!

Fox-spd
30.11.2020, 19:11
Скрин проекта прикрепляю:

Alex469
30.11.2020, 20:07
Тогда наверно как-то так:

Сергей0308, Спасибо огромное! Именно то, что нужно.

Fox-spd
01.12.2020, 20:41
Вероятно Вы используете RS-триггер из ОЛ, он не обладает энергонезависимостью.
Может лучше Вам поставить тумблер вместо кнопок, хотя бы временно, пока не разберётесь с энергонезависимыми RS-триггерами, а то систему отопления разморозите и себя заморозите, короче, думаю тумблер решит ваши проблемы на ближайшую перспективу!

Сергей спасибо, поставил тумблер только на пуск и после него добавил передний фронт, все заработало как надо.

Сергей0308
01.12.2020, 20:50
Сергей спасибо, поставил тумблер только на пуск и после него добавил передний фронт, все заработало как надо.

Напишите необходимую логику работы, в смысле включения с кнопок и внешней аварии, мне проще сделать чем разбираться в вашей лабуде! Зачем для тумблера передний фронт? И выхода подпишите, чтобы понятно было!

И совсем забываю спросить: у Вас тоже кнопка на клаве сломалась, что скриншоты делает?

Так ответил преведущий собеседник на мой вопрос почему он экран фотографирует!

Fox-spd
02.12.2020, 21:41
Сергей добрый вечер! Видно я не один кто экран фоткает))) логика на самом деле простая: имеется котел и насос, а также два датчика один датчик температуры ntc 10, а второй датчик давления и две кнопки пуск и стоп. При нажатии кнопки пуск, насос запускается сразу, а котел запускается с задержкой во времени которую можно задавать с экрана ПР-200. При нажатии кнопки стоп котел отключается сразу, а насос отключается с задержкой по времени, длительность которой также можно изменять с экрана ПР-200. Управление нагревом и охлаждением котла осуществляется по средствам датчика ntc10 по гистерезису, уставку которого также можно менять с экрана ПР-200. При срабатывании сигнала аварии, от датчика давления( превышении нижнего порога) происходит отключение котла и насоса, но насос выключается с той задержкой при которой происходило его включении, при этом кнопки пуск и стоп остаются не активны, а на экран ПР-200 поступает сообщение авария, при снятие сигнала авария происходит включение насоса с задержкой уже прописанной ранее и затем включение котла. И ВАЖНО при пропадании питания на ПР-200 и последующем его появлении, т. е. включении ПР алгоритм запускался сам по программе кнопки пуск, сначала насос с его задержкой потом котел.

Сергей0308
02.12.2020, 23:35
Сергей добрый вечер! Видно я не один кто экран фоткает))) логика на самом деле простая: имеется котел и насос, а также два датчика один датчик температуры ntc 10, а второй датчик давления и две кнопки пуск и стоп. При нажатии кнопки пуск, насос запускается сразу, а котел запускается с задержкой во времени которую можно задавать с экрана ПР-200. При нажатии кнопки стоп котел отключается сразу, а насос отключается с задержкой по времени, длительность которой также можно изменять с экрана ПР-200. Управление нагревом и охлаждением котла осуществляется по средствам датчика ntc10 по гистерезису, уставку которого также можно менять с экрана ПР-200. При срабатывании сигнала аварии, от датчика давления( превышении нижнего порога) происходит отключение котла и насоса, но насос выключается с той задержкой при которой происходило его включении, при этом кнопки пуск и стоп остаются не активны, а на экран ПР-200 поступает сообщение авария, при снятие сигнала авария происходит включение насоса с задержкой уже прописанной ранее и затем включение котла. И ВАЖНО при пропадании питания на ПР-200 и последующем его появлении, т. е. включении ПР алгоритм запускался сам по программе кнопки пуск, сначала насос с его задержкой потом котел.

У Вас противоречиво описано, короче, наверно как-то так:

52299

52300

Да, и поправите коэффициент для датчика!

Да и насчёт фотографирования, я не знаю вашего возраста, поэтому не могу точно определить это старческий маразм или врождённый, короче, надеюсь Вы не плёночным фотоаппаратом фотографируете с последующим оцифровыванием, уже хорошо или могло быть хуже!

Fox-spd
03.12.2020, 09:51
Сергей Спасибо попробую. По поводу маразма вы зря, ноут на работе там нет интернета поэтому и с фоткал с тел. А подключать бук через тел. Заходить на форум скидывать скрин в условиях ограниченного времени и неподходящих условий (не все работают в офисах и дома) это было бы точно как вы выразились-маразм. Да и годков мне 36, работаю в сфере строительство. Прошу прощения за орфографию опять с тел. Пишу)))

lord2210
15.12.2020, 14:33
Добрый день, на работе админы установили ISA сервер и теперь OWEN Logic не видит интернет и, соответственно, библиотеки (обновления). Какие порты открыть админам, чтобы программа увидела инет?

Ревака Юрий
15.12.2020, 15:46
Добрый день, на работе админы установили ISA сервер и теперь OWEN Logic не видит интернет и, соответственно, библиотеки (обновления). Какие порты открыть админам, чтобы программа увидела инет?

Добрый день.

80 для обновлений и менеджера и 8084 для расширений.

Alex469
19.12.2020, 22:45
Уважаемые знатоки, объясните пожалуйста (если можно с примерами) в чем смысл настройки "Запись в конце цикла", особенно для сетевых переменных, и когда ее нужно применять. В руководстве пользователя Owen Logic ну очень скупо о ней говорится.

melky
19.12.2020, 22:58
Alex469 это сложновато объяснить. Программа это простыня FB, которая выполняется последовательно, и возможно переменная, в которую вы записали данные, участвует на этой простыне еще в каком-то месте и вам ну очень надо, чтобы она не изменилась, пока вся простыня FB не выполнится.

Алексеев
20.12.2020, 14:34
Уважаемые знатоки, объясните пожалуйста (если можно с примерами) в чем смысл настройки "Запись в конце цикла", особенно для сетевых переменных, и когда ее нужно применять. В руководстве пользователя Owen Logic ну очень скупо о ней говорится.

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

Alex469
20.12.2020, 17:44
Задам вопрос более конкретно. В проекте ПР100 выступает в качестве модбас мастера. Имеется еще 3 слейва. Все аппараты связаны по RS485 (modbus RTU). В проекте один из слейвов панель оператора. Среди прочего мастер должен считать целочисленное значение с панели оператора (сетевая переменная O_Gen_Power_Setting_MB, в настройках переменной указана только функция чтения 03, функции записи нет) и передать без обработки в другой слейв (сетевая переменная GenPower_MB, в настройках переменной указаны функции чтения 03 и записи 10). Чтение O_Gen_Power_Setting_MB осуществляется с использованием "Запуск чтения". Запись в GenPower_MB осуществляется с использованием "Запись по изменению". Кроме этого в проекте достаточно много других сетевых переменных и, соответственно, куча других обменов между мастером и слейвами. Вопрос: нужно ли указывать для сетевой переменной GenPower_MB "Запись в конце цикла" ? Если нужно, то почему?

Myaroslav
23.12.2020, 13:14
Здравствуйте!
Начал изучать Owen Logic. Как сделать переход между экранами?
В учебных видео список переходов появлялся сразу при создании нового экрана, но в новых версиях, похоже, что-то изменилось.
У меня так:
52672

А в видео так:
52673

Ревака Юрий
23.12.2020, 13:22
Здравствуйте!
Начал изучать Owen Logic. Как сделать переход между экранами?
В учебных видео список переходов появлялся сразу при создании нового экрана, но в новых версиях, похоже, что-то изменилось.
У меня так:
52672

А в видео так:
52673

Смотрите сверху восклицательный знак, там подсказки, нужно ПКМ использовать.

Myaroslav
23.12.2020, 13:40
Увидел, нужно было в контекстном меню группы экранов выбрать "редактировать группу" и затем настраивать экраны в окне группы.
С первого раза оказалось не очевидно, спасибо за быстрый ответ!

megadocent
25.12.2020, 23:34
Добрый день.
Нужно передать несколько (например, 10) булевых переменных из ПР200 в облако и у части из них менять значения.

Вариант 1 - просто 10 булевых переменных.
Вариант 2 - упаковать битовой маской в целочисленный в ПР200, в облаке сделать 10 переменных с одним адресом, но разными битовыми масками для каждой.

Вопрос 1. Будет ли экономия трафика/уменьшение задержек в варианте 2, то есть, будет ли переменная запрашиваться 1 раз и парситься в облаке на 10 переменных, или же будет 10 раз запрашиваться с применением своей битовой маски к каждому запросу?
Вопрос 2. Имеет ли это практический смысл, если передача через Ethernet, на трафик пофиг? В варианте 1 код читать понятнее, всё прозрачно.
Вопрос 3. Может я что-то упускаю и есть более простые способы для решения подобной задачи?

Aviator_VZh
25.12.2020, 23:38
У Вас вариантов нет. В слейве ПР200 с булевыми переменными не работает.

megadocent
26.12.2020, 00:21
У Вас вариантов нет. В слейве ПР200 с булевыми переменными не работает.

Эмм... Ну ок, вариант 1 - 10 инт переменных со значениями 1/0

Aviator_VZh
26.12.2020, 15:48
...будет ли переменная запрашиваться 1 раз и парситься в облаке на 10 переменных, или же будет 10 раз запрашиваться с применением своей битовой маски к каждому запросу??

Это Вам нужно в тему Облачного сервиса

Ревака Юрий
26.12.2020, 16:30
У Вас вариантов нет. В слейве ПР200 с булевыми переменными не работает.

Ну я бы так не утверждал, не знаю как там облако, ПР в слейве может работать с битами, но я за передачу полноценными регистрами, облако вроде может все это разделять.

Тут https://www.youtube.com/watch?v=NMTvVy9ABVc информация по работе с битами и другие особенности.

Ревака Юрий
26.12.2020, 16:36
Эмм... Ну ок, вариант 1 - 10 инт переменных со значениями 1/0

В этом ролике https://www.youtube.com/watch?v=kOo4INKt8Nw где-то с середины показано почему плохо использовать битовые регистры по сети особенно если их много, целочисленные в режиме 0/1 ничем от передачи одного бита не отличается, даже если трафик не играет роли, то быстродействие будет страдать.

bayk
26.12.2020, 16:37
Добрый день.
Нужно передать несколько (например, 10) булевых переменных из ПР200 в облако и у части из них менять значения.

Вариант 1 - просто 10 булевых переменных.
Вариант 2 - упаковать битовой маской в целочисленный в ПР200, в облаке сделать 10 переменных с одним адресом, но разными битовыми масками для каждой.

Вопрос 1. Будет ли экономия трафика/уменьшение задержек в варианте 2, то есть, будет ли переменная запрашиваться 1 раз и парситься в облаке на 10 переменных, или же будет 10 раз запрашиваться с применением своей битовой маски к каждому запросу?
Вопрос 2. Имеет ли это практический смысл, если передача через Ethernet, на трафик пофиг? В варианте 1 код читать понятнее, всё прозрачно.
Вопрос 3. Может я что-то упускаю и есть более простые способы для решения подобной задачи?
Обязательно упаковать в 1 переменную, например 512, но битовой маской получится только читать.
Чтобы записывать, то надо к ним обращаться чтением записью 01 и 15 функцией из облака по адресам булевых переменных. Тоесть для адреса 512 (200h) адреса будут 2000h, 2001h .. 200fh, где младший разряд это номер бита, начиная с нуля.
Экономии трафик не будет, поскольку пр200 не поддерживает групповые запросы и чтение каждого бита будет идти отдельной командой.
Если вы будете по одной булевой переменной в каждый регистр класть, то извините это 10 регистров, между прочим, всего из 64.
Насчёт наглядности непонятно. В конце поляны делаете упаковщик/распаковщик и работаете с булевыми переменными как обычно. Нюанс только один + всё булевы переменные превращаются в энергонезависимые

bayk
26.12.2020, 16:39
В этом ролике https://www.youtube.com/watch?v=kOo4INKt8Nw где-то с середины показано почему плохо использовать битовые регистры по сети особенно если их много, целочисленные в режиме 0/1 ничем от передачи одного бита не отличается, даже если трафик не играет роли, то быстродействие будет страдать.
Юрий, а как делать запись, если к регистру из облака обращаешься по маске? У меня так и не заработало. В итоге те переменные, которые мне нужно записывать , я читаю /пишу в виде бит

bayk
26.12.2020, 16:43
В этом ролике https://www.youtube.com/watch?v=kOo4INKt8Nw где-то с середины показано почему плохо использовать битовые регистры по сети особенно если их много, целочисленные в режиме 0/1 ничем от передачи одного бита не отличается, даже если трафик не играет роли, то быстродействие будет страдать.
Юрий, а как делать запись, если к регистру из облака обращаешься по маске? У меня так и не заработало. В итоге те переменные, которые мне нужно записывать , я читаю /пишу в виде бит

megadocent
26.12.2020, 17:19
Спасибо. Понятно всё.

megadocent
30.12.2020, 10:00
Добрый день.
Вроде подобный вопрос уже видел, но не помню, к чему там в итоге пришли, а найти сейчас не смог.

Есть кратковременное событие на входе ПР200 (секунду, например, длится) и соответствующая ему переменная (значения 0 или 1).
Хочу иметь возможность, если нужно, смотреть в какое время оно наступало. Завел в облако.
Облако опрашивает, например, раз в 5 секунд. То есть, если событие наступило и пропало между опросами - я его не вижу.
Ок, я могу сделать задержку события, например, секунд на 10. Тогда событие при нормальных условиях будет зафиксировано опросом из облака.
Но если в это время пропадет связь, я не увижу, что событие было.
Как я понял, в слейве ПР никак не может узнать, что с нее что-то считали. (Ни битов, что прочитано было, ни статистика RS485 недоступна, ничего. Облако само ничего не пишет. И в итоге взвести флаг и сбросить его после прочтения я не могу.)
Ок, я могу сделать в облаке событие на потерю связи с устройством + какой-то журнал в ПР. Тогда если потеря связи меньше 10 секунд, я увижу событие в облаке, если больше 10 секунд, я увижу событие о потери связи и потом прочитаю журнал локально.
Выглядит приемлемо, но как-то коряво.

Вопрос. Я что-то упустил и есть более легкий путь?

Ревака Юрий
30.12.2020, 10:28
Юрий, а как делать запись, если к регистру из облака обращаешься по маске? У меня так и не заработало. В итоге те переменные, которые мне нужно записывать , я читаю /пишу в виде бит

По маске, в смысле из ПР биты по отдельности в облаке устанавливать? если так, то макрос BOOL_INT должен решить все вопросы.

Ревака Юрий
30.12.2020, 10:31
Добрый день.
Вроде подобный вопрос уже видел, но не помню, к чему там в итоге пришли, а найти сейчас не смог.

Есть кратковременное событие на входе ПР200 (секунду, например, длится) и соответствующая ему переменная (значения 0 или 1).
Хочу иметь возможность, если нужно, смотреть в какое время оно наступало. Завел в облако.
Облако опрашивает, например, раз в 5 секунд. То есть, если событие наступило и пропало между опросами - я его не вижу.
Ок, я могу сделать задержку события, например, секунд на 10. Тогда событие при нормальных условиях будет зафиксировано опросом из облака.
Но если в это время пропадет связь, я не увижу, что событие было.
Как я понял, в слейве ПР никак не может узнать, что с нее что-то считали. (Ни битов, что прочитано было, ни статистика RS485 недоступна, ничего. Облако само ничего не пишет. И в итоге взвести флаг и сбросить его после прочтения я не могу.)
Ок, я могу сделать в облаке событие на потерю связи с устройством + какой-то журнал в ПР. Тогда если потеря связи меньше 10 секунд, я увижу событие в облаке, если больше 10 секунд, я увижу событие о потери связи и потом прочитаю журнал локально.
Выглядит приемлемо, но как-то коряво.

Вопрос. Я что-то упустил и есть более легкий путь?

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

petera
30.12.2020, 10:55
Юрий, а как делать запись, если к регистру из облака обращаешься по маске? У меня так и не заработало. В итоге те переменные, которые мне нужно записывать , я читаю /пишу в виде бит
Как правило, нужен макрос SelChgI
52853
Смотреть пункт 3 здесь, Обмен битовыми (BOOL) переменными с ПР Slave (https://owen.ru/forum/showthread.php?t=32194)

megadocent
30.12.2020, 11:55
А если просто удерживать сигнал с входа на время больше периода опроса, а затем его сбрасывать если он взводился, в итоге облако должно его опросить если сигнал был.
Так я написал об этом.
Период опроса 5 секунд. Я переменную по сигналу взвожу и держу 10 секунд. Если связь без сбоев - облако считывает его и на графике видно моменты, когда событие наступало и сколько держалось. Красиво, удобно, понятно.
Но если потеря пакетов будет, или роутер перезагрузится или еще что-то, если перерыв связи дольше 10 секунд - облако увидит что было 0 и сейчас 0, событие пропущено будет.

О факте события хочется знать и желательно, во сколько оно было. Но события чаще всего штатные и могут быть несколько раз в сутки, квитировать каждое событие (выставлением флага в ПР и ручным сбросом, записывая переменную) утомительно и не хочется. Достаточно возможности посмотреть журнал, если понадобится. Но хочется, если понадобиться, точно знать - было или нет событие в выбранный промежуток времени.

Я пока пришел к следующему решению, но мне кажется оно сложным и некрасивым каким-то, может можно проще. Потому пришел посоветоваться, может я переусложняю.

1) Переменная удерживается минимум 10 секунд, при периоде опроса 5 секунд она должна считаться, потом можно посмотреть график, во сколько было, сколько длилось. При штатной работе всё красиво, захотел - посмотрел график одной переменной, другой, видно когда наступали события, сколько длились.
2) Пропадание связи с устройством - событие редкое и, вроде как, нештатное. Поэтому по нему облако генерирует уведомление. То есть о том, что облако могло пропустить событие я вроде как знаю.
3) На такой случай локально нужно вести журнал, во сколько наступало и какое событие. При пропадании связи - я топаю ножками к устройству и смотрю локально. Ведь при пропадании связи всё равно, скорее всего, придется топать ножками и разбираться, что случилось, так что такой подход устраивает.
4) Но если связь пропадала и появилась (проблемы у провайдера/перезагрузка роутера/другое), то хочется знать, надо ли все же топать ножками к устройству и смотреть локально, или ничего в это время не было, сейчас всё работает и топать не нужно. Вот тут бы пригодилось какой-то признак, что событие было считано облаком. Но такого признака нет, как я понимаю.
5) Пока писал, появилась мысль. Можно параллельно вести счетчик событий. Наступление события - увеличение значения на 1. Если связь пропадала и появилась, то можно сравнить значения в облаке на момент пропадания и момент появления связи. Будет видно, были ли события между опросами и даже сколько их было. И понять, надо ли топать к журналу локальному и смотреть что было и во сколько.

p.s. Весной смотрел ваши выпуски с лайфхаками, но уже подзабыл. На выходных сейчас как раз будет время, еще раз просмотрю. Спасибо, что делаете их.

Сергей0308
30.12.2020, 12:20
Так я написал об этом.
Период опроса 5 секунд. Я переменную по сигналу взвожу и держу 10 секунд. Если связь без сбоев - облако считывает его и на графике видно моменты, когда событие наступало и сколько держалось. Красиво, удобно, понятно.
Но если потеря пакетов будет, или роутер перезагрузится или еще что-то, если перерыв связи дольше 10 секунд - облако увидит что было 0 и сейчас 0, событие пропущено будет.

О факте события хочется знать и желательно, во сколько оно было. Но события чаще всего штатные и могут быть несколько раз в сутки, квитировать каждое событие (выставлением флага в ПР и ручным сбросом, записывая переменную) утомительно и не хочется. Достаточно возможности посмотреть журнал, если понадобится. Но хочется, если понадобиться, точно знать - было или нет событие в выбранный промежуток времени.

Я пока пришел к следующему решению, но мне кажется оно сложным и некрасивым каким-то, может можно проще. Потому пришел посоветоваться, может я переусложняю.

1) Переменная удерживается минимум 10 секунд, при периоде опроса 5 секунд она должна считаться, потом можно посмотреть график, во сколько было, сколько длилось. При штатной работе всё красиво, захотел - посмотрел график одной переменной, другой, видно когда наступали события, сколько длились.
2) Пропадание связи с устройством - событие редкое и, вроде как, нештатное. Поэтому по нему облако генерирует уведомление. То есть о том, что облако могло пропустить событие я вроде как знаю.
3) На такой случай локально нужно вести журнал, во сколько наступало и какое событие. При пропадании связи - я топаю ножками к устройству и смотрю локально. Ведь при пропадании связи всё равно, скорее всего, придется топать ножками и разбираться, что случилось, так что такой подход устраивает.
4) Но если связь пропадала и появилась (проблемы у провайдера/перезагрузка роутера/другое), то хочется знать, надо ли все же топать ножками к устройству и смотреть локально, или ничего в это время не было, сейчас всё работает и топать не нужно. Вот тут бы пригодилось какой-то признак, что событие было считано облаком. Но такого признака нет, как я понимаю.
5) Пока писал, появилась мысль. Можно параллельно вести счетчик событий. Наступление события - увеличение значения на 1. Если связь пропадала и появилась, то можно сравнить значения в облаке на момент пропадания и момент появления связи. Будет видно, были ли события между опросами и даже сколько их было. И понять, надо ли топать к журналу локальному и смотреть что было и во сколько.

p.s. Весной смотрел ваши выпуски с лайфхаками, но уже подзабыл. На выходных сейчас как раз будет время, еще раз просмотрю. Спасибо, что делаете их.

Как часто у вас события могут происходить? Как то делал архив на ПР200 на 31 событие с меткой времени, короче, когда связь наладится тогда и считаете события, разумеется размер архива должен умещать максимально возможное количество событий за время планируемого вами пропадания связи, всё!

megadocent
30.12.2020, 12:28
Как часто у вас события могут происходить? Как то делал архив на ПР200 на 31 событие с меткой времени, короче, когда связь наладится тогда и считаете события, разумеется размер архива должен умещать максимально возможное количество событий за время планируемого вами пропадания связи, всё!

Несколько раз в сутки, наверное. 31 событие перекрывает точно.
Я видел в темах журналы событий, ваш, скорее всего, тоже. Но пока не делал еще у себя, только задумался об этом.
А я что-то не понимаю, можно через облако считывать не текущее значение переменной, а архив событий? Это как происходит?
Если в теме какой-то описано, как это работает, поделитесь ссылкой пожалуйста. :confused:

Сергей0308
30.12.2020, 12:38
Несколько раз в сутки, наверное. 31 событие перекрывает точно.
Я видел в темах журналы событий, ваш, скорее всего, тоже. Но пока не делал еще у себя, только задумался об этом.
А я что-то не понимаю, можно через облако считывать не текущее значение переменной, а архив событий? Это как происходит?
Если в теме какой-то описано, как это работает, поделитесь ссылкой пожалуйста. :confused:

Мне кажется можно и архив считать, но не знаю как там чего в клауде, никогда не имел с ним дела, а для ПР я как то так делал:
52854

megadocent
30.12.2020, 12:55
Мне кажется можно и архив считать, но не знаю как там чего в клауде, никогда не имел с ним дела, а для ПР я как то так делал:
52854

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

melky
30.12.2020, 13:13
3) На такой случай локально нужно вести журнал, во сколько наступало и какое событие. При пропадании связи - я топаю ножками к устройству и смотрю локально. Ведь при пропадании связи всё равно, скорее всего, придется топать ножками и разбираться, что случилось, так что такой подход устраивает.

я тоже делал такой журнал с меткой времени. В Scada не слежу и не удерживаю сигнал 10 сек. Просто читаю эту переменную с кодом ошибок и еще две с меткой времени. Даже если пропадет связь, изменится время и код ошибки (события) как хотите назовите. Можно наверное добавить еще переменную с номером ячейки, если это следующая ячейка, топать не надо, если через одну и далее, то топать к ПР200 и смотреть руками.


А я что-то не понимаю, можно через облако считывать не текущее значение переменной, а архив событий? Это как происходит?
Если в теме какой-то описано, как это работает, поделитесь ссылкой пожалуйста.

Пожалейте память ПР. Потому что по Modbus штатными средствами можно читать только регистры и вам придется каждую ячейку архива писать в отдельный регистр. Практически ни у кого не видел реализации пользовательских команд Modbus (да, да, есть и такие) а уж узреть это у Овен наверное не придется никогда.

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

дск
30.12.2020, 13:37
Доброго времени, подскажите пожалуйста, могу ли я использовать для подключения реле к rs-485 использовать преобразователь интерфейсов АС4-М и будет ли через него устанавливаться связь с owen logic и ops сервер?

Ревака Юрий
30.12.2020, 15:18
Доброго времени, подскажите пожалуйста, могу ли я использовать для подключения реле к rs-485 использовать преобразователь интерфейсов АС4-М и будет ли через него устанавливаться связь с owen logic и ops сервер?

Добрый день. Да, все должно работать.

дск
30.12.2020, 20:23
Ещё скажите пожалуйста,через Овен конфигуратор можно подключиться к прибору пр-102?

Сергей0308
30.12.2020, 23:21
я тоже делал такой журнал с меткой времени. В Scada не слежу и не удерживаю сигнал 10 сек. Просто читаю эту переменную с кодом ошибок и еще две с меткой времени. Даже если пропадет связь, изменится время и код ошибки (события) как хотите назовите. Можно наверное добавить еще переменную с номером ячейки, если это следующая ячейка, топать не надо, если через одну и далее, то топать к ПР200 и смотреть руками.



Пожалейте память ПР. Потому что по Modbus штатными средствами можно читать только регистры и вам придется каждую ячейку архива писать в отдельный регистр. Практически ни у кого не видел реализации пользовательских команд Modbus (да, да, есть и такие) а уж узреть это у Овен наверное не придется никогда.

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

Я в соседней параллельной теме совсем недавно картинку выкладывал, она как раз о архиве который считывается через клауд, там даже несколько архивов суточный и месячный, короче, задаёшь число месяца(1-31) на выходе суточный архив за это число, задаёшь номер месяца(1-12), на выходе месячный архив за этот месяц, всё! Никаких трудностей, что Вы предрекали, не возникло! Вот эта картинка:
52857
Мне так кажется не сложно сделать и чтобы автоматически считывались недостающие архивы после восстановления связи, ну если немного мозгами пошевелить(на уровне пчелы)!

melky
30.12.2020, 23:30
Сергей0308 не все так просто. Как вы Scada системе скажете, что
1. нужно считать архив за определенный день
2. у Scada к тому же должны быть базы именно для архивов и возможность ручного управления с выставлением даты для чтения архива

сохранить в приборе (ПР) это одно, еще и вторая сторона должна уметь. А Modbus немного не тот протокол для этого. Точнее у протокола есть такие возможности, но увы часто они не реализованы.

Для архива если не шиковать 2 регистра для передачи месячного объема, 2 регистра дневного и умение со стороны Scada это все раскладывать куда нужно.
Либо 31 регистр на каждый день и 12 регистров или 24 регистра на 12 месяцев, а это жирно для ПР...

Сергей0308
30.12.2020, 23:39
В той же Мастерскаде столько возможностей, мама не горюй, там вообще никаких проблем не возникнет, она очень умная, практически всё умеет! Наоборот проблем с Овен клаудом будет больше, придётся всё "мыслительные" способности переложить на ПР, а клауд только данные будет пересылать туда-сюда!

melky
30.12.2020, 23:55
Сергей0308 возможностей скриптовых. Эти возможности есть у многих Scada.

Тут больше вопрос в другом, как возможности скрестить с протоколом Modbus ? в плане настроек чтения одного регистра в разные ячейки БД. А это уже далеко не просто. Учитывая, что сама MasterScada напрямую не может работать с Modbus, а только через OPC. Да даже если бы умела, как правило мало кто реализует пользовательские данные протокола Modbus (есть в его расширении) да и опять же, в приборах это встречается редко.

з.ы. сам жду не дождусь, когда разработчик выпустит следующую версию RapidScada, обещает, что появятся БД для архивов. Ну и кроме архивов есть в приборах параметры, которые не нужно читать постоянно, а только для конфигурации и в обычной БД им как бы не место...

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

tabolt
15.02.2021, 13:41
Добрый день. Подскажите, можно ли в отладчике настроить отображение вещественного числа в виде 0.625, а не 6.25Е-1?

Сергей0308
15.02.2021, 13:53
Добрый день. Подскажите, можно ли в отладчике настроить отображение вещественного числа в виде 0.625, а не 6.25Е-1?

Попробуйте округлить до тысячных: 53508

tabolt
16.02.2021, 12:32
Только начал осваивать программирование в ОвенЛоджик. Посмотрите программку, кому не сложно, может что посоветуете. Особенно интересует способ сохранения значений переменных на предидущих циклах регулирования в ПИДе.

Алексеев
17.02.2021, 10:51
Коллеги подскажите почему не во всех переменных ( булевых ) присутствуют расширенные настройки 53534 53535
Не разу на это не обращал внимание .

Евгений8686
17.02.2021, 11:14
Доброго дня. Подскажите как грамотно реализовать отключение таймера TP, я применил функцию SEL для подмены времени сработки, но есть необходимость корректировать время через дисплей для отладки процесса. Будет ли корректно работать изменение времени через дисплей (реле ПР200), или подскажите другой более правильный способ. Выход таймера отключать не совсем подходит для задачи, тк время сработки таймера все равно идет.
53536

melky
17.02.2021, 12:52
Евгений8686 на выходе TP нужен еще AND чтобы исключить импульс. В пошаговой эмуляции посмотрите что будет.

А если было время 5 сек а вы с экрана ставите 3 сек и они уже прошли, то он отключится на следующем цикле вроде.

melky
17.02.2021, 12:53
Алексеев проверьте энергонезависимость этих переменных.

Сергей0308
17.02.2021, 13:02
Коллеги подскажите почему не во всех переменных ( булевых ) присутствуют расширенные настройки 53534 53535
Не разу на это не обращал внимание .

Мне кажется дополнительные настройки появляются для не энергонезависимых переменных при выводе их на экран!

Алексеев
17.02.2021, 13:07
Алексеев проверьте энергонезависимость этих переменных.

Вот это меня и смутило переменная "предупреждение" и ещё многие не имеют энергонезависимость , а "расширенные настройки" отсутствуют . А те которые имеют ставишь энергозависимость пропадает опция "расширенные настройки".
убираешь энергозависимость появляется . Это какая то фича или есть ещё какие нибудь нюансы ?????

Алексеев
17.02.2021, 13:12
Мне кажется дополнительные настройки появляются для не энергонезависимых переменных при выводе их на экран!

Спасибо . Да действительно те которые на экране . Вопрос исчерпан .

Евгений8686
17.02.2021, 15:09
Подскажите, а с дисплея я смогу изменять значение времени в функции SEL, т.е. эти 5000мс на 3000 и тд?

melky
17.02.2021, 15:22
Евгений8686 если сделаете ее переменной а не константой, то сможете. Даже можете вводить секунды, умножать потом на мс и подавать на SEL

Евгений8686
17.02.2021, 15:30
Евгений8686 если сделаете ее переменной а не константой, то сможете. Даже можете вводить секунды, умножать потом на мс и подавать на SEL
Огромное спасибо! Получилось.

89135146087
17.02.2021, 16:40
Добрый день, подскажите как реализовать программно мастер выключатель на пр102? Задача мастер выключателя отключать свет во всем доме!

tabolt
17.02.2021, 19:44
Не пойму в чем разница, почему в первом случае все нормально, а во втором связь стала цикличной.53538

Сергей0308
17.02.2021, 19:50
Не пойму в чем разница, почему в первом случае все нормально, а во втором связь стала цикличной.53538

Что там понимать, на верхней картинке недоделанная схема, до выхода связь не доведена(или до экрана), Вы уж старайтесь не делать бессмысленных схем!

tabolt
18.02.2021, 20:56
если в blink записать время удержания высокого уровня, в момент, когда он генерирует высокий уровень, то генерации продолжится с учетом нового значения времени, или только в следующем переходе к высокому уровню он примет изменения?

capzap
19.02.2021, 10:06
если в blink записать время удержания высокого уровня, в момент, когда он генерирует высокий уровень, то генерации продолжится с учетом нового значения времени, или только в следующем переходе к высокому уровню он примет изменения?

почему бы не взять и не открыть пустой проект, вставить блок Блинк с соответствующей обвязкой и не проверить самостоятельно как себя поведет Блинк в пошаговом режиме? Неужели проще надеяться что кто то ответит

игорь68
22.02.2021, 00:29
Для автора 8913******* Ну вопрос не корректный. По каким условиям выключаем свет(время, событие, условие). Выключение в доме. Выключение всего электричества в доме. Нужно ли выключать из одной точки управления. Нужно ли выключать дистанционно (облачный сервис овен). Как возобновить работу освещения? Сколько группы выключаем. Что управляет этим группами?(пускатель /реле). Цепи управления в вашем доме(24/220)? Потом напишите на бумаге как вы хотите выключать Ваш свет. Типа Выключаем свет в доме ЕСЛИ время РАВНО 23: 30. А вот когда получите все ответы на свои вопросы вот тогда и будете создавать свою схему или макрос. Сейчас я бы подходил к щиту и отключал автомат цепей освещения.

Ревака Юрий
22.02.2021, 09:42
Добрый день, подскажите как реализовать программно мастер выключатель на пр102? Задача мастер выключателя отключать свет во всем доме!

Примеры для раздельного вкл/выкл и мастера есть тут https://www.youtube.com/watch?v=kE0sobkGYLA

кэрн
25.02.2021, 14:36
Добрый день! подскажите, В логической схеме некоторые линии связи программа выделила желтым цветом, при этом в симуляции всё работает, что бы это значило?
И второе, как можно настроить, чтобы пересечения линий связи образовывали визуальный мостик, по видео обучения они появляются автоматически.

игорь68
25.02.2021, 14:46
Керн почитай в справке о ЛИНИИ ЗАДЕРЖКИ. Это значить Лоджик видит циклическую связь. На работу не влияет. Мостики были в старых версиях. Отказались. Если большая схема то не очень удобно читать.( дело привычки)

Ревака Юрий
25.02.2021, 15:06
Керн почитай в справке о ЛИНИИ ЗАДЕРЖКИ. Это значить Лоджик видит циклическую связь. На работу не влияет. Мостики были в старых версиях. Отказались. Если большая схема то не очень удобно читать.( дело привычки)

Да, мало того что не читабельно, так еще и ресурсоемко очень на больших проектах.

кэрн
26.02.2021, 09:31
Да, мало того что не читабельно, так еще и ресурсоемко очень на больших проектах.

Спасибо игорь68 и вам за ответы!

кэрн
26.02.2021, 10:10
да, конечно было бы супер, если в логические элементы можно было бы добавлять входы как в codesys

Алексеев
26.02.2021, 10:23
да, конечно было бы супер, если в логические элементы можно было бы добавлять входы как в codesys

Чем Вас макросы не устраивают ?????????????

игорь68
26.02.2021, 13:10
да, конечно было бы супер, если в логические элементы можно было бы добавлять входы как в codesys

Так если память не подводит то просили это. Но там какие то сложности.

кэрн
26.02.2021, 19:33
просто быстрее и оперативнее, в процессе работы что то надо добавить, что то убрать. Макросы наверное да, альтернатива, попробуем.

Dokole
28.02.2021, 20:49
Думаю, что человека, довольного своего доходом, можно найти только среди очень зажиточных людей и миллионеров. Другие в любом случае всегда будут говорить о том, что им чего-либо не хватает. В любом случае всегда можно сесть за компьютер и заработать. Здесь https://2captcha.com/ как вариант предлагают работу с капчей (распознавание) от вас потребуется только несколько часов в день, но заработок не ограничен можете хоть сутки сидеть. :cool:

Сергей0308
28.02.2021, 21:50
Подскажите пожалуйста как передать (преобразовать) значение с плавающей запятой (температуру) на аналоговый выход?

А что здесь много вариантов, кроме как привести к диапазону 0 - 1?!

53672

AI1 - сигнал
AI2 - верхнее значение входного диапазона
AI3 - нижнее значение входного диапазона

Солнечный заяц
05.03.2021, 09:43
Здравствуйте. Как выбрать стартовый экран в ПР200? Ни в справке ни на форуме не нашел :confused:

Сергей0308
05.03.2021, 09:54
Здравствуйте. Как выбрать стартовый экран в ПР200? Ни в справке ни на форуме не нашел :confused:

Верхний и будет стартовым(по умолчанию)! А так при включении ПР из программы можно сделать переход на любой экран, он и будет стартовым(начальным)!

WhyNot
05.03.2021, 10:24
Привет. Такая ситуация, мне нужно будет удаленно подключится и настроить МСД200 сделать нужно будет быстро, а я с ним не разу не работал и в наличии нет что бы разобраться. Поэтому прошу у вас помощи. Посмотрите правильно ли я разобрался с данным вопросом.
1) Нужно архивировать данные с счетчика Diris a40 По Modbus RTU. адрес данного счетчика 9
Я правильно понял в основной таблице мы указываем параметр адрес устройства с которого читаем, тип данных, и адрес регистра.
А адрес в настройках в графе "Приборы" это адрес с котором МСД выходит на связь в линии с устройствами с которых читаем данные?

53778
53777
53776

игорь68
05.03.2021, 17:34
Это на та ветка. тут о реле ПРхххх

Солнечный заяц
09.03.2021, 13:50
Есть кусок программы, который занимается сбросом аварии. 53867 Переменная "сброс аварии" больше нигде не используется, как видно в списке слева. Переменная "сброс аварии" устанавливается через меню ПР200, но значение переменной может измениться, а может нет. В режиме симуляции все работает стабильно. Пробовал ставить вместо RTRIG блок TP с шириной импульса 3 сек., но результат тот же. Пробовал ставить цепочку записи переменной "сброс аварии" вверху, внизу, слева и справа, но результата снова нет. Где искать проблему?

аскар
09.03.2021, 17:10
а у вас код аварии сбрасывается?

Солнечный заяц
09.03.2021, 17:15
а у вас код аварии сбрасывается?

Нет, не сбрасывается. ничего не происходит. На экране переменная тоже моментально возвращается в состояние false.

игорь68
09.03.2021, 20:21
Дом тестовая 1.19****. А на работе 1.17****. Посмотрю как у меня сброс наработки.

Ревака Юрий
10.03.2021, 10:07
Нет, не сбрасывается. ничего не происходит. На экране переменная тоже моментально возвращается в состояние false.

Сброс аварии можно сделать через блок ТР, с задержкой хотя бы 0,5 сек, пример с проектом есть тут https://youtu.be/NDxnh2Nxs8A и тут http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineMacroes/Shablon%20RS/PR200-1_test_MK110-X.4X.4X.owl

игорь68
10.03.2021, 12:04
Я так делал. Мне нужно было обнулять счетчик наработки через экран.

Сергей0308
10.03.2021, 12:12
Я так делал. Мне нужно было обнулять счетчик наработки через экран.

Что-то очень мудрёно и неудобно, как в сказке про репку: бабка за дедку, дедка за репку!

Обычно так делаю:

53891

53893

Или как в этом проекте запись:

53892

Сергей0308
10.03.2021, 12:13
Сброс аварии можно сделать через блок ТР, с задержкой хотя бы 0,5 сек, пример с проектом есть тут https://youtu.be/NDxnh2Nxs8A и тут http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineMacroes/Shablon%20RS/PR200-1_test_MK110-X.4X.4X.owl

А зачем полсекунды сбрасывать, почему не полчаса?

Солнечный заяц
10.03.2021, 13:44
Сброс аварии можно сделать через блок ТР, с задержкой хотя бы 0,5 сек, пример с проектом есть тут https://youtu.be/NDxnh2Nxs8A и тут http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineMacroes/Shablon%20RS/PR200-1_test_MK110-X.4X.4X.owl
Пробовал ставить TP вместо RTRIG53894, пробовал делать как в вашем примере53895. В результате, без изменений: в симуляторе работает, на приборе - как повезет, может сработать, может нет.

Ревака Юрий
10.03.2021, 13:52
Пробовал ставить TP вместо RTRIG53894, пробовал делать как в вашем примере53895. В результате, без изменений: в симуляторе работает, на приборе - как повезет, может сработать, может нет.

"Запись в конце цикла" для "Сброс аварии" выбран? Хотя если в симуляции работает, значит выбран.
Еще, если это кнопка на дискретном входе, проверить какое там время фильтра, возможно быстрое нажатие просто не успевает отработать в логике.

Солнечный заяц
10.03.2021, 14:15
Обычно так делаю:

53891

Максимально упростил цепь сброса - Не работает53896




Или как в этом проекте запись:

53892
Не смог найти сброс :(

Я так делал. Мне нужно было обнулять счетчик наработки через экран.53897
Этот вариант не подходит. Переменная сброса должна автоматически обнуляться после сброса.

Солнечный заяц
10.03.2021, 14:20
"Запись в конце цикла" для "Сброс аварии" выбран? Хотя если в симуляции работает, значит выбран.
Еще, если это кнопка на дискретном входе, проверить какое там время фильтра, возможно быстрое нажатие просто не успевает отработать в логике.

Можно подробнее, про "запись в конце цикла"? где находятся эти настройки?
Может быть дело в том, что во время эмуляции я устанавливаю "сброс аварии" нажимая на переменную в эмуляторе, а на приборе переключаю переменную "сброс аварии" через меню прибора. Может быть что-то с этим связано?

Ревака Юрий
10.03.2021, 14:32
Можно подробнее, про "запись в конце цикла"? где находятся эти настройки?
Может быть дело в том, что во время эмуляции я устанавливаю "сброс аварии" нажимая на переменную в эмуляторе, а на приборе переключаю переменную "сброс аварии" через меню прибора. Может быть что-то с этим связано?

Я проверил, без этого и в симуляции не работает, но вот тут настройки. В моем примере для модуля RS тоже сброс счетчика с экрана идет.

Солнечный заяц
10.03.2021, 14:50
Я проверил, без этого и в симуляции не работает, но вот тут настройки. В моем примере для модуля RS тоже сброс счетчика с экрана идет.
У меня этот параметр не влияет на результат ни в симуляции (всегда сброс работает) ни на приборе (почти всегда не работает).
Как воспроизвести:
В симуляторе: Переключаем "режим работы" в "1", через 3 сек. включится "Авария флаг". Переключаем "сброс аварии" в "1".
На приборе: Нажимаем SEL, вверх, OK, через 3 сек. открывается экран аварии. Нажимаем SEL, вверх, OK: авария не сбрасывается с вероятностью 90%
Проект 53899

Сергей0308
10.03.2021, 18:33
У меня этот параметр не влияет на результат ни в симуляции (всегда сброс работает) ни на приборе (почти всегда не работает).
Как воспроизвести:
В симуляторе: Переключаем "режим работы" в "1", через 3 сек. включится "Авария флаг". Переключаем "сброс аварии" в "1".
На приборе: Нажимаем SEL, вверх, OK, через 3 сек. открывается экран аварии. Нажимаем SEL, вверх, OK: авария не сбрасывается с вероятностью 90%
Проект 53899

Вы всё в кучу не валите, не проходит сигнал(импульс) и что-то у Вас там не сбрасывается - это совсем разные вещи, судя по проекту, сразу видно - не птица говорун!
Вот посмотрите эту тему по авариям: https://owen.ru/forum/showthread.php?t=31113&page=7
Короче, нет слов, столько раз подобное обсуждалось и всё обсасывалось, что трудно что-то добавить!

Артем Петров
11.03.2021, 03:00
Всем привет! Подскажите пожалуйста, почему может не работать встроенный ПИД-регулятор, подаю на него разрешение на работу, подаю на вход число с плавающей точкой от макроса с температурой, задаю уставку выше температуры, выбираю режим нагрев, выставляю максимальную выходную мощность в 100 процентов. А на выходе 0, причём ноль не задание макроса, а ноль выключенного состояния. Узнал я это изменив уставки мин и Макс. На 20 и 80. На выходе все равно ноль.

53916
А с включенной автонастройкой он вроде работает и коэффициенты выдает, но есть но, работает от максимума до минимума и с гистерезесом 2 градуса.

53917

Даже этот вроде включается, но тоже не регулирует

53918

Ревака Юрий
11.03.2021, 10:46
Всем привет! Подскажите пожалуйста, почему может не работать встроенный ПИД-регулятор, подаю на него разрешение на работу, подаю на вход число с плавающей точкой от макроса с температурой, задаю уставку выше температуры, выбираю режим нагрев, выставляю максимальную выходную мощность в 100 процентов. А на выходе 0, причём ноль не задание макроса, а ноль выключенного состояния. Узнал я это изменив уставки мин и Макс. На 20 и 80. На выходе все равно ноль.

53916
А с включенной автонастройкой он вроде работает и коэффициенты выдает, но есть но, работает от максимума до минимума и с гистерезесом 2 градуса.

53917

Даже этот вроде включается, но тоже не регулирует

53918

Добрый день.
Видимо потому что Вы подаете в настройки все "0" через Write to FB, эти настройки если присутствуют перекрывают настройки ПИД через свойства.

Ревака Юрий
11.03.2021, 10:51
У меня этот параметр не влияет на результат ни в симуляции (всегда сброс работает) ни на приборе (почти всегда не работает).
Как воспроизвести:
В симуляторе: Переключаем "режим работы" в "1", через 3 сек. включится "Авария флаг". Переключаем "сброс аварии" в "1".
На приборе: Нажимаем SEL, вверх, OK, через 3 сек. открывается экран аварии. Нажимаем SEL, вверх, OK: авария не сбрасывается с вероятностью 90%
Проект 53899

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

"У меня этот параметр не влияет на результат ни в симуляции (всегда сброс работает) ни на приборе (почти всегда не работает)."
В этой части, логика у Вас отличается, поэтому и работает, у меня там обратная связь идет, даже OL ее выделяет.

Артем Петров
11.03.2021, 10:55
На втором скрине, я задал настройки, но без включения автонастройки просто ноль на выходе, вот:

53927

вот программа https://yadi.sk/d/L4VHYayKKs-b_A

Помогите пожалуйста!! Что я не так делаю?!

Ревака Юрий
11.03.2021, 11:38
На втором скрине, я задал настройки, но без включения автонастройки просто ноль на выходе, вот:

53927

вот программа https://yadi.sk/d/L4VHYayKKs-b_A

Помогите пожалуйста!! Что я не так делаю?!

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

Встроенный ПИД всегда был с заморочками, в последних версиях вроде были правки. Если есть прибор, попробуйте на железе.
По ПИД есть примеры по настройке в том числе и авто, может будет полезно:
https://youtu.be/db_b8KkGC8g
https://youtu.be/ZeFlmyemGxQ

Артем Петров
11.03.2021, 12:56
НЕ очень удобно каждый раз при запуске симуляции настраивать значения. Рекомендую начать с настроек ПИД через свойства, что бы разобраться в его работе, затем уже переходить к настройкам через внешние уставки.

Встроенный ПИД всегда был с заморочками, в последних версиях вроде были правки. Если есть прибор, попробуйте на железе.
По ПИД есть примеры по настройке в том числе и авто, может будет полезно:
https://youtu.be/db_b8KkGC8g
https://youtu.be/ZeFlmyemGxQ

Спасибо за ссылки, я по ним и делал все. На приборе как раз таки и экспериментировал с автонастройкой, и он работал как дискретник от 0, 100 и гистерезис был ровно два градуса. плпробую убрать переменные, попробую со свойств.

Ревака Юрий
11.03.2021, 13:00
Спасибо за ссылки, я по ним и делал все. На приборе как раз таки и экспериментировал с автонастройкой, и он работал как дискретник от 0, 100 и гистерезис был ровно два градуса. плпробую убрать переменные, попробую со свойств.

Если работал как дискретник, возможно дело в коэффициентах, слишком большие и выход уходил в автоколебания.

Артем Петров
11.03.2021, 14:20
Если работал как дискретник, возможно дело в коэффициентах, слишком большие и выход уходил в автоколебания.

Спасибо за совет, попробую поиграться с коэффициентами.

Солнечный заяц
11.03.2021, 16:32
Я скачал и посмотрел, даже в прибор загрузил, но там все столько всего, что быстро изучить не получилось, я рекомендую взять узел сброса из примера и отработать его работу отдельно, затем встроить в свой проект.

"У меня этот параметр не влияет на результат ни в симуляции (всегда сброс работает) ни на приборе (почти всегда не работает)."
В этой части, логика у Вас отличается, поэтому и работает, у меня там обратная связь идет, даже OL ее выделяет.

Я удалил из схемы блок записи переменной "сброс аварии" совсем, но с экрана аварии переменную по-прежнему переключить невозможно, она остается в лог. "0". Что ее может перезаписывать - непонятно. Видимо, какой-то баг. При этом, с другого экрана "сброс аварии" включить можно. Проблема именно с аварийным экраном. Проблему решил просто дублированием переменной53930

Солнечный заяц
11.03.2021, 16:47
Подскажите еще такой момент, в документации для ПР200 есть таблица символов https://docs.owen.ru/book_img/766/38630.png, но не могу разобраться, как указать символ "»"? Он почему-то не отображается.

Ревака Юрий
11.03.2021, 17:12
Подскажите еще такой момент, в документации для ПР200 есть таблица символов https://docs.owen.ru/book_img/766/38630.png, но не могу разобраться, как указать символ "»"? Он почему-то не отображается.

У меня тоже не получилось, может просто > подойдет?

игорь68
11.03.2021, 17:52
Увы это не доступно с продажной версии(белый корпус). Это работала на первых тестовых ПР200(чёрный корпус). Но потом это убрали. По-моему в первой версией ПО для ПР200. Подробности не знаю(как то не следил этот вопрос. ). Помню что спрашивали примерно год назад(про таблицу). Ответ был от овен примерно таким как я написал выше.

Солнечный заяц
12.03.2021, 11:15
У меня тоже не получилось, может просто > подойдет?

Увы это не доступно с продажной версии(белый корпус). Это работала на первых тестовых ПР200(чёрный корпус). Но потом это убрали. По-моему в первой версией ПО для ПР200. Подробности не знаю(как то не следил этот вопрос. ). Помню что спрашивали примерно год назад(про таблицу). Ответ был от овен примерно таким как я написал выше.
Спасибо, понял. Возьму другой символ.

2ar
22.03.2021, 17:53
Как сделать, чтобы отличались линии связи которые пересекаются от линий которые имеют общую точку при пересечении.
Сейчас вот так
54139

Сергей0308
22.03.2021, 18:23
Как сделать, чтобы отличались линии связи которые пересекаются от линий которые имеют общую точку при пересечении.
Сейчас вот так
54139

Можно вот так:

54140

2ar
23.03.2021, 07:46
А как сделать пересекающие линии волной, видел на некоторых скриншотах?

Сергей0308
23.03.2021, 09:38
А как сделать пересекающие линии волной, видел на некоторых скриншотах?

Боюсь это невозможно!
Если Вам нужны волны, можно заняться серфингом, только осторожно там, чтобы молнией не убило или акула не съела!

2ar
23.03.2021, 10:21
Боюсь это невозможно!
Если Вам нужны волны, можно заняться серфингом, только осторожно там, чтобы молнией не убило или акула не съела!

Канал ТНТ ждёт тебя. Они все ищут новых юмористов.
P.s. Понял же о чем вопрос. Мог бы и ответить.

Юрий Н
23.03.2021, 10:28
Такое было в первых версиях лоджика. Сейчас этого нет. Да и не нужно оно.

игорь68
23.03.2021, 11:19
Это в версиях для ПР110. Потом убрали по просьбам пользователей. PS " это кушало" много ресурсов ОЛ.PSS. Вы второй за месяц кто спросил о "волнах".

2ar
23.03.2021, 13:21
Спасибо за ответ.

snezer
24.03.2021, 04:13
Здравствуйте, подскажите пож-та, чет запутался... Требуется с ИП320 вводить уставки в ПР110 и чтобы они сохранялись в его памяти. Накидал пример что "хочу", см. вложение. И если уставки не введены - то что бы работало "по значениям по умолчанию". За ранее спс.

Павел Братковский
24.03.2021, 05:01
вводить уставки в ПР110 и чтобы они сохранялись в его памяти.

пр110 вроде как не имеет энергонезависимых переменных

snezer
24.03.2021, 05:19
пр110 вроде как не имеет энергонезависимых переменных

Понятно. А где почитать об этом? Не подскажите?

игорь68
24.03.2021, 07:27
Это должно быть в инструкции к ПР.

snezer
24.03.2021, 08:17
Понял про сохранение уставок в памяти - нет такой функции. А если без сохранения, т.е. до перезагрузки ПР или снятия питания, помогите разобраться. Пример во вложении выше

Echo_0
14.04.2021, 23:46
Приветствую. Немного не понял где именно писать вопрос новичка, то ли свою тему создавать, то ли отписываться во всех где в заголовке есть "вопросы" и "новичка".
Я пробую считать секунды и переводить в минуты, практическая цель в обучении.
https://disk.yandex.ru/d/xufCcIbTd5hZkQ

Так вот в этом моем проекте разное поведение внутри и снаружи макроса. Объясните что сделал не так и почему такое разное поведение?

bayk
15.04.2021, 00:30
https://owen.ru/forum/showthread.php?t=34636&p=353637&viewfull=1#post353637

Вот тут я уже выложил и начали отвечать

ElectricTver
12.05.2021, 22:15
Всем привет. Вопрос: может ли ПР200 с двумя слотами RS485 работать в режиме master и в режиме slave одновременно? Если может, то как это настроить?

Ревака Юрий
13.05.2021, 12:44
Всем привет. Вопрос: может ли ПР200 с двумя слотами RS485 работать в режиме master и в режиме slave одновременно? Если может, то как это настроить?

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

Saint999
20.05.2021, 13:24
День добрый, помогите новичку с алгоритмом:
Кнопку 1 нажал лампочка загорелась, отпустил горит, нажал кнопку 2 горит, отпустил потухла.
Кнопку 2 нажал лампочка загорелась, отпустил горит, кнопку 1 нажал горит, отпустил потухла.

Спасибо

Сергей0308
20.05.2021, 15:44
День добрый, помогите новичку с алгоритмом:
Кнопку 1 нажал лампочка загорелась, отпустил горит, нажал кнопку 2 горит, отпустил потухла.
Кнопку 2 нажал лампочка загорелась, отпустил горит, кнопку 1 нажал горит, отпустил потухла.

Спасибо

А если нарушится ваша последовательность действий, что должно произойти?
События вне вашей последовательности действий должны игнорироваться?

Saint999
20.05.2021, 17:04
А если нарушится ваша последовательность действий, что должно произойти?
События вне вашей последовательности действий должны игнорироваться?

Какой хороший вопрос)

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

Сергей0308
20.05.2021, 22:16
Какой хороший вопрос)

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

Здесь может быть множество вариантов, как один из них:

55209

keysansa
20.05.2021, 22:35
Здесь может быть множество вариантов, как один из них:
Вы один, и сами себе пишите программы?
У меня немножко моск отказывает, от вашего "одного из них"... ) На DTRIG, OR, RTRIG вроде должно проще быть, но это прикидки.

Сергей0308
20.05.2021, 22:45
Вы один, и сами себе пишите программы?
У меня немножко моск отказывает, от вашего "одного из них"... ) На DTRIG, OR, RTRIG вроде должно проще быть, но это прикидки.

Если кто придумает проще, будет очень хорошо, если оно ещё и будет работать как хотел товарищ - вообще замечательно, я буду только рад!
Вообще пока не думал как сделать максимально просто, первое, что пришло на ум, то и намалевал, бывает самое первое не самое оптимальное, даже, мне кажется, обычно так и бывает!

Можно сделать так для спокойствия мозга:

55210

55211

Saint999
21.05.2021, 09:36
Если кто придумает проще, будет очень хорошо, если оно ещё и будет работать как хотел товарищ - вообще замечательно, я буду только рад!
Вообще пока не думал как сделать максимально просто, первое, что пришло на ум, то и намалевал, бывает самое первое не самое оптимальное, даже, мне кажется, обычно так и бывает!


Спасибо большое, буду разбираться, но пока добавил задержку на отключение и вроде как все хорошо отрабатывает и с ней, еще раз спасибо.

Сергей0308
21.05.2021, 13:45
Спасибо большое, буду разбираться, но пока добавил задержку на отключение и вроде как все хорошо отрабатывает и с ней, еще раз спасибо.

Можно сделать так с разной задержкой по входам или с одинаковой задержкой выключения, независимо от входов:

55236

55237

brig62
21.05.2021, 22:37
Подскажите, как удобнее всего задать линейный график? На входе имея показания датчика уличной температуры. Наверняка было и не раз. Но поиск на форуме работает как то странно.

Василий Кашуба
21.05.2021, 23:42
Подскажите, как удобнее всего задать линейный график? На входе имея показания датчика уличной температуры. Наверняка было и не раз. Но поиск на форуме работает как то странно.

Вот погодозависимый график.

Юрий Н
22.05.2021, 08:17
Вот погодозависимый график.

Если бы вы ещё прокомментировали все эти D, dt, %.. Было бы вообще замечательно

brig62
22.05.2021, 09:22
Вот погодозависимый график.

Спасибо Василий. С графиком разобрался быстро. ПИД мне не нужен. Нужна будет модуляция. Но это надеюсь сам справлюсь.

bayk
23.05.2021, 10:46
Подскажите, как удобнее всего задать линейный график? На входе имея показания датчика уличной температуры. Наверняка было и не раз. Но поиск на форуме работает как то странно.

В библиотеке в ОЛ есть график на 4 точки вроде или на 10....

Сергей0308
23.05.2021, 12:41
В библиотеке в ОЛ есть график на 4 точки вроде или на 10....

Мне кажется, там не хватает подобного макроса на 32 точки!

Ревака Юрий
24.05.2021, 10:06
В библиотеке в ОЛ есть график на 4 точки вроде или на 10....

Есть на 4, который можно модифицировать на 2 точки, есть и на 10, но этот вариант больше для линеаризации, его можно использовать для построения НСХ нестандартных датчиков.

Погодозависимый вариант так же приведен: https://www.youtube.com/watch?v=j6xGbq7f8AU

Kondor416
20.06.2021, 22:51
Здравствуйте.
Подскажите пожалуйста, есть воздухораспредилитель с двумя катушками 24 В на пневмоцилиндр и два концевых выключателя, мне нужно, чтобы цилиндр сделал ход в одну сторону, потом в другую и все, его положение смотрю концевыми выключателями, но вот незадача, ход цилиндра у меня зацикливается, как в лоджике прописать, что сделал ход в верх и ход в низ и все, а то у меня получается - концевик 1 дает сигнал ход вверх, доходит до второго концевика, дает ход вниз и так по кругу, голову ломал ломал и что то никак(((

Сергей0308
20.06.2021, 23:24
Здравствуйте.
Подскажите пожалуйста, есть воздухораспредилитель с двумя катушками 24 В на пневмоцилиндр и два концевых выключателя, мне нужно, чтобы цилиндр сделал ход в одну сторону, потом в другую и все, его положение смотрю концевыми выключателями, но вот незадача, ход цилиндра у меня зацикливается, как в лоджике прописать, что сделал ход в верх и ход в низ и все, а то у меня получается - концевик 1 дает сигнал ход вверх, доходит до второго концевика, дает ход вниз и так по кругу, голову ломал ломал и что то никак(((

И где то, что натворили?
Можно поставить RS-триггер, по окончанию хода в другую сторону с помощью детектора заднего фронта триггер сбрасывается в состояние "0"!
Как один из вариантов, короче, для "нормальных" людей здесь обратная проблема выбора варианта из множества возможных!
Вы вероятно решили кардинально сменить сферу деятельности и это будет ваше первое творение?

Kondor416
21.06.2021, 05:47
Спасибо большое за подсказку добрый человек, буду пробовать, смена деятельности координальная нет, скорее сопутствующая задача, вообще мне интересна эта тема, раньше руки до неё не доходили, да и задач таких не стояло. Новые знания всегда полезны и я же пишу в тему для новичков, прально же? И не прошу все за меня написать, прошу подсказать, направить так сказать на путь истинный.

Сергей0308
21.06.2021, 06:17
Спасибо большое за подсказку добрый человек, буду пробовать, смена деятельности координальная нет, скорее сопутствующая задача, вообще мне интересна эта тема, раньше руки до неё не доходили, да и задач таких не стояло. Новые знания всегда полезны и я же пишу в тему для новичков, прально же? И не прошу все за меня написать, прошу подсказать, направить так сказать на путь истинный.

Попробуйте так:

55641

Kondor416
21.06.2021, 06:24
Ага, спасибо, сейчас засяду, покажу чего получилось.

Kondor416
21.06.2021, 09:08
Немного по другому получилось, сделал вот так. Мысль с передним и задним фронтом понял, спасибо большое.
55643

Сергей0308
21.06.2021, 18:41
Немного по другому получилось, сделал вот так. Мысль с передним и задним фронтом понял, спасибо большое.
55643

Это что, фотография галактики Андромеды? Очень мелко, ни черта не видно!

des_na_laes@mail.ru
22.06.2021, 14:39
Коллеги, добрый день! Задача проще некуда - подключить энкодер к ПЛК160 М02:confused:. Ввиду отсутствия опыта, прошу совет: на что обратить внимание, при выборе энкодера к данному контроллеру. Подойдет ли такой: https://www.chipdip.ru/product0/8001790232 , или такой: https://www.chipdip.ru/product0/8001786656 ? А может кто подскажет, чем сами пользовались? Планирую снимать расстояние перемещения троса на барабан. Скорость небольшая: - 6,5 метров в минуту.

Василий Кашуба
22.06.2021, 15:49
Вы теме ПР, а не ПЛК. Перенесите вопрос в другую тему.

Серж.78
14.11.2021, 11:02
Всем добра!
Знатоки, подскажите пожалуйста полному новичку в данной теме.
Имея ПР200, и создав программу, например с двумя переменными по времени (задержка перед следующим действием), смогу ли я менять эти переменные на экране ПР200, в режиме онлайн?
Или мне придется изменять эти значения на компе. и потом перезаливать прогу на ПР200?

petera
14.11.2021, 11:05
Всем добра!
Знатоки, подскажите пожалуйста полному новичку в данной теме.
Имея ПР200, и создав программу, например с двумя переменными по времени (задержка перед следующим действием), смогу ли я менять эти переменные на экране ПР200, в режиме онлайн?
Или мне придется изменять эти значения на компе. и потом перезаливать прогу на ПР200?

Если кратко, то сможете