PDA

Просмотр полной версии : Области применения ПР110(примеры реализации)



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

rovki
03.03.2013, 10:11
Открылся ,вот уже лучше .Только не ясно состояние концевиков ,если он сработал ,то до какого положения от будет замкнут (кратковременно или постоянно,до определенного положения штока)) .Это нужно знать для исключения ложных срабатываний и приведения пресса в исходное состояние ,после не штатного отключения ПР .временная последовательность сигналов описывает не только моменты перехода с одного уровня на другой (фронты) ,но и их потенциалы ,которые в свою очередь зависят от конструкции .
И опять несоответствие в описании ,по описанию --по нажатию кнопки КН вкл. ЭМ3 ,удерживаем кнопку (значит не кратковременно) ,по замыканию ВК1 ,включаем ЭМ4 ...... ,а по таблице не так .
А зачем вам держать кнопку до ВК1,как человек увидит ,что нужно отпускать ее.Может вам пойдет действительно кратковременное нажатие ,а дальше все на автомате (нужно поставить триггер и все)

jus
03.03.2013, 10:15
Открылся ,вот уже лучше .Только не ясно состояние концевиков ,если он сработал ,то до какого положения от будет замкнут (кратковременно или постоянно,до определенного положения штока)) .Это нужно знать для исключения ложных срабатываний и приведения пресса в исходное состояние ,после не штатного отключения ПР .временная последовательность сигналов описывает не только моменты перехода с одного уровня на другой (фронты) ,но и их потенциалы ,которые в свою очередь зависят от конструкции .

При движении ползуна вниз сначала срабатывает ВК1 и остаётся включенным. Затем ползун доходит до ВК2 и он тоже включается. Отключаются концевики в обратном порядке. Я ставил индуктивные датчики. С выталкивателем было посложнее, поэтому при движении вверх делал задержку отключения. ВК3 срабатывает в верхней точке выталкивателя. Движение выталкивателя начинается при достижении ползуна ВК1. Когда выталкиватель опустился вниз и останавливается при срабатывании ВК4.

rovki
03.03.2013, 10:25
Конструкция становится более понятной .Надо от ехать по делам ,приеду дам свой вариант .А пока продумайте механизм возвращения в исходное положение(верх) из любого положения штока (сбой питания) .Либо сразу вверх ,или продолжение движение вниз ??? из промежуточного состояния -вот тут и пригодится информация о потенциалах на концевиках

jus
03.03.2013, 10:31
Конструкция становится более понятной .Надо от ехать по делам ,приеду дам свой вариант .А пока продумайте механизм возвращения в исходное положение(верх) из любого положения штока (сбой питания) .Либо сразу вверх ,или продолжение движение вниз ??? из промежуточного состояния -вот тут и пригодится информация о потенциалах на концевиках

Возвращение штока вверх производится в режиме "Наладка" прямой подачей питания на электромагниты клапанов. Здесь не обязательно забивать этот момент в ПР.

AI!
03.03.2013, 10:58
схема ползуна от AI работает не в соответствии с ним даже на симуляторе. Во вторых при переходе по циклу есть кратковременное срабатывание не тех выходовпрошелся по циклу ещё раз, в симуляторе в пошаговом режиме - ничего подобного не заметил.

rovki
03.03.2013, 12:02
Вот еще вариант пресса по уточненному ТЗ:cool:

AI!
03.03.2013, 12:12
а вот мой, улучшенный вариант.

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

т.е. для перехода на след. уровень ПР будет реагировать только на один, единственно правильный датчик, игнорируя все остальные..

rovki
03.03.2013, 12:48
вот еще вариант упрощенный

capzap
03.03.2013, 12:51
а вот мой, улучшенный вариант.

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

т.е. для перехода на след. уровень ПР будет реагировать только на один, единственно правильный датчик, игнорируя все остальные..

Пугают слова о прессе, такие как игнор. А если ...

AI!
03.03.2013, 12:51
мой макрос достаточно универсален.

программируется он так:
берём стандартный виндовый калькулятор, включаем в инженерный вид.
1) переводим его в HEX вид, и вводим все состояния, только в обратном порядке (см. первый скрин)
за тем переводим калькулятор в режим DEC, и копируем содержимое в "верхнюю большую" константу.
2) потом переводим кальклятор в режим Oct, и вводим номера кнопок, на которые должен реагировать ПР, тоже в обратном порядке (см. второй скин)
опять переводим калькулятор в режим DEC, и копируем содержимое в "нижнюю большую" константу.

всё.

AI!
03.03.2013, 12:53
Пугают слова о прессе, такие как игнор. А если ...этого не было в ТЗ

если надо кнопку СТОП - то её надо делать в обход основного алгоритма.
(примерно так я сделал кнопку ПУСК)

capzap
03.03.2013, 13:04
:) ну жизненно важные органы защищены, пресс работает если оператор жмет кнопки двумя руками, это гарантирует что они не окажутся придавленными, что не скажешь про другие органы, для этого обычно тоже датчики ставят. Единственно я схему и описание не смотрел, поэтому утверждать не могу

AI!
03.03.2013, 13:19
если честно, я не обратил внимание, что это пресс.
я понял, что есть бегунок, который бегает туда-сюда и задевает какие-то датчики (там ещё про датчик давления что-то было и т.д.)

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

PS в ТЗ есть чёткий список состояний, и к каждому состоянию есть единственный датчик который приводит систему в это состояние и единственный датчик который выводит систему из этого состояния (включает другое состояние)

jus
03.03.2013, 14:32
Спасибо за схемы, на неделе опробую все и напишу результат.

AI!
03.03.2013, 14:37
обновил:
1) добавил ещё одно состояние , которое есть в описании текстом, но нет в таблице состояний - после нажатия КН, но до срабатывания ВК1
2) так же сделал полную блокировку пресса, пока не будет нажата КН.

AI!
03.03.2013, 15:03
При движении ползуна вниз сначала срабатывает ВК1 и остаётся включенным. Затем ползун доходит до ВК2 и он тоже включается. Отключаются концевики в обратном порядке.только сейчас заметил это уточнение ТЗ

дам пояснение как можно модифицировать мой алгоритм:
в моей версии датчики расположены сверху вниз, в порядке возрастания приоритетов.
т.е. напр. при срабатывании ВК2 блокируется инфа от ВК1

если при движении ползунка последовательно включаются датчики ВК1->ВК2, а при движении в обратную сторону отключаются в обратном порядке,
то для моего алгоритма отключение ВК2 выглядит как повторное включение ВК1, а последующее выключение ВК1 - это состояние кнопок = "0", которое тоже можно использовать для программирования цикла состояний.

rovki
03.03.2013, 15:13
т для моего алгоритма отключение ВК2 это выглядит как повторное включение ВК1, а последующее выключение ВК1 - это состояние кнопок = "0", которое тоже можно использовать для программирования цикла состояний.
Бегунок -это шток гидроцилиндра ,как я понимаю .Который выдвигаясь последовательно замыкает (при движении вниз) \размыкает при движении вверх концевики.

jus
03.03.2013, 16:37
Бегунок -это шток гидроцилиндра ,как я понимаю .Который выдвигаясь последовательно замыкает (при движении вниз) \размыкает при движении вверх концевики.

Совершенно верно. Правда ползун 200-тонного пресса "бегунком" не назовёшь.

rovki
03.03.2013, 16:44
бегунок -ползунок:D :D По мне так шток :rolleyes: ;) А зачем вам медленный подьем ,когда можно сразу быстрый -время цикла уменьшется ,а производительность повысится :rolleyes:Зная время хода штока ,можно без вк2 ,по времени включать медленную скорость (большое давление) ,а выключать по ЭКМ и быстро двигаться вверх ,я так делал на мебельном прессе.Или толкатель не успеет??

jus
03.03.2013, 19:21
бегунок -ползунок:D :D По мне так шток :rolleyes: ;) А зачем вам медленный подьем ,когда можно сразу быстрый -время цикла уменьшется ,а производительность повысится :rolleyes:Зная время хода штока ,можно без вк2 ,по времени включать медленную скорость (большое давление) ,а выключать по ЭКМ и быстро двигаться вверх ,я так делал на мебельном прессе.Или толкатель не успеет??

Пуансон после прессовки должен медленно оторваться от детали.

rovki
03.03.2013, 19:56
ясно -специфика .

maximov2009
04.03.2013, 10:51
а вот мой, улучшенный вариант.

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

т.е. для перехода на след. уровень ПР будет реагировать только на один, единственно правильный датчик, игнорируя все остальные..

Добрый день. Я конечно не заказчик. В этой схеме согласен, дребезга нет. Но алгоритм маленько не соблюдён. Q4 при обратном ходе должен включатся после обратного прохождения ВК2 о не после отключения ЭКМ. Дальше алгоритм не смотрел.

maximov2009
04.03.2013, 11:54
вот еще вариант упрощенный

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

AI!
04.03.2013, 12:51
Но алгоритм маленько не соблюдён. Q4 при обратном ходе должен включатся после обратного прохождения ВК2 о не после отключения ЭКМ.мой алгоритм предполагает срабатывание датчика, как кратковременное вкл-выкл.

а вы, скорее всего, не выключили ВК2, соответственно при отключении ЭКМ, программа "подумала", что снова нажался ВК2.

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

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

PPS немного лирики: мой алгоритм напоминает фильм "13 этаж" :cool:

maximov2009
04.03.2013, 13:33
мой алгоритм предполагает срабатывание датчика, как кратковременное вкл-выкл.
PPS немного лирики: мой алгоритм напоминает фильм "13 этаж" :cool:
Честно говоря этот фильм не смотрел. Мы скорее всего к разным поколениям относимся (почти 50). Мне нравится ваш подход к программам, Вы мне очень помогли со счётчиком. Респект и уважуха.
Просто я практик электронщик и КИПовец, о датчиках знаю наверное несколько больше и подхожу к программам именно с точки зрения практики, пусть не так изящно, но стопудово работающим при любых обстоятельствах.
Если в будущем вдруг возникнут вопросы по датчикам, можете обращатся напрямую по почте. Все датчики (независимо от типа) срабатывают одинаково. Выход замыкается до тех пор, пока не исчезнет объект вызвавший сработку, тогда размыкается. Для дискретных входо ПР 110 применимы только такие датчики. Напряжение на входе ПР 110 может находится без ограничения времени. Другие датчики (любых типов) имеют на выходе аналоговый изменяющийся сигнал, но это уже для ПР114 и контроллеров с аналоговыми входами. Если заинтересовал пишите на почту, чтобы не загружать форум.

AI!
04.03.2013, 13:48
Просто я практик электронщик и КИПовец, о датчиках знаю наверное несколько больше1) что такое КИПовец?

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

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

maximov2009
04.03.2013, 14:05
1) что такое КИПовец?

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

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

AI!
04.03.2013, 14:19
2. Это уже специальные датчики с несколькими положениями
3. Только без обид. Начинающих профессионалов не бывает2) я не описание датчиков просил, а пересказ ТЗ на понятный мне манер ))
3) это шутка юмора такой. и мне нравится.
примерно как: "почему атомная бомба всегда падает в эпицентр? там и так плохо, а она ещё туда падает."

maximov2009
04.03.2013, 17:40
[QUOTE=AI!;104140]2) я не описание датчиков просил, а пересказ ТЗ на понятный мне манер ))
Вечер добрый. Ну во первых я не заказчик, и пересказать техзадание я не могу. Каков вопрос - такой ответ.
А во вторых вы наверное никогда не видели промконтроллер, который представляет из себя вал, подключенный к двигателю, на котором находится ряд эксцентриков, расположенных в определённой последовательности и которые по очереди (при вращении вала), замыкают конечные выключатели. Таким образом выполняется последовательность операций. У нас такой станок есть (упаковка плавленных сырков), правда сейчас его законсервировали (не выбросили), и возможно мне его ещё предстоит перевести на современную элементную базу. Такой контроллер похож на старинный музыкальный аппарат. Но он работает!!! Так что по поводу датчиков (я Вас умоляю), по меньшей мере не удивляйтесь. Какие только не попадаются.
PS не знаю как поставить постоянную подпись, а то тоже себе крылатую фразу кину в форуме.

AI!
04.03.2013, 17:59
Но алгоритм маленько не соблюдён. Q4 при обратном ходе должен включатся после обратного прохождения ВК2 о не после отключения ЭКМ.посмотрите поведение ещё раз, поменяв нижнюю константу на 1147729.

maximov2009
04.03.2013, 18:07
посмотрите поведение ещё раз, поменяв нижнюю константу на 1147729.

Если можно вопрос, как Вас действительно зовут. Меня Алексей (а то AI как то не COOL).

AI!
04.03.2013, 18:14
Анатолием.

maximov2009
04.03.2013, 18:47
Анатолием.

Анатолий. Я восхищён вашим подходом к составлению программ. Высказывание "константу на 1147729" мне конечно понятно, но я у меню чуть чуть иной подход к программе. Мне очень интересно с Вами общаться, но я боюсь что нас скоро с форума выгонят. Здесь всё таки предлагают размещать готовые проекты. Предлагаю переместить наше общение на почту , моя напомню maximov2009@mail.ru
С нетерпением жду письма с подтверждением желания продолжить общение. Как же всё таки поставить свой девиз на форуме?

rovki
04.03.2013, 18:53
Заходите в личный кабинет(Мой кабинет) и там создавайте подпись

maximov2009
04.03.2013, 19:05
Заходите в личный кабинет(Мой кабинет) и там создавайте подпись

Вот вроде и я с подписью.

jus
04.03.2013, 19:46
Вот вроде и я с подписью.

Когда-то учился на инфаке, Вы меня простите, "самое лучшее - враг хорошего"

AI!
04.03.2013, 22:42
Когда-то учился на инфаке, Вы меня простите, "самое лучшее - враг хорошего"ru.wikiquote.org/wiki/Французские_пословицы (http://ru.wikiquote.org/wiki/%D0%A4%D1%80%D0%B0%D0%BD%D1%86%D1%83%D0%B7%D1%81%D 0%BA%D0%B8%D0%B5_%D0%BF%D0%BE%D1%81%D0%BB%D0%BE%D0 %B2%D0%B8%D1%86%D1%8B)

AI!
04.03.2013, 23:02
считаю проекты достаточно универсальными!
они годны для любых циклических процессов "без ветвлений" в алгоритме

описание 2ого тут (http://www.owen.ru/forum/showpost.php?p=104031&postcount=3542)

а третий отличается от второго тем, что способен управлять 8ю устройствами, (хотя в примере разведены только 4)
но только одним "за такт", соответственно, если надо на один датчик изменить состояние нескольких устр-в, то надо продублировать номер датчика нужное кол-во и перечислить все изменяемые устр-ва

PS для понятности покажу как запрограммированы проекты:

ползунок2:
4CBA232 - состояния выходов в обратном порядке (hex вид)
4301521 - номера датчиков, (8-ричный вид)
на которые можно реагировать в соответствующем состояниисостояние-датчик расположены друг над другом

ползунок3:
_321003001 - номера изменяемых устройств (8-ричный вид)
430001521_ - номера датчиков, "0" соответствует "отпусканию" всех датчиковв этом примере в нижнем ряду есть три нуля подряд,
это значит, что надо последовательно (точнее, почти одновременно) сделать три действия, соответствующие этому состоянию датчиков ("0" = ни один датчик не "нажат")
напротив этих нулей "0","1" и "2", именно состояние этих выходов надо поменять

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

master2101
06.03.2013, 20:48
Всем доброго времени суток . Подскажите советом , как быть с операциями сравнения. Задача такая , на вход поступает импульсы , счетчик производит их подсчет и в какой то момент времени (у меня это каждые 30 сек.) происходит их сравнение . Если число импульсов (допустим) меньше 17 то на выход 1 поступает сигнал , если равно 17 то на выход 2 поступает сигнал соответственно если больше то на выход третьего . при этом на выходе (на любом из трех) всегда должен быть сигнал . Дело все в том что программа уже почти написана не могу определиться как подавать на выход сигнал когда число импульсов меньше 17 ... возможно может кто то подскажет с макросом . Выкладываю программу.

Василий Кашуба
06.03.2013, 21:17
Всем доброго времени суток . Подскажите советом , как быть с операциями сравнения. Задача такая , на вход поступает импульсы , счетчик производит их подсчет и в какой то момент времени (у меня это каждые 30 сек.) происходит их сравнение . Если число импульсов (допустим) меньше 17 то на выход 1 поступает сигнал , если равно 17 то на выход 2 поступает сигнал соответственно если больше то на выход третьего . при этом на выходе (на любом из трех) всегда должен быть сигнал . Дело все в том что программа уже почти написана не могу определиться как подавать на выход сигнал когда число импульсов меньше 17 ... возможно может кто то подскажет с макросом . Выкладываю программу.

Смотрите :)

AI!
06.03.2013, 21:35
мой вариант

rovki
06.03.2013, 21:47
Смотрите :)
Смотрим и видим ,что на выходе 1 всегда 1 ,поэтому другие выходы не работают;) .Проверять надо в симуляторе :D ;) :)

rovki
06.03.2013, 21:58
мой вариант
не плохо ,один недостаток при включении питания ,когда еще импульсов не было выход третий уже в "1" ,в задании не было ,но это ж так очевидно ;)
подправил ваш вариант любимым D -триггером:D

AI!
06.03.2013, 22:00
а лучше так, тогда кол-во импульсов может быть 4 млрд.

PS не понимаю, почему счётчик не сделали 32х битным?

rovki
06.03.2013, 22:06
:rolleyes: За 30сек ,при частоте даже 200гц ,ну ни как не будет да же 10тыщсч:D К чему такая гигантомания:) :D это ж сколько лет надо считать на максимальной частоте 32разряда
А так счетчик хорош .нужно только сделать его реверсивным и со сбросом (макрос) ,может пригодится в другом месте ,как универсальный макрос без ФБ на 32разряда.:rolleyes:

AI!
06.03.2013, 22:58
11 мин на частоте 100Гц, и будет превышен лимит 65535

PS пример счётчика я привёл для примера ))

rovki
06.03.2013, 23:19
11 мин на частоте 100Гц, и будет превышен лимит 65535

PS пример счётчика я привёл для примера ))
Я про 32 разряда ,кода там предел наступит;)

AI!
06.03.2013, 23:22
когда наступит предел 32 разряда - надо переходить на 64 разряда?

а вот 32 разряда могут пригодиться, когда не хватит 16ти.

PS вы сравниваете 32 и 64? тогда надо смотреть предел 32
а если сравниваете 32 и 16, то надо смотреть границу между ними.

rovki
06.03.2013, 23:30
32,64 это не для ПР110 ,в смысле счетчика (быстрее питание выключится) .Вычисление -да ,32 нормально .

maximov2009
07.03.2013, 06:25
Добрый день. С наступающим праздником.
Кто подскажет программку ПИД регулятора для ПР 114. В принципе достаточно и ПИ - регулятора. По моему где то встречалась, подскажите пожалуйста.

rovki
07.03.2013, 07:18
http://www.owen.ru/forum/showthread.php?p=85293&highlight=%CF%C8%C4+%F0%E5%E3%F3%EB%FF%F2%EE%F0#po st85293
поиск -рулит.

master2101
07.03.2013, 16:34
Спасибо за помощь !!

Владимир Евдокимов
11.03.2013, 13:10
Смотрю, нет активности. Подкидываю работёнку для мозгов. Нужны функции сравнения >= и <= в одном флаконе, т.е. выход =1 в определенном диапазоне.

AI!
11.03.2013, 14:04
"<=" это not(">"), т.е. GT->NOT

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

PPS что бы получить "больше или равно", надо просто поменять входы местами.

AI!
11.03.2013, 14:17
а я всё светофорами балуюсь.

пример светофора, где пешеходам зелёный единый во все стороны, когда всем автомобилям красный.

PS обещанный пример применения blink7

rovki
11.03.2013, 14:42
Смотрю, нет активности. Подкидываю работёнку для мозгов. Нужны функции сравнения >= и <= в одном флаконе, т.е. выход =1 в определенном диапазоне.
Не указали для какова типа данных :confused: ;)

AI!
11.03.2013, 14:47
а какая разница? GT-NOT или fGT-NOT - одна малина.

PS вот, интервал, включая границы.

AI!
11.03.2013, 14:51
пример светофора, где пешеходам зелёный единый во все стороны, когда всем автомобилям красный.слишком много блоков TON, спрятал их в макрос.

Владимир Евдокимов
11.03.2013, 17:37
а какая разница? GT-NOT или fGT-NOT - одна малина.

PS вот, интервал, включая границы.

Всё Гениальное -Просто. Спасибо

rovki
11.03.2013, 18:06
а какая разница? GT-NOT или fGT-NOT - одна малина.

PS вот, интервал, включая границы.
разница в том ,что нет ЕQ :rolleyes:

AI!
11.03.2013, 21:32
разница в том ,что нет ЕQ :rolleyes:EQ опасно, лучше всегда применять диапазон.

напр. берём 0 и прибавляем 0,01 пока не будет равно 1,00
а т.к. вещественное число в компе (и в ПР) двоичное, то возможно из-за округления оно проскочит единицу, при мерно так же как если складывать 0,111 несколько раз в десятичной системе исчисления.

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

AI!
13.03.2013, 18:22
разница в том ,что нет ЕQ :rolleyes:кстати, есть же fSUB
над которым можно сделать "toBool"

Flicker
14.03.2013, 21:20
Во вложение пожалуй мой первый сложный проект. За основу взят алгоритм разработанный rovki. Мною были сделаны небольшие изменения. Напомню описание работы: программа для управления клапанами, всего 7 клапанов, 1 пневмоцилиндр, 1 насос, клапана открываются попарно-последовательно и каждая пара на свое заданное время. Цилиндр подключил вне ПР110. На ПР задействованы:
I1 - Пуск (Запуск программы)
I2 - Запрет включения насоса и самой программы по уровню жидкости в баке
I3 - Запрет включения программы без включения пневмоцилиндра
I4 - Стоп
Q1 - Q7 Клапана
Q8 - Насоса
Циклограмма работы http://www.owen.ru/forum/attachment.php?attachmentid=6717&d=1344528674

maximov2009
15.03.2013, 06:28
[QUOTE=Flicker;104899]Во вложение пожалуй мой первый сложный проект.
Добрый день. Очень интересный проект, хотел разобраться, иногда приходится что то подобное делать. Но у меня не получилось запустить Ваш проект не симуляторе. Может неправильно понял алгоритм работы? Но в соответствии с циклограммой при нажатии пуска должны сразу запускатся к3 и к7.
Заранее благодарен за ответ.

Flicker
15.03.2013, 06:46
Но в соответствии с циклограммой при нажатии пуска должны сразу запускатся к3 и к7.


Действительно так, все согласно циклограмме, но если входы с i2 до i4 не замкнуты, то программа не запуститься. При поступление сигнала на эти входы идет отчет времени 2-3 сек для того чтобы исключить дребезг контактов)

rovki
15.03.2013, 07:02
Действительно ,нужно хотя бы краткое описание ,особенно входных сигналов (блокировок) .Бребезг контактов длится не так долго 2-3 сек,достаточно и 0,1 сек.

dvar
15.03.2013, 09:22
добрый день.
выкладываю программу управления сдвижными воротами.
ворота снабжены ИК-барьерами безопасности, сигнальной лампой.
управление возможно с обычного 3-х кнопочного поста и с радиокнопки.
проверить работу могу только на компьютере, поэтому программа не для использования :D .
хотелось бы знать насколько стабильно такая схема будет работать?
в OWEN Logic вроде все работает на всех режимах.

maximov2009
15.03.2013, 12:32
Действительно так, все согласно циклограмме, но если входы с i2 до i4 не замкнуты, то программа не запуститься. При поступление сигнала на эти входы идет отчет времени 2-3 сек для того чтобы исключить дребезг контактов)
Маленько стал понятен Пуск. Но только почему в макросе блокировка 3 секундные задержки стоят. И в блоке ТОN 4 даже 0.1 секунды много. Он по идее совсем не нужен. За ним стоит триггер, ему дребезг не страшен.
Устранение дребезга используется обычно если нет триггера, и дальнейшая схема может отработать столько раз, сколько "дребезнёт" предыдущий участок.
Кнопки стоп обычно не делают так, чтобы были включены при старте.
С дальнейшей работой схемы пока не разобрался, но интересно. Если можно всё таки поясните ваши задумки по схеме.
С уважением.

AI!
15.03.2013, 13:35
выкладываю программу управления сдвижными воротами.а вы уверены, что в "промежуточном состоянии" закрытие ворот по радиокнопке - это более безопасное поведение?
я б ничего не делал по радиокнопке, если ворота стоят, ну или реверс от последнего действия.

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

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

Flicker
15.03.2013, 15:42
Почему в макросе блокировка 3 секундные задержки стоят?
Чтобы исключить ложное срабатывание) Допустим по уровню: оператор наливает воду(щелочной раствор) только вода коснулась электрода уже работать можно) Или по другому...провод уровня задел массу и как итог запустился насос без жидкости). Допустим по зажиму: зажим служит для прижатия бочонка который требуется помыть к рабочему столу. Оператор нажал кнопку зажим, а потом по какой то причине зажим не сработал или сам отключил. После выполнения алгоритма без бочонка щелочь, пар может попасть на человека, по этому все так сделано в целях безопасности.


Кнопки стоп обычно не делают так, чтобы были включены при старте. А как делают кнопки стоп? Информацию приму к сведению ;) У меня кнопка стоп служить для сброса триггера блокировки, мало ли после цикла параметры изменились, сейчас для сброса триггера добавлю и кнопку зажим.


Если можно все-таки поясните ваши задумки по схеме. Попробую все описать, но нужно времени больше)

rovki
15.03.2013, 16:52
Маленько стал понятен Пуск. Но только почему в макросе блокировка 3 секундные задержки стоят. И в блоке ТОN 4 даже 0.1 секунды много. Он по идее совсем не нужен. За ним стоит триггер, ему дребезг не страшен.
Устранение дребезга используется обычно если нет триггера, и дальнейшая схема может отработать столько раз, сколько "дребезнёт" предыдущий участок.
Кнопки стоп обычно не делают так, чтобы были включены при старте.
С дальнейшей работой схемы пока не разобрался, но интересно. Если можно всё таки поясните ваши задумки по схеме.
С уважением.
Если кратко -то основа схемы макросы ППЗУ который выдает на выход то ,что записал пользователь в свойствах макроса по адресу (входу А).Тоесть если записать в свойствах в 5 ячейку 5,то когда на входе будет адрес 5 ,на выходе будет значение 5 ,которое соответствует "1" на первом выходе и третьем после макроса Экстракт (чтение бита).
В схеме 2 макроса ППЗУ -1 макрос задает какие выходы включать (десятичным числом) в каждом цикле ,а 2 ППЗУ определяет время каждого цикла ,то есть ППЗУ хранит записанные пользователем временные уставки .Циклограмму развертывает генератор через счетчик ,который считает циклы и определяет адрес ППЗУ.:rolleyes:

AI!
15.03.2013, 18:50
описание работы: программа для управления клапанами, всего 7 клапанов, 1 пневмоцилиндр, 1 насос, клапана открываются попарно-последовательно и каждая пара на свое заданное время.мой вариант.

блокировку не трогал, остальное всё переделал.

Flicker
15.03.2013, 19:21
мой вариант.

посмотрел, здорово конечно) на мой взгляд слишком сложновато) сейчас посижу еще изучаю) я ведь не спец :) с номерами клапанов понятно) особенно интересен клапан Q2, это как сделано, то есть как надо додуматься чтобы сделать клапан на время BLINK. Еще с SHR, MUL(значение 6) и AND(значение 63) откуда такие числа, ни как не могу сопоставить :confused: и второй момент, как поменять время? У меня периодически придется менять время) тут придется как то подсчитывать. Очень интересно :)

AI!
15.03.2013, 19:33
как поменять время?t1+t2*64+t3*64^2+t4*64^3+t5*64^4
6 - это кол-во бит,
63 - это "111111" вдвоичном виде, т.е. маска фильтрующее лишнее.

выбирал между 64ричной системой исчисления и 32ричной, выбрал 64, что бы можно было сделать время равное одной минуте.

PS был второй вариант, вводить число калькулятор в шестнадцатеричном виде, переводить в десятичный и копировать в программу
получившееся число умножать на 3000, т.е. 20 сек вводится как "7" и превращаются в 21.


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

rovki
15.03.2013, 19:41
А если циклограмму переделать(времена,выходы) ,то схему заново рисовать ??;)

AI!
15.03.2013, 20:17
А если циклограмму переделать(времена,выходы) ,то схему заново рисовать ??;)ещё вариант, как программировать написано тут (http://www.owen.ru/forum/showpost.php?p=104031&postcount=3542), в п.1.

Василий Кашуба
15.03.2013, 20:33
добрый день.
выкладываю программу управления сдвижными воротами.
ворота снабжены ИК-барьерами безопасности, сигнальной лампой.
управление возможно с обычного 3-х кнопочного поста и с радиокнопки.
проверить работу могу только на компьютере, поэтому программа не для использования :D .
хотелось бы знать насколько стабильно такая схема будет работать?
в OWEN Logic вроде все работает на всех режимах.

Мой вариант управления воротами.

rovki
15.03.2013, 23:07
Как хорошо ,когда много вариантов ,на любой вкус:) ,значит тема живет ;) :)

rovki
15.03.2013, 23:31
Василия поздравляю с 1000 вложением в тему .

AI!
16.03.2013, 09:48
вынесу на обсуждение матёрых КИПовцев такой вопрос:
- насколько корректно менять длительность фазы у blink, когда эта фаза уже началась?

спрашиваю потому что в проекте Flickerа именно так и происходит.
и как мне кажется это приводит к проблемам которые описаны в БАГах (http://www.owen.ru/forum/showthread.php?p=104896#post104896)

а так же моё нутро против этого,
я ввёл в проекте Flickerа ввёл щё один счётчик, который меняет это значение заранее.

rovki
16.03.2013, 09:55
если блинк еще не досчитал до нужного значения то смена уставки не страшна(если она больше текущего значения) ,особенно когда речь о секундах ,то цикл ПР(мс) не критичен для точности .бак что описан по ссылке был только в проектах создаваемых в 47 версии и то по моему его уже исправили.(поехал на почту;),вернусь обсудим )

rovki
16.03.2013, 18:36
макрос регистра побайтного сдвига циклический (8Х8) .В свойствах макроса задаете последовательно байты (значения) ,которые будут последовательно выдаваться на выход при каждом следующем стробе .
Варианты принимаются:D.хорошо бы сделать 64разрядный регистр сдвига из двух 32разрядных (целочисленный.)
Данный макрос можно было сделать гораздо проше -поставить сел и сравнение на равенство ,но хотелось сделать именно регистр сдвига.Причем
что бы информация из одного регистра задвигалась бы во второй,но что то не получилось
Но внутри макроса есть еще макрос ,который преобразует 4 константы (байт) в 32 разрядное слово ,что бы не пользоваться калькулятором
Вот такой нужен регистр(целочисленный)

AI!
16.03.2013, 21:25
смотрю на проект - это типа ППЗУ?

rovki
16.03.2013, 21:41
Это да ,а хотелось бы регистр сдвига N 32разрядных чисел -результат 32 разряда .то есть из N регистра задвигается в N-1(сдвиг вправо,но нужно и в лево):rolleyes: .Причем хотелось бы сдвиг делать по стробу ,на M разрядов (1....32) за такт.если на входе IN X ноль ,то задвигается ноль ,вход Х это исходное число в регистре ,по аналогии с булевым регистром это предустановка или параллельная запись ,а вход INX это вход последовательного сдвига .

rovki
16.03.2013, 21:56
что-то я всё равно ТЗ не понимаю, что нужно на входе, что на выходе, что в виде констант задаётся.
есть вход последовательно сдвига ,а есть вход параллельной записи числа ,и тот и другой могут быть как константой ,так и переменной .Тогда получаем два целочисленных входа ,два строба и еще целочисленный вход N- количество разрядов при сдвиге за 1 такт.на выходе 32разрядный целочисленный код .Регистры можно соединять друг за другом ,хоть 10штук (пока стек позволит) .естественно нужно два макроса для сдвига вправо и влево .Можно и один сделать макрос универсальный ,но тогда нужен будет еще вход для задания направления движения.можно наверное обойтись без стробов записи ,а делать это автоматически при включении питания и изменении числа,но только разнести все по фазам времени(циклам)

AI!
16.03.2013, 22:34
я, кстати, уже делал циклический регистр сдвига 64х разрядный, в одном из RND.
------------
для просмотра работы макроса эмулятор переключить в hex вид

rovki
16.03.2013, 23:15
Что то близкое .если я задал один регистр (2) ноль ,а первый ,например 256 ,N=1 ,то сдвигает ....,но после 1 опять огромное число .Если задвигался ноль ,то после 1 ,должен быть "0".Цикличности быть не должно ,она организуется внешней связью ,если нужно

AI!
17.03.2013, 00:55
каскадный вариант, всю красоту так же смотреть в hex виде

AI!
17.03.2013, 02:45
кажется я понял что вам нужно

maximov2009
17.03.2013, 06:38
[QUOTE=rovki;104977]Если кратко -то основа схемы макросы ППЗУ который выдает на выход то ...
Добрый день. Пока выдалась свободная минутка, хочется ещё поразбираться с вашей программкой. Очень интересные макросы. Но никак толком не могу понять работу. Если можно, дайте более подробное описание работы с макросами ППЗУ и ТIME. Восхищаюсь в очередной раз красотой решения. Я в основном больше практик по внедрению, поэтому легче даю советы по реалиям производства, а вот углубленным изучением возможностей данного языка не очень много времени имею. А они как вижу большие. А желание разобраться поглубже есть.
Заранее благодарен за помощь.

maximov2009
17.03.2013, 06:49
[QUOTE=Flicker;104972]

А как делают кнопки стоп?
Добрый день. Это раньше, при использовании релейных схем, или схем на ЭМ пускателях для срабатывания схемы пуска, сигнал пускали через нормально замкнутую кнопку СТОП. Сейчас в этом необходимость отпала, а та же ПР воспринимает сигнал в виде положительного импульса на входе. Поэтому проще использовать нормально разомкнутую кнопку,как и для других операций. В этом случае проще отслеживать работу программы.
Вот при переделке старого аппарата, если не хочется менять родные кнопки, тогда уж только как вариант, но это от лукавого.
Нормально замкнутые кнопки (СТОПОВЫЕ) также используют для аварийного размыкания электропроводки аппарата, но они уже через контроллер не заводятся. Просто "ТУПО" рвут питающее напряжение и фиксируются до устранения причины аварии (АВАРИЙНЫЕ).
С уважением.

Amko
17.03.2013, 09:38
maximov2009

Поэтому проще использовать нормально разомкнутую кнопку,как и для других операций.
Еще как заводятся и рекомендуется ставить стоповые кнопки с НЗ контактами. В случае, если по какой-либо причине пропало напряжения на одном из контактов кнопки оператор не сможет остановить механизм, если кнопка будет НО. Если кнопка НЗ - внештатная пропажа напряжения автоматически приведет к остановке.

AI!
17.03.2013, 10:57
в первых вариантах было лучше с константамипеределал вариант с константами

rovki
17.03.2013, 11:14
[QUOTE=rovki;104977]Если кратко -то основа схемы макросы ППЗУ который выдает на выход то ...
Добрый день. Пока выдалась свободная минутка, хочется ещё поразбираться с вашей программкой. Очень интересные макросы. Но никак толком не могу понять работу. Если можно, дайте более подробное описание работы с макросами ППЗУ ..
Вам главное понять как работает макрос снаружи ,внутрь потрахов можно не лезть .В ППЗУ есть ячейки памяти (константы) которые задаются пользователем в свойствах .снизу расположена ячейка с адресом "0" ,вверху ячейка с адресом 15 .для того чтобы не перепутать где какая ячейка ,первоначально в ячейки записаны их адреса (0-0,1-1....).А вы можете писать в свойствах ППЗУ любые значения.
Вход "А"- адрес ячейки ,которая выбирается (выдается на выход) .
Вход "В"- это адрес(номер банка) самого ППЗУ .он нужен для того что бы можно было наращивать обьем ППЗУ.Вот и все описание ,посмотрите пример

rovki
17.03.2013, 11:24
кажется я понял что вам нужно
Мне нужен регистр сдвига (32разряда) который можно соединять каскадно (последовательно) друг за другом ,например в регистр 128разрядов(двоичных) .Причем с возможностью предустановки значений в каждый регистр и сдвига информации в таком длинном регистре на любое целое число (меньше 33) за 1такт .:rolleyes:

maximov2009
17.03.2013, 17:04
[QUOTE=Amko;105091]maximov2009

Еще как заводятся и рекомендуется
Добрый вечер (у нас), очень интересно посмотреть на эти рекомендации. Укажите пожалуйста, на какой документ Вы ссылаетесь. Может быть Вы путаете аварийную "стоповую кнопку" с чем - то другим. Работа контроллера и работа аппарата это как говорят в Одессе две большие разницы. Если в контроллере вы боитесь пропажи сигнала, ставьте триггер, так обычно и делают.
С уважением к каждому мнению.
Алексей.

maximov2009
17.03.2013, 17:15
[QUOTE=rovki;105096][QUOTE=maximov2009;105088].
Вам главное понять как работает макрос снаружи ,

Добрый вечер. Преклоняюсь перед Вашим мастерством, но что же Вы лишаете права разобраться досконально. Как я сказал ранее не очень много времени для досконального изучения. Я хоть и на пенсии и внуков нянчу, но приходится ещё работать, а на работе текучка страшная. Так что в свободное время пытаюсь всё таки вникнуть. Самое интересное, что наверное и сами программисты ОВЕНа не думали, что язык так разовьется. Кстати на прошлой неделе приезжал к нам на завод представитель фирмы, так что мы тоже не совсем забытая провинция. Как раз задал вопрос почему ПР 110 не имеет энергонезависимой памяти, она очень нужна в отдельных проектах. Обещали подумать, так что может скоро что то сделают в этом плане.
С большим уважением.

rovki
17.03.2013, 18:12
[QUOTE=rovki;105096][QUOTE=maximov2009;105088].
Вам главное понять как работает макрос снаружи ,

Добрый вечер. Преклоняюсь перед Вашим мастерством, но что же Вы лишаете права разобраться досконально. Как я сказал ранее не очень много времени для досконального изучения. Я хоть и на пенсии и внуков нянчу, но приходится ещё работать, а на работе текучка страшная. Так что в свободное время пытаюсь всё таки вникнуть. Самое интересное, что наверное и сами программисты ОВЕНа не думали, что язык так разовьется. Кстати на прошлой неделе приезжал к нам на завод представитель фирмы, так что мы тоже не совсем забытая провинция. Как раз задал вопрос почему ПР 110 не имеет энергонезависимой памяти, она очень нужна в отдельных проектах. Обещали подумать, так что может скоро что то сделают в этом плане.
С большим уважением.
Макрос открыт ,там одни сел и константы ,да еще пару ФБ.запускайте симулятор и гоняйте нолики единички и числа .Просто вы же не спрашиваете как внутри сделан триггер или счетчик .даже электронщики когда используют микросхемы они не опускаются до уровня транзистора ,как там сделан внутри D-триггер ,например .Достаточно ,что они знают назначение входов и выходов и какая между ними связь (логика) и куда его можно применить .
На счет энергонезависимой памяти ,так она есть в ПР114 ,а в ПР110 навряд ли будет.при той цене.
На счет языка ,так от определен МЭК .А вот на счет сервисов ОЛ ,представления элементов ,то тут пользователи постарались совместно с разработчиками (рекомендации) ,большая часть которых нашла свое отражение ,особенно в последних версиях .Осталось еще немного реализовать задумок и можно говорить о мировом уровне ОЛ(среди аналогов) ,естественно после выявления и устранения багов -в выявлении которых пользователи затратили больше времени(суммарно) чем разработчики;) :) Что ни каким тестовым программам не снилось :rolleyes:

Amko
17.03.2013, 19:05
maximov2009
Я имел ввиду, рекомендуется опытом жизни :) Документ не знаю, может где и описано.

Я не путаю аварийную остановку и рабочую.
Вы видимо меня не правильно поняли. Я предложил представить ситуацию, когда по какой-либо причине у НО стоповой кнопки не замыкаются контакты (пыль, нагар и т.д.) и требуется срочно остановить машину. Первым делом человек жмет "Стоп" - а он не работает, после чего жмет аварийный стоп. Это задержка может стоить кому то жизни (или пальца :) ) При НЗ стоповой кнопке вероятность отказа самой кнопки намного ниже. Да и проблему с ней диагностировать быстрее.

dvar
18.03.2013, 05:58
Мой вариант управления воротами.
когда включаешь схему, ворота сразу начинают закрываться. вы считаете это безопасно?
и ещё один момент, ик-барьер должен работать на разрыв.
когда ворота в конечном положении, нужно несколько раз нажать на радиокнопку, чтобы ворота начали двигаться. это очень неудобно. должно быть одно нажатие радиокнопки, либо движение либо остановка.
когда ворота останавливаются по концевому, лампа продолжает мигать, это для чего?
ещё один момент: когда ворота в среднем положении, если нажать на кнопку закрыть, а потом на кнопку открыть то сработают, оба пускателя в одно время, вы считаете это безопасно?

maximov2009
18.03.2013, 06:01
maximov2009
Я имел ввиду, рекомендуется опытом жизни :) Документ не знаю, может где и описано.

Я не путаю аварийную остановку и рабочую.

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

maximov2009
18.03.2013, 06:08
[QUOTE=maximov2009;105114][QUOTE=rovki;105096]
Макрос открыт ,там одни сел и константы ,да еще пару ФБ.

Добрый день, спасибо за ответ. Просто хотел изучить возможность добавки к данному макросу возможности изменения уставок через сетевые адреса. Может быть Вы как автор предложите модификацию с такой возможностью. А то зачастую приходится аппарат подстраивать оперативно во время работы. Заранее благодарен.
P.S. А макрос сейчас буду гонять, я не до конца понял как задаются уставки. Понял пока что в двоично-десятичном коде.
С уважением.

rovki
18.03.2013, 07:27
Сетевые переменные использовать внутри макроса не получится .Если это уставки ,то меняйте адрес ППЗУ через сетевые переменные,а на выходе получите одну из возможных уставок.

maximov2009
18.03.2013, 08:10
Сетевые переменные использовать внутри макроса не получится .

А нельзя ли сделать другой макрос на базе этого, но чтобы константы задавались через сетевые переменные. Хочу попробовать использовать для задания времени технологических операций, а там определённым набором уставок не отделаешься. Хотя бы не все 16 констант, а половину. Хотя для универсальности макроса, конечно лучше бы все.
Заранее благодарен.

Василий Кашуба
18.03.2013, 10:31
1)когда включаешь схему, ворота сразу начинают закрываться. вы считаете это безопасно?
Выделите макрос радио кнопки и в свойствах замените "1" на "2".


и ещё один момент, ик-барьер должен работать на разрыв.
Разрыв чего? "0" или "1"?

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

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

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

rovki
18.03.2013, 10:58
А нельзя ли сделать другой макрос на базе этого, но чтобы константы задавались через сетевые переменные. Хочу попробовать использовать для задания времени технологических операций, а там определённым набором уставок не отделаешься. Хотя бы не все 16 констант, а половину. Хотя для универсальности макроса, конечно лучше бы все.
Заранее благодарен.
тогда вам нужен макрос ОЗУ :rolleyes:

maximov2009
18.03.2013, 11:32
тогда вам нужен макрос ОЗУ :rolleyes:

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

rovki
18.03.2013, 11:50
Пример организации выборки уставок на базе макроса ОЗУ и мультиплексоров .Уставки могут быть переменными ,константами ,в том числе сетевыми переменными

dvar
18.03.2013, 12:10
Выделите макрос радио кнопки и в свойствах замените "1" на "2".


Разрыв чего? "0" или "1"?

Смотри первый пункт. Ещё возможно, концевик мешает включить движение ворот.

Если ворота открыты, она предупреждает о возможном выезде транспорта.

Данное замечание уместно. В новом варианте поставил защиту от дураков

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

AI!
18.03.2013, 12:48
макроса ОЗУстранный макрос, много проверок, а по сути всё что "не ноль" пропускает на сквозь, а когда ноль на входе на выход даёт последнее не нулевое значение.

если всё именно так, то вот мой такой же макрос.

Василий Кашуба
18.03.2013, 15:26
...а если разорвать ноль, то появится 1?

Конечно. :)
Графического редактора под рукой нет, поэтому как смог так и нарисовал.:cool:

rovki
18.03.2013, 16:44
странный макрос, много проверок, а по сути всё что "не ноль" пропускает на сквозь, а когда ноль на входе на выход даёт последнее не нулевое значение.

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

Василий Кашуба
18.03.2013, 18:30
хотел так же сделать ,но потом стукнуло в голову ,что сетевые переменные не сохраняются ,потому и поставил анализ изменения значения .Но теперь еще подумал и решил ,что ОЗУ вообше лишнее .Потому как если это константа то она хранится в памяти ПР ,если это переменная ,то она тоже хранится ,в том числе и сетевые (в своих регистрах) ,а тогда зачем это весь огород -проста ставим мультиплексор и все.

Мультиплексор тоже можно упростить. :)

rovki
18.03.2013, 18:44
Мультиплексор тоже можно упростить. :)
Только С -это строб- сигнал разрешающий работать макросу для возможности их обьединения :rolleyes:

Василий Кашуба
18.03.2013, 19:04
Только С -это строб- сигнал разрешающий работать макросу для возможности их обьединения :rolleyes:

Тогда на выходном СЕЛе нужно разорвать обратную связь.

rovki
18.03.2013, 19:13
Или просто его убрать:D ;)

Василий Кашуба
18.03.2013, 19:21
Или просто его убрать:D ;)

А как же строб?:)

rovki
18.03.2013, 19:51
:) ..............:)

Василий Кашуба
18.03.2013, 19:55
:) ..............:)

Это фактически одно и то же. :)

rovki
18.03.2013, 19:59
результат один ,а реализация другая:)

rovki
18.03.2013, 21:00
Кто проще:D

AI!
18.03.2013, 21:44
Кто проще:Dкогда я делал так в RND1024,
то мне стека не хватило, и пришлось придумывать более простой вариант.

простой, с точки зрения ПР.

Василий Кашуба
18.03.2013, 22:27
Кто проще:D

Анатолий, вам этот рисунок со страницы 175 ничего не напоминает?
"Это коммутатор номеров телефона "Межгород"

rovki
18.03.2013, 23:00
Так вот и надо было его в макрос сувать ,если уж упрощать ,однако;) :) :p

dvar
19.03.2013, 06:41
Конечно. :)
Графического редактора под рукой нет, поэтому как смог так и нарисовал.:cool:
ты такой схемой сам будешь пользоваться?

Василий Кашуба
19.03.2013, 07:32
ты такой схемой сам будешь пользоваться?

Чем схема не понравилась? :)

Василий Кашуба
19.03.2013, 07:39
Так вот и надо было его в макрос сувать ,если уж упрощать ,однако;) :) :p

Коммутатор там в виде макроса и оформлен. :)

dvar
19.03.2013, 08:26
Чем схема не понравилась? :)
может проще все-таки единицу разрывать?
зачем мудрить.:D

maximov2009
19.03.2013, 11:09
Кто проще:D
Добрый день. Бурная дискуссия. Так какой же всё таки мультиплексор посоветуете. Мне надо, чтобы сетевые уставки коммутировать, для переключения выходов и временных уставок по циклу.
Попутно если можно вопрос, там в предложенной Вами программе встретил блок MEMR, вроде как энергонезависимая память. Она в ПР110 работает, или только в 114?

rovki
19.03.2013, 18:24
можно использовать любой вариант из предложенных .какой проще в понимании тот и берите.все что энергонезависимое работает только в пр114

maximov2009
19.03.2013, 19:19
можно использовать любой вариант

Добрый вечер. В принципе все понятны. Может есть ещё какие интересные макросы. Если возможно киньте пожалуйста набор, хотя бы с минимальным описанием.

rovki
19.03.2013, 19:35
Гляньте в темах специальных http://www.owen.ru/forum/showthread.php?t=12691
http://www.owen.ru/forum/showthread.php?t=13106
а так же вложения http://www.owen.ru/forum/misc.php?do=showattachments&t=7023
Просто интересы у всех разные;) :)

Михаил НН
20.03.2013, 09:38
Уважаемые Мастера. Первый опыт с ПР 110 вышел ожидаемо сырым и на первый взгляд весьма сложным. Но таково ТЗ. Если можно - оцените, как можно упростить, а то самому не очень нравиться. На симуляторе и на стенде -имитаторе все работает согласно алгоритма. С о1 апреля буду загонять на установку. В приложениях -ТЗ, алгоритм, функциональная схема и начинка ПР прмывки.

maximov2009
20.03.2013, 12:04
Уважаемые Мастера. Первый опыт с ПР 110 вышел ожидаемо сырым

Добрый день Михаил. Совершенно напрасно на мой взгляд Вы на себя наговариваете. Мой первый проект был проще и корявее. Но работает без сбоев до сих пор. Сколько раз хотел изменить, но потом понял, что идеала всё равно не будет, главное, что правильно работает. В Вашем случае лучший тот вариант, который полностью понятен ВАМ, чтобы можно было в любой момент подделать. Можно несколько узлов свести к некоторым макросам, я как раз с ними сейчас пытаюсь разобраться, но есть ли смысл переделки, если у Вас ограничены сроки, смело заливайте своё.
Я тоже работаю на молочном комбинате, у Вас скорее всего какой то приёмный молочный пункт, или небольшой завод. Этот процесс называется CIP мойка, у нас этих моек наверное под десяток. Недавно сломалась одна, заказали систему в сторонней фирме. Они будут использовать 1 контроллер с 4 блоками расширения и панелью оператора. Стоимость проекта 300000р. Так что Вам за решение этой проблемы на одной ПР 110 ОГРОМНАЯ медаль положена. Правда с контроллером убираются все ТРМ, САУ и прочая обвязка, но цену сами можете сравнить. Если будут вопросы по молочному производству можете обращаться. Проект попытаюсь проанализировать, может что то предложу, но не очень быстро, техпроцесс сложный. Не требуют ли у Вас оперативного изменения уставок?
С уважением .

rovki
20.03.2013, 12:25
А по моему хорошо ,если работает по тз .больше используйте макросов многовходовки И,ИЛИ и там где бегущая единица оформите ввиде макроса

Михаил НН
20.03.2013, 12:41
Добрый день Михаил. Совершенно напрасно на мой взгляд Вы на себя наговариваете. Мой первый проект был проще и корявее. Но работает без сбоев до сих пор. Сколько раз хотел изменить, но потом понял, что идеала всё равно не будет, главное, что правильно работает. В Вашем случае лучший тот вариант, который полностью понятен ВАМ, чтобы можно было в любой момент подделать. Можно несколько узлов свести к некоторым макросам, я как раз с ними сейчас пытаюсь разобраться, но есть ли смысл переделки, если у Вас ограничены сроки, смело заливайте своё.
Я тоже работаю на молочном комбинате, у Вас скорее всего какой то приёмный молочный пункт, или небольшой завод. Этот процесс называется CIP мойка, у нас этих моек наверное под десяток. Недавно сломалась одна, заказали систему в сторонней фирме. Они будут использовать 1 контроллер с 4 блоками расширения и панелью оператора. Стоимость проекта 300000р. Так что Вам за решение этой проблемы на одной ПР 110 ОГРОМНАЯ медаль положена. Правда с контроллером убираются все ТРМ, САУ и прочая обвязка, но цену сами можете сравнить. Если будут вопросы по молочному производству можете обращаться. Проект попытаюсь проанализировать, может что то предложу, но не очень быстро, техпроцесс сложный. Не требуют ли у Вас оперативного изменения уставок?
С уважением .
Спасибо за ответ.
Оперативного изменения уставок пока не требуют, установка опытная, 1 экземпляр. Вообще-то в управлении задействовано 2шт ПР110, один я прменил для приема и обработки молока, а второй - для мойки. С первым все гораздо проще. Нюансы по второму- хотелось бы иметь возможность регулировать время цикла внешним задатчиком, а то приходится всякий раз перезаливать программу. Макросы формировать , к сожалению пока не умею. Если можно - буду у Вас консультироваться по молоку, я совсем из другой области.

maximov2009
20.03.2013, 13:11
Спасибо за ответ.
Оперативного изменения уставок пока не требуют,

Под уставками я как раз и подразумевал время циклов. Я как раз столкнулся с этим при реконструкции аппарата розлива. На мой взгляд лучше использовать связку ПР110, ПР-МИ485, панель оператора. Опыт маленько есть, могу подсказать если что. Единственно определится с панелью. Простейшая ИП-320, стоит 5000р. Я реализовал проект на ней. Программирование несложное, только с сетевыми адресами разобраться и всё. Но есть недостаток ни в ПР110 ни в этой панели нет энергонезависимой памяти, поэтому при включении каждый раз по новой надо параметры забивать. Поэтому сейчас хочу попробовать на панели СП270 реализовать, но она уже 15000 стоит, жду финансирования от начальства. Так что подумайте, чем могу помогу.

rovki
20.03.2013, 17:06
Под уставками я как раз и подразумевал время циклов. Я как раз столкнулся с этим при реконструкции аппарата розлива. На мой взгляд лучше использовать связку ПР110, ПР-МИ485, панель оператора. Опыт маленько есть, могу подсказать если что. Единственно определится с панелью. Простейшая ИП-320, стоит 5000р. Я реализовал проект на ней. Программирование несложное, только с сетевыми адресами разобраться и всё. Но есть недостаток ни в ПР110 ни в этой панели нет энергонезависимой памяти, поэтому при включении каждый раз по новой надо параметры забивать. Поэтому сейчас хочу попробовать на панели СП270 реализовать, но она уже 15000 стоит, жду финансирования от начальства. Так что подумайте, чем могу помогу.
так может проще и дешевле ПР114 ,там все есть ;)

rovki
20.03.2013, 18:53
Для задания уставок можно применить переключатель ,если есть лишние выходы ,тем более есть готовый макрос http://www.owen.ru/forum/showpost.php?p=63063&postcount=987

Михаил НН
20.03.2013, 21:54
Хорошая идея, жаль только, что у меня всего 2 свободных входа и ни одного свободного выхода. Но в копилку положил - пригодится. Кстати в процессе обмена с Вами родилась мысля- если принять время циклов одним и тем же, то возможно применить вместо внутреннего задатчика времени TON1 внешнее реле времени типа «Темп» РВ-01М.220 на один из свободных входов. Там есть своя память.

rovki
20.03.2013, 22:07
А время какого ФБ вы хотите менять в схеме (TON1 что ли)?И для чего ?С какой точностью хотите менять уставки и на что это влияет ?У вас 2и 8 выход идут от 1 триггера ,напряжение питания что ли разное?
Вопрос по схеме -почему вы используете SR ,а не RS триггера?

Михаил НН
20.03.2013, 23:08
А время какого ФБ вы хотите менять в схеме (TON1 что ли)?И для чего ?С какой точностью хотите менять уставки и на что это влияет ?У вас 2и 8 выход идут от 1 триггера ,напряжение питания что ли разное?
Вопрос по схеме -почему вы используете SR ,а не RS триггера?

1. TON1 задает время рабочего цикла - от момента нагрева до заданной температуры. Принято = 15 мин. Для отладки схемы на имитаторе, да и на установке это очень долго. Поэтому я задаю время цикла в наладочном режиме меньшим, каждый раз перезаливая программу. Точность - минуты, не влияет практичеси ни на что, лишь бы не меньше установленной СаНПиНом. Но возможно, при эксплуатации на конкретной ферме, им потребуется изменить это время, а кататься по деревням за сотни км не хочется.
2.Там разные напряжения =24в и перем.220.
3. SR вместо RS - просто привык когда-то к таким триггерам, в наших схемах на 178 и 176 сериях они больше были в ходу.

rovki
20.03.2013, 23:27
3.так и я привык ,что S в железе вверху .но в железе подавать два управляющих сигнала на входа S\R не хорошо .А тут можно .Потому что у этих триггеров есть приоритет по этим входам(в ОЛ) .Поэтому если у вас активный уровень "1" ,то лучше использовать триггер RS - приоритетом на сброс ,тогда может упростится схема управления этими триггерами (упростить блокировки по входам)

Михаил НН
21.03.2013, 00:13
3.так и я привык ,что S в железе вверху .но в железе подавать два управляющих сигнала на входа S\R не хорошо .А тут можно .Потому что у этих триггеров есть приоритет по этим входам(в ОЛ) .Поэтому если у вас активный уровень "1" ,то лучше использовать триггер RS - приоритетом на сброс ,тогда может упростится схема управления этими триггерами (упростить блокировки по входам)

Спасибо,учту на будущее:)

capzap
21.03.2013, 00:14
от момента нагрева до заданной температуры. Принято = 15 мин
если быть точным, отсчет времени должен начинаться от момента достижения раствором заданной температуры. Видимо поэтому в Вашем проекте время увеличилось до 15 минут от рекомендуемой инструкцией по санитарной обработке оборудования на предприятиях молочной промышленности для резервуаров 5-7 минут ;)

Михаил НН
21.03.2013, 00:47
если быть точным, отсчет времени должен начинаться от момента достижения раствором заданной температуры. Видимо поэтому в Вашем проекте время увеличилось до 15 минут от рекомендуемой инструкцией по санитарной обработке оборудования на предприятиях молочной промышленности для резервуаров 5-7 минут ;)
Именно это я и имел в виду. Плюс еще добавил несколько времени для надежности промывки. Впрочем практика покажет.

AI!
21.03.2013, 01:15
Плюс еще добавил несколько времени для надежности промывки. Впрочем практика покажет.так может так и сделать - ждать когда вода нагреется, а потом отключать через TOF?

PS мож будет интересно: у меня дома посудомойка похоже по такому же принципу работает, потому что когда вода не из промежуточной ёмкости, где она прогревается почти до комнатной температуры, а напрямую из скважины, где ~5°С, то посуда лучше промывается.
(видимо потому что дольше моет)

maximov2009
21.03.2013, 05:51
[ внешнее реле времени типа «Темп» РВ-01М.220 на один из свободных входов. Там есть своя память.[/QUOTE]
Добрый день. Насчёт внешнего реле времени неплохая идея. Я её уже использовал, особенно удобно при отладке, если в дальнейшем не требуется оперативного изменения. Я использую сейчас таймер h5b можно глянуть хотя бы по этой ссылке, http://kipservis.ru/klemsan/fotek_h5b.htm Стоит дёшево (меньше 1000) надёжный, любой диапазон, удобство монтажа. Не рекламирую, просто как вариант, есть и другие.

maximov2009
21.03.2013, 06:01
так может проще и дешевле ПР114 ,там все есть ;)

Добрый день. Всем хороша ПР114. Правда ещё конкретно с ней не работал, только заказал. Но в нашем случае 1 небольшой "как бы недостаток" из 12 входов минимум 4 аналоговых, а приходится работать в основном с дискретными. Так и в обсуждаемой задаче используется 10 входов. А переводить аналог в дискрет конечно можно, но зачем лишние хлопоты, может всё таки сделают и 110 с энергонезависимой памятью. Разница то в цене не очень большая.

melky
21.03.2013, 22:58
Доброй ночи.
Родилась тут задача небольшая, пытаюсь реализовать.
3 или 4 устройства работающие в режиме ротации. 2+1 или 3+1.
Смена режима работы раз в сутки реализовывается легко. Как реализовать смену режима по часам, используя всего 2 входа ?
так понимаю 0 0 - 1 час
0 1 - 2 часа
1 0 - 3 часа
1 1 - 4 часа (ну либо иной стартовый интервал времени)

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

При команде от внешнего датчика температуры запустить все устройства.

Пробую сейчас реализовать это на двоичном шифраторе.

rovki
21.03.2013, 23:10
Добрый день. Всем хороша ПР114. Правда ещё конкретно с ней не работал, только заказал. Но в нашем случае 1 небольшой "как бы недостаток" из 12 входов минимум 4 аналоговых, а приходится работать в основном с дискретными. Так и в обсуждаемой задаче используется 10 входов. А переводить аналог в дискрет конечно можно, но зачем лишние хлопоты, может всё таки сделают и 110 с энергонезависимой памятью. Разница то в цене не очень большая.
А какие хлопоты преобразовать тип :confused: :rolleyes: данных

rovki
21.03.2013, 23:12
Пробую сейчас реализовать это на двоичном шифраторе.
Вот именно ;) ,которые уже есть готовые(макросы) :),только они называются дешифраторы

melky
22.03.2013, 09:50
rovki, нет, я не ошибся, именно шифратор. Ваш же макрос собственно говоря :)
Вот наброски.

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

В примере вход 3 используется для тестирования, не более, вместо него должна быть схема, выдающая импульсы определенного промежутка, от 1 часа до 6 часов например или больше. Скажем если оставляем входы без подключения и минимальный промежуток 1 час, то будет смена работы с промежутком в час. каждое из устройств будет работать 2 часа и час отдыхать. Если поставить 6 часов и залить программу, то каждое устройство будет работать 12 часов и 6 часов отдыхать.
С суточным проще, даем импульс раз в сутки и устройство 2 суток работает, сутки отдыхает.
Можно конечно сгородить несколько часов и настроить как надо, но это как-то громоздко и не совсем красиво.

входы 5, 6, 7 это авария от устройств
вход 8 - сигнал от внешнего датчика температуры.
Потом планируется это все перенести на CodeSys и собственными датчиками температуры, но это отдельная реализация.

Чисто взгляд на решение, только пока не придумаю как реализовать.
Часы, счетчик от часов, фиксирует каждый час. Два входа - 0 0 - по умолчанию импульс раз в сутки. 0 1 - по умолчанию импульс каждые Х часов, 1 0 - импульс каждые Y часов, 1 1 - импульс каждые Z часов.
X, Y, Z прописываем перед зашивкой программы в произвольном варианте на сравнении счетчика часов. например 1 час, 3 часа, 9 часов. и прописываем время срабатывания при суточном режиме. В моем примере в 11:00

maximov2009
22.03.2013, 11:18
[QUOTE=melky;105793]rovki, нет, я не ошибся, именно шифратор. Ваш же макрос собственно говоря :)
Вот наброски.
Потом планируется это все перенести на CodeSys и собственными датчиками температуры, но это отдельная реализация./QUOTE]
Добрый день.
А зачем если не секрет переносить в другую программу. Сейчас вроде как приступили к выпуску "Модус 5680". Программирование контроллера Модус 5680 производится в среде OwenLogic. Я сейчас хочу попробовать на него переходить. Поддерживает все макросы для ПР110-114. Набор входов и выходов набираешь какие хочешь и сколько хочешь.
С уважением.

melky
22.03.2013, 11:57
maximov2009 да просто с CodeSys тоже надо начинать разбираться :)
На чем будет реализовано не так принципиально, главное чтобы программа была оптимизированна.

Тут недавно ковырял ZelioLogic и очен у него понравился FB с булевыми операциями. Там он на 4 входа, но можно каскадом собирать.
Принцип такой: на входы подаются 0 и 1 а в свойствах FB выбираешь комбинации по входам, при которых выход 1 если true или 0 в зависимости что тебе нужно.
На ПР110 такой макрос можно реализовать ?
http://www.owen.ru/forum/attachment.php?attachmentid=8326&stc=1&d=1363939457

rovki
22.03.2013, 13:31
maximov2009 да просто с CodeSys тоже надо начинать разбираться :)
На чем будет реализовано не так принципиально, главное чтобы программа была оптимизированна.

Тут недавно ковырял ZelioLogic и очен у него понравился FB с булевыми операциями. Там он на 4 входа, но можно каскадом собирать.
Принцип такой: на входы подаются 0 и 1 а в свойствах FB выбираешь комбинации по входам, при которых выход 1 если true или 0 в зависимости что тебе нужно.
На ПР110 такой макрос можно реализовать ?
http://www.owen.ru/forum/attachment.php?attachmentid=8326&stc=1&d=1363939457
Так есть макрос ППЗУ ,хоть 16 комбинаций ,только преобразуйте двоичный код в целочисленный ,тем более и такой макрос есть .Всего два универсальных макроса и получите 4 булевых входа и 16 выходов .Только на выход ППЗУ нужно поставить преобразователь типа инт в бул.

rovki
22.03.2013, 13:44
Вот вам на скорую руку ППЗУ где адрес задается по булевым входам

melky
22.03.2013, 13:47
rovki чуть подробнее можно про ППЗУ ?
Нужен именно один выход а не 16 и возможность самостоятельно прописывать варианты срабатывания выхода.
например 1 0 0 0 - выход 0 при остальных комбинациях входов 1
или 1 0 0 0 ИЛИ 1 1 0 0 - выход 1, при остальных комбинациях 0

По вышенаписанному, блинк + счетчик + сравнение, может дать интервал (настройка блинк) и частоту (сравнение) импульса.
на входе элемента "Сравнения" целочисленное число. Вот как ему подсовывать числа, путем изменения входов 0 0, 0 1, 1 0, 1 1 ?

AI! и на скорую руки ни картинки ни файла :)

melky
22.03.2013, 14:32
AI! тоже уже увидел, возможно не обновил страницу или еще что.
Принципа работы совершенно пока не понял. в режиме редактирования макроса поставил значение 5 и 6 - смысл работы мне стал непонятен.

С ППЗУ достаточно легко понять принцип, разобраться и использовать по тому же принципу, как и в ZelioLogic.
rovki, Спасибо, в копилку себе положил :)

Василий Кашуба
22.03.2013, 14:39
странно, а я файл вижу архив - там внутри макрос, который можно импортировать в проект.

сделал 2 примера использования, в соответствии с вашим пожеланием.

Анатолий, товарищу не понятно, как задать необходимую ему комбинацию булевых переменных. :)

melky
22.03.2013, 14:44
Василий Кашуба - вот в варианте rovki мне все абсолютно понятно стало, когда посмотрел пример :)
А вот в варианте AI! я заблудился окончательно :)

melky
22.03.2013, 14:54
AI! ок, сейчас попробую по вашим рекомендациям.

И кстати по задаваемому мной вопросу менять время импульса (предварительно обозначенного) очень подошел вариант rovki ППЗУBool
ну просто замечательно встал, как к себе домой :) можно использовать все свободные входы, если таковые будут и менять частоту импульса в зависимости от пожеланий.

Ерунда какая-то. Ставлю цифру 4 - это в бин 1 0 0 , то есть при 1 на I3 должен сработать выход, так ?
почему выход срабатывает при 1 на I2 ?
И еще такой момент, И работать будет, а ИЛИ вроде как нет. В варианте с ППЗУ можно как И так и ИЛИ варианты использовать, больше комбинаций.

melky
22.03.2013, 15:18
AI! только что проверил в другом проекте, импортировал макрос, поставил 4. Использую только 3 выхода, срабатывает когда I2=1
то есть 0 1 0 по входам.

Я выше писал пример работы Булеан из ZelioLogic
сообщение http://www.owen.ru/forum/showpost.php?p=105811&postcount=3688
Там картинка свойств FB в котором прописывается что необходимо на выходе при определенных комбинациях входов. Работа выхода может быть и по И и по ИЛИ - просто смотрим маску входов и проставляем значения выходов. ну и на выходе в зависимости от значений может быть инверсия. Очень удобная штука оказалась на практике.

http://www.owen.ru/forum/attachment.php?attachmentid=8331&stc=1&d=1363951330

Значение 4 - 100b
Срабатывание на значении 2 - 010b

melky
22.03.2013, 15:24
AI! - я ввожу значение не 2 а значение 4

Макрос должен срабатывать при 1 на ТРЕТЬЕМ входе

почему срабатывает на ВТОРОМ ?

И дальше, вводим значение 6 - при 1 на I1 сработок быть не должно. а она есть.

хм. Судя по всему, ваш макрос проглатывает младший бит.

melky
22.03.2013, 15:48
AI! - вы совершенно неправильно интерпретировали задачу.
на картинке из FB ZelioLogic вертикальные столбцы это входы, I1, I2, I3, I4
и их значения представляют из себя соответственно биты числа

0 1 0 0 = включен вход I2 - то есть 2 в десятичном
0 0 1 0 = включен вход I3 - то есть 4 в десятичном

ну как младший вход = младшему биту.
+ можно комбинировать, включить выход как по 0 1 0 0 так и по 0 1 1 0 так и по 0 0 1 0

В вашем варианте вход I1 при значении 4 и 6 в настройках FB не является младшим битом числа, а скорее является 2-м битом, судя по реакции работы.

http://www.owen.ru/forum/attachment.php?attachmentid=8336&stc=1&d=1363953186

Идея как раз в том, чтобы выставлять в свойствах макроса, при каких значениях на выходе дать 1
Толи когда на входе 4(100), толи когда на входе 6(110) толи иная, интересующая нас комбинация входов.

melky
22.03.2013, 15:56
AI! - приложил картинку для наглядности.

Число битовое в качестве маски должна накладываться на ВХОДЫ, а не на выход, как в вашем случае.
зеленым выделены число 4 и число 6 по входам, только при таких комбинациях на выходе должно быть 1.
При любых других 0

младший вход, младший бит.

melky
22.03.2013, 16:28
AI! вы индивидум просто.
Выход физически ОДИН. Входов несколько. Так биты считать проще где ?
Вы же при определении предлагаете использовать по сути двойное преобразование. Сперва начертить табличку, определить согласно необходимым битам на входе какое число получиться на выходе, потом только вбить некоторое число в свойства.
По мне, это бред и очень неудобный для понимания схемы работы.

используя 5 входов
комбинации по входам, при которых должна быть 1 на выходе
1 1 0 1 0 или 0 0 0 1 1
Ввел число 16779264

А теперь сами посмотрите, сколько телодвижений для этого пришлось сделать....
Может как-то откорректировать макрос, чтобы вводить число согласно битной маски входов ?
Для работы данных двух комбинаций необходимы десятичные числа 11 и 24, сумма 35. ее и вносить. А не высчитывать числа, получаемые по таблице выхода ?

capzap
22.03.2013, 16:51
АИ отправте мелкого к вики чтоб почитал что такое ДНФ и КНФ, пусть сам сделает в соответствии со своими запросами :)
Как раз решение таких задач удобнее делать в лоджике

rovki
22.03.2013, 17:09
Этот спор яркий пример наглядности работы схемы (или привычки пользователя) .Целочисленная арифметика ближе для понимания программиста ,а булева электронщика .И да же если вариант целочисленный проще (по количеству элементов) ,то не не всегда нагляднее (или привычнее) ,но тут как говорится на вкус и цвет...

melky
22.03.2013, 17:16
Извините, не увидел сразу, что появились еще посты.
Все, что я думаю по данному макросу, я написал в добавлении к посту
http://www.owen.ru/forum/showpost.php?p=105878&postcount=3710

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

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

melky
22.03.2013, 17:32
AI! с ППЗУ в варианте rovki даже не надо калькулятор запускать. Если вы конечно попробовали его вариант. Достаточно запустить программу на исполнение и включить необходимые интересующие входы, чтобы понять, что потом сделать.

Для интереса сейчас еще один момент посмотрел, заполнение стека в вашем варианте 20% только при одном макросе в проекте.
Помня недавний мой опыт с программой для освещения дома на ПР110, цифра в 20% просто катастрофа.

rovki
22.03.2013, 18:35
Для простоты еще вариант ППЗУ на 4 бита и пример с двумя макросами (расширение)- 3 входа и восемь возможных значений.

rovki
22.03.2013, 19:18
А в чем прикол?

rovki
22.03.2013, 19:34
ресурсов, кроме стека, меньше кушает :D

да и.... балуюсь я

Меньше всего думал об этом в данном проекте .Баловаться не хорошо ,нужны собственные идеи .:p :) ,чай не дети ;)

AI!
22.03.2013, 19:42
мои идеи тут бракуют - надоело.

rovki
22.03.2013, 19:52
Это не идеи ,это реализации уже предложенного(варианты) ,причем очень хорошие .Идея -это найти новую область применения ПР и реализовать ее:rolleyes: :rolleyes: :rolleyes:Тем более тема так и называется

Василий Кашуба
22.03.2013, 21:25
Для простоты еще вариант ППЗУ на 4 бита и пример с двумя макросами (расширение)- 3 входа и восемь возможных значений.

Ещё один вариант макроса. В свойствах нужно ставить "0" и "1" (я пока поставил номера входов, чтобы было понятно, какая константа за какой вход отвечает). :)

AI!
22.03.2013, 21:57
битовое равенство выглядит так: "XOR-NOT"

Василий Кашуба
22.03.2013, 22:42
битовое равенство выглядит так: "XOR-NOT"

Тогда будет непонятно, какая константа за какой вход отвечает. Я уже поднимал этот вопрос в пожеланиях ОЛ.
http://www.owen.ru/forum/showpost.php?p=101633&postcount=114

AI!
22.03.2013, 22:56
Тогда будет непонятно, какая константа за какой вход отвечает. Я уже поднимал этот вопрос в пожеланиях ОЛ.
http://www.owen.ru/forum/showpost.php?p=101633&postcount=114вот!!!!!!!!!!!
а если 32шт однобитных константы затолкать в одну 32х битную константу, то таких проблем не будет!

но юзеры нынче ленивые пошли...

PS хотите макрос ППЗУ сделаю? :D

rovki
22.03.2013, 23:35
Везет вам ,сейчас макросы в макросе ,менять значения можно в свойствах ,есть копирование вставка.,есть целочисленная логика..а я раньше делал ППЗУ 64 прям так

rovki
23.03.2013, 00:13
Вот еще несколько другой подход -внешней организации ППЗУ ,то есть значения зашиваются не внутри макроса ,а снаружи .Помимо констант можно и переменные подавать .У макроса есть 2 адресных входа и 4 входа констант (значений) ,которые устанавливаются на выходе в зависимости от адреса .При большом количестве битов можно константы спрятать внутрь макроса .:rolleyes: ,а для малого так удобней и наглядней .

melky
23.03.2013, 08:06
AI! это была не отбраковка идеи, а вывод о том, что очень неудобно этой идеей пользоваться :)

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

AI!
23.03.2013, 08:45
AI! с ППЗУ в варианте rovki даже не надо калькулятор запускать. Если вы конечно попробовали его вариант. Достаточно запустить программу на исполнение и включить необходимые интересующие входы, чтобы понять, что потом сделать.

Для интереса сейчас еще один момент посмотрел, заполнение стека в вашем варианте 20% только при одном макросе в проекте.
Помня недавний мой опыт с программой для освещения дома на ПР110, цифра в 20% просто катастрофа.1) этот ППЗУ полностью моя идея,
забить его цифрами от 0 до 15, тоже моя идея.
и вывести их, что бы вводить константы извне тоже моя идея.

2) вы в варианте rovki смотрели этот параметр что бы ТАКОЕ тут писать в адрес моего макроса?
да у него один анализатор кнопок хавает больше чем весь мой макрос!

PS для лентяев, предлагаю макрос с калькулятором, даже суммировать не надо самому.

melky
23.03.2013, 09:12
AI! давно не заходил, поэтому не знаю, чьи идеи первые, а чьи вторые, уж простите.

За калькулятор спасибо, развеселили с утра :)

Вот сам тут сидел и думал как применить в данной ситуации 32-битный дешифратор. Для макроса с одной комбинацией по входам без проблем, ну можно сдеать на 2. Или просто у макроса должен быть вход для подключения 32-битных дешифраторов - одного или нескольких через сумматор. И к макросу приложить картинку с вариантами в качестве хелпа.

з.ы. что только в голову не приходит с бодуна :)

Поверьте, гораздо проще будет пользоваться макросом, тем более нет необходимости особой высчитывать глобальное число на несколько комбинаций, при которых на выходе макроса должны получить 1

http://www.owen.ru/forum/attachment.php?attachmentid=8345&stc=1&d=1364019743
Вот, раз ОЛ не имеет функциональных возможностей "визивиг" настраивать булевые операции как в ZelioLogic, то можно поступать так.
Когда создаешь проект, используя данный макрос для наглядности можно поставить необходимое количество дешифраторов и сумматоров, таким образом не мучаясь с калькулятором вводя длинные числа. А потом удалить их, внеся значения в макрос. В общем с пивом пойдет.

В любом случае, AI! спасибо за макрос.

melky
23.03.2013, 09:19
Тут вспомнил еще одну проблему, которую надо решить именно на ПР110.

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

Но вот проблема состоит в том, что после выключения света и включения вновь, реле начинает программу сначала и импульсы открытия и закрытия могут поменяться местами. 1-й станет на закрытие а 2-й на открытие. Откровенно говоря тут мне вообще в голову ничего не приходит, как можно ПР110 научить ловить "правильный" импульс ?

rovki
23.03.2013, 11:08
1) этот ППЗУ полностью моя идея,
забить его цифрами от 0 до 15, тоже моя идея.
и вывести их, что бы вводить константы извне тоже моя идея.

2) вы в варианте rovki смотрели этот параметр что бы ТАКОЕ тут писать в адрес моего макроса?
да у него один анализатор кнопок хавает больше чем весь мой макрос!

PS для лентяев, предлагаю макрос с калькулятором, даже суммировать не надо самому.
Опять вы путаете Идею с реализацией .Приоритет создания макроса ППЗУ ,к сожалению принадлежит не вам ,как такового .Названия которого были и дешифратор уставок и матрица и ппзу ,за долго до вашей регистрации на форуме .Что касаемо обсуждаемого варианта ,то это проект(вариант) совместного творчества http://www.owen.ru/forum/showpost.php?p=56559&postcount=727 в том виде ,как есть.
насчет забивания цифрами так это тоже было очень давно http://www.owen.ru/forum/showpost.php?p=105929&postcount=3714
итд...
На счет "хаванья" ПР ,так я его очень люблю ,поэтому и кормлю .
Были варианты ,когда проект не лез на форум ,из-за обьема ,но он прекрасно работал в ПР.Для меня наглядность и понятность на первом месте ,а к стеку или обьему обращаюсь только тогда ,когда их не хватает.
не ожидал от вас такого выпячивания.

rovki
23.03.2013, 11:17
Тут вспомнил еще одну проблему, которую надо решить именно на ПР110.

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

Но вот проблема состоит в том, что после выключения света и включения вновь, реле начинает программу сначала и импульсы открытия и закрытия могут поменяться местами. 1-й станет на закрытие а 2-й на открытие. Откровенно говоря тут мне вообще в голову ничего не приходит, как можно ПР110 научить ловить "правильный" импульс ?
Можно ,если поставите концевик положения ворот.:)

AI!
23.03.2013, 12:03
Опять вы путаете Идею с реализацией.идея данной реализации, если Вам будет угодно.
На счет "хаванья" ПР ,так я его очень люблю ,поэтому и кормлю.
....
а к стеку или обьему обращаюсь только тогда ,когда их не хватает.
не ожидал от вас такого выпячивания.я обсмеиваю процитированное, в том сообщении, высказывание melky,
и ни в коем случае ничего не имею против Вас лично, Ваших проектов, и вариантов реализации сделанных Вами.
так же не хочу присвоить себе авторство идей макросов, только идею конкретной реализации.

Прошу прощения, что дал повод думать иначе.

melky
23.03.2013, 12:11
rovki сложно, дом уже полностью в отделке, дополнительных проводов проложить уже нельзя к сожалению. Просто когда речь шла о ролетах гаража, предполагалось, что там будет обычное кнопочное управление. Двухклавишное 1-поднять, 2-опустить. но оказалось, что есть еще радиопульт управления и кнопки фактически пасивные, подключаются к блочку управления. Еще не разбирался, какой там сигнал общий, скорее всего слаботочный. Собственно владельцу клавиши не подключали, пользуется радиопультиком.

А ПР110 там стоит на 220В по входам и входы давно закончились :(, некуда подавать сигнал от концевиков в общем. Правда есть сигнал от блока сигнализации охраны, приходящий на ПР110. Вот и думаю, можно ли как-то применить этот сигнал для корректировки счетчика импульсов ? Ведь когда дом ставят на охрану, то ролеты гаража дожны быть закрыты и после снятия первым импульсом будет как раз открытие.
только у меня реализация со сбросом счетчика хромает.

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

Собственно это неудобство не именно макроса, а программы ОЛ в целом.
Примерно из той же серии, что и отсутствие названий переменных и необходимость делать И с тремя или более входами макросами или ставить кучу элементов в каскад и т.д.
Откровенно говоря, меня фирма ОВЕН в данном случае удивила, она выпускает ПЛК на CodeSys где это реализовано прекрасно. Ставим элемен И или ИЛИ и просто в его свойствах говорим "Добавить вход" и получаем И с тремя входами или больше, если необходимо.
Выпустив ОЛ для программируемых реле ведь можно было реализовать точно так же. Тоже относится и к таймерам, можно было сделать универсальный, используя дополнительные входы и легко превращать один FB хоть в TON хоть в TOF хоть в TONOF и так делее....
В общем речь о юзабиити, не более того.

AI!
23.03.2013, 12:18
PS для лентяев, предлагаю макрос с калькулятором, даже суммировать не надо самому.хотел сделать WriteToFB сразу в макрос, что бы сразу проверять правильность работы макроса с константой,
но ПР не даёт такой возможности.

Анатолий, не знаете, разработчикам уже говорили об этой досадной недоработки?

AI!
23.03.2013, 12:24
melky
ИМХО по умолчанию, во время включения, надо предполагать самый вероятный вариант состояния системы, т.е. закрытый.

а как оно у вас заканчивает процесс открытия/закрытия?
если стоит электрический "расцепитель", то ничего страшного, что закрытую/открытую дверь попросят ещё раз закрыться/открыться

rovki
23.03.2013, 12:26
rovki сложно, дом уже полностью в отделке, дополнительных проводов проложить уже нельзя к сожалению. Просто когда речь шла о ролетах гаража, предполагалось, что там будет обычное кнопочное управление. Двухклавишное 1-поднять, 2-опустить. но оказалось, что есть еще радиопульт управления и кнопки фактически пасивные, подключаются к блочку управления. Еще не разбирался, какой там сигнал общий, скорее всего слаботочный. Собственно владельцу клавиши не подключали, пользуется радиопультиком.

А ПР110 там стоит на 220В по входам и входы давно закончились :(, некуда подавать сигнал от концевиков в общем. Правда есть сигнал от блока сигнализации охраны, приходящий на ПР110. Вот и думаю, можно ли как-то применить этот сигнал для корректировки счетчика импульсов ? Ведь когда дом ставят на охрану, то ролеты гаража дожны быть закрыты и после снятия первым импульсом будет как раз открытие.
только у меня реализация со сбросом счетчика хромает.

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

Собственно это неудобство не именно макроса, а программы ОЛ в целом.
Примерно из той же серии, что и отсутствие названий переменных и необходимость делать И с тремя или более входами макросами или ставить кучу элементов в каскад и т.д.
Откровенно говоря, меня фирма ОВЕН в данном случае удивила, она выпускает ПЛК на CodeSys где это реализовано прекрасно. Ставим элемен И или ИЛИ и просто в его свойствах говорим "Добавить вход" и получаем И с тремя входами или больше, если необходимо.
Выпустив ОЛ для программируемых реле ведь можно было реализовать точно так же. Тоже относится и к таймерам, можно было сделать универсальный, используя дополнительные входы и легко превращать один FB хоть в TON хоть в TOF хоть в TONOF и так делее....
В общем речь о юзабиити, не более того.
ну так и выложите свой вариант ,что бы не домысливать .К стати я уже делал вариант управления распашными воротами на ПР ,где то в теме нужно искать .:rolleyes:

rovki
23.03.2013, 12:28
хотел сделать WriteToFB сразу в макрос, что бы сразу проверять правильность работы макроса с константой,
но ПР не даёт такой возможности.

Анатолий, не знаете, разработчикам уже говорили об этой досадной недоработки?
http://www.owen.ru/forum/showpost.php?p=102700&postcount=121 это из той же оперы

AI!
23.03.2013, 12:30
необходимость делать И с тремя или более входами макросами или ставить кучу элементов в каскад и т.д.с учётом как у них работают элементы с 3мя входами - то лучше не надо 3И и тому подобных (ИМХО)

PS не спрашивайте - не скажу.

melky
23.03.2013, 12:36
AI! да не, ПР не управляет роллетами. Не было этого в ТЗ так сказать из-за отсутствия дополнительных выходов, а второй ПР ставить уже отказались. Типа не велика потеря, если гаражными ролетами будут управлять руками.
Но сигнал с них снимался для включения света в гараже в темное время суток, когда приезжаешь домой вечером.
Просто провода выводились из расчета, что кроме радиоуправления будут стоять еще и кнопки, а поставили такие блоки управления, что кнопок то и не оказалось (или от них отказались в процессе, уже и не помню). Пришлось снимать сигнал непосредственно с БУ и через промежуточное реле заводить в ПР.

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

AI! а что там у них ужасного в 3И ? это же простейшая логика, есть на всех входах 1 то на выходе 1, 3-его же не дано...

rovki
23.03.2013, 12:37
rovki
Откровенно говоря, меня фирма ОВЕН в данном случае удивила, она выпускает ПЛК на CodeSys где это реализовано прекрасно. Ставим элемен И или ИЛИ и просто в его свойствах говорим "Добавить вход" и получаем И с тремя входами или больше, если необходимо.
Выпустив ОЛ для программируемых реле ведь можно было реализовать точно так же. Тоже относится и к таймерам, можно было сделать универсальный, используя дополнительные входы и легко превращать один FB хоть в TON хоть в TOF хоть в TONOF и так делее....
В общем речь о юзабиити, не более того.
Спорное утверждение -на счет дополнительных входов и смены свойств ФБ,пострадает наглядность (читаемость схемы) ,возрастут ошибки при такой универсальности.Кодесис ОЛ не указ,как и наоборот .За кодесис в соседнею ветку.:rolleyes: .Графика рабочего поля кодесис в подметки ОЛ не годится:D .

melky
23.03.2013, 12:52
rovki да я ж не об этом, кому что годится в подметки а кому нет.
Просто ОЛ молодая программа и можно было интересные вещи перенимать из другого ПО для большего удобства пользования.

Вон в ZelioLogic штатных D-тригерров нет вообще. либо искать сторонние, либо тоже писать макросами. Народ пользует и не плачет. Деваться то некуда, когда есть проект, а в железе там З-Лоджики куплены. И изголяйся как хочешь.
У ОВЕНа среди ПР110 вроде же нет устройств на 16 входов и 10 выходов, насколько я помню.

Простите конечно, но в чем страдает наглядность проекта если И или ИЛИ сразу 4-х входовое ?

rovki
23.03.2013, 13:01
rovki

Простите конечно, но в чем страдает наглядность проекта если И или ИЛИ сразу 4-х входовое ?
Я писал об универсальных ФБ ,а не элементах ,где можно по входам или в свойствах менять назначение ФБ.Для этого есть макросы .Назовите его таймер задержки (например) ,а по входу управляйте что он задерживает -включение ,выключение или то и другое .А на счет многовходовок -разработчик решил пойти по пути создания макросов и отдал этот вопрос пользователям.
Лично я ,когда делаю предложения по модернизации ОЛ исхожу в первую очередь из удобства пользования(в первую очередь себя ,как пользователя) ,новых возможностей ,а не аналогов (к сожалению я их не использую и не знаю) . Опять же ,мне как электронщику (смотри подпись) очень близок ОЛ ,ввиду его большой схожести с реальными микросхемами ,с которыми пришлось работать очень долго и плодотворно .

AI!
23.03.2013, 14:19
AI! а что там у них ужасного в 3И ? это же простейшая логика, есть на всех входах 1 то на выходе 1, 3-его же не дано...есть волшебное слово "стек"

melky
25.03.2013, 12:55
AI! Да, вот по поводу стека, вспомнил давнишнюю тему по поводу причин его переполнения и посмотрел макрос 8ИЛИ
Оригинал, стек 20%
Поправил по рекомендациям для ОЛ и получил 7%

Когда первый раз писал что-то на ПР, тоже из-за этого попал на переполнение стека.
http://www.owen.ru/forum/attachment.php?attachmentid=8364&stc=1&d=1364201723
http://www.owen.ru/forum/attachment.php?attachmentid=8365&stc=1&d=1364201723

AI!
25.03.2013, 15:44
AI! Да, вот по поводу стека, вспомнил давнишнюю тему по поводу причин его переполнения и посмотрел макрос 8ИЛИ
Оригинал, стек 20%
Поправил по рекомендациям для ОЛ и получил 7%

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

2) где можно почитать эти "рекомендации"?
(о которых я сам дошел, но интересно откуда инфу черпаете вы...)

3) посмотрите реальный пример (http://www.owen.ru/forum/showthread.php?t=9398&page=5), может будет интересно..

melky
25.03.2013, 16:54
AI!
1. я ни в чем Вас не обвиняю, это было в тему, почему авторы ОЛ не сделают возможность увеличения входов для логических элементов. Вы сослались на волшебное слово "стек".
Просто в более ранних версиях ОЛ вставленные макросы тоже влияли на стек, сейчас вроде этого нет. Но если в схеме без создания макроса 8ИЛИ вставить таким образом элементы ИЛИ, как в макросе то стек выше, чем если их вставлять согласно рекомендациям. Никто же не мешает определенным способом организовывать многовходовый элемент, если бы разработчики этим озадачились. Но этого нет, так что и не узнаешь и не проверишь.
2. рекомендации были озвучены здесь же на форуме, толи от участников, толи от разработчиков ОЛ. Уже и не помню, но инфа точно с данного форума. Возможно даже и от Вас.
Просто на одной из своих первых программ я как раз и столкнулся с переполнением стека, и поправка с организацией использования входов очень помогла оптимизировать программу.
Ничего больше.

AI!
25.03.2013, 17:25
это было в тему, почему авторы ОЛ не сделают возможность увеличения входов для логических элементов. Вы сослались на волшебное слово "стек".
Просто в более ранних версиях ОЛ вставленные макросы тоже влияли на стек, сейчас вроде этого нет. Но если в схеме без создания макроса 8ИЛИ вставить таким образом элементы ИЛИ, как в макросе то стек выше, чем если их вставлять согласно рекомендациям. Никто же не мешает определенным способом организовывать многовходовый элемент, если бы разработчики этим озадачились. Но этого нет, так что и не узнаешь и не проверишь.об этом я и говорю, что когда входов больше 2, то элементы начинают "хавать" больше стека.
уж лучше пусть будет так как есть.

PS я вот начинаю думать - а не пора ли отказываться от SEL в своих разработках, не или "модифицировать" его использование.

rovki
25.03.2013, 17:30
об этом я и говорю, что когда входов больше 2, то элементы начинают "хавать" больше стека.
уж лучше пусть будет так как есть.

PS я вот начинаю думать - а не пора ли отказываться от SEL в своих разработках, не или "модифицировать" его использование.
надо попробовать вместо сел два МУЛ :rolleyes: и глянуть

melky
25.03.2013, 17:33
AI! не знаю, просто столкнулся с тем, что часто визуально удобнее, когда это один элемент на схеме с несколькими входами. Скажем 50 на 50, когда удобнее один на 2 входа и второй на 2 входа в другой части схемы, а иногда когда это просто один элемент.
Просто раз уж объединять в макрос, то максимально этот макрос оптимизировать по стеку. И собственно такие вещи были бы плюсом именно со стороны разработчиков ОЛ в первую очередь.

rovki
25.03.2013, 18:15
раньше стек был не динамический ,и то переполнить его было тяжело ,а теперь динамический и что бы его переполнить ,надо постараться ,стек растет не пропорционально сложности проекта .Поэтому делайте реальный проект и не заморачивайтесь стеком ,даже если он будет 99% .Для задач управления насосами время цикла ПР 50-100мс не критично.Раньше не было окна с обьемом стека и все работало ,а переполнение было в очень больших проектах ,с кучей ОС.Теперь можно использовать явные обратные связи ,не допуская переполнения стека во время 1 цикла ПР ,можно разнести выполнение ОС по циклам.

ALFIX
26.03.2013, 11:09
Коллеги подскажите как организовать выдачу константы и переменной через таймер на выход ПР-114?

rovki
26.03.2013, 11:25
на какой выход?Аналоговый или сетевой?Если аналоговый ,то используйте макрос FSEL(SEL). И какой тип данных используете целочисленный или с плавающей запятой ?

rovki
26.03.2013, 11:28
Общие вопросы лучше задавать в теме Экспресс вопрос\ответ,а тут области применения ПР110(примеры) и даже не ПР114.

ALFIX
26.03.2013, 11:40
естественно на аналоговый. смысл такой: после подачи питания на выходе в течение 20-30с должна присутствовать константа, после - сетевая переменная.

rovki
26.03.2013, 12:09
Ответ дан в другой теме

Flicker
29.03.2013, 07:14
Во вложение описание, циклограмма работы и проект программы начальный и проект уже со всеми блокировками по уровню, по зажиму. с задержкой включения некоторых выходных устройств, не могу добавить новые функции, переполняется стек, может кто поможет? :)

rovki
29.03.2013, 11:04
Поставьте дешифратор сторобируемый 3-8 ,а на выходе "ИЛИ" .строб завидите с триггера пуск ,что бы ручной режим не работал в автомате ,вот примерно так .

Владимир Евдокимов
29.03.2013, 11:16
можно по аналогии с приложенным проектам, заменив градусы на секунды

maximov2009
29.03.2013, 12:03
Во вложение описание, циклограмма работы и проект программы начальный и проект уже со всеми блокировками по уровню, по зажиму. с задержкой включения некоторых выходных устройств, не могу добавить новые функции, переполняется стек, может кто поможет? :)

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

Flicker
29.03.2013, 12:21
Добрый день. А в ручном режиме должно работать по времени, или как отпускаешь переключатель, так перестает работать?

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

olegas
29.03.2013, 20:10
Я уже собирал одну конструкцию под ПР.
А теперь вот ищу возможность, всунуть или Овен реле или контроллер в дом. Видеонаблюдение, свет, отопление,... а также пристроить в эту схему планшет на Андроиде ( в качестве монитора) . Подскажите возможно ли это , ли сразу закрывать тему. Пока 2 дня ковыряния в интернете ни к чему не привели. Практически во всех материалах из нета нужно знать какой-нибудь язык программирования...

melky
29.03.2013, 21:30
olegas - контроллер на CodeSys v3 (в режиме CFC программирование похоже на программирование ПР, только веб отдельно) - web интерфейс на свет, отопление. Видеонаблюдение без привязки к контролеру либо с web мордой регистратор, либо платы Dev-Line.

Это все, чтобы планшет мог понимать.

rovki
29.03.2013, 22:39
Во вложение описание, циклограмма работы и проект программы начальный и проект уже со всеми блокировками по уровню, по зажиму. с задержкой включения некоторых выходных устройств, не могу добавить новые функции, переполняется стек, может кто поможет? :)
Есть 2 вариант -у вас не используется 7ячеек памяти в каждом ППЗу ,используйте их для ручного управления ,путем смещения адреса ППЗУ ,в зависимости от состояния 3 доп.входов(ручные режимы) .Можно использовать тот же триггер Старт .Если код на ручных режимах ноль ,то при пуске запускается основная циклограмма (как сейчас) ,если код 1...7,то запускается один цикл .То есть нужно менять уставку в счетчике циклов с 9 на 2 (через сел) и добавлять смещение к адресу ППЗУ (через сел) .То есть в ручном режиме запускается только 1 цикл ,в течении заданного времени (2 ППЗУ,там аналогично добавляется то же смещение) и включаются нужные выходы (ППЗУ1) :rolleyes:
вот этот вариант

AI!
29.03.2013, 23:42
не могу добавить новые функции, переполняется стек, может кто поможет? :)2 варианта, на выбор.
в суть не вникал, и ничего не менял - всё равно вам мой вариант не понравится.

PS ну не нравится мне 1мс в проекте, "хоть ты тресни"...
вы "в железе" пробовали? ЭТО реально работает? или только в симуляторе?

rovki
30.03.2013, 10:09
Добавил в пост проект 2 варианта с ручным режимом

olegas
30.03.2013, 10:17
olegas - контроллер на CodeSys v3 (в режиме CFC программирование похоже на программирование ПР, только веб отдельно) - web интерфейс на свет, отопление. Видеонаблюдение без привязки к контролеру либо с web мордой регистратор, либо платы Dev-Line.

Это все, чтобы планшет мог понимать.

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

rovki
30.03.2013, 14:37
Новый макрос ППЗУ на 16 слов .стек не переполняется при последовательном соединении их ,числом до 12 шт.А если их не соединять параллельно ,то еще больше ,пока переменные не закончатся :eek: ;) ;) можно заменить в проекте Циклограмма .

AI!
30.03.2013, 16:00
Новый макрос ППЗУ на 16 слов .стек не переполняется при последовательном соединении их ,числом до 12 шт.мой вариант, добавил "номер микросхемы".

rovki
30.03.2013, 17:39
мЫСЛИ читаете ,хотел предложить людям задание сделать расширение ППЗу ,а вы тут как тут ,уже сделали :D .пока я спал
Правда у вас переменных и озу потребовалось почти в 3 раза больше ,зато стек уменьшился в 2 раза ;) .

AI!
30.03.2013, 18:31
Правда у вас переменных и озу потребовалось почти в 3 раза больше ,зато стек уменьшился в 2 раза ;) .не забываем про возможность "расширения", которое тоже "кушает".

кстати, "разы" посчитаны не совсем корректно, т.к. стек при каскадировании которое есть в примере, с моим макросом вообще не растёт.

PS оптимизировал.

rovki
30.03.2013, 18:51
Ну вот другое дело ,уменьшили сел и стало как у меня почти .У меня другой вопрос в моем макросе было меньше переменных и стек (18,20) ,против вашего 1 варианта где стек был 27 и переменных больше .А вот при соединении их в каскад стек стал у вас в проекте меньше???
Взял удалил из вашего проекта в библиотеке макрос пзу ,а потом вставил свой в библиотеку -в результате стек уменьшился ?????до вашего Пока не отсоединил выход .отсоединил и снова подсоединил и стек опять скакнул вверх.Во какая фича- обманул симулятор ,а железо?

AI!
30.03.2013, 18:53
2) там пересчёт происходит медленно, надо подождать минуту, лучше 2.

1) а вопрос в первом абзаце я не понял.

rovki
30.03.2013, 18:59
да хоть час , заменил ваш макрос на свой и стек остался вашим:eek: ;) и в симуляторе работает

AI!
30.03.2013, 19:07
ИМХО это в фиче-баги надо писать а не тут.

PS или вы добавили возможность расширения из моего первого макроса и получили "мой стек"?

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

AI!
30.03.2013, 19:19
когда макросы только появились было много проблем, что макрос изменился, а в проекте фактически не менялся, приходилось удалять его и вставлять заново.

тут, видимо, похожая ситуация - проект не пересчитывается если не сделать напр. то что сделали вы
(удалить связь и создать её снова)

если всё именно так, то надо писать отчёт в тему о багах.

rovki
30.03.2013, 19:23
Или ссылку там дать на баг тут,но леееень, стареееею .

AI!
30.03.2013, 21:05
2 варианта, на выбор.ещё один вариант.

rovki
30.03.2013, 21:23
А почему 7 блинков ,а не 7 тонов ?
Пора уж сделать 1макрос Циклограммы .входа -Пуск/стоп(1-пуск,0 -сброс) ,Количество циклов N(1-8) ,выходы -8шт.В свойствах- константы время N цикла и константы включения выходов .Еще можно добавить 1 вход -Ns -номер стартового цикла.То есть можно начать с 3(Ns=3) цикла и закончить 7(N=4) .Это позволит реализовывать пошаговый (ручной) режим ,если задать N=1 многое другое.

AI!
30.03.2013, 21:31
так исторически сложилось.

изначально была необходимость "мигать" двумя выходами, для чего использовал blink.
(напр. обычный светофор - либо одна сторона разрешена, либо другая)

потом я решил расширить возможность...

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

а 7 - это кол-во выходов/состояний.
можно было сделать 8, но хотел оставить возможность каскадирования (http://www.owen.ru/forum/showpost.php?p=102641&postcount=71).

PS ТОN этот макрос никак не напоминает.

AI!
30.03.2013, 21:39
Пора уж сделать 1макрос Циклограммы .входа -Пуск/стоп(1-пуск,0 -сброс) ,Количество циклов N(1-8) ,выходы -8шт.В свойствах- константы время N цикла и константы включения выходов .думал об этом, тогда достаточно 1 булевый вход и 1 целочисленный выход, и внутри может быть хоть сотня состояний (если хватит памяти ПР)
но решил сначала сделать промежуточную стадию, посмотреть как народ реагирует....
да и макрос ППЗУ с булевым входом не помешает...

rovki
30.03.2013, 21:42
так исторически сложилось.

изначально была необходимость "мигать" двумя выходами, для чего использовал blink.
(напр. обычный светофор - либо одна сторона разрешена, либо другая)

потом я решил расширить возможность...

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

а 7 - это кол-во выходов/состояний.

PS ТОN этот макрос никак не напоминает.
да же очень напоминает последовательное соединение 7тонов :D ;) -раз бегущая единица,только интервалы разные

rovki
30.03.2013, 23:24
думал об этом, тогда достаточно 1 булевый вход и 1 целочисленный выход, и внутри может быть хоть сотня состояний (если хватит памяти ПР)
но решил сначала сделать промежуточную стадию, посмотреть как народ реагирует....
да и макрос ППЗУ с булевым входом не помешает...
А я о другом -о законченном специальном макросе Циклограмма ,так как описал входа \выхода .8 разрядов достаточно ,а кому нет ,могут их соединить последовательно ( ХОТЯ ВЫХОДОВ У ПР 8 ШТ:D ) Я против полуфабрикатов абстрактных.это как не досказанная фраза ,но я за слова (макросы),которые состоят из букв (элементы и ФБ). Получается -универсальные макросы -слова со смыслом ,не набор букв ,специальные (функционально законченные и обьектно ориентированные) -законченные фразы .Ну а проект -это целый рассказ:) или картина.:rolleyes:Ну и конечно есть просто "матрешки "(набор букв)-макросы которые включают в себя часть проекта ,для упрощения ...
Чаще собственный опыт(практика) дороже одного(двух) мнений(теория).

Flicker
31.03.2013, 00:21
Смотрю на ваши работы и восхищаюсь мастерству :cool: и одновременно понимаю мой уровень это баловаться с элементами И, ИЛИ, ИЛИ НЕ... Вроде проект закончен, ручной режим добавил с помощью новых ППЗУ, которые уменьшили уровень стека :confused: Это моя первая работа, и то это громко сказано, все было разработано вами rovki, AI! :cool:. В понедельник залью программу и запущу установку, проверю работоспособность, надеюсь ничего нового не потребуется, жаль что установка будет слепая, не будет индикации состояния работы) но это ладно) Ведь главное чтоб работала :) Будут какие нибудь замечания?

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

AI!
31.03.2013, 01:03
у вас там ошибка, константы "время включения" надо умножить на 1000

rovki
31.03.2013, 09:16
Добавил вам новый универсальный макрос TONC -задержка на изменение целочисленного значения(заменяет ваши 7тонов по выходу ,на 1 по входу) .При изменении значения на входе ,на выходе сразу устанавливается ноль ,а с задержкой "Т" на выходе устанавливается новое значение .Если Т менять ,то можно получать разные задержки "на включение" (опять же с помощью ППЗУ) .В ручном режиме их можно сделать нулями ,имхо
Да ,при изменении значения чаше ,чем стоит задержка ,будет осушествлятся фильтрация их как в обычном ТОНе

rovki
31.03.2013, 09:23
На выходы ПР поставьте Лампочки с надписями ,что бы не было в слепую;) :D

rovki
31.03.2013, 10:20
Макрос TONC можно использовать в системах доступа ,например кодовый замок ,при попытке перебора вариантов ,чаще чем установленное время будет отлуп .Какие еще могут быть применения(в каких системах) ?Где еще нужно контролировать частоту событий(выраженных в целочисленных значениях)?

rovki
31.03.2013, 12:11
Вот еще навеяло -Генератор целочисленных значений .Есть вход разрешения работы ,вход задания времени Th ,на которое уставка стоит на выходе .
Tl-время нулевого значения на выходе .Период частоты есть сумма этих времен .
N- количество генерируемых уставок <16 (на подобии генератора пачек)
Сами значения хранятся в свойствах макроса .
может быть использован как задатчик уставок .

rovki
31.03.2013, 13:28
Задание для AI- сделать макрос ППЗУ для вещественных чисел;) :) :eek:
А я пока предлагаю макрос задержки изменения вещественного числа TONF (работает аналогично TONC)

rovki
31.03.2013, 15:17
Ну и пока АI не видит;) :cool: -Макрос ППЗУ для вещественных чисел (ранее уже был с другой схемотехникой ).

rovki
31.03.2013, 15:19
Ну а теперь ,какой будет следующий макрос:confused: ?--Правильно -генератор вещественных чисел:D .