Сергей, мне про этот тригер не совсем понятно - почему энергонезависимый?
Вид для печати
Вы же убрали у него энергонезависимость, наверно она вам не нужна! Вот что произойдёт с этим триггером если он взведён и например "свет моргнёт"? У вас он сбросится в "0" на выходе! Часто бывает это не желательно и при восстановлении питания состояние элементов(триггеров, счётчиков, таймеров) восстановится, как было на момент до выключения, вот коротко, зачем нужна энергонезависимость! Или Вы там вводите уставку таймера обратного отсчёта времени, без энергонезависимости переменной(переменных), Вам бы приходилось её вводить каждый раз при включении ПР, надеюсь, понятно рассказал!
Если у вас свет моргнёт, то Вы потом конечно можете включить установку, но процесс начнётся сначала, а у вас можно(нужно) начинать сначала не весь процесс, а сначала только шаг процесса, на котором установка находилась на момент выключения(Вы же говорили про паузу, для получения наличности в кассе), надеюсь со временем это усовершенствуете!
По этому вопросу понял.
Сергей. в программе что то не то с часами...
Вложение 34997
Пока на вход R не нажмёш 2 раза - не запустяться. Как Вам этот вариант?
Вложение 34998
Прилагаю:
Значит Вы не догадались, как он работает, а я надеялся, короче объясняю, вкратце: это таймер с паузой, верхний вход(Е) - разрешение работы, при его активации таймер работает, при деактивации - пауза! Вход R аналогичен одноимённому входу универсального счётчика, это предустановка значений уставки, для работы таймера его нужно деактивировать после предустановки!
А на нижней картинки таймер без паузы, я Вам много раз писал по этому поводу, там при деактивации входа разрешения работы(E) сразу идёт предустановка, т. е. таймер сбрасывается и при повторной активации входа E, счёт начинается сначала(с предустановки), короче, как-то так!
Спасибо, Сергей. Для себя я всё таки подчеркнул - не всё ещё потеряно. Просто думал что в моём случае этот макрос уже готов. Вот приделал к нему и вроде бы...
Вложение 35000
Или всёж идея не в этом?....
Тогда и "Овен" придётся заругать, что у них универсальный счётчик "недоделанный"!
Если серьёзно, это делается с прямо противоположными целями, чтобы не ограничивать "полёт мыслей свободного художника"! Если какой-то элемент туда воткнуть, нужный в данном применении, например, детектор переднего фронта, то он сразу станет ограниченный в применении, а так, с голым входом, он более универсален!
Вы хотите создавать макросы только для текущего проекта, что, я считаю, несколько недальновидно!
Сергей, я не замахиваюсь на ОВЕН ни в коем случае. Это мой первый проект, и естественно МаКрОстная политика ОВЕНа мне не знакома. Про "полёт мысли" Вы правильно сказали, так как и этот доработанный вариант (мною представленный выше)тоже несовершенен, надо ещё подумать, так как в программе присутствуют ещё переменные :"....СТОП, АС" и макрос при их включении ведёт себя не так как хотелось бы....
На счёт недальновидности - Вы правы! Я не знаю что будет завтра, ...и может со мной! Я этот то проект пробил еле-еле, и ещё один пробиваю, а я уже пенсионер....! Хватит ли сил на "пробитие" следующего.....
Для Вашего случая, я думаю как-то так:
Вложение 35009
Никогда бы не подумал что с этим могут быть проблемы!
Спасибо, Сергей. Я б до такого бы все равно бы не догадался. У меня получился вот Вложение 35014такой вариант:
Вот моё последнее видение макросов программы с учётом изменений(пауз и т. п.):
Вложение 35025
Остальное, с целью упрощения, не надо в макрос запихивать, а сделать общим для всех макросов(программ)!
Внешнюю обвязку макросов чуть-чуть попозже нарисую!
Интересно, Сергей, очень интересно. Я подумывал об этом, но не знал как это реализовать - уж больно "напихано" в программе "макрос в макросе"....
Попробую ещё раз объяснить, почему?! Вначале так и было сделано - частотник крутит асинхронный дв-ль, а через редуктор крутится генератор. Коэффициент редуктора 1/10. Вот она установка Вложение 35037.
Нам нужно учитывать частоту оборотов генератора: брали сигнал (4-20мА) с частотника, масштабировали его и получали нужные обороты.... . Обороты регулировали (и регулируют) потенциометром. Все цифры и параметры (различные температуры, вольты , амперы, напоры воздуха, биение коллектора генератора и т.д.) регистрируются и потом сдаются в военную приёмку (ВП) для отчётности. Самое больное для нас - это обороты генератора. Во-первых они должны быть точны (при 9000об/мин, +-300об/м), контр.органы проверяют с помощью фототахометра. Точность расчётным путём не добиться - только имперически. Во-вторых, иногда нужно, чтоб оборотов было ...ну примерно 8000 а в регистраторе писало 9000, поэтому нужно оперативно изменить некий параметр чтоб крутил по медленней (это бывает когда при 9000 и без нагрузки в "0" Ампер, подшипники редуктора летят в тар-тарары),(или...ну когда попросят...ну чисто по-русски, а не по-человечески).
А вот пульт оператора, где будет скрываться ПР200:
Вложение 35038
Кстати на данный момент с помощью фототахометра установили в знаменателе 9732 (ну чтоб точнее показывал обороты на ИТП-11). А в регистраторе 9982. Вот они все секреты выкрутасов. И этого бы всего небыло, еслиб оборудование (тот же редуктор) со своими подшипниками, был не 1961 года выпуска, а более свежий, и ассинхронники современные не горели б так часто, в отличии от старых двигунов. Я думаю, что всёж я правильно сделал, что вывел эту переменную на экран, если мастер ко мне подбежит и пожалуется на стук в редукторе, а крутить ещё нужно часов 30, то можно что -нить придумать с этим, чтоб ни чего не "бахнуло".
Это шедевр, Сергей! Особливо хочу заметить, что нагрузка на ПЗУ и прочие ОЗУ сократилась в 3 раза. Непоняток много, но я пока разбираюсь. Первое что "ударило" в глаз - это то, что при переводе в режим симуляции счётчик времени (таймер) молчит "как рыба облёд", не активируется, "молчит" системная переменная. Может я ещё чего то не знаю,,,? и надеюсь не возмутить тебя своей тупостью..
Вложение 35043
Надо с паузы снять и так каждый раз после выключения ПР, специально так сделал, чтобы после того если свет моргнёт, установка сама не запускалась, а на паузу становилась, при снятии с паузы процесс продолжится дальше, только шаг на котором прервалось начнётся сначала, вроде Вы так и хотели при паузе сделать! И аварийный стоп с нормально-замкнутым контактом, если у Вас замыкающийся контакт, просто уберёте инвертор! Сразу не сообразил, лучше аварийный и обычный стоп перенести на 1 и 2 входы 32 стабильного триггера, они имеют приоритет и включение паузы можно увидеть на выходе Q7(пауза). Если хотите чтобы установка сама запустилась после восстановления питания, надо поставить галочку энергонезависимости у Т-триггера и программы я сделал короткими, просто для показа у вас они длиннее и Вы уже можете мультиплексоры "расширять" до любого количества шагов, сколько вам необходимо!
Вот входа поменял местами!
Чуть не забыл, вот ещё время вывел на экран, чтобы в симуляторе таймер обратного отсчёта времени тикал, раньше для демонстрации ставил энергонезависимость этих переменных, но тут она не нужна, поэтому и убрал её и поэтому не симулировалось!
И я уже писал, для работы вход I6(Аварийный стоп), нужно активировать!
В каждом макросе(программе) имеется инкрементный счётчик с автосбросом, уставка которого означает количество циклов программы, у Вас, если не ошибаюсь в одной из 5 программ он стоял, так вот, если количество циклов более одного, надо обязательно сделать счётчик энергонезависимым(поставить галку), если один цикл - не обязательно, да и совсем его тогда можно убрать!
Вложение 35048
Я его даже выносил наружу из макроса, тогда его легче убрать, если он не нужен, но Вы его опять в макрос запихали, хозяин-барин, делайте как Вы хотите, но я бы конечно вынес из макроса!
И тогда все макросы стали бы одинаковыми, а константы можно в свойства макроса забить(и как угодно подписать), аналогично макросу ПЗУ:
Вложение 35049
И энергонезависимые переменные "Авар_ток_1-5" и "Порог_1-5", если не собираетесь менять с экрана, можно на константы заменить!
Если у вас часто горят ассинхронники, перемотайте в них обмотки на "Славянку", перестанут гореть. https://vk.com/video441696761_456239163
Так возьмите эти обороты с ПЧ, у Вас 4 аналоговых входа нигде незадействованы и с учётом этого коэффициента поддерживайте необходимые обороты, если позволяет допустимая погрешность! Так вы и сами нагрузку задаёте, наверно лучше корректировать по зависимости скольжения от нагрузки при заданых оборотах, я так думаю!
Да, со славянкой, что-то не понял, это как? Диаметральный шаг обмоток, для увеличения момента? Насколько известно, хоть укороченный шаг обмоток и понижает момент, но он борется с высшими гармониками и синхронным моментом!
Пока на аналоговые входы подавать ничего не будем. Я тут то ещё "плаваю", с выходами.
Сергей, за другое (оптимизированное) видение программы я очень благодарен - попробую кое что подделать в этом направлении. К сожалению, Вашу поправку на скачёк напряжения я уберу, т.к. считаю её лишним. У нас в такие защиты стоят...был скачёк 1 раз, два года назад - всё отрубилось (или отрубилО), Одним словом вероятность скачка в наших условиях 1/720 и это думаю можно упустить. вообщем попробую поработать - оптимизировать, как смогу.....
Сергей, начал делать и, натолкнулся на проблемку, о которой должен был знать раньше но упустил - забыл видимо, дурья моя башка. Дело именно в пятой программе (щётки Г27). Это одна из замороченных щёток и выпускаются по разным чертежам. Суть: Всё дело в циклах, щётки одного чертежа испытываются 10 часов, другого (и это чаще) 50 часов (т.е.5 циклов), третьего - 100часов (10 циклов).
Вопрос: Можно ли состояние инкрементного счётчика Вложение 35059 вывести на экран? Чтоб не перезаливать всю программу заново, а только изменить количество циклов с экрана?
Можно легко это сделать, но здесь уже проще вывести непосредственно из макроса выход Q2 счётчика CTZRM, а инкрементный счётчик с автосбросом вне макроса поставить, что я и без этого раньше вам советовал, затем создаёте энергонезависимую переменную редактируемую с экрана, переменную соединяете с блоком записи в функциональный блок и пишите в инкрементный счётчик с автосбросом! Если во всех макросах так сделаете, то сэкономите 4 ФБ импульса включения заданной длительности, короче как-то так! Лучше наверно комбобокс поставить где выбираете из списка нужное количество циклов!
Вложение 35072
Примерно, как-то так, если для первых 4 макросов не надо, можно(нужно) удалить! Можно и пример(проект) посмотреть, что я раньше выкладывал!
Короче, как-то примерно так:
Вложение 35073
И я уже писал, что вполне достаточно и одного мультиплексора на всё, про всё, т. к. переменная 32 битная! Можно в одну переменную упаковывать-распаковывать, через сдвиг влево-вправо! Вот пример приводил: http://www.owen.ru/forum/showthread.php?t=27867
А-а-а-а-а, точно! Большое спасибо, я ж с этим уже сталкивался в мультиплексорах - вот дурья башка! Инкрементный счётчик у меня стоит только на пятой программе. В других макросах просто увеличил шаги в мультиплексорах - там ка бы не сложно, в один цикл всё проходит....
Это видео ещё 2014 года, дал ту какая быстрее на глаза пополась, сейчас специалистов работающих со "Славянкой", более 200 человек, а двигателей перемотанных на "Славянку" около 100000 штук. https://vk.com/video441696761_456239...7b5873899f87e3
Заменил видео.
Вот вроде б подчистил программу, но непонятки остались - не мог понять (разобраться), Это:
1. Блокировка. Зачем она нужна Вложение 35087? Еденица(сигнал) постоянно присутствует в программе. Её роль мне непонятна, я убрал его....
2. Я убрал это разветвления аварийных токов Вложение 35088, т.к. знаю точно когда горят щётки - это при 600А и при любой частоте вращения.
3. Видимо в силу своей недогадливости я так и не понял чем лучше 32 от 8 стабильного тригерра. Вложение 35089. Вроде выполняют одинаковую задачу. А 8 стабильник как раз подходит под данную программу.
И вот что получилось. Энергозатратность конечно уменьшилачь, но не на много...
1. Блокировку я делал для энергонезависимых счётчиков, у меня есть проект, где при перезагрузке, ввиду переходных процессов энергонезависимая переменная сбрасывалась, чтобы перестраховаться и здесь такое же сделал, но Вам это в любом случае не нужно, так как Вы убрали энергонезависимость счётчиков в макросах.
2. Вашей технологии я не знаю, поэтому сделал для каждой программы(макроса) можно назначать свой порог действия аварии и тока при аварии, если вам достаточно одного порога и тока на все программы(макросы), то это только упрощает программу.
3. У каждого свои плюсы и минусы, важно чтобы человек понимал в чём разница в их работе и выбирал то, что ему больше подходит.
Вот одного я не могу никак понять, почему Вам хочется 5 ФБ ставить вместо одного:
Вложение 35091
Вот эти все TOFы можно выкинуть(ещё 2 в макросах) и поставить один, но уже после объединения по ИЛИ, я чуть ли не в каждом посте об этом говорю!
Я легко могу объяснить, зачем у меня стояла галочка энергонезависимости у 32 стабильного триггера, и почему не стояла у Т-триггера, я уже писал! А у Вас сейчас зачем они везде натыканы(галочки энергонезависимости 32 стабильного и Т-триггера), я не могу понять, боюсь и Вы этому объяснение не найдёте!
И я предполагал использовать выход Q8 для запуска ПЧ:
Вложение 35092
Интересно, как у вас это будет устроено?
И ещё, на хрена Вам здесь задержка на цикл, наверно надо убрать, смысла никакого в этом нет!
Вложение 35093
И, что это было???
Вложение 35094
Сергей, у меня мозги кипят. Чтоб я всё это переварил- несколько уточняющих вопросов....Что за галочки энергонезависимости у 32 и Т тригера, ничего я не ставил, покажите на скрине.... уже второй раз слышу про галочку у 32 стабильника а не понимаю где она.
У первой и третей программы вытащить вне блок СТ не знаю как. Пробовал, но там цикличность только два раза и потом идёт другой режим (10+10+5). получается что из одного макроса с одним мультиплексором получатся два.
Уточнить хочу в Вашем вопросе 5ФБ, это функциональных блока? Дык вроде их 3.... Если про них имееие ввиду - попробую объеденить согласно Вашему примеру описанному выше.
Вот Вам галочка у 32 стабильного триггера:
Вложение 35095
У Т-триггера, аналогично!
И эти таймеры с задержкой выключения, два ещё в макросах, снаружи не видно, их надо не объединять, а убрать все пять штук и поставить один в разрыв, где я крестик поставил, после объединения сигналов по ИЛИ!
Вот это удаляем в 1 и 3 макросах:
Вложение 35096
Можно же посмотреть, ещё в самом первом варианте, что я выкладывал!
Ладно, это всё мелочи, будем упаковывать все уставки в одну переменную или дождёмся следующего удобного случая? Я намекал уже не раз на это!
Мож вот так...
Может оно и так, но зачем же ставить инкрементные счётчики с автосбросом там, где они не нужны, для 1 и 3 макросов? И это посмотрите:
Вложение 35098
Запуск ПЧ с ПР200 не получиться, т.к. весь стенд уже сделан под автоматический режим и ручной режим. Там сложная система и оператор не включит одно, пока другое не включиться, тут же смотрит на давление продува, давление воды, темпер.возд, короче ньюансы - запуск ПЧ в ручную.
Задержка цыкла? А я лепил это согласно Вашему совету для ввода количествов цикла с экрана.
Ответ на что это было. Так ....украшательство.....
Разве у меня есть задержка на цикл при вводе с экрана:
Вложение 35099
Так поставьте штатный логический элемент 2ИЛИ и с его выхода подайте сигнал на F2 и Q8, зачем всякая лабуда, ну какой то смысл должен быть, в вашем макросе нет ни какого смысла!
Зачем же тогда поставили ненужные счётчики? Я ратовал убрать 5 ФБ таймер с задержкой выключения и поставить вместо пяти ФБ один, после объединения сигналов по ИЛИ, про счётчики вообще ни слова не было!
И насчёт задержки на цикл, Вы поставили и у меня хотите спросить, зачем Вы поставили? Я не знаю зачем Вы поставили, там даже никакого смысла в этом нет, я вроде уже об этом писал!
В принципе, на работу это никак не повлияет, так что расстраиваться не стоит!
Для первого раза потянет, единственное, что я непременно изменил, это убрал галку энергонезависимости у 32 стабильного триггера, так как пауза, на мой взгляд, выполнена крайне неудачно, остальное не очень и важно!
Вот поправил кое что. Но про задержку времени .... не врублюсь. Не вижу отличия от Вашего варианта., чо т я не догоняю....
....может Вы имели ввиду задержку времени в 5 сек в функц блоке ТР, так это я ставил, чтоб в симуляторе видеть конкретный сигнал стоповый, при увеличении скорости цикла (симуляции)
...всё врубиля - линия задержки это пунктир. Вот дурья моя башка...