PDA

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



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

kondor3000
24.05.2022, 13:20
Ну на счёт "проще" для новичка - это вряд ли )) Всякие там биты, булевские переменные с плавающей точкой, мастер-слэйвы, Floatы ))

Вы разбирайтесь и по мере возникновения вопросов спрашивайте. Но желательно теорию сразу подтянуть ))) как минимум справку по F1 прочитать. Видео обучающих полно выложено.

Сергей0308
24.05.2022, 13:35
Это же элементарные функции, собрать(разобрать) биты(дискретные сигналы) в одну целочисленную переменную(регистр), далее другое ПР(одно из ПР) назначить мастером(инициатором сетевого обмена) и читать(писать) регистр, всё!

DkCat
24.05.2022, 14:01
Это же элементарные функции, собрать(разобрать) биты(дискретные сигналы) в одну целочисленную переменную(регистр), далее другое ПР(одно из ПР) назначить мастером(инициатором сетевого обмена) и читать(писать) регистр, всё!
На сколько я понял, в программе для каждого ПР102 нужен такой вот "преобразователь" (скрин из скачанного проекта, где ПР102 взаимодействует с другим устройством по RS-485:
60857

Сергей0308
24.05.2022, 14:08
На сколько я понял, в программе для каждого ПР102 нужен такой вот "преобразователь" (скрин из скачанного проекта, где ПР102 взаимодействует с другим устройством по RS-485:
60857

Да, это надо чтобы разобрать на биты(дискретные сигналы) целочисленную переменную(регистр), т. е. обратный процесс.

Вот в проекте более универсальные(с настройками в свойствах) макросы:

60858

kondor3000
24.05.2022, 14:09
На сколько я понял, в программе для каждого ПР102 нужен такой вот "преобразователь" (скрин из скачанного проекта, где ПР102 взаимодействует с другим устройством по RS-485:
60857

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

Sergej_
24.05.2022, 14:10
На сколько я понял, в программе для каждого ПР102 нужен такой вот "преобразователь" (скрин из скачанного проекта, где ПР102 взаимодействует с другим устройством по RS-485:
60857

И еще макрос упаковки BOOL-INT. Начните с того , что изучите как и для чего упаковать несколько переменных BOOL в INT (сетевую переменную которая 16 бит-16 переменных BOOL) передать по сети и распаковать в другом устройстве. Макросов много на форуме и менеджере компонентов, и не обязательно они должны быть именно для ПР102 . Вам я думаю одной двух сетевых переменных будет достаточно.

DkCat
24.05.2022, 16:19
Спасибо за ответы. Пойду грызть гранит науки ))

DkCat
27.05.2022, 16:13
Подскажите пожалуйста, что нужно добавить в программу включения/выключения света в загородном доме, что бы в случае кратковременных отключений электричества ПР102 не сбрасывался и зажженные лампочки не гасли? Реализовать "энергонезависимость".
Вот моя схема:
60940
Вот программа:

Dimensy
27.05.2022, 17:14
Подскажите пожалуйста, что нужно добавить в программу включения/выключения света в загородном доме, что бы в случае кратковременных отключений электричества ПР102 не сбрасывался и зажженные лампочки не гасли? Реализовать "энергонезависимость".

Вот так можно

60942

Сергей0308
27.05.2022, 17:51
Подскажите пожалуйста, что нужно добавить в программу включения/выключения света в загородном доме, что бы в случае кратковременных отключений электричества ПР102 не сбрасывался и зажженные лампочки не гасли? Реализовать "энергонезависимость".
Вот моя схема:
60940
Вот программа:

Вот проект, легко расширяется до 32 Т-триггеров с энергонезависимостью и возможностью управления из двух мест, например с кнопок подключённых к входам этого ПР и по сети с другого ПР.

60943

https://owen.ru/forum/showthread.php?t=26216&page=222

60944

Вот здесь Т-триггеры выкладывал:

https://owen.ru/forum/showthread.php?t=12691&page=63

Даже с общим сбросом есть, как Вы хотите!

60946

Максим74
27.05.2022, 19:31
Здраствуйте, я студент электроприводчик на заочке, преподаватель на нас ложил большой и толстый... по методичкам разбираются какие то основы, а по видео очень сложно что то понять. Может тут есть добрый человек, который может обьяснить как работать с этим чудом техники?

игорь68
27.05.2022, 20:05
Даже на сайте можно скачать в разделе ПР описани работы с лождиком. Притом почти предпоследняя версия. Если в двух слова то так. Идем от выход к входу . Типа выход будет включен если включит входы
1 и 2 . Вот я с этого начинал только на микросхемах к155ЛА3. Там тоже что бы был сигнал на выходе номер 3 нужно подать сигнал на входы 1 и 2.

Максим74
27.05.2022, 20:14
так это понятно, логика это не сложно, мне нужно именно программу победить, как из листинга кода или лестничной диаграммы мне получить хоть какую то визуализацию

Сергей0308
27.05.2022, 20:36
так это понятно, логика это не сложно, мне нужно именно программу победить, как из листинга кода или лестничной диаграммы мне получить хоть какую то визуализацию

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

игорь68
28.05.2022, 08:02
Листинг кода как Вы говорите это ваше ИЗ. То что должно получиться это Ваш выход ПР. А основной код это условия при которых выход пр должен сработать.
Простой пример. В менеджере компонентов возьмите макрос ON OFF.
У вас есть коридор. На каждой стороне есть по кнопочному выключайте без фиксации. Вам нужно зажигать лампочку с любой стороны и выключать ее с любой стороны. Все с таких вещей начинают.

keysansa
28.05.2022, 13:45
Здраствуйте, я студент электроприводчик на заочке, преподаватель на нас ложил большой и толстый... по методичкам разбираются какие то основы, а по видео очень сложно что то понять. Может тут есть добрый человек, который может обьяснить как работать с этим чудом техники?

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

Dimensy
28.05.2022, 15:29
так это понятно, логика это не сложно, мне нужно именно программу победить, как из листинга кода или лестничной диаграммы мне получить хоть какую то визуализацию

Вот вообще не понял, что вам конкретно надо?

lagutin
30.05.2022, 11:23
Здравствуйте! Какая логика очередности переменных , которые используются в макросе. Вот я все переменные удалил. Добавил заново по очереди. Все одно они не по порядку идут. От чего это зависит? Как их сортировать можно?6097160972

Сергей0308
30.05.2022, 13:14
Здравствуйте! Какая логика очередности переменных , которые используются в макросе. Вот я все переменные удалил. Добавил заново по очереди. Все одно они не по порядку идут. От чего это зависит? Как их сортировать можно?6097160972

Допустим у Вас не переменные, а константы! Мне кажется выстраиваются в порядке добавления в свойства макроса или редактирования. Вам очень повезло, что у Вас их всего четыре! В смысле, когда то давно, несколько лет тому назад делал макрос ПЗУ, так у меня в свойствах макроса было аж 257 констант и сколько я не пытался, так и не получилось их по порядку расположить, как я хотел! Короче, согласен, что не помешала бы возможность перемещать их по своему усмотрению, я об этом писал ещё много лет назад, но никто больше не поддержал, теперь уже сразу в 2 раза увеличилось количество желающих упорядочить свойства макроса, что не может не радовать, в смысле, если тенденция сохранится!

lagutin
30.05.2022, 14:58
Допустим у Вас не переменные, а константы! Внутри макроса таки да, константы. А снаружи мы обращаемся к переменной, имеющей значение константы.:) Но это дело второе. Я проделал нудную работу. Удалил все константы , как используемые. Потом по одной делал используемой, сохранял и т.д. и так с каждой. Они же добавляются в конец списка получается , что если после сохранения добавлять, то какой то контроль будет. имхо. В результате стали они по порядку. И потом когда удалил, и опять все 4 сразу назначил, они тоже стали по порядку. Вот так. Кстати, когда меняешь использование, макрос требует обновится, то есть это выходит значимая операция, как и, примеру изменение числа входов. Ну по интерфейсу свойств, то точно. И кстати, порядок расположения входов я тоже не умею менять. Они как приросшие. Меняю названия.. И уж до кучи, научили меня здесь размер элементов менять. И что, они не меняют размер, а тянутся... А вход уходит от поля. 60981

bayk
30.05.2022, 18:00
если мне не изменяет память,. о константы распределяются сверху вниз, справа на лево. и чтобы их в свойствах расположить в нужном порядке надо и на поляне внутри макроса их расположить сверзу-ввниз.

keysansa
04.06.2022, 12:30
Внутри макроса таки да, константы. А снаружи мы обращаемся к переменной, имеющей значение константы.:)
Как-то непонятно...
Скорее всего, у макроса переменные, а снаружи константы? Переменная с константным значением = константа.

bayk
04.06.2022, 20:13
Как-то непонятно...
Скорее всего, у макроса переменные, а снаружи константы? Переменная с константным значением = константа.
ну она условно переменная - если нажать на макрос, то в поле "свойства" справа от поляны можно увидеть имена констант и вписать в них новые значения.

zsm7
06.06.2022, 11:37
Здравствуйте. Как из целочисленной переменной сделать переменную с плавающей запятой, положительным и отрицательным значением? вход 0-65536 где 100=100, 300=300, 65436= -100, 65236= -300.

melky
06.06.2022, 11:39
zsm7 кто-то делал макрос, Возможно Сергей308 для передачи по сети отрицательных чисел. Или может petera...
Поищите поиском, было уже.

Сергей0308
06.06.2022, 11:55
Здравствуйте. Как из целочисленной переменной сделать переменную с плавающей запятой, положительным и отрицательным значением? вход 0-65536 где 100=100, 300=300, 65436= -100, 65236= -300.

Посмотрите здесь в 30 посте: https://owen.ru/forum/showthread.php?t=13106&page=3
Когда то, очень давно, выкладывал.

zsm7
06.06.2022, 12:03
СПАСИБО!!!

Сергей0308
06.06.2022, 14:06
СПАСИБО!!!

Хотел добавить, что в этих макросах отрицательные значения передаются в дополнительном коде.
Существует ещё прямой и обратный код, я в какой то теме выкладывал аналогичный макрос, но с 3 кодами на выбор для передачи отрицательных значений.

Роман АБ
09.06.2022, 16:47
Доброго дня. Вопрос от новичка. начал осваивать ОЛ. Возникла трудность, при написании программы появилась необходимость в циклических связях, соответственно ОЛ сругался на них и предложил заменить на лини задержки. Но почему то с панели инструментов линия задержки не ставится на поле, все другое ставится, а вот она нет..Подскажите пожалуйста что делать.

Сергей0308
09.06.2022, 18:07
Доброго дня. Вопрос от новичка. начал осваивать ОЛ. Возникла трудность, при написании программы появилась необходимость в циклических связях, соответственно ОЛ сругался на них и предложил заменить на лини задержки. Но почему то с панели инструментов линия задержки не ставится на поле, все другое ставится, а вот она нет..Подскажите пожалуйста что делать.

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

Роман АБ
09.06.2022, 18:33
Ну вот почему то нет. Например константа так работает а ЛЗ нет.

Сергей0308
09.06.2022, 18:46
Ну вот почему то нет. Например константа так работает а ЛЗ нет.

Вы знаете, как связь протянуть между элементами, протяните связь с нажатой(выделенной) кнопкой задержки, всё!
Надеюсь, у Вас мышка есть?

Александр SPB
09.06.2022, 23:32
Добрый вечер. Подскажите, как реализовать преобразование аналогового входа 4-20ма на аналоговый выход 0-20 ма. Вопрос закрыт, с ходу не увидел макрос.

keysansa
14.06.2022, 20:40
Я что-то позабыл, как делал, старых проектов под рукой нет.
Прошу подсказать.
Проект ПР200.
Owen Logic 1.20.277
Нужен обычный алгоритм генератора (время паузы, время работы). Время указывается в 0.1 с (дс).
Положил BINK, 2 переменные (целые), соответственно, 2 пересылки в FB, прочитал справку - "Допустимый диапазон значений Твкл и Тоткл: от 0 до 4233600000 мс или 49 дней. "
Однако в свойствах - множитель (сек, мин, час...)
И в отладке ничего не работает... На BLINK 0c по обоим входам.

ЗЫ. Но я точно делал проект, но на ПР100, вроде на 100 умножал раньше.
61213
61214

ЗЫЫ. В списке переменных отладки, задаю значения - ничего не меняется.
61215

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

kondor3000
14.06.2022, 23:30
Я что-то позабыл, как делал, старых проектов под рукой нет.
И в отладке ничего не работает... На BLINK 0c по обоим входам.
ЗЫ. Но я точно делал проект, но на ПР100, вроде на 100 умножал раньше.


Чтобы задать секунды, надо умножать на 1000 (задаётся в ms). На скрине табличка 61217
Для блинка задавать надо 2 времени Tl и Th. А чтобы работало, выход блинка надо куда то соединить, хоть на переменную, хоть на выход.

игорь68
20.06.2022, 10:22
Добрый день коллеги. Нужен макрос компаратора с настройкой гистерезиса. Делаем передаточный бокс. Внутри бокса есть HEPA фильтр вентилятор который внутри гоняет воздух через фильтр. Так как основная задача поддерживать расход воздуха то нужен датчик расхода(но увы их нет в наличии). Поэтому на стенде провели работу и составили график зависимость перепада давления на фильтре( загрязнение ) и расход.
Идея такая. С прибора ПД150 Овен по rs485 получаю перепад давления и подаю на компараторы(5 шт ). Настраиваю гистерезис на компараторе. Выход с компаратора включит скорость вентилятора(0-10v). По мере загрязнения фильтра компараторы будут увеличивать скорость вентилятора . Те самым поддерживать расход воздуха . PID не могу поставить потому как цикл всего примерно 1-1,5 минуты.

kondor3000
20.06.2022, 10:39
Добрый день коллеги. Нужен макрос компаратора с настройкой гистерезиса. Делаем передаточный бокс. Внутри бокса есть HEPA фильтр вентилятор который внутри гоняет воздух через фильтр. Так как основная задача поддерживать расход воздуха то нужен датчик расхода(но увы их нет в наличии). Поэтому на стенде провели работу и составили график зависимость перепада давления на фильтре( загрязнение ) и расход.
Идея такая. С прибора ПД150 Овен по rs485 получаю перепад давления и подаю на компараторы(5 шт ). Настраиваю гистерезис на компараторе. Выход с компаратора включит скорость вентилятора(0-10v). По мере загрязнения фильтра компараторы будут увеличивать скорость вентилятора . Те самым поддерживать расход воздуха . PID не могу поставить потому как цикл всего примерно 1-1,5 минуты.

В менеджере компонентов есть макросы 2PosHisReg и 2PHReg+ ( Двухпозиционные регуляторы с гистерезисом), в крайнем случае можно доработать под себя.
Фактически это компараторы с двумя выходами.
А вообще функция fGT, это простейший компаратор, на нём можно сделать что угодно.

melky
20.06.2022, 10:40
Компаратор составляется на SELах, Гистерезис вроде есть в базе. Ну и промежуточным звеном где у вас надо что-то подать на 0-10В может служить Scaler вроде тоже есть на форуме.

petera
20.06.2022, 10:47
Добрый день коллеги. Нужен макрос компаратора с настройкой гистерезиса. Делаем передаточный бокс. Внутри бокса есть HEPA фильтр вентилятор который внутри гоняет воздух через фильтр. Так как основная задача поддерживать расход воздуха то нужен датчик расхода(но увы их нет в наличии). Поэтому на стенде провели работу и составили график зависимость перепада давления на фильтре( загрязнение ) и расход.
Идея такая. С прибора ПД150 Овен по rs485 получаю перепад давления и подаю на компараторы(5 шт ). Настраиваю гистерезис на компараторе. Выход с компаратора включит скорость вентилятора(0-10v). По мере загрязнения фильтра компараторы будут увеличивать скорость вентилятора . Те самым поддерживать расход воздуха . PID не могу поставить потому как цикл всего примерно 1-1,5 минуты.
Если график уже составили, то используйте ST вариант моего макроса PLA (кусочно-линейная аппроксимация)
http://files3.vunivere.ru/workbase/00/04/01/95/images/image001.gif
F(x)=f(xi) + [x - x(i)] / [x(i+1) - x(i)] * [f(xi+1) - f(xi)]
https://owen.ru/forum/showthread.php?t=35489&p=369459&viewfull=1#post369459

игорь68
20.06.2022, 12:04
Kondor3000,Melky,Petera Спасибо. буде смотреть.

keysansa
20.06.2022, 14:19
Чтобы задать секунды, надо умножать на 1000 (задаётся в ms). На скрине табличка 61217
Для блинка задавать надо 2 времени Tl и Th. А чтобы работало, выход блинка надо куда то соединить, хоть на переменную, хоть на выход.

Спасибо.
Да, я обе переменные пересылаю.
На 100 (а не на 1000) умножаю потому, что у меня время не в 1с, а в 0.1с задается.
Попробую соединить выход. Не буду настаивать, но при отладке ПР100, вроде, работало без соединения. По крайней мере, на входе блока/макроса показывало значения.

keysansa
20.06.2022, 14:28
Добрый день коллеги. Нужен макрос компаратора с настройкой гистерезиса. Делаем передаточный бокс. Внутри бокса есть HEPA фильтр вентилятор который внутри гоняет воздух через фильтр. Так как основная задача поддерживать расход воздуха то нужен датчик расхода(но увы их нет в наличии). Поэтому на стенде провели работу и составили график зависимость перепада давления на фильтре( загрязнение ) и расход.
Идея такая. С прибора ПД150 Овен по rs485 получаю перепад давления и подаю на компараторы(5 шт ). Настраиваю гистерезис на компараторе. Выход с компаратора включит скорость вентилятора(0-10v). По мере загрязнения фильтра компараторы будут увеличивать скорость вентилятора . Те самым поддерживать расход воздуха . PID не могу поставить потому как цикл всего примерно 1-1,5 минуты.

У вас датчик дифференциального давления через фильтр HEPA и вам нужно держать постоянный расход?
У вас проблемы с поставкой датчика.
Так как вы построили график зависимости, значит у вас датчики расхода, и они аналоговые.
Вы с измерителя, который умеет в ПИД, желаете сделать компараторы?

По моему, надо еще провести исследование, зависимости перепада давления от давления перед фильтром и расходом. Тогда, не имея датчика расхода, можно предсказать расход имея только датчики давления.
Гистерезис не нужен.

игорь68
20.06.2022, 17:31
Датчиков расхода нет. Мы для "лабораторки" использовали приборы TESTO. По факту из железа ПР200.24.4.1 и ПД150.

keysansa
20.06.2022, 17:48
Датчиков расхода нет. Мы для "лабораторки" использовали приборы TESTO. По факту из железа ПР200.24.4.1 и ПД150.
Testo - это не железо? Пластмасса?

DkCat
21.06.2022, 15:00
Здравствуйте!
Подскажите пожалуйста, как реализовать простую вещь: последовательное включение выходов одной кнопкой.
Например: одна кнопка (нажимная, возвратная) выключателя света при первом нажатии включает выход Q1, при втором нажатии Q2, при третьем выключает оба выхода.
Понимаю, что вопрос совсем простой... поэтому и задаю его в данной теме.
Спасибо!

Придумал свой вариант на счётчиках:
61331

игорь68
21.06.2022, 17:25
В менеджере компонентов есть пара макросов для работа с кнопками. Кто то делал под управлениеи освещением.

Dimensy
21.06.2022, 18:41
Здравствуйте!
Подскажите пожалуйста, как реализовать простую вещь: последовательное включение выходов одной кнопкой.
Например: одна кнопка (нажимная, возвратная) выключателя света при первом нажатии включает выход Q1, при втором нажатии Q2, при третьем выключает оба выхода.
Понимаю, что вопрос совсем простой... поэтому и задаю его в данной теме.

Вот так можно
61336

Сергей0308
21.06.2022, 18:47
Вот так можно
61336

Мне кажется для счётных входов детектор переднего фронта не нужен, триггер и так работает по фронту импульса на счётном входе!

kondor3000
21.06.2022, 19:30
Придумал свой вариант на счётчиках:

Достаточно и одного счётчика и можно сделать любое кол-во выходов 61337

wwowa
21.06.2022, 20:05
Достаточно и одного счётчика А подскажите, как сделать сброс на счетчике получше)). Вот в данном варианте он считает до 3-х и пересбрасывается в ноль. И проскок 3-0 происходит. А вот чтобы 1-2-0. Чтобы тройка не проскакивала??? Я сам пробовал и фронты вводил и задержки, так и не осилил.

Сергей0308
21.06.2022, 20:26
А подскажите, как сделать сброс на счетчике получше)). Вот в данном варианте он считает до 3-х и пересбрасывается в ноль. И проскок 3-0 происходит. А вот чтобы 1-2-0. Чтобы тройка не проскакивала??? Я сам пробовал и фронты вводил и задержки, так и не осилил.

Надеюсь, это не шутка такая, ещё лет сто назад делал, короче, можно так:

61340

61338

Можно и так сделать:

61342

61339

Вот здесь обсуждалось: https://owen.ru/forum/showthread.php?t=7023&page=489&highlight=%E1%E5%E7+%F1%F7%B8%F2%F7%E8%EA%EE%E2+%F 2%F0%E8%E3%E3%E5%F0%EE%E2

wwowa
21.06.2022, 21:36
Надеюсь, это не шутка такая, ещё лет сто назад делал, Да нет не шутка. Другие то варианты работают. Тот же ваш счетчик, просто поставив мин-макс и все работает. Проблемы то особой нет. Просто я имел ввиду именно универсальный счетчик - также с ним проделать. Посмотрел я ссылки, может не внимательно, но решения я не нашел. Что с GT,что c EQ, что с "фронтом" на входе(я три варианта попробовал) - все одно. Достигает максимума и на ноль. Но максимум проскакивает...61343

Сергей0308
21.06.2022, 22:26
Да нет не шутка. Другие то варианты работают. Тот же ваш счетчик, просто поставив мин-макс и все работает. Проблемы то особой нет. Просто я имел ввиду именно универсальный счетчик - также с ним проделать. Посмотрел я ссылки, может не внимательно, но решения я не нашел. Что с GT,что c EQ, что с "фронтом" на входе(я три варианта попробовал) - все одно. Достигает максимума и на ноль. Но максимум проскакивает...61343

Не понятно, что осталось сделать, прочитать два поста не можете 4890-4891, как раз в 4891 посте описано, как можно синхронный счётчик построить и пример построения приведён!
С вашими знаниями надо пару лет читать без перекуров, чтобы какие-то элементарные понятия появились в этой сфере!

Как-то так:

61345

lagutin
22.06.2022, 08:31
С вашими знаниями надо пару лет читать без перекуров, чтобы какие-то элементарные понятия появились в этой сфере!
Резко, но справедливо:)Будем читать, но с перекурами. Есть такая вредная привычка.
Но это не основное мое занятие. Изредка, начальство заставляет запрограммировать простенькую логику. Пока справляюсь. А иногда, пробую дома для души что то ваять. Так что я любитель самоучка в этом деле - самый опасный человек на производстве:).

kondor3000
22.06.2022, 11:05
Да нет не шутка. Другие то варианты работают. Тот же ваш счетчик, просто поставив мин-макс и все работает. Проблемы то особой нет. Просто я имел ввиду именно универсальный счетчик - также с ним проделать. Посмотрел я ссылки, может не внимательно, но решения я не нашел. Что с GT,что c EQ, что с "фронтом" на входе(я три варианта попробовал) - все одно. Достигает максимума и на ноль. Но максимум проскакивает...61343
Далась вам эта 3, у меня она подключена только на ресет, в отличие от вашей схемы, сравните скрины 61355
Вы ошиблись одной линией, а 3 проскакивает, не влияя на выходы 1 и 2.

DkCat
22.06.2022, 14:17
Далась вам эта 3, у меня она подключена только на ресет, в отличие от вашей схемы, сравните скрины 61355
Вы ошиблись одной линиейя, а 3 проскакивает, не влияя на выходы 1 и 2.

Спасибо за Ваш вариант. Для меня он очень хорошо подходит. Компактно и понятно для новичка ))

игорь68
22.06.2022, 14:33
Продолжение темы. Вот создал так для макета схему сравнения. Как делать что бы не "работал меньший уровень". Например. На вход AI2 подан сигнал 12 ед( условно) у меня включился выход Q1. Теперь на вход подан сигнал 24 ед( условно) у меня горят выходы Q1 и Q2. А не нужно что бы был только Q2. Если подан сигнал 52ед( условно) то нужен выход только Q5 а не все.

Василий Кашуба
22.06.2022, 15:47
Продолжение темы. Вот создал так для макета схему сравнения. Как делать что бы не "работал меньший уровень". Например. На вход AI2 подан сигнал 12 ед( условно) у меня включился выход Q1. Теперь на вход подан сигнал 24 ед( условно) у меня горят выходы Q1 и Q2. А не нужно что бы был только Q2. Если подан сигнал 52ед( условно) то нужен выход только Q5 а не все.
Вот попробуйте, если что, подстройте под свои нужды.

Рогов Алексей
22.06.2022, 15:50
День добрый, подскажите, существует ли макрос в ОЛ для вычисления объёма жидкости в горизонтальном цилиндрическом сосуде через датчик давления - высоты столба жидкости

Василий Кашуба
22.06.2022, 15:51
Продолжение темы. Вот создал так для макета схему сравнения. Как делать что бы не "работал меньший уровень". Например. На вход AI2 подан сигнал 12 ед( условно) у меня включился выход Q1. Теперь на вход подан сигнал 24 ед( условно) у меня горят выходы Q1 и Q2. А не нужно что бы был только Q2. Если подан сигнал 52ед( условно) то нужен выход только Q5 а не все.
Ваш проект открыть не получилось.

игорь68
22.06.2022, 16:00
Василий у меня открылось. Делал в версии ОЛ 1.23.296. Спасибо буду пробовать.
Переделал под себя работает как нужно. Василий спасибо.

kondor3000
22.06.2022, 16:12
Продолжение темы. Вот создал так для макета схему сравнения. Как делать что бы не "работал меньший уровень". Например. На вход AI2 подан сигнал 12 ед( условно) у меня включился выход Q1. Теперь на вход подан сигнал 24 ед( условно) у меня горят выходы Q1 и Q2. А не нужно что бы был только Q2. Если подан сигнал 52ед( условно) то нужен выход только Q5 а не все.

У меня получилось так 61362 Но вариант с XOR намного проще будет 61363

Сергей0308
22.06.2022, 18:54
Продолжение темы. Вот создал так для макета схему сравнения. Как делать что бы не "работал меньший уровень". Например. На вход AI2 подан сигнал 12 ед( условно) у меня включился выход Q1. Теперь на вход подан сигнал 24 ед( условно) у меня горят выходы Q1 и Q2. А не нужно что бы был только Q2. Если подан сигнал 52ед( условно) то нужен выход только Q5 а не все.

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

keysansa
22.06.2022, 20:29
Достаточно и одного счётчика и можно сделать любое кол-во выходов 61337

Счетчик формирует двоичный код, а не бегущую единицу. К счетчику нужен еще дешифратор.
ЗЫ. Тут самый простой случай - SHR 1. И SEL на условие 0

игорь68
23.06.2022, 16:10
Добрый день Коллеги. С прибора ПД150 по сити получаю Float данные уровень давления ( паскали). Приходят в ПР00 примерно таком виде. Х,ХХЕ-02. Поставил макрос скалер выставил границы (600-0 вход) И выход 10-0. "Е" так и осталась. Как убрать. Понимаю нужно делить но на сколько.

kondor3000
23.06.2022, 16:13
Добрый день Коллеги. С прибора ПД150 по сити получаю Float данные уровень давления ( паскали). Приходят в ПР00 примерно таком виде. Х,ХХЕ-02. Поставил макрос скалер выставил границы (600-0 вход) И выход 10-0. "Е" так и осталась. Как убрать. Понимаю нужно делить но на сколько.

Просто переведи в INT, если умножишь на 10, то будет отображаться 235 вместо 23.5
И скорее это МегаПаскали, тогда для перевода в КилоПаскали умножай на 1000,
например 1.23Е-02 *1000=12.3 при переводе в INT будет 12

Ещё в ПР для выходов 0-10 вольт и 4-20 мА, надо подавать число флоат от 0 до 1

Сергей0308
23.06.2022, 18:02
Добрый день Коллеги. С прибора ПД150 по сити получаю Float данные уровень давления ( паскали). Приходят в ПР00 примерно таком виде. Х,ХХЕ-02. Поставил макрос скалер выставил границы (600-0 вход) И выход 10-0. "Е" так и осталась. Как убрать. Понимаю нужно делить но на сколько.

Можно округлить до нужной Вам точности отображения, много раз эта тема обсуждалась, короче, непонятно тогда зачем вам ПР200, Вы в симуляторе собираетесь значения параметров смотреть?

https://owen.ru/forum/showthread.php?t=26216&page=3&highlight=%D0%E0%F1%F5%EE%E4

Александр SPB
07.07.2022, 09:43
Добрый день. Имеется ПР200 и МВ110 8А , Термодат 12К16. Не получается подключить данные модули по RS485 к ПР200. Эти же модули с ПЛК 110 у меня прекрасно работают. В чем может быть проблема? Как можно проверить сам RS 485 на ПР200?

Проверил ПР200 с СП307 все работает. Почему в режиме мастер не работает, не пойму.

1exan
08.07.2022, 08:36
Добрый день. Имеется ПР200 и МВ110 8А , Термодат 12К16. Не получается подключить данные модули по RS485 к ПР200. Эти же модули с ПЛК 110 у меня прекрасно работают. В чем может быть проблема? Как можно проверить сам RS 485 на ПР200?

Проверил ПР200 с СП307 все работает. Почему в режиме мастер не работает, не пойму.

Там вроде ещё на плате RS485 перемычки выбора мастер-слейв есть

Никита Сергеев
08.07.2022, 11:59
Добрый день. Имеется ПР200 и МВ110 8А , Термодат 12К16. Не получается подключить данные модули по RS485 к ПР200. Эти же модули с ПЛК 110 у меня прекрасно работают. В чем может быть проблема? Как можно проверить сам RS 485 на ПР200?

Проверил ПР200 с СП307 все работает. Почему в режиме мастер не работает, не пойму.

1. Как вы это диагностируете?
2. Интервал между запросами стоит задать 20мс.
3. Начать диагностировать обмен стоит с целочисленных переменных, т.к. в вещественных банально может быть некорректным порядок байт/регистров.
4. Устройства подключать на шину последовательно - добиться обмена с одним, затем подключать 2-ое устройство.
5. Можно повесить преобразователь RS-485 <-> USB на шину ПР200. На ПК терминальной программой смотреть наличие-отсутствие запросов/ответов.

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

Никита Сергеев
08.07.2022, 12:06
Там вроде ещё на плате RS485 перемычки выбора мастер-слейв есть

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

Saint999
11.07.2022, 11:39
День добрый, делал пару лет назад на ПР200 установку мыть детали, сейчас стоит задача переделать на ПР102 с внешними дисплеями СМИ8 или ИПП120 или СП310, так как всю визуализацию переделывать нужно, назрел вопрос, можно ли облегчить данную задачу.

Мы имеем 8 программ мойки, у каждой программы 8 шагов, каждый шаг может быть одним из 5 режимов ну и каждому шагу назначается время (если это не пропуск шага). Все программы, шаги и режимы должны настраиваться в любых вариантах пользователем и сохранятся в энергонезависимой памяти, время шага так же.

Вот как я это реализовал на ПР200

61603
61604
61605

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

В общем буду рад любой помощи. Спасибо!

Сергей0308
11.07.2022, 12:18
День добрый, делал пару лет назад на ПР200 установку мыть детали, сейчас стоит задача переделать на ПР102 с внешними дисплеями СМИ8 или ИПП120 или СП310, так как всю визуализацию переделывать нужно, назрел вопрос, можно ли облегчить данную задачу.

Мы имеем 8 программ мойки, у каждой программы 8 шагов, каждый шаг может быть одним из 5 режимов ну и каждому шагу назначается время (если это не пропуск шага). Все программы, шаги и режимы должны настраиваться в любых вариантах пользователем и сохранятся в энергонезависимой памяти, время шага так же.

Вот как я это реализовал на ПР200

61603
61604
61605

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

В общем буду рад любой помощи. Спасибо!

Эту тему посмотрите, там подобные вопросы решались, может что подойдёт: https://owen.ru/forum/showthread.php?t=34975&page=4&highlight=%EA%EE%EC%E0%ED%E4%EE%E0%EF%EF%E0%F0%E0% F2+%F0%E5%E0%EB%FC%ED%EE%E3%EE+%E2%F0%E5%EC%E5%ED% E8

И эти тоже:
https://owen.ru/forum/showthread.php?t=27739&page=3&highlight=%D2%E5%F0%EC%EE%F1%F2%E0%F2

https://owen.ru/forum/showthread.php?t=23201&page=16

Saint999
11.07.2022, 17:57
Эту тему посмотрите, там подобные вопросы решались, может что подойдёт

Если честно, то я их уже посмотрел, но там что то непонятное для меня происходит)
Спасибо и на этом.

kondor3000
11.07.2022, 18:27
День добрый, делал пару лет назад на ПР200 установку мыть детали, сейчас стоит задача переделать на ПР102 с внешними дисплеями СМИ8 или ИПП120 или СП310, так как всю визуализацию переделывать нужно, назрел вопрос, можно ли облегчить данную задачу.

Мы имеем 8 программ мойки, у каждой программы 8 шагов, каждый шаг может быть одним из 5 режимов ну и каждому шагу назначается время (если это не пропуск шага). Все программы, шаги и режимы должны настраиваться в любых вариантах пользователем и сохранятся в энергонезависимой памяти, время шага так же.

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

В общем буду рад любой помощи. Спасибо!

Если будете на СП310 такое делать, то можно всё рецептами заменить, в каждом рецепте свой набор переменных
Здесь пример 200 деталей, по 10 этапов, по 15 переменных в этапе 13 BOOL (Маска) + 2 WORD https://owen.ru/forum/showthread.php?t=35842&page=4
Все рецепты редактируются и читаются, записываются на флешку. Количество этапов уменьшите, ПЛК замените на свой ПР102.

evgenykip
12.07.2022, 05:55
Уважаемые, приветствую. Нужна помощь, приложил макрос в архиве. Работает так : при нажатии на пуск включается закрытие заслонки до сработки концевика и обнуляет счетчик, затем происходит регулирование. Мне необходимо добавить условие, чтобы когда переменная "положение кзр" становилась "0" то задвижка закрывалась до сработки концевика, и обнулялась каждый раз. У меня при значении "0" задвижка не доходит до концевика на данный момент.
https://i.ibb.co/V9kQsd9/image.jpg (https://ibb.co/h9TZSk9)

Dimensy
12.07.2022, 08:40
Уважаемые, приветствую. Нужна помощь, приложил макрос в архиве. Работает так : при нажатии на пуск включается закрытие заслонки до сработки концевика и обнуляет счетчик, затем происходит регулирование. Мне необходимо добавить условие, чтобы когда переменная "положение кзр" становилась "0" то задвижка закрывалась до сработки концевика, и обнулялась каждый раз. У меня при значении "0" задвижка не доходит до концевика на данный момент.

Вот тут я баловался с дискретным регулятором, может что вам пригодиться
Здесь верхний регулятор мой, нижний от Овена

evgenykip
12.07.2022, 09:10
... может что вам пригодиться ...

Спасибо, к сожалению, не подходит мне. Нет обратной связи.

AlexCrane
12.07.2022, 09:43
Спасибо, к сожалению, не подходит мне. Нет обратной связи.

Ну так сделай сравнение положение кзр с нулем и инициируй заново пуск

evgenykip
12.07.2022, 09:51
Ну так сделай сравнение положение кзр с нулем и инициируй заново пуск
не получается у меня... несколько условий нужно соблюсти.
происходит конфликт с процессом регулирования.

Saint999
12.07.2022, 10:53
Если будете на СП310 такое делать, то можно всё рецептами заменить, в каждом рецепте свой набор переменных
Здесь пример 200 деталей, по 10 этапов, по 15 переменных в этапе 13 BOOL (Маска) + 2 WORD https://owen.ru/forum/showthread.php?t=35842&page=4
Все рецепты редактируются и читаются, записываются на флешку. Количество этапов уменьшите, ПЛК замените на свой ПР102.

В том то и дело что на выбор нужно СМИ8 просто номер программы показывать будет, сама программа кнопкой переключается, редактирования не будет. ну только если по модбас. ИПП120 или СП310 будут и редактировать и показывать процесс, и вот хотелось бы что бы не гонять по модбасу 128 переменных, которые еще созать нужно), а как то их упаковать в одну или две).
В любом случае спасибо, про рецепты почтаю.

Сергей0308
12.07.2022, 11:05
В том то и дело что на выбор нужно СМИ8 просто номер программы показывать будет, сама программа кнопкой переключается, редактирования не будет. ну только если по модбас. ИПП120 или СП310 будут и редактировать и показывать процесс, и вот хотелось бы что бы не гонять по модбасу 128 переменных, которые еще созать нужно), а как то их упаковать в одну или две).
В любом случае спасибо, про рецепты почтаю.

Вот Вы уже несколько раз пишите про неизвестный мне(боюсь и всем остальным в нашей галактике) прибор СМИ8, что это такое, может у Вас какая ссылка есть?
Может СМИ2(СМИ2-М)???

Saint999
12.07.2022, 12:06
Вот Вы уже несколько раз пишите про неизвестный мне(боюсь и всем остальным в нашей галактике) прибор СМИ8, что это такое, может у Вас какая ссылка есть?
Может СМИ2(СМИ2-М)???

Извиняюсь, да СМИ2, не знаю откуда 8 взялось)

AlexCrane
12.07.2022, 15:52
не получается у меня... несколько условий нужно соблюсти.
происходит конфликт с процессом регулирования.

Сильно в код не вникал (уж слишком запутанно как-то) но попробуй такой вариант

Сергей0308
12.07.2022, 17:51
Сильно в код не вникал (уж слишком запутанно как-то) но попробуй такой вариант

У меня в вашем проекте ошибка выскакивает:

61629

Dimensy
12.07.2022, 19:10
Сильно в код не вникал (уж слишком запутанно как-то) но попробуй такой вариант

Там есть одна фишка из-за чего счет до нуля не дойдет - как только %КЗР станет меньше 1, макрос гистерезиса отключит выход С.
А все из-за этого условия
61630

Вот с таким макросом гистерезиса должно работать
61631

Сергей0308
12.07.2022, 20:53
Там есть одна фишка из-за чего счет до нуля не дойдет - как только %КЗР станет меньше 1, макрос гистерезиса отключит выход С.
А все из-за этого условия
61630

Вот с таким макросом гистерезиса должно работать
61631

И, что это такое, макрос гистерезиса с выключением без гистерезиса?
Даже звучит - нелепо!

Dimensy
12.07.2022, 21:18
И, что это такое, макрос гистерезиса с выключением без гистерезиса?
Даже звучит - нелепо!

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

Сергей0308
12.07.2022, 21:32
Так ту же фишка в управлении - включить надо с гистерезисом, а выключить по факту. Автор внес дополнение в макрос из базы, но немножко не аккуратно

Так такой же диапазон работы можно сделать в обычном макросе двухпозиционного регулятора с гистерезисом, зачем что-то менять, если его работа не будет отличатся от преведущего варианта макроса?!
Назовите любой диапазон температур, а я подскажу какую надо задать уставку и гистерезис, чтобы обычный макрос двухпозиционного регулятора работал в нужном вам диапазоне!
Короче, проще убрать всякие гистерезисы, просто устанавливать значения включения и выключения, так не только проще будет в плане исполнения макроса, но и в плане понимания его работы, надеюсь, не будете спорить?!

evgenykip
13.07.2022, 05:25
У меня в вашем проекте ошибка выскакивает:

61629
нужно пид регулятор из базы в проект загрузить и ошибка исчезнет.

evgenykip
13.07.2022, 06:35
Сильно в код не вникал (уж слишком запутанно как-то) но попробуй такой вариант

при запуске идет на ноль => доходит до концевика => происходит регулирование => делаем измеряемую величину больше уставки => пид идет на ноль => но клапан не доходит до концевика.

Сергей0308
13.07.2022, 06:39
нужно пид регулятор из базы в проект загрузить и ошибка исчезнет.

Если это так(позже проверю) - это же очень плохое изменение в ОЛ, однозначно в худшую сторону, теперь как в кодесус надо ещё библиотеки загружать?
Ранее у ОЛ было в этом преимущество, мне одному так кажется что местами попутали что лучше, а что хуже и теперь нас ждут одни ухудшения в ОЛ?

evgenykip
13.07.2022, 07:04
Если это так(позже проверю) - это же очень плохое изменение в ОЛ, однозначно в худшую сторону, теперь как в кодесус надо ещё библиотеки загружать?
Ранее у ОЛ было в этом преимущество, мне одному так кажется что местами попутали что лучше, а что хуже и теперь нас ждут одни ухудшения в ОЛ?

мне тоже не нравятся последние обновления ОЛ, чего то намудрили и теперь работает по другому ...

Dimensy
13.07.2022, 07:47
при запуске идет на ноль => доходит до концевика => происходит регулирование => делаем измеряемую величину больше уставки => пид идет на ноль => но клапан не доходит до концевика.

Я про это упоминал https://owen.ru/forum/showthread.php?t=26216&p=384994&viewfull=1#post384994

evgenykip
13.07.2022, 07:50
Там есть одна фишка из-за чего счет до нуля не дойдет - как только %КЗР станет меньше 1, макрос гистерезиса отключит выход С.
А все из-за этого условия
61630

Вот с таким макросом гистерезиса должно работать
61631

заменил на ваш макрос, изменений никаких не произошло.
нужно вносить условия, что если КЗР равен нулю и концевик не сработал то закрывать клапан дальше пока не сработает концевик.
смысл моей затеи в том, чтобы когда значение КЗР было равно нулю то он доходил до срабатывания концевика "закрыто" и затем счетчик обнулялся, а в идеале и при значении КЗР равном 100 чтобы он доходил до концевика "открыто"

Dimensy
13.07.2022, 10:17
заменил на ваш макрос, изменений никаких не произошло.
нужно вносить условия, что если КЗР равен нулю и концевик не сработал то закрывать клапан дальше пока не сработает концевик.
смысл моей затеи в том, чтобы когда значение КЗР было равно нулю то он доходил до срабатывания концевика "закрыто" и затем счетчик обнулялся, а в идеале и при значении КЗР равном 100 чтобы он доходил до концевика "открыто"

Ну, не знаю, дополненная версия от AlexCrane с исправленным макросом гистерезиса у меня в эмуляторе при %КЗР=0 держит активным выход на закрытие пока не сработает концевик

Денисов Максим Сергеевич
13.07.2022, 10:47
нужно пид регулятор из базы в проект загрузить и ошибка исчезнет.

Пришлите, пожалуйста, ваш проект мне на почту m.denisov@owen.ru Мы с командой постараемся обнаружить ошибку и исправить ее.
Уточните, пожалуйста, версию ОЛ, в которой открываете проект

Денисов Максим Сергеевич
13.07.2022, 10:51
мне тоже не нравятся последние обновления ОЛ, чего то намудрили и теперь работает по другому ...

Если это так(позже проверю) - это же очень плохое изменение в ОЛ, однозначно в худшую сторону, теперь как в кодесус надо ещё библиотеки загружать?
Ранее у ОЛ было в этом преимущество, мне одному так кажется что местами попутали что лучше, а что хуже и теперь нас ждут одни ухудшения в ОЛ?

Любыми замечаниями, неудобствами, пожеланиями можете делиться здесь или связаться со мной по почте/скайпу. Мы всегда открыты к общению для создания более комфортных условий работы в среде ОЛ
email: m.denisov@owen.ru
skype: live:.cid.5f5a845a321a6d23

evgenykip
13.07.2022, 11:12
Пришлите, пожалуйста, ваш проект мне на почту m.denisov@owen.ru Мы с командой постараемся обнаружить ошибку и исправить ее.
Уточните, пожалуйста, версию ОЛ, в которой открываете проект

Дело в том, что у меня мой проект ( оригинальный, который в архиве я приложил выше ) открывается нормально - без ошибок, с ошибкой открывается проект, который отредактировал в своей версии ОЛ и выложил выше AlexCrane, у меня последняя версия ОЛ ( сегодня обновилась ). У меня ошибка как у Сергея, типа в проект не добавлен макрос который в схеме присутствует ( стандартный пид из базы ОЛ ), я его добавил в проект и ошибка ушла.

evgenykip
13.07.2022, 11:17
Ну, не знаю, дополненная версия от AlexCrane с исправленным макросом гистерезиса у меня в эмуляторе при %КЗР=0 держит активным выход на закрытие пока не сработает концевик

Вы следуйте такому алгоритму при эмуляции, сначала запустите => заслонка идет на ноль до сработки концевика ( здесь так и было ), затем происходит регулирование, затем сделайте измеряемую величину больше уставки => выход на закрытие остается активным пока идет счет и останавливается не дожидаясь сработки концевика. Я в приборе проверяю, хотя, в эмуляции то же самое происходит.

AlexCrane
13.07.2022, 12:34
Вы следуйте такому алгоритму при эмуляции, сначала запустите => заслонка идет на ноль до сработки концевика ( здесь так и было ), затем происходит регулирование, затем сделайте измеряемую величину больше уставки => выход на закрытие остается активным пока идет счет и останавливается не дожидаясь сработки концевика. Я в приборе проверяю, хотя, в эмуляции то же самое происходит.
Что я делаю не так, или эмуляция живет своей жизнью теперь?

P.S. версия OL 1.23.298, блок гистерезиса не правил

evgenykip
13.07.2022, 12:48
Что я делаю не так, или эмуляция живет своей жизнью теперь?

P.S. версия OL 1.23.298, блок гистерезиса не правил
Не знаю ... У меня в приборе не работает, никаких изменений не произошло, по прежнему не доходит до концевика. Сейчас еще раз проверю все.

evgenykip
13.07.2022, 13:15
Что я делаю не так, или эмуляция живет своей жизнью теперь?

P.S. версия OL 1.23.298, блок гистерезиса не правил

еще раз проверил. включил онлайн отладку. не доходит клапан до концевика.
https://i.ibb.co/QPmg5Qx/kzr.jpg (https://ibb.co/3ph3JdP)

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

Прошу извинить, ввел в заблуждение, в макросе выход кзр это выход из макроса scale которы приводит значение с переменной кзр к диапазону 0-100, поэтому у меня в приборе пид и кзр принимают одинаковые значения. ну в общем я понял как заставить заслонку доходить до концевика, только считаю что нужно добавить еще условие что концевик не сработан при этом.
Спасибо, ребята, большое, всем за помощь ! ! ! Дальше я сам доделаю это.

Если не затруднит, то подскажите с еще одним вопросом : В проекте пуск происходит из макроса "one_thouch" физическим входом или из сети сетевой переменной, как заставить стандартную переменную на выходе сохранять "1" после отключения питания и повторного включения, которая была ей присвоена до выключения макросом "one_thouch" ?
https://i.ibb.co/jbM29Ng/jne-thouch.jpg (https://ibb.co/6rPxcMg)

Dimensy
13.07.2022, 13:41
еще раз проверил. включил онлайн отладку. не доходит клапан до концевика.
в общем, в эмуляции то же самое происходит... когда пид на нуле, кзр не на нуле почему то и клапан при этом не доходит до концевика, где то там собака засела какая то ...
блин, совсем запарился ... там, походу, еще где то что то не так ...
понял, там нужно сравнивать не кзр а пид, получается, что кзр неправильно расчитывает положение, для этого и нужно было что бы каждый раз при 0% клапан доходил до концевика и сбрасывался счетчик.

а вот этот проверьте

AlexCrane
13.07.2022, 14:17
а вот этот проверьте

В эмуляции отлично работает

rslnhmtv
13.07.2022, 15:03
Всем привет,может кто знает как можно подключить 3 прибора 2трм1 к одному датчику?
На моем комплексе закупались этими приборами для измерения жидкости в ёмкости с помощью датчика давления.
В трёх разных помещениях установлено по 2трм1 нужно продублировать индикацию на ещё два прибора..
Как это осуществить мужики?🧐

rslnhmtv
13.07.2022, 15:11
Всем привет,может кто знает как можно подключить 3 прибора 2трм1 к одному датчику?
На моем комплексе закупались этими приборами для измерения жидкости в ёмкости с помощью датчика давления.
В трёх разных помещениях установлено по 2трм1 нужно продублировать индикацию на ещё два прибора..
Как это осуществить мужики?🧐

Сергей0308
13.07.2022, 15:26
Всем привет,может кто знает как можно подключить 3 прибора 2трм1 к одному датчику?
На моем комплексе закупались этими приборами для измерения жидкости в ёмкости с помощью датчика давления.
В трёх разных помещениях установлено по 2трм1 нужно продублировать индикацию на ещё два прибора..
Как это осуществить мужики?��

Проблема то в чём? Токовый сигнал последовательно подключают.
В вашем случае это получится если на каждом приборе(2ТРМ1) задействован только один вход.
Если два входа задействованы у каждого прибора, подключайте параллейно(не совсем правильно, но другого простого решения нет) на входа всех приборов при этом шунтирующий прецизионный резистор(50 Ом) ставите только на входе одного из приборов, всё.

kondor3000
13.07.2022, 16:30
Если не затруднит, то подскажите с еще одним вопросом : В проекте пуск происходит из макроса "one_thouch" физическим входом или из сети сетевой переменной, как заставить стандартную переменную на выходе сохранять "1" после отключения питания и повторного включения, которая была ей присвоена до выключения макросом "one_thouch" ?

Перезапись переменной саму в себя
https://owen.ru/forum/showthread.php?t=36186

Saint999
13.07.2022, 16:50
Эту тему посмотрите, там подобные вопросы решались, может что подойдёт: https://owen.ru/forum/showthread.php?t=34975&page=4&highlight=%EA%EE%EC%E0%ED%E4%EE%E0%EF%EF%E0%F0%E0% F2+%F0%E5%E0%EB%FC%ED%EE%E3%EE+%E2%F0%E5%EC%E5%ED% E8

И эти тоже:
https://owen.ru/forum/showthread.php?t=27739&page=3&highlight=%D2%E5%F0%EC%EE%F1%F2%E0%F2

https://owen.ru/forum/showthread.php?t=23201&page=16

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

Буду признателен за любую помощь!
61644

День добрый, делал пару лет назад на ПР200 установку мыть детали, сейчас стоит задача переделать на ПР102 с внешними дисплеями СМИ2 или ИПП120 или СП310, так как всю визуализацию переделывать нужно, назрел вопрос, можно ли облегчить данную задачу.

Мы имеем 8 программ мойки, у каждой программы 8 шагов, каждый шаг может быть одним из 5 режимов ну и каждому шагу назначается время (если это не пропуск шага). Все программы, шаги и режимы должны настраиваться в любых вариантах пользователем и сохранятся в энергонезависимой памяти, время шага так же.

Вот как я это реализовал на ПР200

61603
61604
61605

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

В общем буду рад любой помощи. Спасибо!

Dimensy
13.07.2022, 18:55
Изучил все проекты что Вы указали но подходящего не нашел (
Убрал лишнее что бы не отвлекало и прикладываю проект, может я просто неправильно выразился в предыдущем посту.

Буду признателен за любую помощь!
61644

День добрый, делал пару лет назад на ПР200 установку мыть детали, сейчас стоит задача переделать на ПР102 с внешними дисплеями СМИ2 или ИПП120 или СП310, так как всю визуализацию переделывать нужно, назрел вопрос, можно ли облегчить данную задачу.

Мы имеем 8 программ мойки, у каждой программы 8 шагов, каждый шаг может быть одним из 5 режимов ну и каждому шагу назначается время (если это не пропуск шага). Все программы, шаги и режимы должны настраиваться в любых вариантах пользователем и сохранятся в энергонезависимой памяти, время шага так же.

Вот как я это реализовал на ПР200

61603
61604
61605

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

В общем буду рад любой помощи. Спасибо!

1. ИПП120 это тот же ПР200, но без входов-выходов - поэтому просто переносите программу, а выходные данные передавайте по сети на ПР102
2. Сетевые переменные в режиме слейв уже являются энергонезависимыми, поэтому можно просто поменять энергонезависимые переменные на сетевые + можно сделать их инициализацию на значение по умолчанию при первом запуске (есть такой макрос где-то на просторах форума)

Сергей0308
13.07.2022, 18:58
Изучил все проекты что Вы указали но подходящего не нашел (
Убрал лишнее что бы не отвлекало и прикладываю проект, может я просто неправильно выразился в предыдущем посту.

Буду признателен за любую помощь!
61644

День добрый, делал пару лет назад на ПР200 установку мыть детали, сейчас стоит задача переделать на ПР102 с внешними дисплеями СМИ2 или ИПП120 или СП310, так как всю визуализацию переделывать нужно, назрел вопрос, можно ли облегчить данную задачу.

Мы имеем 8 программ мойки, у каждой программы 8 шагов, каждый шаг может быть одним из 5 режимов ну и каждому шагу назначается время (если это не пропуск шага). Все программы, шаги и режимы должны настраиваться в любых вариантах пользователем и сохранятся в энергонезависимой памяти, время шага так же.

Вот как я это реализовал на ПР200

61603
61604
61605

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

В общем буду рад любой помощи. Спасибо!

Обратите внимание на принцип организации экранов в проектах "Командоаппарат..." и "Термостат..."(две нижние ссылки, что давал), я не создаю отдельный экран на каждую уставку(программу), один экран используется на все уставки(программы), только номер уставки(программы) будет меняется, аналогично можно поступить и с шагами!
При передаче по сети это станет большим преимуществом, не придётся сотни переменных передавать, тем более, что это и невозможно в ПР200(ИПП120) максимум 64. Короче, сможете обойтись несколькими переменными и пару экранов хватит на всё про всё, мне так кажется!
Готового проекта боюсь не найдёте, как я понимаю Вы ищете готовый проект.
К тому же в одну переменную можно несколько уставок загнать(сжать уставки), для этого нужно знать диапазон и шаг(ступеньку) изменения!

evgenykip
14.07.2022, 07:19
Перезапись переменной саму в себя
https://owen.ru/forum/showthread.php?t=36186

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

evgenykip
14.07.2022, 07:23
Уважаемые, разъясните мне ситуацию: почему нижний блок сравнения получает значения а верхний нет ?

https://i.ibb.co/cxHdx9j/EQ.jpg (https://ibb.co/kMfFMTt)

Dimensy
14.07.2022, 07:45
Уважаемые, разъясните мне ситуацию: почему нижний блок сравнения получает значения а верхний нет ?

https://i.ibb.co/cxHdx9j/EQ.jpg (https://ibb.co/kMfFMTt)

переменная "откр" нигде не используется

evgenykip
14.07.2022, 08:13
переменная "откр" нигде не используется

затупил я ... Благодарю за помощь !

Saint999
14.07.2022, 10:28
Готового проекта боюсь не найдёте, как я понимаю Вы ищете готовый проект.

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

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

Вот пример word to byte? а наоборот как будет не подскажите?
61650
Спасибо.

petera
14.07.2022, 10:48
Я понимаю что готового не найду, но хоть что то похожее что бы кусок вырвать себе)

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

Вот пример word to byte? а наоборот как будет не подскажите?
61650
Спасибо.

Умножай и складывай...

ЗЫ.
61651

или так

61652

Сергей0308
14.07.2022, 12:47
Я понимаю что готового не найду, но хоть что то похожее что бы кусок вырвать себе)

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

Вот пример word to byte? а наоборот как будет не подскажите?
61650
Спасибо.


Умножай и складывай...

ЗЫ.
61651

или так

61652

Я применяю логическую функцию "OR", она работает и с целочисленными переменными(что к ней подключите)!

61659

61660

kondor3000
14.07.2022, 14:08
Я понимаю что готового не найду, но хоть что то похожее что бы кусок вырвать себе)

Я с большего разобрался с командоаппаратом (точнее с частью сохранения через меню), а вот как с целочисленными все это провернуть пока не получилось сделать, сам проект уже обрезал до епром и экранов, провожу опыты.
Вот пример word to byte? а наоборот как будет не подскажите?
Спасибо.

Интересно, накой в Лоджике байты, если они не поддерживаются в принципе?

Сергей0308
14.07.2022, 15:03
Интересно, накой в Лоджике байты, если они не поддерживаются в принципе?

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

Saint999
14.07.2022, 15:36
Я же один из вариантов применения чуть выше написал, короче, можно поместить в одну переменную несколько уставок(если их диапазон позволяет), что позволит передавать по сети кратно больше уставок, а т. к. количество сетевых переменных и так не велико, может быть что и другого варианта не будет!
Ещё, аналогичным способом можно и энергонезависимую память сэкономить(более рационально использовать), её количество тоже ограничено и в принципе относительно невелико.

Все верно, в командоаппарате пытаюсь вместо булевых переменных сделать внесение с экрана по 4 байта и потом их в епром засовывать тем самым уменьшить количество переменных во первых, а во вторых сам алгоритм работы у меня сильно уменьшится если получится так реализовать.
Я не программист, просто в свободное от работы время ковыряю ардуины и ПР, сугубо для себя или что то мелкое по работе, например ПР200 как счетчик наработки 8 насосов, да жирно но дешевле чем 8 механических и места занимает меньше, или китайские клапана тестировать на количество срабатываний, подключил и щелкает по очереди их и считает количество.
Данный проект реализован на ПЛК100 на ST, я просто для себя что бы разобраться, я вижу как там работает в живую, и пытаюсь сделать это на ПР.
Всем спасибо за помощь!

Saint999
14.07.2022, 18:07
Обратите внимание на принцип организации экранов в проектах "Командоаппарат..." и "Термостат..."(две нижние ссылки, что давал), я не создаю отдельный экран на каждую уставку(программу), один экран используется на все уставки(программы), только номер уставки(программы) будет меняется, аналогично можно поступить и с шагами!
При передаче по сети это станет большим преимуществом, не придётся сотни переменных передавать, тем более, что это и невозможно в ПР200(ИПП120) максимум 64. Короче, сможете обойтись несколькими переменными и пару экранов хватит на всё про всё, мне так кажется!
Готового проекта боюсь не найдёте, как я понимаю Вы ищете готовый проект.
К тому же в одну переменную можно несколько уставок загнать(сжать уставки), для этого нужно знать диапазон и шаг(ступеньку) изменения!

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

Подскажите хоть в правильном направлении иду? или не получится так, а т о мало ли что)

61669

Сергей0308
14.07.2022, 19:28
Вот что смог наваять с сохранением на одном экране 4 шага и 4 времени, второй экран 4 шага и 4 времени второй программы, осталось научится вынимать эти значения из памяти в зависимости от выбранной программы, и научить экраны панелей оператора так же делать)

Подскажите хоть в правильном направлении иду? или не получится так, а т о мало ли что)

61669

Приблизительно так!
Только матрицу памяти лучше использовать полностью, а не на половину, сейчас Вы используете только половину имеющихся ячеек памяти!

evgenykip
15.07.2022, 06:44
Уважаемые, приветствую. Научите, как писать в "BLiNK" с помощью "блок записи в ФБ", или это невозможно ? просто, "блок записи в ФБ" целочисленный, а "BLiNK" флоат ...

Сергей0308
15.07.2022, 06:48
Уважаемые, приветствую. Научите, как писать в "BLiNK" с помощью "блок записи в ФБ", или это невозможно ? просто, "блок записи в ФБ" целочисленный, а "BLiNK" флоат ...

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

В принципе с помощью блока записи в ФБ пишутся и вещественные переменные, например в ПИД!

Saint999
15.07.2022, 09:43
Приблизительно так!
Только матрицу памяти лучше использовать полностью, а не на половину, сейчас Вы используете только половину имеющихся ячеек памяти!

8 программ*8 шагов (или 8 ячеек вермени для каждого шага) = 64/4 (упаковываю 4 байта в ворд) = 16 ячеек памяти так получается?
Тоесть в теории мне одного епрома на все должно хватить, только понять как за раз в него две ячейки памяти записывать?

Сергей0308
15.07.2022, 10:25
8 программ*8 шагов (или 8 ячеек вермени для каждого шага) = 64/4 (упаковываю 4 байта в ворд) = 16 ячеек памяти так получается?
Тоесть в теории мне одного епрома на все должно хватить, только понять как за раз в него две ячейки памяти записывать?

Так давайте наконец(я уже такое предлагал) выясним сколько вам памяти требуется для одного шага!
У Вас в каждом шаге две переменные, первая: выбор из четырёх вариантов(пропуск, вода, химия_1 и химия_2) займёт два бита и вторая переменная уставка времени - Вы так и не удосужились написать требуемый Вам диапазон и минимальную ступеньку изменения! Приведу пример по аналогии со школьными звонками(ранее и такое делал), так вот там минимальная ступенька изменения - 5 минут, так как звонки происходят только при минутах кратными пяти, этим сразу достигается уменьшение диапазона уставок в пять раз, по сравнению с минимальной ступенькой в минуту! И разумеется памяти для хранения меньшего диапазона требуется меньше, если требуется её рациональное использование, когда её не хватает.
И ещё, надеюсь, Вы внимательно смотрели мои проекты, там введённые настройки "подтягиваются" на экран, что удобно при редактировании и можно просто просмотреть установленные настройки, если возникли какие сомнения в их правильности! Короче, это требует сохранения промежуточных(оперативных) переменных, которые мы можем использовать и для предварительного набора уставок для одной ячейки памяти, надеюсь, смысл понятен и можно посмотреть как это у меня выполнено!

evgenykip
15.07.2022, 11:36
Лабуду не пишите, уставки времени с помощью блока записи в функциональный блок пишутся в миллисекундах и это целочисленная переменная!

В принципе с помощью блока записи в ФБ пишутся и вещественные переменные, например в ПИД!

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

Сергей0308
15.07.2022, 11:43
Да это, в общем то, не лабуда, а вопрос новичка был ...
А у вас, по быдлячьи, отвечать на вопросы любимое развлечение очевидно ?

Я, в отличии от Вас, очень культурно написал!
И, что это за вопрос, если можно открыть ОЛ и посмотреть, это за гранью разумного понимания!

evgenykip
15.07.2022, 11:47
Я, в отличии от Вас, очень культурно написал!
И, что это за вопрос, если можно открыть ОЛ и посмотреть, это за гранью разумного понимания!

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

Сергей0308
15.07.2022, 11:59
Если вас унизил такой вопрос, то предлагаю, лично вам, не отвечать больше на мои вопросы в подобном тоне.

Я в ваших советах не нуждаюсь!
Если мне понадобится совет, я непременно Вам сообщу!

Saint999
15.07.2022, 14:33
Так давайте наконец(я уже такое предлагал) выясним сколько вам памяти требуется для одного шага!
У Вас в каждом шаге две переменные, первая: выбор из четырёх вариантов(пропуск, вода, химия_1 и химия_2) займёт два бита и вторая переменная уставка времени - Вы так и не удосужились написать требуемый Вам диапазон и минимальную ступеньку изменения! Приведу пример по аналогии со школьными звонками(ранее и такое делал), так вот там минимальная ступенька изменения - 5 минут, так как звонки происходят только при минутах кратными пяти, этим сразу достигается уменьшение диапазона уставок в пять раз, по сравнению с минимальной ступенькой в минуту! И разумеется памяти для хранения меньшего диапазона требуется меньше, если требуется её рациональное использование, когда её не хватает.


В самом начале я про 1-600 минут писал, но это много 1-255 с шагом 1 минута за глаза. Плюс режим выбор из четырёх вариантов(пропуск, вода, химия_1 и химия_2).
Но памяти хватает даже если все в переменные загнать как у меня было, здесь я просто количество переменных уменьшить пытаюсь, что бы можно было с панелей оператора настраивать.


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


Так я же приложил проект, как раз в нем же дисплей как у Вас реализован:
61686
61687
61688

Сергей0308
15.07.2022, 15:27
В самом начале я про 1-600 минут писал, но это много 1-255 с шагом 1 минута за глаза. Плюс режим выбор из четырёх вариантов(пропуск, вода, химия_1 и химия_2).
Но памяти хватает даже если все в переменные загнать как у меня было, здесь я просто количество переменных уменьшить пытаюсь, что бы можно было с панелей оператора настраивать.


Так я же приложил проект, как раз в нем же дисплей как у Вас реализован:
61686
61687
61688

Получается для второй уставки достаточно 8 бит(диапазон 0-255). В сумме получается надо 10 бит памяти на один шаг программы, короче, в одну ячейку(32 бита) матрицы памяти можно уставки для трёх шагов программы записать, 32 ячейки хватит на 96 шагов или 12 таких программ как у Вас поместится в одну матрицу памяти, а Вы говорите одной матрицы хватит на вашу программу!

Saint999
15.07.2022, 15:56
Получается для второй уставки достаточно 8 бит(диапазон 0-255). В сумме получается надо 10 бит памяти на один шаг программы, короче, в одну ячейку(32 бита) матрицы памяти можно уставки для трёх шагов программы записать, 32 ячейки хватит на 96 шагов или 12 таких программ как у Вас поместится в одну матрицу памяти, а Вы говорите одной матрицы хватит на вашу программу!

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

Расширять до 12 особо смысла нет, хотя там я жестко прописал 8, а можно настраиваемый параметр на экран вынести и будет настраиваться максимальное количество.
Вот реально рабочая таблица, утвержденная технологом, в ней два шага придумать не смогли)
61693
Но вопрос открытый остается как в один блок памяти за раз писать 10 бит, потом следующие 10 и так 8 раз) и самое страшное я еще не придумал как в процессе их читать из памяти, даже при теперешней реализации записи.

Сергей0308
15.07.2022, 17:39
Ну я имел ввиду на весь проект, 8 программ, даже если в настройку шагов держать в 8 битах.

Расширять до 12 особо смысла нет, хотя там я жестко прописал 8, а можно настраиваемый параметр на экран вынести и будет настраиваться максимальное количество.
Вот реально рабочая таблица, утвержденная технологом, в ней два шага придумать не смогли)
61693
Но вопрос открытый остается как в один блок памяти за раз писать 10 бит, потом следующие 10 и так 8 раз) и самое страшное я еще не придумал как в процессе их читать из памяти, даже при теперешней реализации записи.

Так какие проблемы с чтением из матрицы памяти, мне кажется там проблем нет в принципе! У Вас же все шаги последовательно выполняются и таймер один потребуется, я вроде приводил пример по верхней ссылке!
Тем более Вы говорите, что когда Вы заходите в меню для редактирования уставки у Вас ранее установленное значение "подтягивается" на экран, значит на экран Вы можете значение вывести(ранее установленное в матрицу памяти), а в программу для таймера не можете, неужели нельзя поступить аналогично?!
И ещё, если целочисленная переменная 32 битная, как у нас в матрице памяти, то в слейве её придётся разбить на два регистра!
И ещё что хотелось сказать на форуме не одна тема была как продублировать экраны, чтобы можно было редактировать значения из двух мест(например экраны ПР200 и ИПП120), так вам намного проще надо, просто перенести экран на ИПП120(насколько смог понять)!
Короче, пробуйте, должно получиться!

Saint999
15.07.2022, 17:59
Так какие проблемы с чтением из матрицы памяти, мне кажется там проблем нет в принципе! У Вас же все шаги последовательно выполняются и таймер один потребуется, я вроде приводил пример по верхней ссылке!
Тем более Вы говорите, что когда Вы заходите в меню для редактирования уставки у Вас ранее установленное значение "подтягивается" на экран, значит на экран Вы можете значение вывести(ранее установленное в матрицу памяти), а в программу для таймера не можете, неужели нельзя поступить аналогично?!
И ещё, если целочисленная переменная 32 битная, как у нас в матрице памяти, то в слейве её придётся разбить на два регистра!
И ещё что хотелось сказать на форуме не одна тема была как продублировать экраны, чтобы можно было редактировать значения из двух мест(например экраны ПР200 и ИПП120), так вам намного проще надо, просто перенести экран на ИПП120(насколько смог понять)!
Короче, пробуйте, должно получиться!

Может поможете немного? А то я уже совсем запутался )

Сергей0308
15.07.2022, 18:37
Может поможете немного? А то я уже совсем запутался )

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

Saint999
20.07.2022, 17:47
Только конкретно и по одному пункту спрашиваете.

Как внести в епром предустановленные параметры?
Выше выкладывал какой именно из Вашего проекта использую.

Сергей0308
20.07.2022, 19:02
Как внести в епром предустановленные параметры?
Выше выкладывал какой именно из Вашего проекта использую.

Сформировать сигнал первого включения ПР, была не одна тема по инициализации при первом включении, где это можно подсмотреть, короче по этому сигналу взводить триггер и последовательно записывать значения во все 32 ячейки матрицы памяти из констант с помощью мультиплексора.
У меня и ПЗУ имеется на 257 ячеек, можно и из ПЗУ данные взять для инициализации, Вам конечно этого многовато будет, в смысле, сможете 8 разных уставок(программ) в памяти ПЗУ иметь!
Короче, я не понял, у Вас уставки будут с экрана меняться(редактироваться) или просто надо менять 8 постоянных уставок(программ), второе намного проще!
Вот проект с макросом ПЗУ:
61770
Если затрудняетесь как сформировать импульс первого включения ПР(сразу после заливки программы) можно сделать немного проще, добавить в меню(программу) пункт заводские установки, при его активации происходит запись значений из ПЗУ в матрицу памяти(EEPROM), плюс в том, что можно всегда к ним вернутся и используя мой ПЗУ можно иметь 8 вариантов заводских установок, тогда перед активацией этого пункта нужно будет сделать выбор нужного варианта из восьми.

Вот заводские установки нарисовал(вариант механизма), с экрана активируете переменную "Старт" и процесс пошёл:

61786

61787

Saint999
26.07.2022, 16:41
Вот заводские установки нарисовал(вариант механизма), с экрана активируете переменную "Старт" и процесс пошёл:



День добрый, спасибо за алгоритм!
Был в командировке, не мог посмотреть, только вернулся сразу запустил отладку и первую ячейку не записывает, всегда равна после считывания 0, или что то я не так делаю?

61857

Сергей0308
26.07.2022, 18:47
День добрый, спасибо за алгоритм!
Был в командировке, не мог посмотреть, только вернулся сразу запустил отладку и первую ячейку не записывает, всегда равна после считывания 0, или что то я не так делаю?

61857

Вы в симуляторе смотрели или в ПР(железе)?
Короче, поправил, в симуляторе теперь все ячейки пишутся:

61865

Dimensy
27.07.2022, 15:12
В справке Лоджика говорится, что в менеджере экранов должна быть кнопка добавляющая группу. Кнопки нет, еще одну группу создать нельзя. Так для чего там эту группу сделали?

Saint999
27.07.2022, 16:28
Вы в симуляторе смотрели или в ПР(железе)?
Короче, поправил, в симуляторе теперь все ячейки пишутся:

61865

В симуляторе, дома прибора нету.
Спасибо, буду пробовать!

keysansa
27.07.2022, 16:46
Вы в симуляторе смотрели или в ПР(железе)?
Короче, поправил, в симуляторе теперь все ячейки пишутся:

Прошу прощения, уже можно ПР "в железе" смотреть?

Сергей0308
27.07.2022, 18:09
Прошу прощения, уже можно ПР "в железе" смотреть?

Конечно, лучше в железе проверять, в смысле, заливаете программу в ПР и убеждаетесь, что работает как задумано, я не раз примеры приводил на форуме(темы уже не помню) когда в симуляторе не работало(как задумано), а заливаю в ПР - всё работает, наверно бывает и наоборот! И некоторые моменты в симуляторе и не проверишь!

keysansa
27.07.2022, 19:52
Конечно, лучше в железе проверять, в смысле, заливаете программу в ПР и убеждаетесь, что работает как задумано, я не раз примеры приводил на форуме(темы уже не помню) когда в симуляторе не работало(как задумано), а заливаю в ПР - всё работает, наверно бывает и наоборот! И некоторые моменты в симуляторе и не проверишь!

И где тут железо?

ЗЫ. В идеале?

Сергей0308
27.07.2022, 20:41
И где тут железо?

ЗЫ. В идеале?

Если ПР не работает(или не так работает, как задумано) обычно ищут причину, разделяя программную(проект) и аппаратную(ПР) часть, вот эту аппаратную часть и называют "железом", Вы, я так понимаю, железом называете 26 элемент из таблицы Менделеева?
Тогда по теме железа: знаете от куда взялись на Земле все элементы, тяжелее железа по атомной массе? При взрыве(коллапсе) сверхновой(гиперновой) звезды!

AntonKiselev
02.08.2022, 14:09
1. Есть с десяток ОДИНАКОВЫХ макросов (копипаст), необходимо внутрь каждого из них передавать одно и тоже значение, в один и тот же ФБ (длительность импульса TON).
Сделал внутри макроса "переменная" → "write to FB", однако на основной схеме эти переменные не видны. Как быть, только лишний вход у макроса создавать?
2. Пробовал это: https://docs.owen.ru/product/programmnoe_obespechenie_owen_logic/986/53824#topic-53844, далее пункт 5 (задать «видимость» из программы уставок ФБ, использованных в макросе). Почему я всё равно не вижу переменных макроса в основной программе?
3. Как вообще можно решить задачу создания "глобальных" переменных, доступных в любом макросе? Только через дополнительные входы/выходы?

kondor3000
02.08.2022, 16:05
1. Есть с десяток ОДИНАКОВЫХ макросов (копипаст), необходимо внутрь каждого из них передавать одно и тоже значение, в один и тот же ФБ (длительность импульса TON).
Сделал внутри макроса "переменная" → "write to FB", однако на основной схеме эти переменные не видны. Как быть, только лишний вход у макроса создавать?
2. Пробовал это: https://docs.owen.ru/product/programmnoe_obespechenie_owen_logic/986/53824#topic-53844, далее пункт 5 (задать «видимость» из программы уставок ФБ, использованных в макросе). Почему я всё равно не вижу переменных макроса в основной программе?
3. Как вообще можно решить задачу создания "глобальных" переменных, доступных в любом макросе? Только через дополнительные входы/выходы?
Есть 2 варианта:
Можно задать время константой прямо в макросе или сделать дополнительный вход в макросе.
Добавить вход можно в готовом макросе, без проблем. Макросы потом все обновить.

AntonKiselev
02.08.2022, 16:21
Есть 3 варианта:
Поместите "write to FB" не в макросе, а снаружи, и выберете нужный TON
Я не могу этого сделать: OwenLogic не предлагает мне те ФБ, которые внутри макросов.


Есть 3 варианта:
Можно задать время константой прямо в макросе или сделать дополнительный вход в макросе.
Это всё понятно. Но это не константа — параметр вариативен.
И я как раз не хочу городить лишний вход, а хочу заранее внутри макроса прописать "глобальная переменная" → "write to FB", но не могу найти, как это сделать.

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

kondor3000
02.08.2022, 16:29
Уже исправил, "write to FB" снаружи не работает, только вход добавить.

J1250
04.08.2022, 07:35
Здравствуйте! Время в режиме симуляции идет медленнее реального, даже в пустом проекте, где один вход соединен с одним выходом. Это нормальное явление?

kondor3000
04.08.2022, 08:15
Здравствуйте! Время в режиме симуляции идет медленнее реального, даже в пустом проекте, где один вход соединен с одним выходом. Это нормальное явление?

Нормальное

capzap
04.08.2022, 08:42
Здравствуйте! Время в режиме симуляции идет медленнее реального, даже в пустом проекте, где один вход соединен с одним выходом. Это нормальное явление?

в режиме симуляции если выставить значения полей в единичку симуляция пойдет значительно быстрее 62010

hodryyww
08.08.2022, 07:20
Доброе утро! Делаю автоматическое управление гаражными воротами на пр200. Имеются 2 датчика света. Они должны срабатывать лишь на 2 коротких импульса..... Можно объяснить это на примере компьютерной мыши, то есть, когда вы кликаете 2 раза без паузы условная папка откроется, а если между кликами будет пауза - то нет
62043

EFrol
08.08.2022, 08:23
Не совсем понятен Ваш вопрос.
Вам нужна схема включения выключения по двойному импульсу?
62046

hodryyww
08.08.2022, 09:35
Да, все верно, подобное уже собрал. Только вот передо мной стоит задача. Попробую объяснить ее еще раз. Если пауза между нажатиями будет больше чем 0.5 секунд, то все придется делать заново

kondor3000
08.08.2022, 10:40
Да, все верно, подобное уже собрал. Только вот передо мной стоит задача. Попробую объяснить ее еще раз. Если пауза между нажатиями будет больше чем 0.5 секунд, то все придется делать заново


Не понятна постановка задачи. Вы хотите если человек пересёк 2 датчика, свет включился, если пересёк обратно, свет погас? 62050
Тогда нужен ещё счётчик людей вошедших и вышедших.

hodryyww
08.08.2022, 10:58
Датчик света должен работать на 2 коротких импульса, можно даже сказать, что практически без паузы, иначе по условию он будет реагировать на обычный солнечный свет. То есть, условно говоря, машина подъезжает к гаражу, моргает фарами 2 раза и ворота открываются. Если машина моргнула фарами один раз, сделала паузу и моргнула второй раз - ворота открыться не должны

EFrol
08.08.2022, 11:01
У вас "вверх" и "вниз" обычные кнопки без фиксации? Или тумблер "откр/закр"?
Что мешает сделать так:
62051

kondor3000
08.08.2022, 11:15
Датчик света должен работать на 2 коротких импульса, можно даже сказать, что практически без паузы, иначе по условию он будет реагировать на обычный солнечный свет. То есть, условно говоря, машина подъезжает к гаражу, моргает фарами 2 раза и ворота открываются. Если машина моргнула фарами один раз, сделала паузу и моргнула второй раз - ворота открыться не должны

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

EFrol
08.08.2022, 11:39
На некоторых заводах межцеховые так работают.

hodryyww
08.08.2022, 12:05
К моему большому сожалению таково техзадание........... Уже неделю ломаю голову, как решить эту проблему

capzap
08.08.2022, 12:31
двойной клик рассматривался еще в 2013 году (https://owen.ru/forum/showthread.php?t=7023&p=102499&viewfull=1#post102499), чего там голову ломать, надо просто поиском воспользоваться

kondor3000
08.08.2022, 13:27
К моему большому сожалению таково техзадание........... Уже неделю ломаю голову, как решить эту проблему

Так макрос который вам дали так и работает, единственное время можно подобрать не 0,5 сек. а 0.2-0.3 сек. Быстрее, вряд ли кто моргнуть успеет 2 раза.

capzap , ссылки не качаются эти давно, тем более 2013 г.

Сергей0308
08.08.2022, 17:05
Датчик света должен работать на 2 коротких импульса, можно даже сказать, что практически без паузы, иначе по условию он будет реагировать на обычный солнечный свет. То есть, условно говоря, машина подъезжает к гаражу, моргает фарами 2 раза и ворота открываются. Если машина моргнула фарами один раз, сделала паузу и моргнула второй раз - ворота открыться не должны

А, если машина моргнула фарами 3 раза или более раз(с короткой паузой), что должно произойти?
И, двойной клик это не совсем то, в смысле, там не контролируется продолжительность сигнала, только интервал между сигналами.
И, как бы датчик не должен срабатывать(засвечиваться) от солнечного света, иначе система перестанет функционировать.
Короче, если сделать максимально примитивно(следует начинать изучение с таких алгоритмов, понятных для Вас), то примерно как-то так без учёта максимального(точного) количества сигналов(импульсов) в серии:

62058

И, я так подозреваю, от одиночного моргания фарами ворота должны закрываться?
Может проще сделать, чтобы с телефона(смартфона) по WIFI(блютуз) открывать(закрывать) ворота, телефон у Вас наверняка есть, короче, "rovki" подобные решения предлагает у него на форуме даже отдельная тема есть по этому вопросу!

bayk
09.08.2022, 01:00
А, если машина моргнула фарами 3 раза или более раз(с короткой паузой), что должно произойти?
И, двойной клик это не совсем то, в смысле, там не контролируется продолжительность сигнала, только интервал между сигналами.
И, как бы датчик не должен срабатывать(засвечиваться) от солнечного света, иначе система перестанет функционировать.
Короче, если сделать максимально примитивно(следует начинать изучение с таких алгоритмов, понятных для Вас), то примерно как-то так без учёта максимального(точного) количества сигналов(импульсов) в серии:

62058

И, я так подозреваю, от одиночного моргания фарами ворота должны закрываться?
Может проще сделать, чтобы с телефона(смартфона) по WIFI(блютуз) открывать(закрывать) ворота, телефон у Вас наверняка есть, короче, "rovki" подобные решения предлагает у него на форуме даже отдельная тема есть по этому вопросу!
не забивай голову. это опять школоло набежало.

IVM
09.08.2022, 09:20
не забивай голову. это опять школоло набежало.

Вроде рановато. Учебный год еще не начался.

Mihali4
09.08.2022, 11:47
Здравствуйте! Простейший пример. Почему после преобразования в целочисленное значение результат меньше на 1?62063

Mihali4
09.08.2022, 12:36
После деления 30 на 1,2 получается целое число 25. Также как если 300 поделить на 1,2 получается 250, а не 249 как в макросе.

Mihali4
09.08.2022, 12:53
Так получится, но какие значения будут на выходе при изменениях переменной на входе?
Да и преобразовать вещественное 250 в целое и получить 249 на выходе это нелогично - вот в чем вопрос.

Mihali4
09.08.2022, 12:57
25/1,2=20,8 должно быть 20, а с +0,5 получится 21

1exan
09.08.2022, 13:11
Здравствуйте! Простейший пример. Почему после преобразования в целочисленное значение результат меньше на 1?62063

Занятный баг

1exan
09.08.2022, 13:26
А в железе такой-же результат?

Mihali4
09.08.2022, 14:06
Последовал Вашему совету, прибавил 0,001

capzap
09.08.2022, 14:41
Последовал Вашему совету, прибавил 0,001

я не советовал прибавлять 0.001
я предлагаю один из вариантов округления называющийся Округление до указанного кратного (https://alphapedia.ru/w/Rounding 3.1 Округление до указанного кратного)

1exan
10.08.2022, 05:18
Судя по всему, результат деления имеет вид 24.999999, хотя и отображается в отладке как 25. Ну а блок преобразования к udint не округляет, а просто отбрасывает дробную часть.
Где-то на форуме выкладывали макрос округления к ближайшему целому, похоже нужно в таких случаях перед блоком преобразования использовать что-то подобное.
Округление с нужным количеством знаков:


function fRound : real;
var_input
rIn : real;
N : udint;
end_var

var
tmp : udint;
end_var


tmp := 10;
if N.0 then fRound := udint_to_real(tmp); else fRound := 1; end_if;
N := SHR(N,1);
while N > 0 do
tmp := tmp * tmp;
if N.0 then fRound := fRound * udint_to_real(tmp); end_if;
N := SHR(N,1);
end_while;

rIn := rIn * fRound;
fRound := (( rIn / abs(rIn) ) * udint_to_real(real_to_udint((abs(rIn) + 0.5)))) / fRound;

end_function

kondor3000
10.08.2022, 08:44
Судя по всему, результат деления имеет вид 24.999999, хотя и отображается в отладке как 25. Ну а блок преобразования к udint не округляет, а просто отбрасывает дробную часть.
Где-то на форуме выкладывали макрос округления к ближайшему целому, похоже нужно в таких случаях перед блоком преобразования использовать что-то подобное.
Округление с нужным количеством знаков:


Ага, забил на вход 0.71 и получил на выходе 0.8. Офигенно просто))). 62083
Var1:=real_to_udint(rin * 10)/10.0 ; куда проще написать

1exan
10.08.2022, 09:14
Ага, забил на вход 0.71 и получил на выходе 0.8. Офигенно просто))).
Var1:=real_to_udint(rin * 10)/10.0 ; куда проще написать
Проверил - у меня все правильно:
62082
А что дает "Var1:=real_to_udint(rin * 10)/10.0 ?

kondor3000
10.08.2022, 09:19
Проверил - у меня все правильно:

Проверял в CDS 2.3, да в Лоджике правильно. Скрин выложил выше.

1exan
10.08.2022, 10:07
Проверял в CDS 2.3, да в Лоджике правильно. Скрин выложил выше.

Ну Лоджик до CDS ещё пилить и пилить

keysansa
11.08.2022, 21:13
Если ПР не работает(или не так работает, как задумано) обычно ищут причину, разделяя программную(проект) и аппаратную(ПР) часть, вот эту аппаратную часть и называют "железом", Вы, я так понимаю, железом называете 26 элемент из таблицы Менделеева?
Тогда по теме железа: знаете от куда взялись на Земле все элементы, тяжелее железа по атомной массе? При взрыве(коллапсе) сверхновой(гиперновой) звезды!

Шутка хороша, но чуть выше в сообщении - симуляция.
ЗЫ. Юмор - оценил ))

Mr_Camel
12.08.2022, 16:40
62126
Товарищи, как убрать замок? И что это? Не нашел в инструкциях. Не могу менять переменные в режиме симулятора.

kondor3000
12.08.2022, 16:59
62126
Товарищи, как убрать замок? И что это? Не нашел в инструкциях. Не могу менять переменные в режиме симулятора.

Выйдите из симуляции и меняйте, сколько угодно. В симуляции можно изменить только входные переменные, 62127
например нажав на I1 и замок не мешает)))
А так же ваша переменная gr1 должна быть подключена к работающему блоку (к выходу), а не просто висеть в воздухе или сделайте её энергонезависимой (хоть на время) или выведите на экран.

Mr_Camel
12.08.2022, 17:28
Выйдите из симуляции и меняйте, сколько угодно. В симуляции можно изменить только входные переменные, 62127
например нажав на I1 и замок не мешает)))
А так же ваша переменная gr1 должна быть подключена к работающему блоку (к выходу), а не просто висеть в воздухе или сделайте её энергонезависимой (хоть на время) или выведите на экран.
Не я конечно новичок,но не на столько.Как появился этот замок в режиме симулятора,нельзя менять значения по двойному щелчку

Mr_Camel
12.08.2022, 17:43
Выйдите из симуляции и меняйте, сколько угодно. В симуляции можно изменить только входные переменные, 62127
например нажав на I1 и замок не мешает)))
А так же ваша переменная gr1 должна быть подключена к работающему блоку (к выходу), а не просто висеть в воздухе или сделайте её энергонезависимой (хоть на время) или выведите на экран.
Переменная не весит в воздухе.Дальше используется.Просто не пойму,что он значит.И почему вдруг пропала возможность менять значения.

1exan
12.08.2022, 18:10
Переменная не весит в воздухе.Дальше используется.Просто не пойму,что он значит.И почему вдруг пропала возможность менять значения.

У меня тоже исчезла возможность изменения, версия 1.23.300.0, обновился сегодня. У вас какая версия?

UPD: в онлайн-отладке всё меняется, а в симуляциии - нет. А мне казалось, что раньше и в симуляции можно было.

kondor3000
12.08.2022, 21:31
Переменная не весит в воздухе.Дальше используется.Просто не пойму,что он значит.И почему вдруг пропала возможность менять значения.

У меня тоже исчезла возможность изменения, версия 1.23.300.0, обновился сегодня. У вас какая версия?
UPD: в онлайн-отладке всё меняется, а в симуляциии - нет. А мне казалось, что раньше и в симуляции можно было.

Вот скрин, версия последняя 300, в эмуляции изменены и булевая и переменная Float, всё работает 62130
Проверил в симуляции и ПР200 и ПР103 и целочисленные.
Выкладывайте свои проекты, что у вас не работает.

Mr_Camel
13.08.2022, 00:47
Вот скрин, версия последняя 300, в эмуляции изменены и булевая и переменная Float, всё работает 62130
Проверил в симуляции и ПР200 и ПР103 и целочисленные.
Выкладывайте свои проекты, что у вас не работает.

Все нашел, в чем беда. Спасибо Юрию Ревака))) https://youtu.be/1Er-MqJ6vZ4?list=PL...B-CXsKH-&t=148. Надо поставить галку энергонезависимость. Тогда все работает, но правда до этого у меня и без галки работало. Может какая то плавающая ошибка, от версии к версии.

kondor3000
13.08.2022, 10:59
Все нашел, в чем беда. Спасибо Юрию Ревака))) https://youtu.be/1Er-MqJ6vZ4?list=PL...B-CXsKH-&t=148. Надо поставить галку энергонезависимость. Тогда все работает, но правда до этого у меня и без галки работало. Может какая то плавающая ошибка, от версии к версии.

Чуть выше моё сообщение #2435, достаточно было прочитать. Есть 3 варианта.


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

1exan
13.08.2022, 13:03
Вот скрин, версия последняя 300, в эмуляции изменены и булевая и переменная Float, всё работает 62130
Проверил в симуляции и ПР200 и ПР103 и целочисленные.
Выкладывайте свои проекты, что у вас не работает.

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

kondor3000
13.08.2022, 13:36
Вы здесь меняете не значение переменных, а значение входов. А я имел в виду такой метод изменения значения:
62133
Вот он только в отладке работает

Когда вы читать научитесь? Собщение #2435

В симуляции можно изменить только входные переменные,
например нажав на I1 и замок не мешает)))

Alex_Under_ B
13.08.2022, 14:15
С точки зрения логики, да, с точки зрения протекания времени нет, так как в симуляции Вы сами задаете период и время цикла.

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

Василий Кашуба
13.08.2022, 21:17
Юрий добрый день! Опять приходится вернуться к данному вопросу, программа большая и в режиме симуляции время таймеров бежит медленнее и с рывками, чем это можно видеть в стандарте (легкой программе). Программа записанная в приборе будет также себя вести медленнее и с рывками? или это просто тормоза ОЛ в режиме симуляции ?
Это только в симуляторе так.

Александр SPB
21.08.2022, 19:41
Добрый день. Такой вопрос. Имеется ПР 200 и термоконтроллеры Termodat. Суть такая, на панели управления Termodat оператор выставляет необходимую уставку нагрева. Через определенное время установка не нужна, но полностью охлаждать ее нельзя. По этому нужно перевести ее в режим энергосбережения. Я это попробовал реализовать это с помощью блока SEL. Но получается не совсем то что хочется, при включении блока SEL новая уставка записывается в термоконтроллер, но при снятии сигнала с SEL старая уставка не возвращается. Если на термоконтроллере в ручную изменить уставку, то будет та которую поставили. Если бы был один термоконтроллер, то можно и поменять, а если их 10, то процедура мало приятная. Подскажите как можно реализовать, чтоб при отключении блока SEL возвращалась старая уставка? Сделал переменную "Опрос" при ее отключении все равно старая уставка не возвращается. Не совсем понял как работает для регистров "Запуск чтения" "Запуск записи" "Статус".

bayk
21.08.2022, 19:58
вообще непонятно, что вы хотите сделать. опишите обывательским текстом. не вдаваясь в программирование.
а кто сказал, что ранее переданное число должно вернуться? вам нужно сначала записать последнюю вставку термоклньроллера се переменную, потом сделатб сел. а за ним ещё один сел, где усьавка сама на себя зациклена, чтобы поле сел она там осталась. или используйте макрос selchi

Александр SPB
21.08.2022, 20:08
В принципе я это так и представляю, пока не понял как это реализовать. Что за макрос selchi?

Ruslanadm
21.08.2022, 22:39
В принципе я это так и представляю, пока не понял как это реализовать. Что за макрос selchi?

Макрос из менеджера компонентов (Меню Файл - Менеджер компонентов)

Вот похожий на вашу задачу пример:

melky
22.08.2022, 08:49
Александр SPB и bayk ребята, не прокатит ваш вариант, ни один, ни другой... Включите логику для начала...
Если посмотреть на картинку автора, то что мы видим? SEL вычитывает сетевую переменную из Термодата и как бы записывает ее туда же. Как только мы через SEL записали что-то новое, что произойдет с сетевой переменной? правильно, она станет новым значением. И для SEL она уже сетевая....

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

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

з.ы. замкнутый круг :) как только мы из ПР200 заменили уставку в Термодате, ПР200 как-то должен знать, что уставка изменилась именно им а не просто пришла по сети из Термодата. Иначе мы так и "константу" будем менять кругами...

Нужна "защелка" какая-то, то есть смена переменной именно с экранной или же это смена переменной из сети....

1exan
22.08.2022, 09:32
...Суть такая, на панели управления Termodat оператор выставляет необходимую уставку нагрева. Через определенное время установка не нужна, но полностью охлаждать ее нельзя. По этому нужно перевести ее в режим энергосбережения...

Включение установки и перевод в режим энергосбережения производится от ПР200? (т.е. ПР200 как-то может определить, что установка работает или находится в режиме энергосбережения?)

melky
22.08.2022, 10:24
1exan это легко, просто по чтению переменной, а так же, что эту переменную записали с ПР.
Тут изменение переменной при чтении из Термодата надо отвязать от управления со стороны ПР. То есть если переменная изменилась, а ПР сам ее не менял, то это уставка Оператора и ее хранить и на нее возвращаться. то есть ее надо хранить не как сетевую переменную, а как уставку, пришедшую из сети при условии что мы не сами ее туда записали

Александр SPB
22.08.2022, 10:55
Все верно. Перед изменением уставки (режим энергосбережения задается с ПР) нужно сохранить предыдущее значение уставки, а затем вернуть ее обратно. Как не пойму:confused:

Dimensy
22.08.2022, 11:05
Все верно. Перед изменением уставки (режим энергосбережения задается с ПР) нужно сохранить предыдущее значение уставки, а затем вернуть ее обратно. Как не пойму:confused:

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

melky
22.08.2022, 11:25
Александр SPB у вас есть параметр, который вы можете отслеживать - это запись переменной со стороны ПР, с экрана или программы.
По этому читая из сетевой переменной параметр, если это делали не вы (не с экрана и не из уставки программы) заносите ее в какую-то переменную и не трогаете, и возврат соответственно на нее. Если это делали вы, то не трогаете эту переменную.

Александр SPB
22.08.2022, 11:29
Всем спасибо за ответы. Вечером доберусь до объекта, попробую.

Александр SPB
22.08.2022, 21:37
Dimensy
В ПР прошивку сегодня не получилось залить. Попробовал в режиме симулятора там получается что "Уст раб" то же должна быть сетевой переменной, так как откуда получать данные о текущей уставке? В этом случае программа не работает. Или я что то не так делаю?

Dimensy
23.08.2022, 06:05
Dimensy
В ПР прошивку сегодня не получилось залить. Попробовал в режиме симулятора там получается что "Уст раб" то же должна быть сетевой переменной, так как откуда получать данные о текущей уставке? В этом случае программа не работает. Или я что то не так делаю?

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

1exan
23.08.2022, 06:36
Dimensy
В ПР прошивку сегодня не получилось залить. Попробовал в режиме симулятора там получается что "Уст раб" то же должна быть сетевой переменной, так как откуда получать данные о текущей уставке? В этом случае программа не работает. Или я что то не так делаю?

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

melky
23.08.2022, 12:17
Забудьте вы про SelChange как страшный сон, у него есть определенный недостаток, который вам всю кровь выпьет :) а именно то, что даже защелкнув на входе переменную, он не поменяет на нее после выхода, так как переменная не менялась последней....

Вот вам картинкой защелка просто на SEL-ах, ну поменяйте на float если надо...

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

Dimensy
23.08.2022, 14:54
В Термодате регистры для записи новой уставки и чтения текущей разные или используется один и тот-же регистр?

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

Александр SPB
23.08.2022, 15:18
Если регистры чтения и записи уставки разные, тогда так должно работать

Регистры чтения и записи уставки разные. Как доберусь до приборов сразу все варианты проверю.

melky
23.08.2022, 15:44
Но записав в Termodat в регистре чтения же изменится значение ?

Dimensy
23.08.2022, 16:20
Регистры чтения и записи уставки разные. Как доберусь до приборов сразу все варианты проверю.

Ради интереса глянул инструкцию на Термодат 12К6. Регистров не нашел, но зато на регуляторе можно задать две уставки и переключаться между ними кнопкой, подключенной к дискретному входу. Может тогда не городить огород?

Александр SPB
23.08.2022, 21:28
Ради интереса глянул инструкцию на Термодат 12К6. Регистров не нашел, но зато на регуляторе можно задать две уставки и переключаться между ними кнопкой, подключенной к дискретному входу. Может тогда не городить огород?

Программа рабочая до того момента пока оператор при включенном энергосбережении не поменял уставку. После этого уставка перезаписалась на новую. Я сначала не поверил, проверил так и есть. Даже перезапуск ПР не вернул уставку на место, даже при том что она энергонезависимая. Проверил в симуляторе так и есть, при включенном энергосберегающем режиме при изменении сетевой переменной "Чтение уставки" происходит перезапись "Уст сбер".
По поводу огорода так бы сделал, но дискретный вход занят. Идет пуско-наладка и приходится режим энергосбережения для каждого Termodat подбирать экспериментально. А их 11 штук

melky
23.08.2022, 23:24
Александр SPB а кто вам мешает добавить экранную переменную 0 или 1 вместо дискретного входа ?

Еще раз, SelChange является КОЛХОЗОМ изначально, когда Овен поломал начальное значение для сетевых переменных, так колхозом и осталось. этот макрос первоначально был сделан по просьбе из-за того, что Овен сломал вышеуказанное...
Ну и если вы посмотрите потроха макроса, то поймете, что если на одном входе менять значение, то на значение второго входа вернуться нельзя в принципе, это в вашем случае и есть недостаток этого макроса..

Dimensy
24.08.2022, 06:10
Программа рабочая до того момента пока оператор при включенном энергосбережении не поменял уставку. После этого уставка перезаписалась на новую. Я сначала не поверил, проверил так и есть. Даже перезапуск ПР не вернул уставку на место, даже при том что она энергонезависимая. Проверил в симуляторе так и есть, при включенном энергосберегающем режиме при изменении сетевой переменной "Чтение уставки" происходит перезапись "Уст сбер".
По поводу огорода так бы сделал, но дискретный вход занят. Идет пуско-наладка и приходится режим энергосбережения для каждого Termodat подбирать экспериментально. А их 11 штук

Но ведь так и было задумано - в рабочем режиме при изменении уставки на регуляторе перезаписывается "Уста раб", в режиме энергосбережения - "Уст сбер". Или надо как-то по другому?

Александр SPB
24.08.2022, 06:37
Устава энергосбережения должна быть постоянной. И оператор не должен ее случайно изменить.

1exan
24.08.2022, 06:59
Программа рабочая до того момента пока оператор при включенном энергосбережении не поменял уставку. После этого уставка перезаписалась на новую. Я сначала не поверил, проверил так и есть. Даже перезапуск ПР не вернул уставку на место, даже при том что она энергонезависимая. Проверил в симуляторе так и есть, при включенном энергосберегающем режиме при изменении сетевой переменной "Чтение уставки" происходит перезапись "Уст сбер".
По поводу огорода так бы сделал, но дискретный вход занят. Идет пуско-наладка и приходится режим энергосбережения для каждого Termodat подбирать экспериментально. А их 11 штук

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

Александр SPB
24.08.2022, 07:17
Расскажите как вы планировали включать и отключать энергосберегающий режим - по сигналу на входе ПР, по отсчёту таймера внутри ПР с какого-то момента времени, по увеличению уставки выше какого-либо значения или ещё как-то?
Все термодаты выходят из режима энергосбережения одновременно или независимо друг от друга?

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

Dimensy
24.08.2022, 08:09
Устава энергосбережения должна быть постоянной. И оператор не должен ее случайно изменить.

тогда вот так

1exan
24.08.2022, 08:32
тогда вот так

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

но тут надо ещё в железе проверять, как будет работать.

Dimensy
24.08.2022, 08:49
Возможно надо еще добавить постоянную запись уставки в режиме энергосбережения, чтобы с термодата её нельзя было поменять:

но тут надо ещё в железе проверять, как будет работать.

не будет работать, так как сетевая переменная в ПР не меняется - нужно тогда принудительно ее записывать через флаг записи
в общем, вот еще один вариант, и даже без selchng :)

melky
24.08.2022, 09:03
Еще раз спрошу, отправив в регистр записи значение, что с регистром чтения становится ? :)

Александр SPB
24.08.2022, 12:17
Еще раз спрошу, отправив в регистр записи значение, что с регистром чтения становится ? :)

Как только подаешь значение в регистр записи, тут же приходит с регистра чтения это значение.

1exan
24.08.2022, 12:56
не будет работать, так как сетевая переменная в ПР не меняется - нужно тогда принудительно ее записывать через флаг записи
в общем, вот еще один вариант, и даже без selchng :)

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

melky
24.08.2022, 14:07
Александр SPB Ну ? мой вариант пробовали ? опять же, из регистра записи можно читать ? если что на SEL подать TermodatRead сетевую и может увеличить время таймера, чтобы успела защелкнутая переменная записаться...
з.ы. Просто я помню ваше условие, что после смены режима из сберегающего в обычный в прибор должна пойти запись уставки ДО сберегающего режима...
Иначе как вы говорите операторы начинают материться...

Вообще-то сравнивать float глупо, их только на больше/меньше можно сравнивать... Или предварительно округлять, а то можно нарваться "а че оно не равно" ?

Александр SPB
24.08.2022, 15:00
Александр SPB Ну ? мой вариант пробовали ? ?

В симуляторе, меня смутило, что при первом пуске какая бы ни была уставка из Termodat при запуске программы всегда сначала записывается уставка 0. Потом при переключении в энергосберегающий режим и назад все приходит в норму.(Как вариант можно конечно и кратковременно переключить режим энергосбережения после запуска программы) Сегодня ваш вариант и пример 5 от Dimensy попробую на железе.

Или вот моя доработка

kondor3000
24.08.2022, 15:39
В симуляторе, меня смутило, что при первом пуске какая бы ни была уставка из Termodat при запуске программы всегда сначала записывается уставка 0. Потом при переключении в энергосберегающий режим и назад все приходит в норму.(Как вариант можно конечно и кратковременно переключить режим энергосбережения после запуска программы) Сегодня ваш вариант и пример 5 от Dimensy попробую на железе.

Или вот моя доработка

В симуляторе так и будет, в железе уставка должна считаться с термодата.

melky
24.08.2022, 16:53
И не в симуляторе, после прошивки ПР в сетевой переменной будет 0, и если при запуске программы он успеет записаться в прибор, там и будет 0. Это нормально в принципе для Овен :) В таком случае как раз необходимо сделать инициализацию сетевой переменной.

Как же достали вот эти мелочи у Овен, причем которые раньше работали корректно...

Александр SPB
24.08.2022, 22:35
не будет работать, так как сетевая переменная в ПР не меняется - нужно тогда принудительно ее записывать через флаг записи
в общем, вот еще один вариант, и даже без selchng :)

Проверил, при отключенной переменной "Опрос" программа не работает. Я раньше еще проверял, опрос это общий для всего устройства. Можно каждой переменной делать индивидуальное действие (чтение, запись, опрос) при условии, что включен общий опрос.

Александр SPB
24.08.2022, 22:50
Забудьте вы про SelChange как страшный сон, у него есть определенный недостаток, который вам всю кровь выпьет :) а именно то, что даже защелкнув на входе переменную, он не поменяет на нее после выхода, так как переменная не менялась последней....

Вот вам картинкой защелка просто на SEL-ах, ну поменяйте на float если надо...

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

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

melky
25.08.2022, 00:59
Так пока выставлен режим сбережения на ПР и не должно меняться с прибора, это при условии, что ПР всегда пишет в прибор. Если надо будет менять, то вероятно надо писать по изменению бита записи.

У вас уставки 5 и 5_DO почему обе сетевые? так нельзя делать, если они у вас меняются в приборе....

Dimensy
25.08.2022, 18:59
Проверил. После прошивки на ПР выводится действующая уставка( не 0). После включения режима энергосбережения записывается уставка энергосбережения и все, потом ни чего не изменить.
Вы неправильно поняли идею. Вот так надо было

Александр SPB
25.08.2022, 21:56
Вы неправильно поняли идею. Вот так надо было

melky, Dimensy всем спасибо! Работает!

piligrim
26.08.2022, 08:37
Добрый день.
Ребят подскажите пожалуйста какую визуализацию можно прикрутить к OwenLogik
для графической проверки поведения переменных?

1exan
26.08.2022, 08:55
Добрый день.
Ребят подскажите пожалуйста какую визуализацию можно прикрутить к OwenLogik
для графической проверки поведения переменных?

Самый простой вариант - смотреть в отладке

melky
26.08.2022, 09:13
piligrim Scada систему на своем ПК. по другому никак, графики вам больше никто не нарисует

Кирилл122
26.08.2022, 10:30
Подскажите пожалуйста, есть ли макрос для реализации обратной связи.
Пример - подаётся сигнал на клапан для регулировки желаемого давления на 350 бар, после подачи сигнала фактическое измеренное давление от датчика получилось 345 бар, необходимо скорректировать сигнал на величину 5 бар по датчику.

1exan
26.08.2022, 10:54
Подскажите пожалуйста, есть ли макрос для реализации обратной связи.
Пример - подаётся сигнал на клапан для регулировки желаемого давления на 350 бар, после подачи сигнала фактическое измеренное давление от датчика получилось 345 бар, необходимо скорректировать сигнал на величину 5 бар по датчику.

Конечно - называется РЕГУЛЯТОР.

Aviator_VZh
29.08.2022, 13:59
Коллеги, добрый день.
Подскажите, как это понять и как с этим бороться?

62336

При этом при 0,26 и 0,28 все ок.

capzap
29.08.2022, 14:01
Коллеги, добрый день.
Подскажите, как это понять и как с этим бороться?

62336

При этом при 0,26 и 0,28 все ок.
https://owen.ru/forum/showthread.php?t=26216&p=386565&viewfull=1#post386565

Aviator_VZh
29.08.2022, 14:40
https://owen.ru/forum/showthread.php?t=26216&p=386565&viewfull=1#post386565

Спасибо.
Способ борьбы понятен )

sergkhar
30.08.2022, 11:54
Приветствую всех. Вчера весь день убил...
В проекте использую modbus на ПР200 как master. Несколько slave: 4 частотника, датчик температуры и влажности и панель управления Cityron ПУ-3. Задача управлять вентиляционной системой и с дисплея ПР200, и со сторонней панели.
Проблема такая: в регистре панели температура уставки хранится в виде целого числа, которое нужно разделить на 10, а на экране у меня температура — число с плавающей точкой. Нужно задавать температуру как через панель, так и через ПР200. Уставка читается из панели замечательно и пишется, если переменная — целое число, т.*е. на дисплее выставлять 255/230/275… (на дисплей просто вывожу сетевую переменную), а вот если на дисплее отображать вещественное, то требуется преобразование и запись в панель не происходит. Прилагаю схему. Пробовал работать с двумя сетевыми (на чтение и запись отдельно). Пробовал "энергонезависимость", пробовал запуск чтения и записи от других переменных. Пробовал "запись в конце цикла".
Такая же проблема при отображении скорости вращения вентилятора. На дисплее ПР200 combobox (10 значений): 10/20/...100%, а у панели значения от 1 до 5.
62364
62365

petera
30.08.2022, 12:27
Приветствую всех. Вчера весь день убил...
В проекте использую modbus на ПР200 как master. Несколько slave: 4 частотника, датчик температуры и влажности и панель управления Cityron ПУ-3. Задача управлять вентиляционной системой и с дисплея ПР200, и со сторонней панели.
Проблема такая: в регистре панели температура уставки хранится в виде целого числа, которое нужно разделить на 10, а на экране у меня температура — число с плавающей точкой. Нужно задавать температуру как через панель, так и через ПР200. Уставка читается из панели замечательно и пишется, если переменная — целое число, т.*е. на дисплее выставлять 255/230/275… (на дисплей просто вывожу сетевую переменную), а вот если на дисплее отображать вещественное, то требуется преобразование и запись в панель не происходит. Прилагаю схему. Пробовал работать с двумя сетевыми (на чтение и запись отдельно). Пробовал "энергонезависимость", пробовал запуск чтения и записи от других переменных. Пробовал "запись в конце цикла".
Такая же проблема при отображении скорости вращения вентилятора. На дисплее ПР200 combobox (10 значений): 10/20/...100%, а у панели значения от 1 до 5.
62364
62365

Держите про температуру
62367

макросы преобразования float-dec-float мои

ЗЫ.
https://owen.ru/forum/attachment.php?attachmentid=62369&d=1661852212

sergkhar
30.08.2022, 13:25
Держите про температуру
62367

макросы преобразования float-dec-float мои

ЗЫ.
https://owen.ru/forum/attachment.php?attachmentid=62369&d=1661852212

Спасибо. Класс!
Посмотрел ваши макросы и решил попробовать без них. Тоже работает. Главное - это SelChgI и переменную tSetD записывать в конце цикла или сделать энергонезависимой, да?

petera
30.08.2022, 13:46
Спасибо. Класс!
Посмотрел ваши макросы и решил попробовать без них. Тоже работает. Главное - это SelChgI и переменную tSetD записывать в конце цикла или сделать энергонезависимой, да?

В простейшем случае, можно и без мох макросов преобразования float-dec-float
Мои макросы позволяют работать как с положительными так и отрицательными числами.

Главное - это SelChgI и переменную tSetD записывать в конце цикла

sergkhar
30.08.2022, 14:10
В простейшем случае, можно и без мох макросов преобразования float-dec-float
Мои макросы позволяют работать как с положительными так и отрицательными числами.

Аналогичное решение для управления другой переменной не подошло. У панели скорость вентилятора от 0 до 5 (0 - это Авто), а у меня combobox от 0 до 10 (0 - это Авто и дальше от 10 до 100%). Как тут быть? Линии задержки не помогают. На дисплее "пляска", т.е. постоянная перезапись.
62373

petera
30.08.2022, 14:17
Аналогичное решение для управления другой переменной не подошло. У панели скорость вентилятора от 0 до 5 (0 - это Авто), а у меня combobox от 0 до 10 (0 - это Авто и дальше от 10 до 100%). Как тут быть? Линии задержки не помогают. На дисплее "пляска", т.е. постоянная перезапись.
62373

Выходная переменная - SpeedVentD должна иметь свойство "Запись в конце цикла"

Судя по желтой связи на выходе макроса, у Вас это свойство не включено

petera
30.08.2022, 14:30
Выходная переменная - SpeedVentD должна иметь свойство "Запись в конце цикла"

Судя по желтой связи на выходе макроса, у Вас это свойство не включено

У меня работает
https://owen.ru/forum/attachment.php?attachmentid=62374&d=1661858956