Просмотр полной версии : Прошу помощи с разработкой программы.
Доброго дня, уважаемые форумчане!
Прошу помощи в разработке программы для нашего производства.
Поступила задача организовать включение сушильных камер в полуавтоматическом режиме с расписанием.
Имею в наличии: программируемое реле ПР102-24.2416.03.2, панель оператора графическая СП310-Б.
Задача:
При нажатии кнопки "Камера 1" (которая загорается при этом);
через определенное время камера запускается (при этом кнопка должна моргать), этот промежуток времени необходимо корректировать посредством панели оператора СП 310, но по умолчанию должно стоять 6 часов;
камера так же должна отработать определенный период времени и отключиться, при этом период тоже необходимо корректировать посредством панели оператора СП 310;
при повторном нажатии камера должна отключиться (даже если она находится в работе), а кнопка погаснуть;
если нажать на кнопку еще раз - цикл запускается сначала;
для каждой камеры (кнопки) можно индивидуально изменить время запуска/отключения посредством панели оператора СП 310;
расписание должно иметь недельный график с возможностью изменения посредством панели оператора СП 310
поэтому я предпочел для этой программы модуль clock_week, но ума не приложу как прибавлять время в нем, при этом в 24 часовом формате -
т.е. к примеру оператор нажал на кнопку "Камера 1" в 23:00, соответственно камера должна включиться в 05:00 следующего дня, и выключиться в 08:00, ума не приложу как это реализовать...
К сообщению прилагаю программу (которую набросал на скорую руку с попытками реализации данного функционала).
К сожалению я имею очень маленький опыт в программировании, а директору не объяснишь =)
kondor3000
20.10.2022, 13:33
Программу пока не смотрел (с телефона), но на вскидку, нафиг оператору в 23 часа считать, когда камера включится? Не проще забить, включение 5 часов, выключение 8 часов? В ПР сравниваете вставку с реальным временем и включаете, выключаете камеру.
Расписание сразу задать на неделю, если надо можно изменить.
По опыту, лучше задавать отдельно часы и отдельно минуты, на каждый для передачи по 1 регистру.
Если в панели сделать рецепты, то ежедневно она будет передавать только 5 регистров, день недели, часы и мин. включения, часы и мин. выключения.
Сергей0308
20.10.2022, 13:38
Доброго дня, уважаемые форумчане!
Прошу помощи в разработке программы для нашего производства.
Поступила задача организовать включение сушильных камер в полуавтоматическом режиме с расписанием.
Имею в наличии: программируемое реле ПР102-24.2416.03.2, панель оператора графическая СП310-Б.
Задача:
При нажатии кнопки "Камера 1" (которая загорается при этом);
через определенное время камера запускается (при этом кнопка должна моргать), этот промежуток времени необходимо корректировать посредством панели оператора СП 310, но по умолчанию должно стоять 6 часов;
камера так же должна отработать определенный период времени и отключиться, при этом период тоже необходимо корректировать посредством панели оператора СП 310;
при повторном нажатии камера должна отключиться (даже если она находится в работе), а кнопка погаснуть;
если нажать на кнопку еще раз - цикл запускается сначала;
для каждой камеры (кнопки) можно индивидуально изменить время запуска/отключения посредством панели оператора СП 310;
расписание должно иметь недельный график с возможностью изменения посредством панели оператора СП 310
поэтому я предпочел для этой программы модуль clock_week, но ума не приложу как прибавлять время в нем, при этом в 24 часовом формате -
т.е. к примеру оператор нажал на кнопку "Камера 1" в 23:00, соответственно камера должна включиться в 05:00 следующего дня, и выключиться в 08:00, ума не приложу как это реализовать...
К сообщению прилагаю программу (которую набросал на скорую руку с попытками реализации данного функционала).
К сожалению я имею очень маленький опыт в программировании, а директору не объяснишь =)
А, сколько у вас камер всего, в смысле, сколькими камерами нужно управлять?
А я не понял, зачем недельный график?
Отвечу сразу всем:
Расписание на неделю нельзя задать потому как очередность заполнения камера каждый раз разная.
Всего на производстве задействовано 6 камер.
Оператор "человек" и может либо забыть изменить расписание, либо "забить" на изменение расписания. Технологический процесс подготовки нашей продукции обуславливает, что продукция изготовленная из бетона должна сначала "дойти" до необходимой крепости в течении 6 часов, после ее изготовления. Т.к. продукция заполняется сначала в одну камеру, а из другой вытаскивается, затем в другую (освободившуюся) камеру, соответственно оператору необходимо "править" каждый раз расписание.
Сейчас технологический процесс выглядит несколько иначе - заполняются по кругу 5 камер (одна остается свободной - "буферная"), затем в 2-3 часа ночи все камеры запускаются одновременно (установлено реле времени Омрон) и выключаются оператором по мере освобождения от готовой продукции, но это обуславливает только одну смену работы завода. Мы же хотим запустить 2 смены.
Алгоритм работы должен быть примерно таким:
1)Камера №1 заполняется в 10:00 - оператор нажимает кнопку "Камера 1"
2)начинается 6 часовой отсчет (вычисление) времени включения Камеры №1
3)Камера №2 заполняется в 12:00 - оператор нажимает кнопку "Камера 2"
4)начинается 6 часовой отсчет (вычисление) времени включения Камеры №2
5)Камера №3 заполняется в 14:00 - оператор нажимает кнопку "Камера 3"
6)начинается 6 часовой отсчет (вычисление) времени включения Камеры №3
7)Камера №4 заполняется в 14:00 - оператор нажимает кнопку "Камера 4"
8)начинается 6 часовой отсчет (вычисление) времени включения Камеры №4
9)время 16:00 происходит включение Камеры №1
10)Камера №5 заполняется в 16:00 - оператор нажимает кнопку "Камера 5"
11)начинается 6 часовой отсчет (вычисление) времени включения Камеры №5
12)время 18:00 происходит включение Камеры №2
13) время 20:00 происходит включение Камеры №3
14) время 22:00 происходит включение Камеры №4
15) время 22:00 производится отключение и освобождение Камеры №1 и начало заполнения Камеры №6
16) время 24:00 Камера №1 пуста, Камера №6 заполнена - оператор нажимает кнопку "Камера 6"
17) начинается 6 часовой отсчет (вычисление) времени включения Камеры №6
18) время 24:00 производится отключение и освобождение Камеры №2 и начало заполнения Камеры №1
19) время 24:00 происходит включение Камеры №5
20) время 02:00 Камера №2 пуста, Камера №1 заполнена - оператор нажимает кнопку "Камера 1"
21) начинается 6 часовой отсчет (вычисление) времени включения Камеры №1
и т.д. по кругу... Соответственно время заполнения по ряду причин разная, как и очередность может поменяться.
Количество камер может меняться т.е. учувствуют в полном обороте от 3 до 6 камер.
К вопросу зачем расписание на дни недели: работа может быть с понедельника по пятницу + ночь субботы, и начинаться в понедельник, либо с понедельника по субботу + ночь воскресенья, или бывают выходные среди недели...
Доброго дня, уважаемые форумчане!
Прошу помощи в разработке программы для нашего производства.
Поступила задача организовать включение сушильных камер в полуавтоматическом режиме с расписанием.
Имею в наличии: программируемое реле ПР102-24.2416.03.2, панель оператора графическая СП310-Б.
Задача:
При нажатии кнопки "Камера 1" (которая загорается при этом);
через определенное время камера запускается (при этом кнопка должна моргать), этот промежуток времени необходимо корректировать посредством панели оператора СП 310, но по умолчанию должно стоять 6 часов;
камера так же должна отработать определенный период времени и отключиться, при этом период тоже необходимо корректировать посредством панели оператора СП 310;
при повторном нажатии камера должна отключиться (даже если она находится в работе), а кнопка погаснуть;
если нажать на кнопку еще раз - цикл запускается сначала;
для каждой камеры (кнопки) можно индивидуально изменить время запуска/отключения посредством панели оператора СП 310;
расписание должно иметь недельный график с возможностью изменения посредством панели оператора СП 310
поэтому я предпочел для этой программы модуль clock_week, но ума не приложу как прибавлять время в нем, при этом в 24 часовом формате -
т.е. к примеру оператор нажал на кнопку "Камера 1" в 23:00, соответственно камера должна включиться в 05:00 следующего дня, и выключиться в 08:00, ума не приложу как это реализовать...
К сообщению прилагаю программу (которую набросал на скорую руку с попытками реализации данного функционала).
К сожалению я имею очень маленький опыт в программировании, а директору не объяснишь =)
версией 2 ОЛ не пользуюсь, по этому Ваши файлы не смотрел
Вариант с использованием UNIX времени, например для 8 камер
63257 63258
Сетевые переменные
CMD - "упакованные" в регистр битовые кнопки "Камера 1", "Камера 2".."Камера 8"
ЗадержкаВКЛ1 (ЗадержкаВКЛ2..ЗадержкаВКЛ8) - заданная задержка на запуск камер, время в часах
Выдержка1 (Выдержка2..Выдержка8) заданное время работы камер, время в часах
Моя предварительная версия
Добрый день, камрады!
Я просмотрел оба варианта! Они выполнены элегантно, но все еще остается вопрос с недельным графиком.
На сколько я понимаю в обоих вариантах мне необходимо будет распаковывать юникс время включения каждой камеры для отображения на панели оператора СП 310?
Добрый день, камрады!
Я просмотрел оба варианта! Они выполнены элегантно, но все еще остается вопрос с недельным графиком.
На сколько я понимаю в обоих вариантах мне необходимо будет распаковывать юникс время включения каждой камеры для отображения на панели оператора СП 310?
Так, а нафига недельный график? А распаковать время - есть такой макрос.
Вопросы возникли по программе в панели: в чем разница режима работы в одну и две смены? И что такое уставка рядовая и фитинги?
А, и я так понял, кнопки физические а не на панели?
Так, а нафига недельный график? А распаковать время - есть такой макрос.
Вопросы возникли по программе в панели: в чем разница режима работы в одну и две смены? И что такое уставка рядовая и фитинги?
А, и я так понял, кнопки физические а не на панели?
Недельный график нужен только из-за перерыва в работе на выходные/праздничные/ремонтные дни.
Одна и две смены на панели - это только концепт, там скорее всего будут разные тайминги (задержка включения\выдержка), кнопки физические - всего будет 6 кнопок с индикацией ("Камера 1"..."Камера 6") и трехпозиционный переключатель с режимами работы ("1 Смена" (с более длинными уставками задержки включения)/"2 Смены"(короткие уставки задержка включения)/ "Ручной режим"(собственно ручной режим работы включил камеру/ выключил).
Рядовая - это камеры с 2 по 6 - руководствуются общим графиком (задержка включения\выдержка), а камера 1 пользуется своим графиком. В идеале мне необходимо будет отдельный недельный график на камеру №1, а еще лучше если можно будет менять камеру для фитингов к примеру на 2 через отдельное (сервисное окно), но это только перспектива.
Все равно не понял. Вы же приводили алгоритм: камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку... При этом, запуск на выполнение может быть в первой смене, а закончит программа выполняться во второй смене. Где здесь недельный график?
Пример недельного графика 2 смены:
Пн. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Вт. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Ср. - Выходной (праздничный к примеру), работа программы второй смены переносится на следующий день;
Чт. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Пт. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Сб. - Выходной, работа программы второй смены переносится на понедельник.
Пример работы 1 смены:
Пн. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться;
Вт. - программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку, программа начинает выполняться;
Ср. - Выходной (праздничный к примеру), работа программы переносится на следующий день;
Чт. - программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку, программа начинает выполняться;
Пт. - программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку, программа начинает выполняться;
Сб. - Выходной, работа программы переносится на следующий день;
Вс. - Выходной, работа программы снова переносится на следующий день.
Именно из-за этих скачек нужны переключатели на панели с алгоритмом работы дней.
Т.е., мы запустили программу, начался отсчет задержки, если по программе камера должна включиться в выходной/праздничный день, то она не включается (задержка продолжается). Включиться камера только в рабочий день. Так?
Т.е., мы запустили программу, начался отсчет задержки, если по программе камера должна включиться в выходной/праздничный день, то она не включается (задержка продолжается). Включиться камера только в рабочий день. Так?
Все верно!
Прошу прощения, за односложные предложения в ответах (пишу с телефона), и отсутствие какой либо помощи со своей стороны. Просто мой домашний (единственный пк) на днях умер, а рабочий SIMATIC Field PG M5 находится в Москве на т.о.... Поэтому могу заниматься этим проектом только в рабочее время. А то получается, что я попросил помощи, а сам ничего не делаю! Хотя пару идей из ваших проектов я попробовал реализовать.
Но я признателен за вашу поддержку!
В связи с этим предлагаю взять паузу, и отлично провести выходные, а в понедельник, со свежими мыслями, попробую не забыть все что почерпнул из ваших идей, и постараться реализовать, хотя честно говоря некоторые обороты для меня просто "космос". Мало того, что мне какая-то часть непонятна, так еще и видимо функционала в моей программе не хватает, таких как например линия задержки 0_о где её вообще можно вытащить из функционала?
В связи с таким заданием я вижу следующее:
1. после запуска программы требуется проверить два условия: запуск и окончание работы камеры должны располагаться на разрешенном промежутке времени - это можно организовать переделав макрос ClockWeek
2. если запуск или окончание работы камеры не располагаются на разрешенном промежутке времени, то запуск нужно перенести - а вот как это сделать я не представляю. Вернее, перенести можно, но, вот, как определить дату запуска (чтобы отобразить ее на панели).
Поэтому, пока что могу предложить: использовать таймеры с обратным отсчетом времени (как у меня в пробной версии), если происходит перенос запуска, то на панели писать "отложенный запуск"
В связи с таким заданием я вижу следующее:
1. после запуска программы требуется проверить два условия: запуск и окончание работы камеры должны располагаться на разрешенном промежутке времени - это можно организовать переделав макрос ClockWeek
2. если запуск или окончание работы камеры не располагаются на разрешенном промежутке времени, то запуск нужно перенести - а вот как это сделать я не представляю
Честно говоря, я с самого начала полагался на этот модуль, т.к. он умеет заканчивать программу в не разрешённом дне недели (как например завершение ночной смены еслона приходится на ночь субботы).
Я пытался реализовать событие, которое бы при нажатии кнопки прибавляло время задержки(как сетевую переменную) к текущему времени (пока не разобрался как это сделать), и установить его как время старта. И соответственно прибавить к времени старта время выдержки(как сетевую переменную), и установить его как время окончания. Что должно добавить гибкости, и давать возможность менять время старта во время работы. Возможно этот путь - в никуда. Думаю попробовать скрестить ваши идеи именно на этом модуле, т.к. у него не так много условий, и входных переменных, как у вас... Не сочтите за критику!
Честно говоря, я с самого начала полагался на этот модуль, т.к. он умеет заканчивать программу в не разрешённом дне недели (как например завершение ночной смены еслона приходится на ночь субботы).
Зря полагались. Особенность макроса CLOCK_WEEK, так же как и ClockWeek (есть в библиотеке такой), в том,что если время выключения приходится на следующий день и этот день выходной, то макрос вырубается в полночь.
[Offtop: on] К сожалению, в момент приобретения ПР мне казалось отличной идеей, много входов/релейных выходов. Но тогда я еще не знал о том какой "костыль" этот Овен лоджик😁
Многие годы я работал (обслуживал) заводы и аттракционы на базе плк Siemens s200/300/logo, и программирование казалось логичным и функциональным для меня, кроме ST среды (не умею я в паскаль, максимум basic). Но тут я реально попал в поле непонятных мне извращений, при том, что я даже не могу понять где берут камрады некоторый функционал (как к примеру линию задержки). В общем курю пока литературу.
Надеюсь, у меня/нас - всё получится! [Offtop: off]
Зря полагались. Особенность макроса CLOCK_WEEK, так же как и ClockWeek (есть в библиотеке такой), в том,что если время выключения приходится на следующий день и этот день выходной, то макрос вырубается в полночь.
Странно, я сегодня в эмуляторе выставив расписание в модуле Clock_week (из библиотеки) с 23:00 до 08:00, и изменив время из 22:00 на 23:30 инициировал подачу сигнала на q1, затем снова изменил время на 03:00 следующего (выключенного дня) q1 все еще выдавал сигнал, и только когда я выставил 09:00 (следующего дня) сигнал упал. Из чего я и сделал такой вывод🤔
Если вы правы, то придется глубоко копать, чтобы модифицировать его.
К вопросу об обратных таймерах:
Я могу ошибаться, но если вдруг кратковременно пропадает питание, то все таймеры падают на 0 (или в начальное состояние) даже если переменная находится в энергонезависимой памяти?
Если вы правы, то придется глубоко копать, чтобы модифицировать его.
К вопросу об обратных таймерах:
Я могу ошибаться, но если вдруг кратковременно пропадает питание, то все таймеры падают на 0 (или в начальное состояние) даже если переменная находится в энергонезависимой памяти?
Глубоко копать не надо, я в свое время его переделывал, могу скинуть
По обработке перерыва питания в таймере, тут как его организовать - если сравнивать текущее время и время включение/выключения, то пофиг, главное, чтобы при возобновления питания уставки не перезаписались
kondor3000
22.10.2022, 10:57
[Offtop: on] К сожалению, в момент приобретения ПР мне казалось отличной идеей, много входов/релейных выходов. Но тогда я еще не знал о том какой "костыль" этот Овен лоджик��
Многие годы я работал (обслуживал) заводы и аттракционы на базе плк Siemens s200/300/logo, и программирование казалось логичным и функциональным для меня, кроме ST среды (не умею я в паскаль, максимум basic). Но тут я реально попал в поле непонятных мне извращений, при том, что я даже не могу понять где берут камрады некоторый функционал (как к примеру линию задержки). [Offtop: off]
Сравнили тоже ПЛК Siemens и программируемое реле на Лоджике.
На любом ПЛК Овен (110, 150, 154) эту программу написать как раз плюнуть. Конечно ST надо знать.
И как по мне, лучше бы ST изучили, чем с Лоджиком изгаляться.
ну как сказать? ПРки круче чем Лого. и понятнее. про линию задержки - почитайте инструкцию к лоджику. там на панели инструментов она есть.
то что вы привыкли работать на одном виде ПЛК не значит, что другой ПЛК плох.
ну как сказать? ПРки круче чем Лого. и понятнее. про линию задержки - почитайте инструкцию к лоджику. там на панели инструментов она есть.
то что вы привыкли работать на одном виде ПЛК не значит, что другой ПЛК плох.
У Лого дисплей лучше и кнопки можно в программе использовать. Вот если в ПР205 это реализуют, вообще будет пушка
Черновой вариант программы. Что она умеет:
1. Пока программа не запущена производится контроль времени включения и выключения на попадание в разрешенный диапазон. Если не попадает, то подбирается сдвиг включения. Сдвиг подбирается просто - прибавляем по минуте, пока не попадем в разрешенный диапазон. При этом текущее время компенсируется путем вычитания каждую системную минуту одну минуту из сдвига, т.е., если у нас получилось, что запуск будет в начале смены после выходных, то так и будет. Итоговое время включения при этом вычисляется прибавлением к текущему времени, времени ожидания и времени сдвига. Пока производится подбор времени, кнопка пуска блокируется. Так же рекомендую на этот период скрывать время на панели, для этого у макроса есть выход "бит видимости". Рассчитанное время запуска отправляется на панель в формате Ч:М.
Проблема здесь может возникнуть при слишком больших временах задержки и работы камеры и маленьких разрешенных диапазонах - может возникнуть ситуация, когда программа не сможет подобрать сдвиг. Это никак не контролируется.
2. После нажатия на кнопку пуск, время запуска камеры запоминается. Камера запуститься когда текущее время станет равным времени запуска. Если произойдет перебой в питании, то время без питания войдет в время ожидания, т.е. время запуска не поменяется.
Тут проблема может возникнуть из-за слишком большого перерыва питания, т.е. когда питание возобновиться уже после того как камера должна была включится. Камера, конечно включится, но время выключения сдвинется и может попасть в неразрешенный диапазон - это никак не контролируется.
3. После запуска камеры начинается отсчет времени работы. Контроль выполнен на базе таймера с обратным отсчетом. При возобновлении питания после перерыва, прерванный отсчет продолжиться. На панель отправляется показания таймера в формате Ч:М. Минуты округляются в большую сторону, т.е., 120 секунд и 61 секунда - это 2 минуты, а 60 секунд и 1 секунда - это 1 минута.
Здесь тоже может быть проблема при длительном перерыве питания, поскольку время выключения камеры может сдвинуться и выйти из разрешенного диапазона - это не контролируется.
4. После окончания работы программы, а также при изменении в расписании и временных уставок время сдвига обнуляется
5. По поводу программы для панели - тут я не помощник, потому что Овеновские панели не программировал и их нюансы не знаю. Единственное, что порекомендую - не использовать койлы, т.е. биты собирать в маску.
6. Основные косяки я, вроде, выловил, так что теперь нужны эксперименты на кошках.
7. Точность включения камеры - 1 минута. точность выключения - 0,5 сек
Пример недельного графика 2 смены:
Пн. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Вт. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Ср. - Выходной (праздничный к примеру), работа программы второй смены переносится на следующий день;
Чт. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Пт. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Сб. - Выходной, работа программы второй смены переносится на понедельник.
Пример работы 1 смены:
Пн. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться;
Вт. - программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку, программа начинает выполняться;
Ср. - Выходной (праздничный к примеру), работа программы переносится на следующий день;
Чт. - программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку, программа начинает выполняться;
Пт. - программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку, программа начинает выполняться;
Сб. - Выходной, работа программы переносится на следующий день;
Вс. - Выходной, работа программы снова переносится на следующий день.
Именно из-за этих скачек нужны переключатели на панели с алгоритмом работы дней.
Не понятно
Нужно учитывать начало и конец смен?
Например, будний день,понедельник, смена начинается в 8:00, заканчивается в 17:00
1. если оператор нажал кнопку в рабочее время, а цикл (задержка + работа) закончился в нерабочее время, например 22:00, или в 3:00 вторника,
то это нормально (загруженная камера "киснет" без разгрузки до прихода персонала)? Или такие ситуации надо учитывать?
2. если нужен перенос работы на понедельник, то какое время старта в понедельник - в 00:00 или в 8:00 или окончание процесса должно попадать на время после 8:00 ?
Если просто тупо переносить по критерию работа только в будний день, то вот модифицированный вариант с UNIX time
привожу только для одной камеры. Выделенное можно оформить в макрос и тиражировать в нужном количестве
63333
Пример недельного графика 2 смены:
Пн. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Вт. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Ср. - Выходной (праздничный к примеру), работа программы второй смены переносится на следующий день;
Чт. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Пт. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться. Программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку;
Сб. - Выходной, работа программы второй смены переносится на понедельник.
Пример работы 1 смены:
Пн. - камера заполняется, оператор нажимает кнопку, программа начинает выполняться;
Вт. - программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку, программа начинает выполняться;
Ср. - Выходной (праздничный к примеру), работа программы переносится на следующий день;
Чт. - программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку, программа начинает выполняться;
Пт. - программа выполнилась, камеру разгрузили, снова загрузили, оператор нажал кнопку, программа начинает выполняться;
Сб. - Выходной, работа программы переносится на следующий день;
Вс. - Выходной, работа программы снова переносится на следующий день.
Именно из-за этих скачек нужны переключатели на панели с алгоритмом работы дней.
И всё равно не понятно, зачем тут вообще график, если каждый цикл работы начинается с нажатия кнопки оператором.
Ну на крайний случай можно заблокировать возможность запуска цикла, если он не сможет уложиться в оставшееся рабочее время.
И всё равно не понятно, зачем тут вообще график, если каждый цикл работы начинается с нажатия кнопки оператором.
Ну на крайний случай можно заблокировать возможность запуска цикла, если он не сможет уложиться в оставшееся рабочее время.
1. если оператор нажал кнопку в рабочее время, а цикл (задержка + работа) закончился в нерабочее время, например 22:00, или в 3:00 вторника,
то это нормально (загруженная камера "киснет" без разгрузки до прихода персонала)? Или такие ситуации надо учитывать?
2. если нужен перенос работы на понедельник, то какое время старта в понедельник - в 00:00 или в 8:00 или окончание процесса должно попадать на время после 8:00 ?
1.) алгоритм нашей работы не подразумевает праздничные дни для второй смены (вторая смена выйдет на работу даже если окончание смены будет выходным\праздничным днем). т.е. если к примеру среда праздничный день - ночная смена все равно выходит в свою смену вторник-среда. Соответственно работа камер сдвинется ровно на сутки - после нажатия оператором второй смены на кнопку, расписание запланируется на четверг.
2.) абсолютно такой же алгоритм с двумя\тремя\четырьмя выходными подряд. Оператор нажал на кнопку, алгоритм посчитал, что четверг-воскресенье выходные, запланировал расписание включения на понедельник, со смещением 4 дня.
Я смотрю я тут прям мозговой штурм устроил=) Спасибо всем за оказываемую помощь!
Сейчас уже просмотрел ваши программы, я бы действительно до такого не додумался!
К сожалению проверить и поэкспериментировать я пока могу только в эмуляторе, ШУ я только начал собирать, а программатор приедет аж в следующий понедельник.
Буду тестировать все три варианта.
1.) алгоритм нашей работы не подразумевает праздничные дни для второй смены (вторая смена выйдет на работу даже если окончание смены будет выходным\праздничным днем). т.е. если к примеру среда праздничный день - ночная смена все равно выходит в свою смену вторник-среда. Соответственно работа камер сдвинется ровно на сутки - после нажатия оператором второй смены на кнопку, расписание запланируется на четверг.
2.) абсолютно такой же алгоритм с двумя\тремя\четырьмя выходными подряд. Оператор нажал на кнопку, алгоритм посчитал, что четверг-воскресенье выходные, запланировал расписание включения на понедельник, со смещением 4 дня.
...
И все же непонятно, зачем запускать установку ПЕРЕД началом выходных, если она должна запуститься только ПОСЛЕ них - ну пусть оператор в рабочий день ПОСЛЕ входного и запустит установку.
1.) алгоритм нашей работы не подразумевает праздничные дни для второй смены (вторая смена выйдет на работу даже если окончание смены будет выходным\праздничным днем). т.е. если к примеру среда праздничный день - ночная смена все равно выходит в свою смену вторник-среда. Соответственно работа камер сдвинется ровно на сутки - после нажатия оператором второй смены на кнопку, расписание запланируется на четверг.
2.) абсолютно такой же алгоритм с двумя\тремя\четырьмя выходными подряд. Оператор нажал на кнопку, алгоритм посчитал, что четверг-воскресенье выходные, запланировал расписание включения на понедельник, со смещением 4 дня.
Я смотрю я тут прям мозговой штурм устроил=) Спасибо всем за оказываемую помощь!
Сейчас уже просмотрел ваши программы, я бы действительно до такого не додумался!
К сожалению проверить и поэкспериментировать я пока могу только в эмуляторе, ШУ я только начал собирать, а программатор приедет аж в следующий понедельник.
Буду тестировать все три варианта.
1.Смены по 12 часов?
2. Во сколько начало 1 и 2 смен?
Да , задачка, всем миром на кол не натянешь . А такой вопрос, почему камера, сушильная по всей видимости, не может работать ( закончить ) в выходной, она без участия человека не может работать вообще?
Да , задачка, всем миром на кол не натянешь . А такой вопрос, почему камера, сушильная по всей видимости, не может работать ( закончить ) в выходной, она без участия человека не может работать вообще?
а если возгорание в камере?
И все же непонятно, зачем запускать установку ПЕРЕД началом выходных, если она должна запуститься только ПОСЛЕ них - ну пусть оператор в рабочий день ПОСЛЕ входного и запустит установку.
Но ведь перед первой сменой после выходных установка должна уже работать, т.е. как минимум камера 1-3 должна включиться, при этом с разбегом по времени (желательно).
Схемы работы ранее мной представленные - это по сути перспектива, т.е. на данный момент у нас в обороте находится 4 камеры (3 заполненных, 1 свободна) + камера для "фитингов" которая бывает мигрирует. Камеры между собой однотипные, стоят в ряд, соответственно схема включения должна быть гибкая. Поэтому я беру в расчет все имеющиеся камеры.
а если возгорание в камере?
Возгорание исключено. Камера представляет собой закрытое помещение с секционными воротами в одной стороне, и водяной калорифер с вентилятором в другой стороне, который забирает воздух из камеры в задней части и нагнетает его в переднюю через калорифер.
1.Смены по 12 часов?
2. Во сколько начало 1 и 2 смен?
Начало 1 смены 8:00, начало второй смены начинается в 20:00.
8:30-9:00 - начало производства 1 смены
10:00-10:30 - загрузка 1 камеры (соответственно т.к. производство имеет замкнутый цикл, во время загрузки происходит параллельная разгрузка другой камеры).
.
.
.
20:30-21:00 - начало производства 2 смены, разгрузка 1 камеры, заполнение к примеру 2 камеры
22:00-22:30 - разгрузка 3 камеры, начало загрузки 1 камеры
а если возгорание в камере?
Поэтому и спрашиваю, что за камера. Если бетон сушат, то он не горюч. Камеры сушки древесины работают неделями , без выходных. По какой причине нельзя оставить без присмотра в данном случае?
Поэтому и спрашиваю, что за камера. Если бетон сушат, то он не горюч. Камеры сушки древесины работают неделями , без выходных. По какой причине нельзя оставить без присмотра в данном случае?
Причина проста и банальна, для набора прочности бетона нужен ряд условий: задержка включения (как говорит мой технолог) не менее 3 часа после загрузки, затем включение камеры подъем температуры до 45°C при 80-100% влажности и поддержание температуры до разгрузки. Если брать выходные то мы (ранее) после производства (заполнения камер) продукцией оставляли на выходные в выключенном состоянии, и пользуясь расписанием включали в 2:00-3:00 ночи понедельника, для того чтобы достичь требуемой нам температуры в 45°C на выходе.
Сейчас задача состоит в том, чтобы исключить ошибку оператора (коих даже при расписании было не счесть) для двух сменного режима работы, и не потерять в прочности продукции. Поэтому мне и необходим перенос расписания с утра субботы на понедельник, чтобы во первых не расходовать энергоресурсы (зачем топить котельную и парогенераторы для насыщения влажности в выходные\праздничные дни?!), и должна быть выдержана очередность включения камер (чтобы не нагружать котельную резкими теплопотерями при запуске). На данный момент мы не испытывали сложностей с использованием общего таймера на включение, но сейчас в связи с кризисом и импортозамещением (не самым удачным), нам необходимо нарастить производство введением 2 смены, и модернизацией калориферов с вентиляторами большей мощности, чтобы не потерять в качестве продукции и повысить набор температуры. Но тут тоже вырос костыль, т.к. мощность "новых" калориферов в полтора раза превышает наши возможности котельной, то нам необходимо запускать камеры поочередно (в том порядке котором они заполнялись), чтобы не испытывать дефицита тепла при включении "холодных" камер.
Я извиняюсь, у Вас что температурный и влажностный режим управления сушки ручной? Что мешает это автоматизировать, той же пр и режим нагрева и сушку, в том числе по фактической влажности материала, если надо ? А котел какой.
П.с понял т.е.котел чтоб не гонять при малых нагрузках.
Вообще если котел твердотопливный , то есть такая проблема, динамический диапазон мощности требуется большой , а они котлы этого не могут. У нас подобная история, котел 0,5 МВт по букварю, две камеры сушки древесины, плюс отопление цеха. Летом если одна в работе, после прогрева мощность большая не нужна, темп.котла ниже 60 тоже не желательно. Зимой в морозы наоборот не хватает мощности котла. По хорошему надо ещё один ставить относительно маломощный. От топлива тоже сильно зависит. Но с пиломатериалом попроще в том плане что цикл длительный от двух недель, до месяца. Планировать маленько попроще.
Я извиняюсь, у Вас что температурный и влажностный режим управления сушки ручной? Что мешает это автоматизировать, той же пр и режим нагрева и сушку, в том числе по фактической влажности материала, если надо ? А котел какой
Видимо я всех окончательно запутал =)
Понятия сушки в данном технологическом процессе нет как такового - это что касается камер. Возможно я где-то оговорился, но речь идет о камерах температуро-влажностной обработки бетона. Сушка производится на другом технологическом этапе, проходной сушильной камерой она работает в своем цикле и к данной теме не имеет отношения.
Что касается камер: включение вентилятора и парогенератора инициируется оператором либо в ручном (по необходимости), либо в автоматическом режиме (по расписанию), часто бывают случаи когда операторы просто забывают включить ту или иную камеру (на завтра) поэтому мне приходится либо звонить охраннику, либо ехать самому включать камеру. Т.е. моя задача по сути проста (но реализация сложна:) ) включить камеру не ранее заданного времени (потому как операторы и тут умудрялись накосячить - включали через час после изготовления и всю продукцию на выброс) и выключить через промежуток времени, при этом оба параметра необходимо сделать изменяемыми, чтобы я мог в случае чего включить ту или иную камеру удаленно из-за забывчивости оператора, и вручную изменить уставку включения с поправкой на время фактического заполнения, а не ту которую ПР рассчитает в процессе выполнения работы.
Все остальные параметры (температура, влажность) регулируются отдельными контроллерами, в котельной (дизельной) это контроллеры температуры контуров подачи и обратки, ну а влажность регулируют модульные парогенераторы на "электрической тяге" с помощью своих контроллеров и датчиков.
Теперь понятно более менее, а контроллеры поддержания температурновлажностного режима какие? В смысле поддерживают график или просто измеритель- регулятор. И уставу ему оператор ставит.
У-у как тут все усложняется. Моя программка уже не подходит,так как одновременно врубит активные все камеры после выходных. Надо организовывать очередь запуска, плюс нужен обратный сигнал, что котельная и парогенератор после выходных вышли на режим. Ладно, время есть, задачка интересная, подумаем еще
Теперь понятно более менее, а контроллеры поддержания температурновлажностного режима какие? В смысле поддерживают график или просто измеритель- регулятор. И уставу ему оператор ставит.
Измеритель-регулятор, оператор (слава богу) не имеет доступа/знаний к заданию уставок. По температуре: ecocontrol (Siemens).
А парогенератор управляется дискретным входом, модуляция встроенная (настраивается графиком, но у нас не используется, установка на 80-100% влажности) жрет 30 кВт один, на одну камеру🙄
Василий Кашуба
24.10.2022, 20:09
Причина проста и банальна, для набора прочности бетона нужен ряд условий: задержка включения (как говорит мой технолог) не менее 3 часа после загрузки, затем включение камеры подъем температуры до 45°C при 80-100% влажности и поддержание температуры до разгрузки. Если брать выходные то мы (ранее) после производства (заполнения камер) продукцией оставляли на выходные в выключенном состоянии, и пользуясь расписанием включали в 2:00-3:00 ночи понедельника, для того чтобы достичь требуемой нам температуры в 45°C на выходе.
Сейчас задача состоит в том, чтобы исключить ошибку оператора (коих даже при расписании было не счесть) для двух сменного режима работы, и не потерять в прочности продукции. Поэтому мне и необходим перенос расписания с утра субботы на понедельник, чтобы во первых не расходовать энергоресурсы (зачем топить котельную и парогенераторы для насыщения влажности в выходные\праздничные дни?!), и должна быть выдержана очередность включения камер (чтобы не нагружать котельную резкими теплопотерями при запуске). На данный момент мы не испытывали сложностей с использованием общего таймера на включение, но сейчас в связи с кризисом и импортозамещением (не самым удачным), нам необходимо нарастить производство введением 2 смены, и модернизацией калориферов с вентиляторами большей мощности, чтобы не потерять в качестве продукции и повысить набор температуры. Но тут тоже вырос костыль, т.к. мощность "новых" калориферов в полтора раза превышает наши возможности котельной, то нам необходимо запускать камеры поочередно (в том порядке котором они заполнялись), чтобы не испытывать дефицита тепла при включении "холодных" камер.
А что если запускать программу не кнопкой оператора, а концевиком закрытия ворот загруженой камеры?
У-у как тут все усложняется. Моя программка уже не подходит,так как одновременно врубит активные все камеры после выходных.
В моей версии, с UNIX версией пост#25 https://owen.ru/forum/showthread.php?t=36918&p=391506&viewfull=1#post391506 очень просто избежать одновремнного включения камер после выходных.
Я бы просто для каждой камеры ввел фиксированное значение в минутах на запуск после выходных
Например, если достаточно задержки между включениями 10 мин
1 - 10 мин
2 - 20 мин
3 - 30 мин
4 - 40 мин
5 - 50 мин
И прибавлял бы к операнду "Дате + 3 дня" на первом SEL "таймера" каждой камеры
Сергей0308
25.10.2022, 00:31
У-у как тут все усложняется. Моя программка уже не подходит,так как одновременно врубит активные все камеры после выходных. Надо организовывать очередь запуска, плюс нужен обратный сигнал, что котельная и парогенератор после выходных вышли на режим. Ладно, время есть, задачка интересная, подумаем еще
Так вроде не так давно "очередь" совершенствовали, макрос с таким названием и соответствующим названию функционалом, дошли до того, что всю очередь, в смысле, на всю глубину, можно просматривать: https://owen.ru/forum/showthread.php?t=36452&page=3
Давайте еще раз сведем все условия, без воды. Из-за разницы во времени, и не только кто-то узнает новое, всякий раз, ТС поправьте если что не так:o
1. имеем 6 камер
2. Котельную с дефицитом мощности.
Вопрос: автоматика котельной как работает , я не видел в глаза котел на ДТ, поэтому не знаю как он может работать в плане по температуре на выходе (минимальной) и есть ли возможность получить оттуда данные о производимой мощности.
Это я к тому что внимание: поочередное вкл.камер по времени может не проканать по след. причинам : изменением температуры на улице, температуры загр.сырья, но это я так понимаю а Вашем случае не очень будет влиять если загружается изделия из цеха и не где не лежат(остывают)тем не менее обратить внимание надо на этот момент. Может возникнуть ситуевина (зимой например) когда включаться поочередно по жесткому сдвигу по времени несколько камер произайдет провал, и конечно это повлияет на результат скорей всего.
По опыту, самая большая нагрузка при прогреве и тут нужно понимать какова длительность прогрева , от начальной температуры и массы сырья это тоже зависит.
3. Техпроцесс разбит условно на 2 части, я бы не разделял на нажатие запуска и собственно запуск. Первая часть - выдержка не менее 3-6ч,вторая собственно сам процесс обработки , у меня есть вопросики по второй части. ТС упоминал что этот период нужно корректировать, в связи с чем? Я подозреваю если обработка происходит по таймеру то см.П2 .
И здесь если второй период всегда стабилен это одно, если корректировать, то можно ли НЕ ВРУЧНУЮ, чтоб исключить фактор рук. Я не знаю техпроцесс, но скажем по влажности материала, или еще как-то.
4. Запуск . Как видно это проблема человеческого фактора. Василий Кашуба правильно указал направление. Но по дверям не проканает, т.к они могут просто закрыты чтоб не выстужать. Но копать этот пункт мне кажется в этом направлении, т.е. условно два концевика один на дверях, другой на условной тележке или еще как то придумать ,:загрузили -сработал датчик 1, закрыли дверь датчик 2, все, сигнал готовность есть, камера готова я бы назвал этот сигнал именно так. Что такое производство знаю и с уверенностью распланировать по минутам загрузку-выгрузку можно , ННО придется часто корректировать, что внесет сумятицу и усложнит все. А так загрузили,закрыли, все, мы знаем что готовность есть.
5. Календарь , расписание , как его ввести заранее и корректировать эта часть как бы должна накладываться на все остальные, влиять на 1 часть процесса. И вообще надо-ли , если позволяет автоматика котла, то я бы вообще этого не делал, отработали все камеры -отключили котел. Пусть работают им выходные не нужны , после стоят ждут разгрузки до рабочего времени.
Сейчас это комплекс из условно трех разных частей , каждая со своей автоматикой: котельная, камеры, и назовем условно включатель камер то о чем речь в этой теме. Не лучше ли объединить все это в единое?
P/S Добавлю по техпроцессу, может полезно будет, из собственного довольно богатого опыта связанного с сушкой пиломатериала. Не могу знать Ваш техпроцесс, просто домыслы: все стадии обработки проходят по графику температура /относит.влажность в камере-время выдержки. Подобные алгоритмы применялись при сушке древесины одно время, это тупиковая ветвь. Нужно делать только по фактическому состоянию материала. И тогда не придется что-то корректировать. Если технически возможно такое , сделайте так. Отбраковки не будет.
Я вижу так:
Необходимо создать объект "камера" со следующими состояниями (циклом работы):
0 Выведена из работы (ремонт)
1 Ожидание заполнения (в качестве сигнала окончания можно завести как предлагалось сигнал с конечников загрузки, двери камеры и ручного переключателя о готовности)
2 Готова к запуску (ожидание сигнала запуска от оператора)
3 Запущена, ожидание (заблокирована работа расписанием, или запускается другая камера, или давления пара недостаточно, или ещё что-то)
4...7 Ход техпроцесса
8 Ожидание окончания выгрузки
С учётом разнообразия требований к расписанию 75 (или около того) сетевых переменных ПР102 вам может не хватить (разве что как-то организовать расписание отдельно внутри панели).
В ПР103 сетевых переменных побольше, и допилить его скоро обещают.
в качестве сигнала окончания можно завести как предлагалось сигнал с конечников загрузки, двери камеры и ручного переключателя о готовности
Тогда это становиться тоже по сути что есть сейчас , ввод оператором на панельке.А операторы косячат. Смысл датчиков пропадает.
Тогда это становиться тоже по сути что есть сейчас , ввод оператором на панельке.А операторы косячат. Смысл датчиков пропадает.
Включить переключатель последовательно с датчиками. Либо пусть оператор нажатием кнопки запуска подтверждает, что загрузка окончена, перед непосредственно включением. Оставлять подтверждение окончания загрузки только на датчиках положения не очень правильно.
Включить переключатель последовательно с датчиками. Либо пусть оператор нажатием кнопки запуска подтверждает, что загрузка окончена, перед непосредственно включением. Оставлять подтверждение окончания загрузки только на датчиках положения не очень правильно.
Так в том и дело что забывают нажимать. В чем Вы видете опасность оставить на датчиках? Можно конечно поставить "рубильник" на предмет вывода камеры из оборота, по разным причинам (то, ремонт), а можно просто вырубить питание щитка конкретной камеры в этих случаях.
Так в том и дело что забывают нажимать. В чем Вы видете опасность оставить на датчиках? Можно конечно поставить "рубильник" на предмет вывода камеры из оборота, по разным причинам (то, ремонт), а можно просто вырубить питание щитка конкретной камеры в этих случаях.
Да может и нет опасности, по месту надо смотреть.
Давайте еще раз сведем все условия, без воды. Из-за разницы во времени, и не только кто-то узнает новое, всякий раз, ТС поправьте если что не так:o
1. имеем 6 камер
2. Котельную с дефицитом мощности.
Вопрос: автоматика котельной как работает , я не видел в глаза котел на ДТ, поэтому не знаю как он может работать в плане по температуре на выходе (минимальной) и есть ли возможность получить оттуда данные о производимой мощности.
Это я к тому что внимание: поочередное вкл.камер по времени может не проканать по след. причинам : изменением температуры на улице, температуры загр.сырья, но это я так понимаю а Вашем случае не очень будет влиять если загружается изделия из цеха и не где не лежат(остывают)тем не менее обратить внимание надо на этот момент. Может возникнуть ситуевина (зимой например) когда включаться поочередно по жесткому сдвигу по времени несколько камер произайдет провал, и конечно это повлияет на результат скорей всего.
По опыту, самая большая нагрузка при прогреве и тут нужно понимать какова длительность прогрева , от начальной температуры и массы сырья это тоже зависит.
3. Техпроцесс разбит условно на 2 части, я бы не разделял на нажатие запуска и собственно запуск. Первая часть - выдержка не менее 3-6ч,вторая собственно сам процесс обработки , у меня есть вопросики по второй части. ТС упоминал что этот период нужно корректировать, в связи с чем? Я подозреваю если обработка происходит по таймеру то см.П2 .
И здесь если второй период всегда стабилен это одно, если корректировать, то можно ли НЕ ВРУЧНУЮ, чтоб исключить фактор рук. Я не знаю техпроцесс, но скажем по влажности материала, или еще как-то.
4. Запуск . Как видно это проблема человеческого фактора. Василий Кашуба правильно указал направление. Но по дверям не проканает, т.к они могут просто закрыты чтоб не выстужать. Но копать этот пункт мне кажется в этом направлении, т.е. условно два концевика один на дверях, другой на условной тележке или еще как то придумать ,:загрузили -сработал датчик 1, закрыли дверь датчик 2, все, сигнал готовность есть, камера готова я бы назвал этот сигнал именно так. Что такое производство знаю и с уверенностью распланировать по минутам загрузку-выгрузку можно , ННО придется часто корректировать, что внесет сумятицу и усложнит все. А так загрузили,закрыли, все, мы знаем что готовность есть.
5. Календарь , расписание , как его ввести заранее и корректировать эта часть как бы должна накладываться на все остальные, влиять на 1 часть процесса. И вообще надо-ли , если позволяет автоматика котла, то я бы вообще этого не делал, отработали все камеры -отключили котел. Пусть работают им выходные не нужны , после стоят ждут разгрузки до рабочего времени.
Сейчас это комплекс из условно трех разных частей , каждая со своей автоматикой: котельная, камеры, и назовем условно включатель камер то о чем речь в этой теме. Не лучше ли объединить все это в единое?
P/S Добавлю по техпроцессу, может полезно будет, из собственного довольно богатого опыта связанного с сушкой пиломатериала. Не могу знать Ваш техпроцесс, просто домыслы: все стадии обработки проходят по графику температура /относит.влажность в камере-время выдержки. Подобные алгоритмы применялись при сушке древесины одно время, это тупиковая ветвь. Нужно делать только по фактическому состоянию материала. И тогда не придется что-то корректировать. Если технически возможно такое , сделайте так. Отбраковки не будет.
1) 6 камер =)
2) Имеется два котла мощностью 240 кВт каждый, за температурой он следит самостоятельно (изначально включается на первой ступени, сравнивает дельту нагрева и скорость набора температуры, если температура набирается с недостаточной скоростью - включает вторую ступень). Котлы обеспечивают теплом не только камеры но и офис с производством, соответственно в холодные сезоны котлы работают круглые сутки. Кривая нагрева продукции показывает, что первый час идет самый интенсивный набор температуры продукции, затем температура продукции растет 1°C в час. Я бы не брал в расчет его, от слова совсем они со своей работой справятся даже если камеры включить одновременно, но при этом кривая нагрева будет более пологая, и конечная температура продукта может не набраться за короткий период времени, поэтому я и поставил за собой задачу поочередного включения. Этим я убиваю двух зайцев: даю на выход продукцию с необходимой температурой (за счет раннего старта прогрева каждой камеры), балансирую мощность котельной, чтобы она не работала как умалишенная на предельных для себя режимах, тем самым сохраняя оборудование и топливо.
3) Техпроцесс разбит условно на 2 части, я бы не разделял на нажатие запуска и собственно запуск. Первая часть - выдержка не менее 3-6ч,вторая собственно сам процесс обработки. Корректировку запуска я объяснял чуть ранее, допустим ситуацию, что оператор по той или иной причине забыл\забил включить камеру во время (или вовсе не включил), соответственно запуск камеры не инициируется, на этом этапе вступаю в игру я: включаю камеру (инициирую задержку), но задержка не корректна т.к. камеру он загрузил в 10:00 а включил я её в 14:00, соответственно мне необходимо сдвинуть время задержки на 4 часа назад, чтобы камера включилась в "свое время". Соответственно это должны быть сетевые переменные, чтобы я мог сделать это даже удаленно через OwenCloud к примеру.
4) Проблему с концевиками вы правильно поняли: камера в момент разгрузки к примеру постоянно открывается затем закрывается (чтобы не выстужать, я скину видео процесса производства), т.е. мы не можем привязаться к воротам камер, ну теоретически можно конечно. Опять же в момент загрузки продукцией камера постоянно открыта, затем закрывается до момента необходимости разгрузки, но тут есть противоречие, если к примеру нам необходим другой профиль продукции, мы эту камеру не трогаем и оставляем ее на следующий день\неделю, соответственно концевики внесут еще большую неясность во времени включения той или иной камеры, и повлекут еще больше ошибок оператора.
5) За основу расписания я собирался взять идею из проекта Петра Артюкова https://www.youtube.com/watch?v=7ykdXexILUY&t=1283s&ab_channel=%D0%9F%D0%B5%D1%82%D1%80%D0%90%D1%80%D1 %82%D1%8E%D0%BA%D0%BE%D0%B2, т.е. если к примеру завтра выходной, оператор просто выключает на панели оператора переключатель "Ср", и расписание переносится на четверг. Работу камер (без котлов) в не рабочее время (выходные) нужно исключить, т.к. во первых - это 22 кВт/ч (потребление вентиляторами 4 камер, если не брать в расчет парогенераторы, с парогенераторами это будет вообще космос), в холодные времена года котлы работают постоянно, соответственно горячая вода регулируется хоть и отдельным контуром, но в контур камер она подается постоянно, чтобы поддерживать там маломальскую температуру в момент их простоя.
К сожалению у меня на производстве используется целый зоопарк контроллеров не собранных в одну систему, но как говорил мой учитель если работает не трожь =)
Короткое видео процесса загрузки\разгрузки камер: https://youtu.be/QtULlEtDntk
Видео производственного процесса: https://youtu.be/oJgShJDnBeQ
1) 6 камер =)
2) Имеется два котла мощностью 240 кВт каждый, за температурой он следит самостоятельно (изначально включается на первой ступени, сравнивает дельту нагрева и скорость набора температуры, если температура набирается с недостаточной скоростью - включает вторую ступень). Котлы обеспечивают теплом не только камеры но и офис с производством, соответственно в холодные сезоны котлы работают круглые сутки. Кривая нагрева продукции показывает, что первый час идет самый интенсивный набор температуры продукции, затем температура продукции растет 1°C в час. Я бы не брал в расчет его, от слова совсем они со своей работой справятся даже если камеры включить одновременно, но при этом кривая нагрева будет более пологая, и конечная температура продукта может не набраться за короткий период времени, поэтому я и поставил за собой задачу поочередного включения. Этим я убиваю двух зайцев: даю на выход продукцию с необходимой температурой (за счет раннего старта прогрева каждой камеры), балансирую мощность котельной, чтобы она не работала как умалишенная на предельных для себя режимах, тем самым сохраняя оборудование и топливо.
3) Техпроцесс разбит условно на 2 части, я бы не разделял на нажатие запуска и собственно запуск. Первая часть - выдержка не менее 3-6ч,вторая собственно сам процесс обработки. Корректировку запуска я объяснял чуть ранее, допустим ситуацию, что оператор по той или иной причине забыл\забил включить камеру во время (или вовсе не включил), соответственно запуск камеры не инициируется, на этом этапе вступаю в игру я: включаю камеру (инициирую задержку), но задержка не корректна т.к. камеру он загрузил в 10:00 а включил я её в 14:00, соответственно мне необходимо сдвинуть время задержки на 4 часа назад, чтобы камера включилась в "свое время". Соответственно это должны быть сетевые переменные, чтобы я мог сделать это даже удаленно через OwenCloud к примеру.
4) Проблему с концевиками вы правильно поняли: камера в момент разгрузки к примеру постоянно открывается затем закрывается (чтобы не выстужать, я скину видео процесса производства), т.е. мы не можем привязаться к воротам камер, ну теоретически можно конечно. Опять же в момент загрузки продукцией камера постоянно открыта, затем закрывается до момента необходимости разгрузки, но тут есть противоречие, если к примеру нам необходим другой профиль продукции, мы эту камеру не трогаем и оставляем ее на следующий день\неделю, соответственно концевики внесут еще большую неясность во времени включения той или иной камеры, и повлекут еще больше ошибок оператора.
5) За основу расписания я собирался взять идею из проекта Петра Артюкова https://www.youtube.com/watch?v=7ykdXexILUY&t=1283s&ab_channel=%D0%9F%D0%B5%D1%82%D1%80%D0%90%D1%80%D1 %82%D1%8E%D0%BA%D0%BE%D0%B2, т.е. если к примеру завтра выходной, оператор просто выключает на панели оператора переключатель "Ср", и расписание переносится на четверг. Работу камер (без котлов) в не рабочее время (выходные) нужно исключить, т.к. во первых - это 22 кВт/ч (потребление вентиляторами 4 камер, если не брать в расчет парогенераторы, с парогенераторами это будет вообще космос), в холодные времена года котлы работают постоянно, соответственно горячая вода регулируется хоть и отдельным контуром, но в контур камер она подается постоянно, чтобы поддерживать там маломальскую температуру в момент их простоя.
К сожалению у меня на производстве используется целый зоопарк контроллеров не собранных в одну систему, но как говорил мой учитель если работает не трожь =)
Короткое видео процесса загрузки\разгрузки камер: https://youtu.be/QtULlEtDntk
Видео производственного процесса: https://youtu.be/oJgShJDnBeQ
т.е. "выдержка не менее 3-6ч" - это тупо лежание загруженного материала в закрытой камере?
т.е. "выдержка не менее 3-6ч" - это тупо лежание загруженного материала в закрытой камере?
Именно так!
Именно так!
Ну так не проблема - сделаете на панели кнопку "ДАЛЕЕ" - и этап выдержки пропускается, если не нужен - и начинается прогрев.
Корректировку запуска я объяснял чуть ранее, допустим ситуацию, что оператор по той или иной причине забыл\забил включить камеру во время (или вовсе не включил), соответственно запуск камеры не инициируется, на этом этапе вступаю в игру я: включаю камеру (инициирую задержку), но задержка не корректна т.к. камеру он загрузил в 10:00 а включил я её в 14:00, соответственно мне необходимо сдвинуть время задержки на 4 часа назад,
С мощностью котлов все понятно Краснодарский хоть и созвучен не Красноярский по климату.:)
Корректировку запуска я объяснял чуть ранее, допустим ситуацию, что оператор по той или иной причине забыл\забил включить камеру во время (или вовсе не включил), соответственно запуск камеры не инициируется, на этом этапе вступаю в игру я: включаю камеру (инициирую задержку), но задержка не корректна т.к. камеру он загрузил в 10:00 а включил я её в 14:00, соответственно мне необходимо сдвинуть время задержки на 4 часа назад,
То есть Вам в любом сл-е надо знать время фактич.загрузки? Откуда Вы узнаете что в 10:00 а не в 11. они же могут и запутаться (ошибиться)? Работа смотрю весьма интенсивная контроль времени человек легко потерять может. Может все таки подумать над датчиками 1дверь . 2 например оптич. по последнему поддону.?
Работу камер (без котлов) в не рабочее время (выходные) нужно исключить, т.к. во первых - это 22 кВт/ч (потребление вентиляторами 4 камер, Чет не понял здесь . условно в пятницу загрузили-запустили, начался нерабочий период, цикл закончился , трехходовой прикрылся ( зимой условно не до конца), вентиляторы выключились. В чем проблема.
Ну так не проблема - сделаете на панели кнопку "ДАЛЕЕ" - и этап выдержки пропускается, если не нужен - и начинается прогрев.
Это будет в некоторых случаях невозможно, чтобы запустить работу камеры без отсчета, как я говорил ранее, необходимо выждать время и условно говоря запустить в ручном режиме, соответственно время выдержки уже пойдет по одному месту (точнее ее отсутствие). Либо ситуация когда вторая смена не включила ту или иную камеру перед выходными, я посмотрев по удаленке и отметив сей факт должен буду проснуться в 03:00 понедельника чтобы нажать кнопку далее? Ну, так себе перспектива =)
То есть Вам в любом сл-е надо знать время фактич.загрузки? Откуда Вы узнаете что в 10:00 а не в 11. они же могут и запутаться (ошибиться)? Работа смотрю весьма интенсивная контроль времени человек легко потерять может. Может все таки подумать над датчиками 1дверь . 2 например оптич. по последнему поддону.?
Контроль времени я могу осуществить по камерам видеонаблюдения в случае удаленного управления включением, либо по журналу загрузки в случае непосредственного присутствия.
По поводу датчиков: 1) это по моему мнению усложняет проект в техническом плане и в обслуживании - помещение цеха достаточно пыльное + влажность в камере просто цементирует пыль + датчики должны встраиваться в стену с необходимой от механического воздействия степенью защиты, расстояние между клетями и стеной не превышает 30 см, соответственно бывает водитель погрузчика цепляет стену клетью (не часто но бывает), либо камеру не заполняют до конца (бывает когда профиль изделия другой и количества клетей не хватает для заполнения "под завязку" камеры. Соответственно этот вариант не подходит.
2) честно говоря я приверженец старой школы: чем меньше деталей в механизме тем меньше риск выхода из строя данного механизма.
Чет не понял здесь . условно в пятницу загрузили-запустили, начался нерабочий период, цикл закончился , трехходовой прикрылся ( зимой условно не до конца), вентиляторы выключились. В чем проблема.
Чтобы трех ходовой клапан закрылся\прикрылся в определенный период времени - необходимо задавать расписание в контроллере контура ECOCONTROL (который находится в своей экосистеме) о котором я говорил ранее, условно говоря я и так имею на борту 3 расписания доступ к которым имею только я и директор завода, и бывает я тоже ошибаюсь, вот чтобы не плодить еще кучу расписаний я убрал из контура камер расписание (установил контроллер в режим байпас) - 7 лет всех все устраивало, и пусть лучше еще столько же устраивает =)
Контроль времени я могу осуществить по камерам видеонаблюдения в случае удаленного управления включением, либо по журналу загрузки в случае непосредственного присутствия.
По поводу датчиков: 1) это по моему мнению усложняет проект в техническом плане и в обслуживании - помещение цеха достаточно пыльное + влажность в камере просто цементирует пыль + датчики должны встраиваться в стену с необходимой от механического воздействия степенью защиты, расстояние между клетями и стеной не превышает 30 см, соответственно бывает водитель погрузчика цепляет стену клетью (не часто но бывает), либо камеру не заполняют до конца (бывает когда профиль изделия другой и количества клетей не хватает для заполнения "под завязку" камеры. Соответственно этот вариант не подходит.
2) честно говоря я приверженец старой школы: чем меньше деталей в механизме тем меньше риск выхода из строя данного механизма.
Аргумент .
А по поводу
цикл закончился , трехходовой прикрылся ( зимой условно не до конца), вентиляторы выключились?
Чтобы трех ходовой клапан закрылся\прикрылся в определенный период времени - необходимо задавать расписание в контроллере контура ECOCONTROL (который находится в своей экосистеме) о котором я говорил ранее, условно говоря я и так имею на борту 3 расписания доступ к которым имею только я и директор завода, и бывает я тоже ошибаюсь, вот чтобы не плодить еще кучу расписаний я убрал из контура камер расписание (установил контроллер в режим байпас) - 7 лет всех все устраивало, и пусть лучше еще столько же устраивает =)
Я к сожалению с таким контроллером не сталкивался. Подразумевал что после окончания все ИМ переходят в определенное положение, вентиляторы выключаются. У меня так сделано на сушилках. на базе ПР200.
Это будет в некоторых случаях невозможно, чтобы запустить работу камеры без отсчета, как я говорил ранее, необходимо выждать время и условно говоря запустить в ручном режиме, соответственно время выдержки уже пойдет по одному месту (точнее ее отсутствие). Либо ситуация когда вторая смена не включила ту или иную камеру перед выходными, я посмотрев по удаленке и отметив сей факт должен буду проснуться в 03:00 понедельника чтобы нажать кнопку далее? Ну, так себе перспектива =)
Вы не поняли - если никто не запустил камеру, то материал в ней просто лежит. Как только сей факт обнаруживается - нажимается кнопка запуска камеры и начинается отсчёт выдержки. Но поскольку выдержка уже не нужна, то сразу жмётся кнопка ДАЛЕЕ и начинается прогрев.
А вообще, если факт необходимости выполнения каких-то действий после загрузки так критичен и его пропуск приводит к простоям и браку - все решается ужесточением контроля и наказанием рублём.
Есть момент, если обнаружили ранее трёх часов, то немедленно нельзя запустить. Надо рассчитать выдержку.
Есть момент, если обнаружили ранее трёх часов, то немедленно нельзя запустить. Надо рассчитать выдержку.
Ну тогда надо запускать с панели и рядом с кнопкой запуска показывать текущие параметры запуска (стандартные длительности выдержки, прогрева...) при необходимости значения для ДАННОГО запуска корректируются и нажимается ПУСК.
Как то так или вводить вручную время загрузки, от текущего рассчитать автоматом.
Как то так или вводить вручную время загрузки, от текущего рассчитать автоматом.
Этот вариант более менее подходит, если нет возможности изменять "промежуточное" высчитанное время.
Этот вариант более менее подходит, если нет возможности изменять "промежуточное" высчитанное время.
А каким способом Вы дистанционно планируете управлять?
А каким способом Вы дистанционно планируете управлять?
Пока предполагается использовать OwenCloud
Пока предполагается использовать OwenCloud
Ой-ей, тема всплывает с перебоями последнее время. Я одну сушилку подключал только ради архивов и графиков. Потом похерели это за ненадобностью, экспорт закрылся а на внутренний рынок графики не нужны никому. Перебои в работе сервиса бывали, но мне не критично. Сейчас там ограничения в бесплатной версии, надо уточнить.
Сейчас один проект делаю, тоже мониторинг нужен, хочу попробовать каскаду Анатолия rovki.
Sergej_ нужно именно облачное решение?
Sergej_ нужно именно облачное решение?
Вот с Вами то я хотел посоветоваться, я так понимаю Вы с этим делом очень дружите.
Sergej_ я использую RapidScada, ее можно развернуть в облаке, при этом частями. Например сервер где-то развернуть, а приборы опрашивать при помощи Raspberry, Orange или промПК на объекте. Или непосредственно с облачного сервера через преобразователи интерфейсов.
Вообще многие Scada можно развернуть в облаке, тут больше стоит вопрос финансов и что вам нужно.
Sergej_ я использую RapidScada, ее можно развернуть в облаке, при этом частями. Например сервер где-то развернуть, а приборы опрашивать при помощи Raspberry, Orange или промПК на объекте. Или непосредственно с облачного сервера через преобразователи интерфейсов.
Вообще многие Scada можно развернуть в облаке, тут больше стоит вопрос финансов и что вам нужно.
Все проще , нужен архивчик на 3-4 параметра, и дистанционный доступ, облако в общем-то не нужно. Доступ только через мобильный интернет. Без вариантов. Подключал овен клауд ,на тот момент ограничений не было, подключал исключительно ради архивов, в ПР200 архив не слепить. Здесь подобная ситуация. Но овен клауд сейчас не тот, да и управлять с него не удобно. Может что изменилось, я давно не интересовался, но через него точно не буду, даже не рассматриваю.
Если кто подскажет что дельное благодарен буду.
Orange Pi (проц должен быть ARM v7 или v8) + USB-RS485 на вашу ПР200. RapidScada v6 (Modbus мастер бесплатный в системе). Далее если мобильный интернет несколько путей.
1. статический IP от оператора
2. У себя поднимаете VPN сервер, а микроПК поднимая связь цепляется к вам на постоянной основе, получает некоторый IP в VPN сети.
Далее в сети либо маршрутизация, либо вы подключаетесь так же клиентом VPN и прямой доступ к своей железке. Статический IP тут нужен только в центре.
Все данные хранятся на этом микроПК, хоть лет 10... Надо хранить где-то еще или только важные параметры, ну есть OPC UA, есть возможность отправлять в БД, даже MQTT есть.
Если требуется что-то получше, чем Orange то китайцы продают вполне себе компы сразу с портами RS в районе 10-14 тысяч да еще и на X86 архитектуре.
Очередной черновик программы. Я не придумал как с учетом выходных вычислять время запуска, поэтому остановился на таймерах с обратным отсчетом. Для экономии трафика на панель уходит таймер в минутах. В панели (если это надо) можно сделать (наверное) макрос преобразования минут в часы и минуты. С макросом "Очередь" от Сергея0308 обращаться осторожно - при копировании теряются его настройки и макрос перестает работать.
Сергей0308
26.10.2022, 21:08
Очередной черновик программы. Я не придумал как с учетом выходных вычислять время запуска, поэтому остановился на таймерах с обратным отсчетом. Для экономии трафика на панель уходит таймер в минутах. В панели (если это надо) можно сделать (наверное) макрос преобразования минут в часы и минуты. С макросом "Очередь" от Сергея0308 обращаться осторожно - при копировании теряются его настройки и макрос перестает работать.
Специально перепроверил, действительно настройки макросов внутри макроса не сохраняются(принимают значения по умолчанию), хотя они находятся внутри макроса и не выведены наружу!
Считаю это очень большим минусом, ранее я этого не замечал и внимания даже не обращал на это!
Теперь подобные макросы надо хранить в проекте(в проекте можно настройки макросов просмотреть и перенести) или прилагать к ним настройки, короче, лабуда получилась с этими настройками в свойствах макроса, это если мягко выражаться!
С другой стороны, можно смело макрос передать кому угодно, без настроек - это просто кирпич, работать не будет!
Я раньше почему-то ошибочно думал, что не сохраняются(принимают значения по умолчанию) только настройки выведенные наружу из макроса!
Orange Pi (проц должен быть ARM v7 или v8) + USB-RS485 на вашу ПР200. RapidScada v6 (Modbus мастер бесплатный в системе). Далее если мобильный интернет несколько путей.
1. статический IP от оператора
2. У себя поднимаете VPN сервер, а микроПК поднимая связь цепляется к вам на постоянной основе, получает некоторый IP в VPN сети.
Далее в сети либо маршрутизация, либо вы подключаетесь так же клиентом VPN и прямой доступ к своей железке. Статический IP тут нужен только в центре.
Все данные хранятся на этом микроПК, хоть лет 10... Надо хранить где-то еще или только важные параметры, ну есть OPC UA, есть возможность отправлять в БД, даже MQTT есть.
Если требуется что-то получше, чем Orange то китайцы продают вполне себе компы сразу с портами RS в районе 10-14 тысяч да еще и на X86 архитектуре.
Спасибо, чтоб чужую тему не мутить , пару вопросов отправлю на следующей неделе в ЛС.
Работа над ошибками.
Накосячил в макросе округления минут - вроде исправил
Если камера включалась незадолго до конца смены, то отключалась по расписанию не отработав положенное время. Теперь камера включается когда время ее выключения попадает в разрешенный промежуток
Переделал немного макрос очереди. Теперь при копировании настройки не теряются (их там нет), так же теперь возможно на панели добавить для каждой камеры ее место в очереди на запуск
В таймере выдержки заменил стандартный счетчик на макрос - тоже из-за того, что при копировании теряется настройка энергонезависимости счетчика
Убрал лишние блоки, убрал неадекватные показания таймера задержки после того как он отработал и происходит отсрочка запуска.
Есть нюанс - после сбоя питания очередь запуска сбросится и активные камеры будут запускаться по порядку.
Сергей0308
27.10.2022, 21:30
Работа над ошибками.
Накосячил в макросе округления минут - вроде исправил
Если камера включалась незадолго до конца смены, то отключалась по расписанию не отработав положенное время. Теперь камера включается когда время ее выключения попадает в разрешенный промежуток
Переделал немного макрос очереди. Теперь при копировании настройки не теряются (их там нет), так же теперь возможно на панели добавить для каждой камеры ее место в очереди на запуск
В таймере выдержки заменил стандартный счетчик на макрос - тоже из-за того, что при копировании теряется настройка энергонезависимости счетчика
Убрал лишние блоки, убрал неадекватные показания таймера задержки после того как он отработал и происходит отсрочка запуска.
Есть нюанс - после сбоя питания очередь запуска сбросится и активные камеры будут запускаться по порядку.
Настройки в свойствах макроса были придуманы, как я понимаю, чтобы избавится от однотипного множества макросов, отличающихся только значением константы!
Теперь придётся всё откатить назад, в смысле, создавать однотипные макросы, отличающиеся только значением константы.
Можно ещё убрать константы из макросов и получать значения из вне, но это тоже плохо, в смысле, громоздко получится, у меня есть макросы с 16 константами внутри, то есть куча дополнительных входов потребуется. Поэтому первый вариант считаю предпочтительным! Тогда настройки в свойствах макроса не собьются при копировании, их просто там не будет!
Если не ошибаюсь, константы (новые а не по умолчанию) в макросе копируются внутри проекта, но если скопировать в новый проект, то они будут по умолчанию.
Сейчас не на чем проверить.
Сергей0308
27.10.2022, 23:41
Если не ошибаюсь, константы (новые а не по умолчанию) в макросе копируются внутри проекта, но если скопировать в новый проект, то они будут по умолчанию.
Сейчас не на чем проверить.
Я же об этом написал, чуть раньше, основная проблема в том, что подобные макросы нельзя хранить в отдельных папках(при экспорте в файл) или в менеджере компонентов, просто настройки собьются(примут значения по умолчанию), придётся создавать множество разных подобных макросов без настроек в свойствах макроса, со значениями констант нужными в данном конкретном случае! Если Вам так тяжело всё даётся можно не мучится и гадать, я в принципе и писал для этого, чтобы люди прочитали и не столкнулись с этой проблемой, или хотя бы знали как её можно решить если столкнулись!
С виду - верх совершенства, пытался понять как это работает, не понял... Пошел дальше монтировать шкаф управления =)
что за расширение .owle ?
это в последних лоджиках такое мордвинизировали?
kondor3000
31.10.2022, 08:23
что за расширение .owle ?
это в последних лоджиках такое мордвинизировали?
Это все версии Лоджика 2.0. Советую устанавливать в отдельную папку и не делать открытие по умолчанию, открывать только из программы, пока всё ещё сырое.
Это все версии Лоджика 2.0. Советую устанавливать в отдельную папку и не делать открытие по умолчанию, открывать только из программы, пока всё ещё сырое.
У меня установлен 1.23.299. и менять не собираюсь.
Каждый раз при смене лоджика теперь обновляется прошивка ПР-ки.
После полдня мудохания в чистом поле, с поиском интырнетов, для этой мега операции, забил на обновление...
Добрый день, всем.
Прошу прощения, за пропажу с радаров. Был сильно занят, да еще и и.о. директора назначили... В общем жопа была в мыле.
Ко мне наконец все приборы пришли, все смонтировал, сегодня залил, буду отлаживать.
Может я что-то накосячил, но не пойму смысла очереди. Сейчас программа работает следующим образом:
Включаю кам1, через пару минут включаю кам2, задержка 1 мин выдержка 2 мин, кам2 неначинает работу пока кам1 не закончит работу.
Так мне не нужно было, по идее.
Или я где-то накосячил?
Сергей0308
22.11.2022, 12:50
В принципе очередь и делал чтобы другой выход не включился пока текущий(включённый) не выключится! Но в принципе можно только запуск в работу по очереди сделать(если это надо), а дальше камеры будут работать одновременно(параллейно)!
Насколько я помню, очередь я и добавлял, чтобы одновременно могла работать только одна камера.
В общем, не знаю с какого перепуга я решил что мощности котельной хватает только на одну камеру.
Вот, я переделал макрос управления камерой. Теперь все камеры в очереди запустятся. Еще у макроса добавился вход "Задержка след" - следующая в очереди камера запуститься с задержкой.
Макрос просто импортируйте в проект, щелкаете на старом макросе правой кнопкой и выбираете в меню "Заменить элемент"
Какой мне сигнал к нему (задержка след.) подключать?
Какой мне сигнал к нему (задержка след.) подключать?
Константу или переменную. Время задается в минутах
Константу или переменную. Время задается в минутах
Возможно ли добавить в макрос увеличение\уменьшение времени включения от "высчитанного" времени с шагом 10 минут, либо изменение его из вне?
я так понимаю очередь включения можно будет удалить?
Возможно ли добавить в макрос увеличение\уменьшение времени включения от "высчитанного" времени с шагом 10 минут, либо изменение его из вне?
я так понимаю очередь включения можно будет удалить?
Уставку "Задержка включения" можно менять на лету (во время отсчета) - время включения измениться. Но можно и макрос переделать с отдельным входом для коррекции и с обнулением этой коррекции после выключения камеры
Очередь лучше оставить - она правильно запустит камеры после выходных. Хотя, возникает нюанс - если камеру включили позже, а время включения у нее меньше чем у предыдущей, она все равно запуститься после
Уставку "Задержка включения" можно менять на лету (во время отсчета) - время включения измениться. Но можно и макрос переделать с отдельным входом для коррекции и с обнулением этой коррекции после выключения камеры
Очередь лучше оставить - она правильно запустит камеры после входных
Если менять уставку на лету, то во первых не происходит перерасчет индикации времени включения/выключения (вчера заметил на "железе"), во вторых система менее гибкой становится, при работе нескольких камер одновременно меняется уставка на всех а если к примеру нужно поменять время включения одной из камер?
Вчера перекопал весь форум, так и не нашел ни у кого алгоритма изменения времени "на лету", не пойму как можно перезаписать переменную с новыми данными, если она уже посчитана, даже если кучу промежуточных переменных использовать...
Я понимаю, что этот функционал увеличивает количество сетевых переменных и нагрузку на панель оператора особенно на запросы, но считаю, что такой функционал просто необходим.
Если менять уставку на лету, то во первых не происходит перерасчет индикации времени включения/выключения (вчера заметил на "железе"), во вторых система менее гибкой становится, при работе нескольких камер одновременно меняется уставка на всех а если к примеру нужно поменять время включения одной из камер?
Вчера перекопал весь форум, так и не нашел ни у кого алгоритма изменения времени "на лету", не пойму как можно перезаписать переменную с новыми данными, если она уже посчитана, даже если кучу промежуточных переменных использовать...
Я понимаю, что этот функционал увеличивает количество сетевых переменных и нагрузку на панель оператора особенно на запросы, но считаю, что такой функционал просто необходим.
Во второй версии макроса управления камерой точно при изменении уставки задержки включения все пересчитывается и отображается. А вот если изменить уставку выдержки, то там да, время выключения не пересчитывается - если это необходимо, то сделать не проблема.
Далее, у каждой камеры должна быть своя уставка включения/выключения. И сделать надо так, чтобы эта уставка записывалась из двух мест - либо напрямую, либо из какой-нибудь общей уставки. Тоже, в принципе, сделать не проблема, надо только подумать как это лучше организовать
Во второй версии макроса управления камерой точно при изменении уставки задержки включения все пересчитывается и отображается. А вот если изменить уставку выдержки, то там да, время выключения не пересчитывается - если это необходимо, то сделать не проблема.
Далее, у каждой камеры должна быть своя уставка включения/выключения. И сделать надо так, чтобы эта уставка записывалась из двух мест - либо напрямую, либо из какой-нибудь общей уставки. Тоже, в принципе, сделать не проблема, надо только подумать как это лучше организовать
Я сейчас пытаюсь оперировать переменной время старта (по моему мнению это разумней), а не уставкой, к сожалению все еще не придумал как её изменять, при этом чтобы она не зациклилась. Т.е. я научился сохранять по твоему примеру, через триггер и селект, но он почему-то ругается на зацикленность и просит добавить линию задержки, хотя у тебя ее нет, и он не ругается, хотя скорее всего я догнал, это из-за операции сложения перед селектом.
Я сейчас пытаюсь оперировать переменной время старта (по моему мнению это разумней), а не уставкой, к сожалению все еще не придумал как её изменять, при этом чтобы она не зациклилась. Т.е. я научился сохранять по твоему примеру, через триггер и селект, но он почему-то ругается на зацикленность и просит добавить линию задержки, хотя у тебя ее нет, и он не ругается, хотя скорее всего я догнал, это из-за операции сложения перед селектом.
Если ругается на обратные связи - это не ошибка, а предупреждение, в большинстве случаев можно игнорировать. Или добавить линию задержки (скорее всего в точке записи в переменную).
Я сейчас пытаюсь оперировать переменной время старта (по моему мнению это разумней), а не уставкой, к сожалению все еще не придумал как её изменять, при этом чтобы она не зациклилась. Т.е. я научился сохранять по твоему примеру, через триггер и селект, но он почему-то ругается на зацикленность и просит добавить линию задержки, хотя у тебя ее нет, и он не ругается, хотя скорее всего я догнал, это из-за операции сложения перед селектом.
Не ругается, скорее всего, потому, что переменная энергонезависимая. В принципе можно и время старта менять, но дело в том, что она запоминается в формате Д.М.Г Ч:М:С, т.е. нужно будет вычленять часы и минуты, а потом обратно интегрировать
А так, время включения на лету можно менять таким макаром
63999
Не ругается, скорее всего, потому, что переменная энергонезависимая. В принципе можно и время старта менять, но дело в том, что она запоминается в формате Д.М.Г Ч:М:С, т.е. нужно будет вычленять часы и минуты, а потом обратно интегрировать
Примерно так я это вижу ↓ только я не пойму как логику +10 мин\-10 мин времени организовать... уже все логические и не логические функции перепробовал =)
А так, время включения на лету можно менять таким макаром
63999
А это идея, если взлетит, то в +10 мин\-10 мин отпадает!
А это идея, если взлетит, то в +10 мин\-10 мин отпадает!
+/- тоже можно реализовать
64003
Но я тут подумал, может быть не городить огород, а сделать проще: убрать макрос расписания, на панель вывести время включения в формате Д.М.Г Ч:М:С. Если нужно на выходные сделать паузу, просто в панели для каждой камеры задаем новые Д.М.Г Ч:М:С и все
+/- тоже можно реализовать
64003
Но я тут подумал, может быть не городить огород, а сделать проще: убрать макрос расписания, на панель вывести время включения в формате Д.М.Г Ч:М:С. Если нужно на выходные сделать паузу, просто в панели для каждой камеры задаем новые Д.М.Г Ч:М:С и все
Я ранее объяснял, что мне необходимо менять время из-за ошибки оператора. Либо иметь возможность включать (изменять время включения) удаленно. Данный функционал будет доступен только для меня. Остальное лучше с кнопки =)
Что я сделал не так?↓
Что я сделал не так?↓
Ну, во-первых, переменная "Время выключения" используется только для проверки разрешения на запуск в случае выходных дней. На время выдержки она не влияет.
Во-вторых, зачем вы день недели в секунды записываете?
Далее, в вашем случае при изменении времени включения не учитывается переход через полночь - т.е., допустим, камеру нужно включить в 8 часов вечера и она должна заработать в 2 ночи, работники забыли ее включить - до полуночи вы не сможете поставить 2 часа ночи.
Поэтому менять время надо либо +/-, либо полным календарем с указанием даты и времени.
И еще, вам обязательно надо иметь возможность изменить время выключения? Оно ведь автоматом рассчитывается от времени включения и выдержки
Это я честно говоря не тот модуль сбросил, у меня 4 проекта открыты (и во всех разные эксперименты), его я исправил, но на полночь не проверил пока...
В принципе время выключения менять нет особой необходимости, вы правы.
+/- тоже можно реализовать
64003
Но я тут подумал, может быть не городить огород, а сделать проще: убрать макрос расписания, на панель вывести время включения в формате Д.М.Г Ч:М:С. Если нужно на выходные сделать паузу, просто в панели для каждой камеры задаем новые Д.М.Г Ч:М:С и все
Попробовал реализовать +\- ↓ не получилось =) либо я опять что-то упустил.
Попробовал реализовать +\- ↓ не получилось =) либо я опять что-то упустил.
А что конкретно не получается?
Неправильно считает время выключения - время выключения для других целей служит
Изменить время включения можно только после того как камера будет находиться в режиме ожидания
А что конкретно не получается?
Неправильно считает время выключения - время выключения для других целей служит
Изменить время включения можно только после того как камера будет находиться в режиме ожидания
У меня во всяком случае (в эмуляторе и на железе) не редактирует время включения, точнее когда камера находится в статусе "0" - время прибавляется/отнимается, но когда запускаю кнопкой (статус "1") - время высчитывается по умолчанию и его нет возможности поменять (на долю секунды меняется, и возвращается обратно).
Я так понимаю время выключения я могу вычислить только из переменной "таймер"?
Upd: понял что делает таймер: это грубо говоря отсчет времени до следующего события - время до включения - время до выключения...
Тогда от куда мне можно взять время выключения?
Попробуйте этот макрос
64013
пока камера выключена (статус 0) изменить время включения нельзя - показывается время включения и выключения, привязанные к текущему времени и уставкам.
после включения (статус 1) макрос на основе расписания пересчитывает время включения и, соответственно выключения (пока по умолчанию поставил работать всегда - тоже нужно тестить).
пока действует задержка (статус 1) время включения можно изменять
основная заморока здесь - учесть перерыв в электроснабжении когда камера уже работает (статус 3). Я его вроде решил, т.е. время без питания не входит в выдержку и после восстановления питания время выключения пересчитается, но это надо проверить
кнопки +/- работают так: краткое нажатие - единичное срабатывание, удерживание - изменение со скоростью 10 мин/сек. Не знаю как это по сети будет работать.
удалил таймер - вы его все равно не используете
Я вот, что предлагаю - разделить управление камерами на "с кнопки" и "по сети". При запуске с кнопки автоматом на основе уставок рассчитывается время включения и выключения. При запуске по сети можно скорректировать время включения (время выключения автоматом подтянется) после чего уже запустить камеру. После запуска корректировать время уже нельзя.
Стоит разрабатывать этот вариант?
Я вот, что предлагаю - разделить управление камерами на "с кнопки" и "по сети". При запуске с кнопки автоматом на основе уставок рассчитывается время включения и выключения. При запуске по сети можно скорректировать время включения (время выключения автоматом подтянется) после чего уже запустить камеру. После запуска корректировать время уже нельзя.
Стоит разрабатывать этот вариант?
Я думаю нынешний функционал боле чем должен всех устраивать.
Кстати вы говорили про расписание с датой, я не нашел такого макроса, существует ли макрос типа Clock_week но с переносом остатка времени на следующий день (если он выключен в расписании)?
Попробуйте этот макрос
64013
Есть очень неприятный баг вычисления времени, если к примеру оператор нажмет кнопку запуска сегодня в 23:59, а завтра (к примеру) мы не работаем, то время запуска и остановки не вычисляется и бегает по кругу. Так же происходит если ни один из дней не выставлен. То же самое происходит если время задержки переходит на следующий (не рабочий) день.
Я думаю нынешний функционал боле чем должен всех устраивать.
Кстати вы говорили про расписание с датой, я не нашел такого макроса, существует ли макрос типа Clock_week но с переносом остатка времени на следующий день (если он выключен в расписании)?
Так вот он
64023
А это расписание для него
64024
И, еще, в свете того, что время запуска редактируется, необходимо избавляться от макроса "Очередь". Дело в том, что если какую-то камеру запустили уже после остальных с коррекцией запуска, то она в очередь станет последней, даже если по времени должна запуститься раньше. Вместо очереди нужен макрос, который просто делает задержку запуска следующей камеры. После выходных камеры будут запускаться по очереди в порядке возрастания от первой и далее, а не в порядке нажимания кнопки
И, еще, в свете того, что время запуска редактируется, необходимо избавляться от макроса "Очередь". Дело в том, что если какую-то камеру запустили уже после остальных с коррекцией запуска, то она в очередь станет последней, даже если по времени должна запуститься раньше. Вместо очереди нужен макрос, который просто делает задержку запуска следующей камеры. После выходных камеры будут запускаться по очереди в порядке возрастания от первой и далее, а не в порядке нажимания кнопки
Поторопился - проблема решается просто
+/- тоже можно реализовать
64003
Но я тут подумал, может быть не городить огород, а сделать проще: убрать макрос расписания, на панель вывести время включения в формате Д.М.Г Ч:М:С. Если нужно на выходные сделать паузу, просто в панели для каждой камеры задаем новые Д.М.Г Ч:М:С и все
В общем пока проект в разработке, меня начальник терроризирует (особенно понравилось высказывание:" Какой то таймер за 1к рублей сам включает по расписанию, а эта штука за 30к не может? " =) Поэтому пока выкатываю версию на таймерах которые вы мне показывали ранее, на сегодня это приемлемо (режим работы завода на данный момент позволяет).
Но есть одно НО, время включения каждой камеры содержится в сетевой переменной, соответственно как только выключится питание все настройки слетят? Если да то как мне заставить их запоминаться в энергонезависимую память малыми усилиями?
Сетевые переменные энергонезависимые
Сетевые переменные энергонезависимые
Я тоже поторопился 🤗, уже когда написал и лег спать прорабатывая в мыслях интерфейс панели, вспомнил, что в теории они должны быть энергонезависимы 😁 но не стал лезть на форум и удалять сообщение (хотя с ними я работаю впервые).
Я тоже поторопился 🤗, уже когда написал и лег спать прорабатывая в мыслях интерфейс панели, вспомнил, что в теории они должны быть энергонезависимы 😁 но не стал лезть на форум и удалять сообщение (хотя с ними я работаю впервые).
Временную программу отладил, ошибки устранил, но не закрыл один вопрос: как заставить запомнить состояние сигнала "кнопка" при отключении питания, галку энергонезависимость галку ставил не помогло, видимо макрос "ON_OFF" при включении питания перезаписывает состояние на "0".
Временную программу отладил, ошибки устранил, но не закрыл один вопрос: как заставить запомнить состояние сигнала "кнопка" при отключении питания, галку энергонезависимость галку ставил не помогло, видимо макрос "ON_OFF" при включении питания перезаписывает состояние на "0".
Гляньте как у меня в макросе защелка на кнопку сделана. Она запоминает состояние. Лишнее оттуда можно будет убрать
Гляньте как у меня в макросе защелка на кнопку сделана. Она запоминает состояние. Лишнее оттуда можно будет убрать
Вы имеете ввиду: триггер, а за ним xor с линией задержки на один из входов xor'a (данный механизм реализован в макросе "one_touch")?
Если да, то я пробовал, но он удерживает значение ровно до перезагрузки железки 🙄
Вот так
64057
Переменная Пуск энергонезависимая
Сергей0308
25.11.2022, 20:37
Временную программу отладил, ошибки устранил, но не закрыл один вопрос: как заставить запомнить состояние сигнала "кнопка" при отключении питания, галку энергонезависимость галку ставил не помогло, видимо макрос "ON_OFF" при включении питания перезаписывает состояние на "0".
Вам же много Т-триггеров требуется, в смысле, здесь в посте #622: https://owen.ru/forum/showthread.php?t=12691&page=63
выкладывал до 32 Т-триггера в одном флаконе с функцией энергонезависимости и ещё преимущество этого алгоритма в том, что количество используемой энергонезависимой памяти может уменьшится до 8 раз!
Бывает это критично, в смысле, объём памяти ограничен!
Такое впечатление, что Вы с Луны упали и даже не вчера, а только что, в смысле, ничего не знаю и смотреть не хочу!
И, здесь, в посте #4699: https://owen.ru/forum/showthread.php?t=17153&page=470
Вот так
64057
Переменная Пуск энергонезависимая
Я так и предполагал, но меня постоянно пугает предупреждение о зацикленности и я подумал "не взлетит" на железе (хотя не понятно почему у вас в макросах нет этих предупреждений), поэтому не стал так реализовывать.
Вам же много Т-триггеров требуется, в смысле, здесь в посте #622: https://owen.ru/forum/showthread.php?t=12691&page=63
выкладывал до 32 Т-триггера в одном флаконе с функцией энергонезависимости и ещё преимущество этого алгоритма в том, что количество используемой энергонезависимой памяти может уменьшится до 8 раз!
Бывает это критично, в смысле, объём памяти ограничен!
Такое впечатление, что Вы с Луны упали и даже не вчера, а только что, в смысле, ничего не знаю и смотреть не хочу!
И, здесь, в посте #4699: https://owen.ru/forum/showthread.php?t=17153&page=470
За макрос огромное спасибо! Действительно рабочая вещ. А насчет луны не совсем понятно куда я должен был смотреть? Поиск у форума мягко говоря отвратительный, да еще и я (как говорил ранее) не профессионально занимаюсь программированием контроллеров, и в среде FBD я пытаюсь что-то собрать впервые, это не говоря уже о профессиональном сленге типа "Т-триггер" или "Защелка". Так что в этом смысле я и вправду "Свалился с луны".
П.С. Не сочтите мои слова за грубость!
Я благодарен всем откликнувшимся на мой зов о помощи, и все еще не потерял веру в людей, поэтому и сам стараюсь помогать в сфере где являюсь профессионалом.
Я так и предполагал, но меня постоянно пугает предупреждение о зацикленности и я подумал "не взлетит" на железе (хотя не понятно почему у вас в макросах нет этих предупреждений), поэтому не стал так реализовывать.
Предупреждения о зацикленности нет, потому что переменная энергонезависимая.
Вот написал вам макрос для уставок времени включения/выключения
64073
Работает так: если нажали на кнопку, то к текущему времени прибавляются задержка и выдержка и предается на расписание. Или на панели можно сначала выставить время включения и запустить (с панели), тогда на расписание уйдет выставленное время и рассчитанное время выключения
Что касается сленга, то Т-триггер это конкретный элемент схемотехники. Защелка, да, можно назвать сленгом для RS-триггера
Сергей0308
26.11.2022, 14:21
Я так и предполагал, но меня постоянно пугает предупреждение о зацикленности и я подумал "не взлетит" на железе (хотя не понятно почему у вас в макросах нет этих предупреждений), поэтому не стал так реализовывать.
За макрос огромное спасибо! Действительно рабочая вещ. А насчет луны не совсем понятно куда я должен был смотреть? Поиск у форума мягко говоря отвратительный, да еще и я (как говорил ранее) не профессионально занимаюсь программированием контроллеров, и в среде FBD я пытаюсь что-то собрать впервые, это не говоря уже о профессиональном сленге типа "Т-триггер" или "Защелка". Так что в этом смысле я и вправду "Свалился с луны".
П.С. Не сочтите мои слова за грубость!
Я благодарен всем откликнувшимся на мой зов о помощи, и все еще не потерял веру в людей, поэтому и сам стараюсь помогать в сфере где являюсь профессионалом.
Тогда, можно добавить, что и при переносе макросов(бывает и макрос в макросе) в свой проект(копировании) тоже имеются нюансы, надо следить за настройками в свойствах макросов(если они имеются), в смысле, что бы они совпадали!
Предупреждения о зацикленности нет, потому что переменная энергонезависимая.
Вот написал вам макрос для уставок времени включения/выключения
64073
Работает так: если нажали на кнопку, то к текущему времени прибавляются задержка и выдержка и предается на расписание. Или на панели можно сначала выставить время включения и запустить (с панели), тогда на расписание уйдет выставленное время и рассчитанное время выключения
Что касается сленга, то Т-триггер это конкретный элемент схемотехники. Защелка, да, можно назвать сленгом для RS-триггера
Добрый день! Как всегда появились новые вводные :(
Работа в 3 режимах:
1 - "Ручной", если переключатель установлен в положение ручной, то при нажатии кнопки происходит запуск камеры;
2 - "Автоматический в режиме одной смены" (тот режим в котором мы сейчас работаем), переключатель установлен в положение "Авт 1 смена" по сути недельное расписание включения в определенное время;
3 - "Автоматический в режиме двух смен" (имеет по две уставки задержки и выдержки), этот режим работает так при установленном переключателе "Авт 2 смены" оператор нажимает кнопку "Кам 1", если он нажал кнопку с 7:00 утра до 19:00 вечера, то применяется группа уставок 1, если он нажал в период с 19:00 до 7:00 то применятся группа уставок 2. Если следующий день выходной/праздничный то камеры должны запуститься на следующий день в период с 00:00 до 03:00 последовательно (по очередности включения) с задержкой включения 30 минут.
Собственно я перепахал ваш макрос своими п̶р̶я̶м̶ы̶м̶и̶ руками, но осталось очень много косяков которые я не в силах исправить:
Исчезла функция изменения времени, соответственно не известно как выставлять время включения в режиме "Авт 1 смена", не знаю как реализовать очередь, т.к. ваши предыдущие макросы я вообще не понял (потратил уйму времени на нахождение алгоритма =) ) И не могу четко и понятно инициировать алгоритм включения (без кучи лишних промежуточных переменных). Поможете мне с этим?
Хотелось бы уточнить:
1. Ручной режим - нажали на кнопку запустили камеру. А как останавливать камеру - по нажатию на кнопку или через выдержку времени?
2. Автоматический режим одна смена - кнопку нажимать не надо? Если надо нажимать, выходные дни учитывать?
3. Автоматический режим две смены. Вторая смена заканчивает работу уже в выходной день в 7:00. Значит камеры должны запуститься с начала суток рабочего дня?
4. Группа уставок - это время задержки и время выдержки?
Хотелось бы уточнить:
1. Ручной режим - нажали на кнопку запустили камеру. А как останавливать камеру - по нажатию на кнопку или через выдержку времени?
2. Автоматический режим одна смена - кнопку нажимать не надо? Если надо нажимать, выходные дни учитывать?
3. Автоматический режим две смены. Вторая смена заканчивает работу уже в выходной день в 7:00. Значит камеры должны запуститься с начала суток рабочего дня?
4. Группа уставок - это время задержки и время выдержки?
1. По нажатию, лучше если оставить как примерно сейчас при переключении режимов Авт 1 смена\ ручн, именно так скоммутирован переключатель и сейчас действует такой алгоритм, только на переключателях, т.е. если она была включена в ручном режиме, при переключении режима пусть останется, но только в режиме авт 1 смена\ ручной и обратно. Т.к. алгоритм Авт 2 смены как видите не имеет ничего общего с первыми двумя, можно конечно оставить включенной камеру при переходе из режима "Авт 2 смены", но лучше не надо, чтобы оператор не запустил камеру переключив в режим "Ручной".
Почему лучше оставить включенной из режима "Авт 1 смена", чтобы оператор при завершении расписания, а работа к примеру не окончена, мог переключить в ручной режим одним переключателем, а не правя расписание каждой камеры добавляя время, и снова нажимая кнопки (именно сейчас все так и работает, у меня правда только один сигнал с реле времени которое заведено с 02:00 до 16:00Ю и когда мы задерживаемся дольше, оператор просто переводит в ручной режим и включенные ранее камеры снова запускаются).
2. Автоматический режим одна смена, это лишь мое название (для своего понимания), т.е. автоматически она не включается (без нажатия кнопки), и соответственно из автоматики у нас будет только ее запуск. По этому для включения камеры необходимо нажать кнопку "Кам 1 вкл" (к примеру).
3. Да, именно так, я даже вообразить не могу как это осуществить.
4. Да, группа 1: задержка 1 смены (час\мин)\ выдержка 1 смены (час\мин), и группа 2: задержка 2 смены (час\мин)\ выдержка 2 смены (час\мин) соответственно. Смысл в том, что задержка второй смены должна составлять 6 часов, задержка второй 3 часа, поэтому я разделил их на группы.
Есть еще один нюанс, с камерой для линии фитингов (одна из 6 камер при том иногда рандомная), она как правило включается по расписанию (т.е. я им завожу расписание индивидуально, т.к. у них то бывает 2 смены, то нет), но если весь алгоритм с режимом (Авт 1 смена\ручн\Авт 2 смены) делать внутри макроса (если это возможно), то этот нюанс отпадет т.к. можно будет отдельной камере (программно) назначить режим работы "Авт 1 смена" к примеру.
1. режим ручной: нажали - включили, повторно нажали - выключили
2. режим автомат 1 смена: нажали - на основе уставок вычислили время включения и выключения и пошел работать алгоритм
3. режим автомат 2 смены: тоже что и автомат 1 смена, но разные уставки и учитываем выходные дни
Но как реагировать при смены режима я не понял
режим ручной, камера запущена, переключили на режим автомат 1 смена/2 смены - что делать?
режим автомат, алгоритм уже запущен (идет отсчет задержки или камера работает), переключили в режим ручной - что делать?
1. режим ручной: нажали - включили, повторно нажали - выключили
2. режим автомат 1 смена: нажали - на основе уставок вычислили время включения и выключения и пошел работать алгоритм
3. режим автомат 2 смены: тоже что и автомат 1 смена, но разные уставки и учитываем выходные дни
Но как реагировать при смены режима я не понял
режим ручной, камера запущена, переключили на режим автомат 1 смена/2 смены - что делать?
режим автомат, алгоритм уже запущен (идет отсчет задержки или камера работает), переключили в режим ручной - что делать?
1. Да именно, режим ручной: нажали - включили, повторно нажали - выключили.
2. Режим "Автомат 1 смена": нажали ( ̶л̶и̶б̶о̶ ̶п̶е̶р̶е̶к̶л̶ю̶ч̶и̶л̶и̶ ̶с̶ ̶р̶е̶ж̶и̶м̶а̶ ̶"̶Р̶у̶ч̶н̶о̶й̶"̶ ̶р̶у̶ч̶н̶о̶г̶о̶ ̶с̶ ̶з̶а̶р̶а̶н̶е̶е̶ ̶н̶а̶ж̶а̶т̶о̶й̶ ̶(̶в̶к̶л̶ю̶ч̶е̶н̶н̶о̶й̶)̶), камера запускается в заранее выставленное расписание (либо на горячую выставленным с кнопкой на панели "изменить"), ничего вычислять не требуется. Здесь можно лишь очередность включения добавить (как после выходных) с получасовой задержкой включения на следующий день, в порядке запуска.
3. Режим "Автомат 2 смены": нажали - на основе уставок (и времени суток) вычислили время включения\отключения, пошел работать алгоритм, по завершению алгоритма камеру выключить, либо если камеру разгрузили раньше выключить повторным нажатием. Тоже можно лишь очередность включения добавить после выходных\праздничных с получасовой задержкой включения в порядке запуска.
Автомат 1 смена и Автомат 2 смены разные по алгоритму. Первый работает по принципу заранее выставленного расписания, второй вычисляет время согласно уставок.
̶С̶о̶о̶т̶в̶е̶т̶с̶т̶в̶е̶н̶н̶о̶ ̶е̶с̶л̶и̶ ̶в̶ ̶р̶е̶ж̶и̶м̶е̶ ̶"̶А̶в̶т̶о̶м̶а̶т̶ ̶1̶ ̶с̶м̶е̶н̶а̶"̶ ̶р̶а̶с̶п̶и̶с̶а̶н̶и̶е̶ ̶з̶а̶р̶а̶н̶е̶е̶ ̶в̶ы̶с̶т̶а̶в̶л̶е̶н̶о̶ ̶в̶ы̶с̶т̶а̶в̶л̶е̶н̶о̶,̶ ̶о̶п̶е̶р̶а̶т̶о̶р̶ ̶н̶а̶ж̶и̶м̶а̶е̶т̶ ̶к̶н̶о̶п̶к̶у̶ ̶к̶а̶м̶е̶р̶ы̶ ̶о̶н̶а̶ ̶в̶к̶л̶ю̶ч̶а̶е̶т̶с̶я̶ ̶(̶и̶ ̶з̶а̶п̶у̶с̶к̶а̶е̶т̶с̶я̶ ̶е̶с̶л̶и̶ ̶н̶а̶х̶о̶д̶и̶т̶с̶я̶ ̶в̶ ̶р̶а̶м̶к̶а̶х̶ ̶р̶а̶с̶п̶и̶с̶а̶н̶и̶я̶)̶.̶ ̶Е̶с̶л̶и̶ ̶р̶а̶м̶к̶и̶ ̶р̶а̶с̶п̶и̶с̶а̶н̶и̶я̶ ̶р̶е̶ж̶и̶м̶а̶ ̶"̶А̶в̶т̶о̶м̶а̶т̶ ̶1̶ ̶с̶м̶е̶н̶а̶"̶ ̶з̶а̶к̶о̶н̶ч̶и̶л̶и̶с̶ь̶ ̶-̶ ̶к̶а̶м̶е̶р̶ы̶ ̶о̶с̶т̶а̶н̶а̶в̶л̶и̶в̶а̶ю̶т̶с̶я̶ ̶н̶о̶ ̶н̶е̶ ̶в̶ы̶к̶л̶ю̶ч̶а̶ю̶т̶с̶я̶,̶ ̶а̶ ̶ж̶д̶у̶т̶ ̶с̶л̶е̶д̶у̶ю̶щ̶и̶х̶ ̶р̶а̶м̶о̶к̶ ̶р̶а̶с̶п̶и̶с̶а̶н̶и̶я̶.̶ ̶Л̶и̶б̶о̶ ̶е̶с̶л̶и̶ ̶р̶а̶м̶к̶и̶ ̶р̶а̶с̶п̶и̶с̶а̶н̶и̶я̶ ̶з̶а̶к̶о̶н̶ч̶и̶л̶и̶с̶ь̶ ̶и̶ ̶к̶а̶м̶е̶р̶ы̶ ̶о̶с̶т̶а̶н̶о̶в̶и̶л̶и̶с̶ь̶ ̶н̶о̶ ̶н̶е̶ ̶в̶ы̶к̶л̶ю̶ч̶и̶л̶и̶с̶ь̶ ̶-̶ ̶о̶п̶е̶р̶а̶т̶о̶р̶ ̶п̶е̶р̶е̶в̶о̶д̶и̶т̶ ̶п̶е̶р̶е̶к̶л̶ю̶ч̶а̶т̶е̶л̶ь̶ ̶в̶ ̶п̶о̶л̶о̶ж̶е̶н̶и̶е̶ ̶"̶Р̶у̶ч̶н̶о̶й̶"̶ ̶и̶ ̶к̶а̶м̶е̶р̶ы̶ ̶(̶р̶а̶н̶н̶е̶е̶ ̶в̶к̶л̶ю̶ч̶е̶н̶н̶ы̶е̶)̶ ̶з̶а̶п̶у̶с̶к̶а̶ю̶т̶с̶я̶,̶ ̶и̶ ̶н̶а̶о̶б̶о̶р̶о̶т̶.̶ ̶Т̶.̶е̶.̶ ̶в̶ы̶к̶л̶ю̶ч̶а̶т̶ь̶ ̶(̶н̶е̶ ̶п̶у̶т̶а̶т̶ь̶ ̶с̶ ̶з̶а̶п̶у̶с̶к̶а̶т̶ь̶\̶ ̶о̶с̶т̶а̶н̶а̶в̶л̶и̶в̶а̶т̶ь̶)̶ ̶м̶е̶ж̶д̶у̶ ̶э̶т̶и̶м̶и̶ ̶д̶в̶у̶м̶я̶ ̶р̶е̶ж̶и̶м̶а̶м̶и̶ ̶н̶е̶ ̶н̶у̶ж̶н̶о̶.̶
Все же придется выключать камеры при переходе с любого режима, т.к. будет сложная ситуация с переключением с режима "Автомат 1 смена" в "Автомат 2 смены", ему придется пройти через режим "Ручной" что запустит камеры. Либо изменить порядок режимов на: "Ручной" | "Автомат 1 смена" | "Автомат 2 смены", но тогда это может осложнить алгоритм вычисления времени при переключении в режим "Автомат 2 смены", но это было бы логичней если честно.
Я уже боюсь вас напрягать если честно.
Еще вопрос. Насколько важна очередность запуска камер после выходных? Просто я пока не вижу как восстановить очередь после пропажи питания
Еще вопрос. Насколько важна очередность запуска камер после выходных? Просто я пока не вижу как восстановить очередь после пропажи питания
Не особо, честно говоря. Я бы ее вообще убрал, не совсем понимаю как с ней работать. Хотя меня и просили добавить индикацию на дисплей об очередности заполнения, но я боюсь у меня так сетевые переменные закончатся , поэтому я даже в панели данный функционал не закладывал. =)
Очередь, значит, убираем. Делаем просто задержку между запусками камер.
Индикацию об очередности можно вывести, только надо определиться на основе чего мы будем ее вычислять: как вариант, в ручном режиме по нажатию кнопки, а в автоматическом режиме - по времени выключения. Но оставим это на потом.
Чтобы сетевые переменные не закончились надо время в формате час:мин передавать одной переменной, а панели и ПР упаковывать/распаковывать. Я не знаю Овеновской панели, но думаю в ней можно это провернуть
Очередь, значит, убираем. Делаем просто задержку между запусками камер.
Индикацию об очередности можно вывести, только надо определиться на основе чего мы будем ее вычислять: как вариант, в ручном режиме по нажатию кнопки, а в автоматическом режиме - по времени выключения. Но оставим это на потом.
Чтобы сетевые переменные не закончились надо время в формате час:мин передавать одной переменной, а панели и ПР упаковывать/распаковывать. Я не знаю Овеновской панели, но думаю в ней можно это провернуть
Да, в панели можно организовать распаковку\упаковку в последующем мы наверное удалим из макроса распаковку\упаковку даты и времени во входном\выходном блоке макроса, я уже видел такую реализацию у одного форумчанина, который делал проект недельного таймера на панели, правда с применением макроса clock_week.
Первая часть Мармезонского балета.
Отдаю на тестирование кусок программы (я быстренько прогнал - вроде работает). Сделал контроль запуска с задержкой и контроль выходных и рабочих дней.
Следующий шаг - макрос для управления камерой
Сергей0308
28.11.2022, 22:35
Первая часть Мармезонского балета.
Отдаю на тестирование кусок программы (я быстренько прогнал - вроде работает). Сделал контроль запуска с задержкой и контроль выходных и рабочих дней.
Следующий шаг - макрос для управления камерой
Мне кажется, логика проще в целочисленном виде, в смысле, количество элементов может сократится до 32 раз(включительно)!
64125
64126
Мне кажется, логика проще в целочисленном виде, в смысле, количество элементов может сократится до 32 раз(включительно)!
Спасибо, не увидел
Сергей0308
28.11.2022, 23:01
Спасибо, не увидел
И с "разрешением"(на входе) аналогично можно сделать!
64127
64128
И с "разрешением"(на входе) аналогично можно сделать!
Да, уже исправил, только немного по другому
64129
Да, уже исправил, только немного по другому
64129
Все работает, я даже начинаю практически все понимать =)
Только не совсем понял для чего нужен данный селектор ↓ и для чего он служит?
Все работает, я даже начинаю практически все понимать =)
Только не совсем понял для чего нужен данный селектор ↓ и для чего он служит?
В режиме одна смена время перехода системы на выходные одно, в режиме 2 смены - другое. Если этого не надо, тогда можно убрать
В режиме одна смена время перехода системы на выходные одно, в режиме 2 смены - другое. Если этого не надо, тогда можно убрать
Нет, не нужно убирать, все верно!
Не доработан пока корректный запуск после сбоя питания. Но основные функции можно тестить - в теории должно работать, но я мог не все баги выловить. Макросы с символом подчеркивания в конце (находятся в папке Оболочка) - это переход от задания времени ЧЧ:ММ в ММ (Т.е., в дальнейшем, можно будет сэкономить на сетевых переменных). Там еще есть возможности сэкономить, но это потом (если надо будет). Алгоритм не очень оптимальный, но тут сказывается уже моя компетентность
64195
Не, кривой алгоритм получился. Этот файл бракуем
Вот, вроде все учел. Переключение между режимами, возможность работы отдельной камеры в режиме фитинги. И даже визуализация очереди есть
В общем, пробуйте. Будут вопросы - задавайте. Время передается одним регистром в минутах, поэтому на панели нужно будет распаковывать/запаковывать.
Сергей0308
03.12.2022, 20:48
Вот, вроде все учел. Переключение между режимами, возможность работы отдельной камеры в режиме фитинги. И даже визуализация очереди есть
В общем, пробуйте. Будут вопросы - задавайте. Время передается одним регистром в минутах, поэтому на панели нужно будет распаковывать/запаковывать.
У Вас просто монструозный макрос "Очередь", точнее там определяется ранг переменной в зависимости от её значения, наверно сложнее невозможно придумать, во всяком случае Вас тяжело или невозможно будет переплюнуть, мне так кажется!
У Вас просто монструозный макрос "Очередь", точнее там определяется ранг переменной в зависимости от её значения, наверно сложнее невозможно придумать, во всяком случае Вас тяжело или невозможно будет переплюнуть, мне так кажется!
.
Ну, если представите изящный вариант, будет здорово. А так, я его делал в теме https://owen.ru/forum/showthread.php?t=36953&p=392095&viewfull=1#post392095. Там, есть и на ST макрос.
В принципе, можно очередь одной строкой представить
Сергей0308
03.12.2022, 22:47
.
Ну, если представите изящный вариант, будет здорово. А так, я его делал в теме https://owen.ru/forum/showthread.php?t=36953&p=392095&viewfull=1#post392095. Там, есть и на ST макрос.
В принципе, можно очередь одной строкой представить
Могу подсказать как я это вижу на данный момент, в смысле, со временем представление может меняться!
Вот здесь в постах 695 и 700 я макрос выкладывал нахождения максимального значения из 16: https://owen.ru/forum/showthread.php?t=25067&page=70
Так вот, если не изменяет память Вы ещё подсказывали как сократить процесс до 16 циклов программы, там он занимает 32 цикла!
Так вот за 16 циклов находим наибольшее(можно и наименьшее, не принципиально), далее запоминаем наибольшее(наименьшее) и убираем его из сравнения, цикл сравнения повторяем, находим наибольшее из оставшихся и так 15 раз, пока весь ранг переменных не определится в зависимости от их значений, надеюсь понятно объяснил?
Чтобы в одной строке(переменной) весь ранг запомнить придётся сократить количество сравниваемых переменных до 8, 16 не поместятся, да и алгоритм упростится и процесс ускорится, Вам же всего 6 переменных нужно сравнивать!
Могу подсказать как я это вижу на данный момент, в смысле, со временем представление может меняться!
Вот здесь в постах 695 и 700 я макрос выкладывал нахождения максимального значения из 16: https://owen.ru/forum/showthread.php?t=25067&page=70
Так вот, если не изменяет память Вы ещё подсказывали как сократить процесс до 16 циклов программы, там он занимает 32 цикла!
Так вот за 16 циклов находим наибольшее(можно и наименьшее, не принципиально), далее запоминаем наибольшее(наименьшее) и убираем его из сравнения, цикл сравнения повторяем, находим наибольшее из оставшихся и так 15 раз, пока весь ранг переменных не определится в зависимости от их значений, надеюсь понятно объяснил?
Чтобы в одной строке(переменной) весь ранг запомнить придётся сократить количество сравниваемых переменных до 8, 16 не поместятся, да и алгоритм упростится и процесс ускорится, Вам же всего 6 переменных нужно сравнивать!
Плаваю я в вашем способе писать программы. Но вот, что-то получилось.
Сергей0308
04.12.2022, 13:39
Плаваю я в вашем способе писать программы. Но вот, что-то получилось.
Ну вот, совсем другое дело! Ведь можете когда захотите! Для первой попытки просто замечательно! Многие(в отличии от Вас) не хотят учится, и орут "подавайте мне ST", то есть вообще не хотят головой думать!
Помните как говорил Альф:
Вы не любите кошек(в смысле ОЛ)?
Вы просто не умеете их готовить!
Кстати, на их планете кошки считались деликатесом!
Короче, мне кажется, как минимум на порядок проще получилось, в смысле меньше элементов!
Вот, вроде все учел. Переключение между режимами, возможность работы отдельной камеры в режиме фитинги. И даже визуализация очереди есть
В общем, пробуйте. Будут вопросы - задавайте. Время передается одним регистром в минутах, поэтому на панели нужно будет распаковывать/запаковывать.
Это просто шедевр!!! Я бы писал столько макросов полтора года "с книжкой", и то не написал бы так как вы!
Постараюсь на этой неделе доделать шкаф (скоммутировать с камерами), и переписать интерфейс под новые данные, и скорее на следующей неделе буду тестировать по полной!
Особенно проверьте восстановление работоспособности после пропажи питания. Теоретически должно работать, но надо на железе проверять. И косяк один есть, я все сетевые команды для камер упаковал в одну переменную, а она 32 битная, а ПР в слейве понимает только 16 бит - надо на три камеры раскидывать или для каждой использовать свою переменную, запас, вроде имеется. После работы поправлю.
Так как панель Овена поддерживает UDINT, а ПР в режиме слейв групповые запросы, я решил все таки сэкономить и разбил переменную на два регистра со склейкой в ПР. Главное чтобы они располагались в соседних регистрах и еще важен порядок - старший/младший. Сам такого никогда не делал, но попробуйте, если не получится, то сделаем команды на каждую камеру индивидуально. Регистров при этом получится 63, что хватает. Ну и можно еще чуть сэкономить (12 регистров) объединив переменные Статус, Режим и Очередь.
Нюанс: режим работы камеры (Автомат 1/Автомат 2) можно задать с панели. Он является приоритетом перед переключателем на щите управления, за исключением прерывания работы на выходные дни и запуска после выходных - здесь приоритетом является физический переключатель.
Так как панель Овена поддерживает UDINT, а ПР в режиме слейв групповые запросы, я решил все таки сэкономить и разбил переменную на два регистра со склейкой в ПР. Главное чтобы они располагались в соседних регистрах и еще важен порядок - старший/младший.
Осталось научиться это делать =)
Я не до конца разобрался как вообще реализовывать формулы в данной панели. Сейчас буду штурмовать профильную тему. Жаль поиск по форуму отвратительно сделан (тему с запросом находит, а сообщение не показывает).
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot