PDA

Просмотр полной версии : Универсальные макросы для OWEN Logic



Страницы : [1] 2 3 4

rovki
17.05.2012, 20:36
Давайте в этой теме публиковать универсальные макросы для ПР ,а то они перемешаны с примерами и их трудно найти .Можно в виде групп (папок) ,если нужно можно давать пояснения.Начнем с макросов логических элементов .:rolleyes:
с добавлениями

rovki
17.05.2012, 21:39
Папка с макросами генераторов

rovki
18.05.2012, 12:38
Папка с макросами дешифраторов,шифраторов,мультиплексоров..
с добавлениями

rovki
18.05.2012, 20:22
папка с макросами счетчиков с добавлениями

rovki
19.06.2012, 22:49
несколько макросов для вещественных чисел

rovki
23.06.2012, 11:06
несколько макросов для вещественных чисел
В дополнение макрос гистерезиса вещественных чисел

wal79
03.07.2012, 15:16
Я выкладываю некоторые из представленных здесь макросов в онлайн-базу... Но неплохо было бы более подробное описание к их работе... :rolleyes:
И кстати, уважаемые пользователи, принимаем предложения, какие макросы Вы считаете нужным включить, какие нет... Какими макросами Вы чаще всего пользуетесь?

Василий Кашуба
03.07.2012, 15:58
Предлагаю макросы пароля или кода доступа трёх и шестизначные.
недостаток шестизначного пароля, чтобы поменять пароль, необходимо входить в редактор макросов, зато высокая степень защиты.
А у трёхзначного пароля, степень защиты ниже, зато проще менять пароль.

rovki
03.07.2012, 18:14
А какая разница куда входить ,в проект или макрос для редактирования .???Да и входа ПР жалко отдавать под это .

rovki
03.07.2012, 18:19
Я выкладываю некоторые из представленных здесь макросов в онлайн-базу... Но неплохо было бы более подробное описание к их работе... :rolleyes:
И кстати, уважаемые пользователи, принимаем предложения, какие макросы Вы считаете нужным включить, какие нет... Какими макросами Вы чаще всего пользуетесь?
Дело не в частоте использования ,например исключающее или использовал несколько раз ,или шифратор, дешифратор ,те что в библиотеке элементов ,но от этого они не перестают быть нужными.Все дело в универсальности макроса и его функциональности .

Василий Кашуба
07.07.2012, 20:34
Предлагаю универсальный макрос управления насосами, с резервированием и двумя режимами работы Зима/Лето.

rovki
18.07.2012, 21:52
Макрос экстремума вещественного числа
Запоминает минимальное и максимальное значение вещественного числа

rovki
19.07.2012, 07:08
Макрос Пикового индикатора .Вход целочисленный ,выходы -бинарные(8шт).Можно менять из проекта пороговые значения .

SUNreal
19.07.2012, 09:34
макрос блокировки работы ПР пока смог заблокировать только OWEN Logic

:-)

что то с версией

wal79
19.07.2012, 11:23
макрос блокировки работы ПР пока смог заблокировать только OWEN Logic

:-)

что то с версией

Не понял... Что не работает?

SUNreal
19.07.2012, 14:53
Не понял... Что не работает?

Файл не открылся в программе OWEN Logic. Сообщил : Адресат вызова создал исключение. Версия 1.5 build 35 beta

rovki
19.07.2012, 17:20
Привет САНРИАЛ .Обновите овен лоджик ,писал в 39 версии

Василий Кашуба
30.07.2012, 01:18
Предлагаю макрос Построения графика температуры в зависимости от погоды

rovki
31.07.2012, 20:00
хорошо бы перенести в тему специальные макросы:)

rovki
03.08.2012, 22:44
макрос синуса (0-360)

rovki
07.08.2012, 22:30
Макрос таймера со сбросом

rovki
13.08.2012, 11:45
Спасибо за вариант ,аналогичный был в примерах:)

rovki
14.08.2012, 11:42
Значит он не настолько универсальным получился(мой макрос).А чем именно не устроил ,может доработаю.?

schlosser
14.08.2012, 13:34
Мне просто нужно было количество бит в коде.

Василий Кашуба
24.09.2012, 22:00
Предлагаю Универсальный 32 разрядный счетчик

kukla100
11.01.2013, 15:58
Предлагаю макрос Построения графика температуры в зависимости от погоды
Неплохо бы узнать пароль к макросу

Василий Кашуба
11.01.2013, 18:00
Неплохо бы узнать пароль к макросу

Пожалуйста, 221254

Slimshady
24.01.2013, 18:18
Ммм...221254... не ДР случайно?)

rovki
24.01.2013, 20:07
как и у всех :D .

kukla100
27.01.2013, 08:10
Таймер задержки включения с сохранением

rovki
27.01.2013, 09:20
Судя по схеме лучше назвать RS триггер с задержкой на включение и
Время задержки лучше вывести из макроса для универсальности .И тогда уж надо делать в макросе еще и задержку на выключение триггера,однако .

kukla100
27.01.2013, 17:38
Судя по схеме лучше назвать RS триггер с задержкой на включение и
Время задержки лучше вывести из макроса для универсальности .И тогда уж надо делать в макросе еще и задержку на выключение триггера,однако .

вот. посмотрите сименс. идея взята оттуда.

AI!
27.01.2013, 18:32
вот. посмотрите сименс. идея взята оттуда.обычный SR триггер с последующей задержкой на включение.

rovki
27.01.2013, 20:36
вот. посмотрите сименс. идея взята оттуда.
У нас не хуже :p .Но и там это звучит не как таймер с сохранением :rolleyes: .Мы если нужно можем задавать не только задержку на включение ,но и на выключение .;)
Ждем еще от вас макросов аля сименс:)

Amko
27.01.2013, 21:14
Зачем а-ля сименс? Можно открыть oscat-бибилиотеку, и начать пилить расширенные таймеры для OL. Тот же TONOF, TMAX, TMIN, TP-1, TP-X и т.д. Т.е. запилить их в онлайн-базу, что подключать к проектам в любой момент. Штука то хорошая)

rovki
27.01.2013, 21:23
Вот и подайте пример;) :)

Amko
27.01.2013, 21:27
Я не умею заливать в онлайн-базу и вообще не уверен, что это могут делать кто-либо, кроме администраторов.

rovki
27.01.2013, 21:43
Я не про он лайн ,я про форум ,куда можно выложить макрос ,а уж потом админы поместят в базу

Amko
28.01.2013, 20:25
Макросы - аналоги таймерам из библиотеки Oscat

TMAX
TMIN
TOF_1
TONOF
TP_1
TP_1D


P.S. Версия OL 1.6 43 beta
P.P.S. Были косяки, исправил, убрал пароли.

rovki
28.01.2013, 21:20
Макросы - аналоги таймерам из библиотеки Oscat

TMAX
TMIN
TOF_1
TONOF
TP_1
TP_1D


С таймером TP_X пока не получилось, не знаю, как ET выход на нем делать. :(
P.S. Я хз как у вас тут принято, потому все запаролил :)
Если принято не паролить, ок, открою)
P.P.S. Версия OL 1.6 43 beta
3xP.S. Будут косяки, буду исправлять :)
А что на выходе ЕТ ,если текущее время ,то такой уже был таймер .А так ,спасибо ,может кому пригодятся ,тем кто привык работать с этой библиотекой

Amko
29.01.2013, 20:00
Я вот искал, да не нашел этот макрос. Если можно, прошу хотя бы подсказать, как это реализовать :). Носом на страницу обсуждения тыкнуть)

Василий Кашуба
29.01.2013, 20:22
Я вот искал, да не нашел этот макрос. Если можно, прошу хотя бы подсказать, как это реализовать :). Носом на страницу обсуждения тыкнуть)

Ловите http://www.owen.ru/forum/showpost.php?p=87127&postcount=2011

rovki
29.01.2013, 20:23
Ловите http://www.owen.ru/forum/showpost.php?p=82107&postcount=1648

Amko
29.01.2013, 20:37
О сколько :)
Благодарю. Изучу.

От себя же выкладываю два макроса, аналоги ФБ TOGGLE и INTERLOCK из Oscat библиотеки.
Обоими активно пользуюсь в CodeSys.

rovki
29.01.2013, 20:44
Вот что значит называть одно и то же разными словами TOGGLE это же обычный Т-триггер (счетный) ,как принято говорить у электронщиков ,макрос которого был то же давно ,но это и не страшно ,пусть будет да же одно и то же с разными названиями ,кому что привычней .

Amko
29.01.2013, 20:48
Не электронщик я. Да.
Каюсь, не стал искать аналог в той здоровой теме на >300 страниц. Тут просмотрел, нету, выложил. Если автор Т-триггера сюда выложит свой макрос, тоггл удалю :)

rovki
29.01.2013, 20:52
Я ж говорю ,повторение- мать учению .Выкладывайте все

AI!
29.01.2013, 20:59
а зачем паролить макросы?

PS лично я не буду использовать то, не зная что внутри.

rovki
29.01.2013, 21:17
Интересно ,а что внутри FTRIG :D ,Вам то зачем чужие макросы ,вы сами нарисуете любой ;) :) .Хотя ,согласен ,осадок какой то есть ,но цели могут быть разные и автор имеет право действовать по своему усмотрению .:rolleyes: не смотря на любознательность вторых лиц :cool:

AI!
29.01.2013, 21:29
Интересно ,а что внутри FTRIG :DFTRIG оч. хорошо документирован.
а "этого кота я первый раз вижу" (с) м/ф Простоквашино

rovki
29.01.2013, 21:39
FTRIG оч. хорошо документирован.
а "этого кота я первый раз вижу" (с) м/ф Простоквашино
TOGGLE не хуже документирован :D ,правда в другом месте .Согласен,что новые макросы должны быть хотя бы с кратким описанием идти :rolleyes:

mr_Frodo
05.02.2013, 23:53
Всех приветствую!
Вот от меня зачаток.
Идея макроса не моя. Пытался воссоздать псевдосенсорное введение уставок 4-мя клавишами. "вверх", "вниз", "сброс" и "подтв"(ввод). Что смог реализовать:
однократная "1" на входах 1 или 2 соответственно увеличивают или уменьшает однократно задание на 1;
удержание "1" на этих входах начинает отсчёт уставки с плавным нарастанием скорости вверх или вниз;
предварительная величина уставки на выходе 1;
подтверждённая - на выходе 2;
"1" на 3 входе - сброс предварительной величины уставки;
"1" на 4 входе- ввод и запоминание уставки на выход 2;

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

AI!
06.02.2013, 00:24
а зачем вещественная арифметика?
сразу разделить 1000 на выход из CTN2 нельзя?
------------------
и ещё...

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

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

а шоб с ней сделать интересное превращение:
N=(10^(n div 10))*(n mod 10)
где n - наша "дельта", с обычным нарастанием "+1"
а N - это итоговая дельта, которую хочет получить нетерпеливый пользователь (с переменным нарастанием)

AI!
06.02.2013, 10:48
возведение произвольного целого числа в произвольную целую степень
(показатель степени может быть от 0 до 15)

mr_Frodo
06.02.2013, 22:28
Большое спасибо за замечания и намёки на верный путь. К сожалению к программированию только ещё подступаюсь, потому не знаю все законы машинной логики достоверно.
"а зачем вещественная арифметика?
сразу разделить 1000 на выход из CTN2 нельзя?"
По отношению к данной лишней операции могу в своё оправдание заметить, что даже и не предполагал, что машина результат деления к примеру 1 на 3 выводит без дробной части, а потому предварительно подготовил ей более "подходящий" для такого случая вариант в виде плывуна с запятой ;-)
Из этой же оперы и умножение на 1000, т.к. с истинного пути сбило то, что указание уставки в свойствах ФБ генератора происходит в секундах, а при создании блока записи в ФБ генератора надо значение подготавливать в мс.
Долго вертел ввод значения в ФБ и так и эдак, т.к. значения после деления 1 на число ну никак не хотело вводиться , пока не прочёл в мануале по OL неприметную строчку об этом и не нашёл более подходящего выхода, как приумножить переменную на 1000 :D

"...как обычно считают "механизмы"?
при нажатии они отсчитывают +1 (-1), ждут немного, а дальше с постоянной скоростью делают "нарастание"..."
Ну в принципе у меня так и реализовано это( во всяком случае визуально результат похожий), только не совсем правильно...
И ещё сегодня заметил небольшой нюанс в пошаговом режиме симуляции. Заметил, что при достижении одной из уставок генератора значения 50 мс и ниже, вторая начинает :eek: УВЕЛИЧИВАТЬСЯ!!! Похоже в этом виновато ограничение времени цикла 100мс, меньше которого генератор результат суммы уставок включенного и выключенного состояния не может установить и поэтому когда запись в ФБ генератора заставляет его сделать уставку 49 мс, то вторая автоматически становится 51 мс. Затем ролями они меняются. Таким образом скорость роста результирующей уставки макроса после этого не увеличивается. Ведь генератор-то всё-равно тактирует счётчик с периодом в 100мс. А посему алгоритм "перескока" увеличения с единиц на старший разряд и далее как нельзя кстати.

А вот с дельтой ещё придётся "разобраться" :confused:
Ещё раз спасибо!

AI!
06.02.2013, 23:10
1) при создании нового проекта выберите ПР110, а не ПР114, тогда возможности пользоваться вещественной арифметикой не будет.
2) про паузу, "дельту" и т.д. - это мои наблюдения, возможно не совсем правильные
3) про 100мс - в режиме симулятора выберите "время цикла", которое считаете нужным
его так же можно ввести вручную - хоть 1мс
так же есть "период", это сколько реального времени будет длиться виртуальное время симулятора
(внизу есть счётчик времени ПР)

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

AI!
06.02.2013, 23:13
пока не прочёл в мануале по OLпочаще делайте RTFM - это поможет разобраться в тонкостях ПР быстрее.

AI!
08.02.2013, 12:43
Предлагаю Универсальный 32 разрядный счетчикугадайте, сколько будет, если к 65535
прибавить 1? - снова 65535! забавно :)

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

PPS я бы и детект фронта на входах +/- убрал из макроса, т.к. зачастую сигнал к счётчику уже приходит импульсный,
но думаю что старожилы будут против, и оставил их.

AI!
08.02.2013, 12:48
По отношению к данной лишней операции могу в своё оправдание заметитьпрошу прощение за немного "наездной" тон - право не хотел, само получилось.

Василий Кашуба
11.02.2013, 21:19
Предлагаю модернизированный макрос компаратора реальных чисел, в котором, можно задать условия работы компаратора, включая управляющие входы в любой комбинации.

rovki
11.02.2013, 21:27
Предлагаю модернизированный макрос компаратора реальных чисел, в котором, можно задать условия работы компаратора, включая управляющие входы в любой комбинации.
Хорошо бы исключить внутри макроса ситуацию когда одновременно <> -на выходе поставить "0" :rolleyes:

Василий Кашуба
11.02.2013, 21:47
Хорошо бы исключить внутри макроса ситуацию когда одновременно <> -на выходе поставить "0" :rolleyes:

С этого места, пожалуйста, по подробней, для чего "0".

AI!
11.02.2013, 22:31
Хорошо бы исключить внутри макроса ситуацию когда одновременно <> -на выходе поставить "0" :rolleyes:сразу видно не программер ;)
этим знаком во многих языках программирования называется "не равно"

если следовать этой логике, то макрос работает верно

rovki
11.02.2013, 23:15
сразу видно не программер ;)
этим знаком во многих языках программирования называется "не равно"

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

AI!
11.02.2013, 23:21
конечно не программер и думал что это запрешенная комбинация .А если по трем входам все единицы ,то это как называется :confused:это называется Полная группа событий (http://ru.wikipedia.org/wiki/%CF%EE%EB%ED%E0%FF_%E3%F0%F3%EF%EF%E0_%F1%EE%E1%FB %F2%E8%E9) (см. "пример" по ссылке)

PS в языках программирования часто используются следующие обозначения:
">=" - "больше или равно", или "не меньше"
"<=" - "меньше или равно", или "не больше"
"<>" - "меньше или больше", или "не равно"

rovki
11.02.2013, 23:31
это называется Полная группа событий (http://ru.wikipedia.org/wiki/%CF%EE%EB%ED%E0%FF_%E3%F0%F3%EF%EF%E0_%F1%EE%E1%FB %F2%E8%E9) (см. "пример" по ссылке)
ТО ды ой .:) А карты карно программеры изучают?

AI!
11.02.2013, 23:41
возможно. просто я самоучка.
хотя ща на заочке учусь, но там всё оч. сжато, и ВУЗ не такой "сильный", что бы много таких тонкостей дать.

rovki
11.02.2013, 23:50
Тогда может это когда нибудь пригодится http://www.keldysh.ru/comma/html/data/da5.htm
http://ega-math.narod.ru/Nquant/Fractals.htm

AI!
11.02.2013, 23:58
почитал про карты карно в википедии, и понял: наверно поэтому мои схемы проще получаются, что я про них ни знаю!? :D

PS про фракталы, мандельброта и множество жулиа я лет 20 уже знаю (ну или 19, если быть более точным)
ещё в далёком 96ом, на ассемблере, делал 3х мерную, подвижную, визуализацию множества жулиа
(менял константу в каждом следующем кадре)

PPS до фрактального ландшафта руки не дошли, хотя мысли были...
думал 3D туман таким образом можно сделать, где высота "горы" - это непрозрачность тумана
соответственно гора - это 2х мерный массив высот, а туман - 3х мерный массив плотности тумана

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

rovki
12.02.2013, 00:08
Эти карты для булевой логике ,а вы любитель целочисленных функций .

AI!
16.02.2013, 17:54
иногда надо по очереди включать несколько приборов, причём время работы каждого индивидуально

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

предлагаю соответствующий макрос, и пример его использования
если кол-во приборов не кратно 7, то зацикливать надо (n+1) выход во вход Nx первого макроса

PS зацикливать желательно с помощью "явной обратной связи"

Amko
16.02.2013, 18:08
причём время работы каждого индивидуально
А как тут настраивается время работы каждого прибора?

AI!
16.02.2013, 18:23
так же как и у обычного блин-ка

Amko
16.02.2013, 18:32
Хорошо. Вижу в макросе вход I, а входов настройки времени работы каждого выхода не вижу. Так где же?)
Пока же выхода Q1-Q7 включаются на 1-7с. Да?
P.S. Спасибо, разобрался.

AI!
16.02.2013, 18:34
тут (http://www.owen.ru/forum/showpost.php?p=56416&postcount=93) и тут (http://www.owen.ru/forum/showpost.php?p=56403&postcount=89) есть наглядные примеры

Amko
16.02.2013, 18:52
А можно тогда еще сразу макрос поочередного включения выходов с возможностью пропуска конкретного выхода?
Время между включениями - одно и тоже, как параметр. Удобно для последовательного включения двигателей :) Наверное, в той мего-теме где то и проскакивал такой, для удобства хотелось бы продублировать в этой теме, чтоб не искать часами.

AI!
16.02.2013, 18:59
т.е. то же самое, только время одинаковое?
мах 8 достаточно?
а с пропуском - это как?

Amko
16.02.2013, 19:01
Нет, выход остается включенным (по очереди включать Q1-Q8). Т.е. цикл запуска проводится один раз до тех пор, пока есть разрешительный сигнал на входе I. 8 достаточно.
Желательно добавить выход завершения цикла запуска, чтобы можно было каскадом прикручивать макросы друг за другом.
Пропуск - это если нам не требуется включать выход 5 (сломан двигатель, скажем) и запуск производить в порядке 1-2-3-4-6-7-8.

AI!
16.02.2013, 19:56
вот. максимум 32.

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

Amko
16.02.2013, 20:09
Немного не так. Выход требуется включить и оставить включенным.
Выключение всех выходов по лог.0 на входе I.

AI!
16.02.2013, 20:48
не понял - переключать надо?

rovki
16.02.2013, 20:54
Похоже он говорит не о блинке,а о ТON ,о задержках включения последовательных ,а выключение одновременное

AI!
16.02.2013, 21:24
что-то ничего красивого кроме каскада TONов в голову не лезет.

Amko
17.02.2013, 08:11
Тогда мой вариант.
Макрос на 7 выходов последовательного запуска (Q1-Q7).
Каждый выход можно разрешить/запретить в любое время (входа I1-I7).
Сигналом включения цикла запуска является лог.1 на входе S. Лог.0 выключает все выхода.
Выход D - сигнал завершения цикла запуска. Его можно прикручивать на вход следующему такому же макросу, каскад делать.
Пауза между включениями - параметр макроса.

rovki
17.02.2013, 09:33
Для таких целей есть D -триггера

AI!
17.02.2013, 11:32
Для таких целей есть D -триггераприкольная схема, я про них всё время забываю.

PS у вас через раз обратная связь, это так и надо?

rovki
17.02.2013, 12:33
не ,наверное забыл ,нужны все явные ОС.Это обычный регистр сдвига ,когда его паяют из железа (ИС) ,то так и делают .

rovki
17.02.2013, 13:45
Недостаток вышеприведенных схем ,в том,что если выхода нет в списке (0 на входе) ,выключен то есть ,то время всеравно отрабатывается .Тоесть если задать последовательность включения 1,3,5,7 с задержкой 1сек ,то они будут включаться с задержкой 2 сек .
Вот макрос ,где для этих целей используются последовательное включение TON ов ,причем если выход отключен ,то он не вносит задержки .Кроме того ,можно устанавливать разные задержки по разным каналам.

Amko
17.02.2013, 14:32
Баг, I3 выключает 2 выхода, I6 ни одного. Поправьте, пжлста.

rovki
17.02.2013, 14:49
Рабочее поле сделали таким большим ,что масштаб приходится делать 40% ,не мудрено не туда завести .Главное вы поняли идею .
макрос поправлю.Привет СИБИРИ !

rovki
17.02.2013, 15:30
А если нужно 8TON ,то вот макросы ,в том числе один универсальный

AI!
17.02.2013, 20:31
мой вариант 7тон, с выходом для каскадирования.

PS на D-триггерах сделаю позже (самому интересно сравнить)

UPD блин в названии макроса ошибся :eek:
значит, следующий будет с правильным названием ;)

rovki
17.02.2013, 20:54
Тем более у вас есть свои Д триггеры на ХОR.
Довольно много элементов и нет возможности ,задавать свою задержку каждому каналу.Но что хорошо ,так это нет задержки ,если канал выключен
Да и обьем памяти под макрос побольше чем у варианта на TON/

AI!
17.02.2013, 21:02
нет возможности ,задавать свою задержку каждому каналу.изначально задача звучала так
А можно тогда еще сразу макрос поочередного включения выходов с возможностью пропуска конкретного выхода?
Время между включениями - одно и тоже, как параметр. Удобно для последовательного включения двигателейPS в компьютерах иногда применяется такая же схема,
в серверах, когда много жестких дисков они включаются последовательно с секундной задержкой, что бы уменьшить суммарные пусковые токи.

и задавать там индивидуальную задержку нет смысла.

rovki
17.02.2013, 21:15
Я лишь исходил из обшего принципа универсальности ,а не конкретного ТЗ, Тз для меня лишь толчок к проектированию,чем больше возможностей (дармовых) ,тем шире область применения .Тема то -универсальные макросы.Но не будем спорить у каждого свой подход.

AI!
18.02.2013, 01:07
у моей схемы есть интересный эффект - если из ремонта вышли одновременно несколько насосов, то они включатся тоже не одновременно.

UPD представляю вниманию 8тон, на входе то что включать НЕ надо.

на D-триггерах этого сделать не получилось.

AI!
18.02.2013, 13:26
А если нужно 8TON ,то вот макросы ,в том числе один универсальныйя думаю, что если уж переводить всё в целочисленную битовую маску, то в ней и надо всё считать

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

rovki
18.02.2013, 18:54
Хорошо бы пример использования данного макроса ,хотя бы на 8 выходов\входов

AI!
18.02.2013, 21:30
по просьбам телезрителей "пример", собственной персоны.

на входе сигналы ошибок от 8 двигателей, и кнопки вкл/выкл
на выходе сигналы включения 8ми двигателей.

попутно там есть ещё 2 макроса - DBI и BDI

AI!
13.03.2013, 18:10
скушно...
в качестве развлечения сделал свою версию следующего макроса
Макрос экстремума вещественного числа
Запоминает минимальное и максимальное значение вещественного числадобавил сигнал "Reset" - текущее значение на вещественном входе принимается за максимум и минимум

UPD: поменял название в соответствии с функционалом

rovki
13.03.2013, 23:08
Вообще желательно краткое описание для пользователей или хотя бы отличия в работе от аналога .:rolleyes:
В моем макросе ищутся экстремумы функции (числовой) и именно они выдается на выход макроса ,а не максимальное \минимальное число.
Что бы не было скучно нужно ГЕНЕРИТЬ ИДЕИ (примеры) ,хотя и модернизация не возбраняется;) :)

AI!
14.03.2013, 05:13
Вообще желательно краткое описание для пользователей или хотя бы отличия в работе от аналога .:rolleyes:
В моем макросе ищутся экстремумы функции (числовой) и именно они выдается на выход макроса ,а не максимальное \минимальное число.именно из-за отсутствия описания вашего макроса, и из тестов в эмуляторе я сделал то что понял.
ваш макрос на выходе давал значения которые я ему давал, только с задержкой.

PS в моём случае функция дискретная, задаётся входом и экстремумы - это min/max

rovki
14.03.2013, 07:56
Это не задержка ,а ожидание момента смены знака приращения(определение экстремума) .Потому и нет описания ,что экстремум понятие определенное и само название есть суть работы.В моем случае функция так же дискретная ,заданная числовой последовательностью .Поиск экстремума в моем макросе -это определение смены знака приращения и выдача значения на выход в этой точке до следующего экстремума .Если функция не имеет экстремумов (монотонно возрастает/убывает) ,то и на выходе макроса будут нули.А для поиска максимума и минимума у меня был другой макрос .

AI!
14.03.2013, 10:37
В моем случае функция так же дискретная ,заданная числовой последовательностью. Поиск экстремума в моем макросе -это определение смены знака приращения и выдача значения на выход в этой точке до следующего экстремума.сделал и этот вариант

rovki
14.03.2013, 15:43
Вот это уже аналог ,причем лучше подлинника:D ;)

AI!
14.03.2013, 23:26
поиск экстремума, с гистерезисом.

сравнивается текущее значение с локальным max/min.
если отклонение (строго) больше заданного значения гистерезиса, то считается, что направление сменилось.

PS гистерезис задаётся в св-вах макроса, прямо в проекте, так же как это делается в TON или BLINK
(обычно это справа, в доп. окошке, тут (http://www.owen.ru/forum/showpost.php?p=56416&postcount=93) и тут (http://www.owen.ru/forum/showpost.php?p=56403&postcount=89) есть наглядные примеры)

Василий Кашуба
21.03.2013, 14:14
благодаря возможности делать макрос в макросе,
улучшил "юзабилити" последних 2х макросов, сохранив расширяемость (и "сужаемость";) )

у макроса RAMb появилась размерность, по умолчанию 3 = размер одной ячейки 1 байт,
в примере сделал размерность равную 4 = 16ти битное слово или 2 байта
думаю ещё на практике будет интересно размерность равную 2 = одна шестнатиричная цифра :) (4бита или пол байта)

Красиво получилось.:)
Теперь надо думать, как его применить в системе отопления, или вентиляции. :D :)

rovki
24.03.2013, 12:28
Модифицированный макрос EXTRB (EXTBN)
позволяет задавать по входу Nb номер байта (1,2,3,4) для экстракции (чтения битов) в 32разрядном слове.Если номер не задавать (0) ,то все равно будет читаться 1(младший байт) .Варианты принимаются:D ;)

rovki
24.03.2013, 17:12
Если вы привыкли работать с булевой логикой , а количества входов в макросе ,создаваемым вами не хватает (более 8) ,то предлагается использовать два макроса .Первый макрос преобразует биты(8шт) в целочисленный формат (число) ,причем если количество бит больше 8 ,то можно использовать еще такой же макрос ,указав в свойствах номер байта (1,2,3,4) .Затем складываем все байты \числа (целочисленные) и подаем на вход макроса ,в котором не хватает входов .И в этом макросе ставим макрос(Ы) EXTBN ,которые выполняют обратную операцию ,преобразуют десятичное число в битовые сигналы ,для дальнейшего использования внутри создаваемого макроса .Вообщем раньше так и делалось ,отличие лишь в том ,что теперь можно работать с байтами количеством от 1 до 4 (8-32 бит).

AI!
24.03.2013, 19:13
слишком много умножений, в ваших макросах (ИМХО)


Варианты принимаются:D ;)
сами просили...

rovki
24.03.2013, 19:22
Так не вручную ,в столбик умножать то ,так наглядней,можно и СЕЛ использовать .Дайте свой вариант ,тем более ,что по целочисленной арифметике вам нет равных.Главное что бы суть(идея) и внешняя оболочка макроса осталась .

rovki
24.03.2013, 21:11
сами просили...
Симпатишно :) .Умножения заменили на запись битов .Количество констант уменьшилось ,а переменных увеличилось ,но это не важно .Спасибо за вариант.Только следует сказать для пользователей, что нумерация байтов а вашем варианте идет с нуля ,пусть будет так :rolleyes: если проще.

AI!
24.03.2013, 21:15
про переменные, вы правы - этот ресурс ПР мною ещё не очень изучен.

и как вы заметили, он "важнее" стека.

rovki
24.03.2013, 21:24
про переменные, вы правы - этот ресурс ПР мною ещё не очень изучен.

и как вы заметили, он "важнее" стека.
А еще есть у ПР ПЗУ и ОЗУ ,тут то же темный лес.;)Хотя связь переменными и озу очевидна.Так что ,не все ,что просто (красиво) нарисовано -оптимально,к сожалению .

perunov
25.03.2013, 13:39
Уважаемые, добрый день. Помогите сделать макрос с попеременным включением 2х реле. После прохождения некого цикла, нужно чтобы происходило переключение между двумя насосами.

AI!
25.03.2013, 16:01
Уважаемые, добрый день. Помогите сделать макрос с попеременным включением 2х реле. После прохождения некого цикла, нужно чтобы происходило переключение между двумя насосами.а подробнее?

обычно подобное делают с помощью BLINK

rovki
25.03.2013, 16:38
Уважаемые, добрый день. Помогите сделать макрос с попеременным включением 2х реле. После прохождения некого цикла, нужно чтобы происходило переключение между двумя насосами.
Таких проектом (макросов) было куча ,надо только поискать ,может этот пойдет http://www.owen.ru/forum/showpost.php?p=91477&postcount=2112

melky
25.03.2013, 17:25
rovki, тоже сейчас заморочен схемой ротации оборудования, но в моем случае работать должно 2+1 или 3+1. Но для интереса посмотрел ваш вариант и наткнулся на такой момент. Кроме того, что макрос запаролен и нет возможности посмотреть в действии истинную работу макроса как говорится, не мое, не трогай :).

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

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

rovki
25.03.2013, 17:47
rovki, тоже сейчас заморочен схемой ротации оборудования, но в моем случае работать должно 2+1 или 3+1. Но для интереса посмотрел ваш вариант и наткнулся на такой момент. Кроме того, что макрос запаролен и нет возможности посмотреть в действии истинную работу макроса как говорится, не мое, не трогай :).

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

http://www.owen.ru/forum/attachment.php?attachmentid=8368&stc=1&d=1364217903
Там ,внутри черт голову сломит :eek: -смотрите осторожней ;) 190158 .
Первый вход -это сигнал с датчика давления на включение насоса (очередного) .В данном макросе ротация идет не по часам ,а по времени наработки насосов .Если долго работал один насос ,то в следующий раз ротация будет среди 2 насосов ,пока не догонят ресурс первого насоса .Есть куча примеров ,где ротация по времени (часам) наберите в поиске "ротация насосов).

AI!
25.03.2013, 18:46
rovki, тоже сейчас заморочен схемой ротации оборудования, но в моем случае работать должно 2+1 или 3+1.посмотрите, что-ль и мой вариант (http://www.owen.ru/forum/showpost.php?p=97247&postcount=2825)

rovki
25.03.2013, 22:35
Универсальный счетчик с автосбросом и предустановкой .Счетчик считает импульсы по входам +,- (суммирует ,вычитает) .есть вход задания уставки Ur (предустановки) при сбросе по входу R и вход задания количества импульсов для автосброса N .Выход Qc- показывает текущее число насчитанное .Выход Qb - выдача короткого импульса при автосбросе .
Если задано число "0" на входе N ,то автосброса нет.Возможен еще один режим работы -Если задать уставку по входу Ur меньше ,чем по входу N ,то счетчик будет считать импульсы только в этом диапазоне .;) :rolleyes: Для проверки всех режимов нужно поменять константы (самостоятельно)
Данный счетчик заменяет два счетчика CT и СTN.в МАКРОСЕ не используются ФБ.Счетчик 32 разрядный .

melky
25.03.2013, 22:37
rovki понятно, а то я думал, с чего такое странное поведение...
AI! смущает "- если при подаче сигнала "Next" работающие насосы имеют минимальный моторесурс, из разрешенных, то ничего не происходит.
(зачем менять относительно новый насос на более изношенный?)"
у меня не насосы, а кондиционеры, всего 3 или всего 4. В общем многолетнем цикле моторесурс будет примерно одинаков, за искючением времени обслуживания. Но опять же, в общем цикле выровняется, так как обслуживаться будут все - смена фильтров, плановые какие-то работы и т.д. поэтому NEXT такой в принципе не нужен.
И тоже пока не совсем понял принцип.
на вход ОК установил 3 - 00000111 - то есть первые 3 насоса из 8-ми в работе
на N - установил 2, правильно понимаю, что в два насоса будет в работе ?
На выходе всегда 3 - как ее трактовать в данном случае ?


Блин, лоханулся как всегда, 3 это 00000011 - два насоса, соответственно и на выходе 3=00000011 :)

melky
25.03.2013, 22:48
rovki, интересный счетчик, а можно его подправить в плане работы при обратном счете. Если не будет использоваться сброса по R, то счетчик при запуске питания ПР пойдет в длительный процесс подсчета через 0.

rovki
25.03.2013, 23:46
Ни куда он не пойдет ,при нулях на уставках ,он работает как обычный универсальный счетчик .Только забыл сказать ,что данный макрос 32 разрядный

melky
26.03.2013, 01:09
rovki я о том, что после отключения питания и до команды сброса, счетчик пойдет считать при обратном вариантк через ноль в 32-х битном варианте но не в диапазоне уставок.
Команды сброса может и не быть, а уставки должны работать.
http://www.owen.ru/forum/attachment.php?attachmentid=8372&stc=1&d=1364245719

rovki
26.03.2013, 11:13
А я вам еще раз говорю ,что уставки записываются только при сбросе ,как и в счетчике CTN.Если вам нужны уставки ,то организуйте сброс при включении питания по входу R.Такое можно было бы организовать ,если бы счетчик был только инкрементальный ,но он еще и декрементальный .

melky
26.03.2013, 11:54
rovki, спасибо, предусмотрю кратковременный сброс при включении.
главное про это не забыть :)

rovki
26.03.2013, 12:08
не забудете .Все как в стандартном CTN:) ;)

ALFIX
29.04.2013, 16:46
Ребята, заскочил на пару минут. Получилось ли сделать макрос счетчика наработки?

melky
04.05.2013, 10:11
ALFIX слепил без счетчиков. Получилось что-то универсальное, считать можно не только время но и просто импульсы. Работает по фронту сигнала. На Cu подаются импульсы счета, на En разрешение считать, на P1, P2, P3, P4 задается количество счета, Pr битовая маска сброса счетчиков, R сброс по фронту (можно поправить чтобы при 1 был сброшен)
Q1, Q2, Q3, Q4 соответственно сам счет, S импульс после последнего равенства, можно подключать стеком такой же макрос, подав выход S на вход Cu.

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

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

rovki
04.05.2013, 13:13
Вот только счетчик наработки нет смысла делать на Пр110 ,нужно на ПР114 ,там есть энерго независимая память.

melky
04.05.2013, 16:13
rovki ну в общем да, расчет именно на энергонезависимую память.
Просто проект открыл первый попавшийся, для переноса макроса было не принципиально. Изначально делал вообще в CodeSys. На ПР даже как-то не планировал использовать.

rovki
04.05.2013, 16:55
Если этот макрос перенести один в один в ПР114 от этого он не станет энергонезависимым .Нужно вводить соответствующие переменные -изменить макрос .В этой теме как правило доведенные до конца макросы .

melky
04.05.2013, 21:23
Странно, вроде кто-то говорил, что весь FB можно указать как энергонезависимый... по крайней мере в CodeSys это возможно. Здесь Овен чего-то недоработал....

rovki
04.05.2013, 21:32
так может у вас в голове перемешался кодесис с овен лоджиком(стал кодесОЛ) ?Такого тут ни кто не говорил(на счет энергонезависимого макроса ,а не ФБ).ФБ CTN можно сделать энергонезависимым в ПР114.

melky
05.05.2013, 00:39
rovki а чем CTN отличается от собственного макроса ? разве нельзя функционал сохранения в энергонезависимой памяти сделать для всего, что требуется сохранять ?
з.ы. вот чисто логически, не понимаю такого глупого различия.
Не перемешалось, просто ПР114 в глаза не видел ни разу, и судя по его цене, надеюсь никогда не увижу, потому что некоторые ПЛК стоят ненамного дороже, либо использовать аналоги других производителей с большим быстродействием по входам, нежели устройства ОВЕН. Все эти сказки про убийц Лого или ЗелиоЛоджик всего лишь маркетинг от ОВЕН, к сожалению...
ПР114 способен обрабатывать входы с частотой 10 кГц ?

Изменил макрос, сделал переменные на выходе сохраняемыми, входы кроме битовой маски перенес в свойства макроса. Убрал ресет по фронту, если необходим, ставим снаружи.

rovki
05.05.2013, 09:39
rovki
Изменил макрос, сделал переменные на выходе сохраняемыми, входы кроме битовой маски перенес в свойства макроса. Убрал ресет по фронту, если необходим, ставим снаружи.
Переменные то сохранили ,а кто сказал что в вашем варианте "счетчик" пойдет считать дальше от сохраненного значения ,а не с нуля при выключении\включении питания ???:cool: .Вы ж не позаботились об этом и не установили схему (кроме переменной) в нужное состояние:rolleyes:
ПР114 стоит на 700руб больше ,чем аналогичный ПР110 (12\8) -это за то что быстродействие в 3 раза больше ,вещественную арифметику ,универсальные входа (4)и за энергонезависимую память(переменные) .Здесь ни кто ни кого не заставляет ,а лишь предлагает .

melky
05.05.2013, 10:34
rovki а почему он должен считать с нуля ? переменные на операции сложения стоят, взял с переменной и прибавил очередную еденицу.

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

А как схему устанавливать в нужное состояние ?

rovki
05.05.2013, 11:07
у вас переменная энергонезависимая (входная) стоит только на выходе ПР ,вот с нее и надо делать вывод(связь) на суммирование ,а не со входа выходной переменной .Для понимания этого вообще ПР не нужен.Сам он не чего не берет и не дает ,как организуете связь ,так и будет .

melky
05.05.2013, 12:43
rovki ага, понял, поправил макрос по части связей с переменными

rovki
05.05.2013, 13:01
Мелкий ,а зачем организовывать 4 "счетчика" со сбросами и 4 переменными ,можно и один (секунд) ,а потом из секунд вычислить минуты ,часы... и вывести значения на выхода соответствующие .Вывод -сначала нужно свои варианты выкладывать в областях применения ,там обкатать ,а уж потом сюда ,там школа ,а тут библиотека (хранилище).

melky
05.05.2013, 13:10
rovki потому что у данного счетчика есть универсальность, считать можно не только секунды, минуты, часы, но и всякие разные импульсы, независящие от времени, лишь бы прибор успевал эти импульсы обрабатывать.
отсюда и не делал расчет минут, часов, дней из расчета секунд.

Например можно считать бутылки на конвейере включая упаковки по 6 шт и контейнеры по надцать упаковок. :)

rovki
05.05.2013, 13:21
Ну это другое дело .Тогда нужно было как то название подправить ,а то значится как наработки .тогда может добавить вход (модуль счета),то есть счетчик один ,а формула пересчета разная ,в зависимости от модуля,как вариант.А сама идея интересная .Если не ошибаюсь ,по моему делал счетчик по модулю уже.Тогда, если их поставить N штук ,получим N разрядов .

Gegerd
16.07.2013, 11:25
Вот интересно, а нет ли макроса Pid регулятора для ПР114?
Ну или хотя бы P-регулирования температуры...

Василий Кашуба
16.07.2013, 19:04
Вот интересно, а нет ли макроса Pid регулятора для ПР114?
Ну или хотя бы P-регулирования температуры...
Есть, но только в разделе "Области применения ПР114". http://www.owen.ru/forum/showthread.php?t=12687&p=97698&viewfull=1#post97698

Йожик
17.11.2013, 19:43
Даже описывать как-то неприлично = обычный, классический Т-триггер.

rovki
17.11.2013, 23:00
Если на элементах делать ,то тогда уж так:rolleyes:(автор AI!)

Йожик
17.11.2013, 23:41
Да. Так проще. Все таки странно, шо не было макроса - Т-Триггер.
Не по-людски это как-то....

rovki
18.11.2013, 07:40
Был много раз ,но сейчас я так и не научился искать по форуму ,после смены движка .При поиске дает только темы ,а как найти сообщения -времени и сообразилки не хватает .

Владимир Евдокимов
18.11.2013, 08:19
Был много раз ,но сейчас я так и не научился искать по форуму ,после смены движка .При поиске дает только темы ,а как найти сообщения -времени и сообразилки не хватает .

Да, найти невозможно, а плодить темы (когда точно знаешь, что будет повтор)...???

Поковырявшись в настройках поиска нашел,что надо отметить Показывать результат в виде: сообщений и все ОК

AVF
19.11.2013, 08:49
Да. Так проще. Все таки странно, шо не было макроса - Т-Триггер.
Не по-людски это как-то....

--- а сделать из D-триггера заворотом инверсного выхода на вход вероисповедание запрещает?

rovki
19.11.2013, 16:53
Экономит ,наверное ,ФБ:D

AVF
19.11.2013, 17:00
Ну, если уж для какого-то заморочного алгоритма :)

rovki
19.11.2013, 18:15
Вдогонку ,R F триггеры на элементах

melky
19.11.2013, 18:56
Хм, интересно, а в CodeSys есть принцип обратной связи как в OwenLogic ?

rovki
19.11.2013, 19:11
Хм, интересно, а в CodeSys есть принцип обратной связи как в OwenLogic ?
там все есть :D ,но мне туда не надо.....

Василий Кашуба
19.11.2013, 21:44
Вдогонку ,R F триггеры на элементах
А можно и так 10777

melky
20.11.2013, 10:04
rovki, честно вчера пытался найти, но не нашел. Просто интересуюсь в плане переноса макросов под CodeSys, иногда полезно вместо изобретения велосипеда использовать ваши с AI творения :)

rovki
20.11.2013, 17:20
rovki, честно вчера пытался найти, но не нашел. Просто интересуюсь в плане переноса макросов под CodeSys, иногда полезно вместо изобретения велосипеда использовать ваши с AI творения :)
Тогда задайте вопрос в теме про КОДЕСИС (про обратные связи ,а точнее о задании последовательности выполнения операций ).

melky
20.11.2013, 17:47
rovki уже реализовал R и F тригеры на CodeSys, но там это делается соединением выхода с входом. А в OwenLogic это некий механизм, который не выполняет явного понимания, как это сделано.
То есть если я выход НЕ подам на вход И как у вас под лождик на картинке, то работать ничего не будет.
Вот как это выглядит в CodeSys - http://www.owen.ru/forum/showthread.php?t=10555&p=123892&viewfull=1#post123892

rovki
20.11.2013, 19:21
Думаю что правильней было бы назвать это связью ,которая выполняется в следующем цикле ,то есть сигнал на этой связи задерживается на 1 цикл .

melky
20.11.2013, 21:01
rovki, вот теперь понятнее.

AlNik
18.12.2013, 05:28
Здравствуйте! С расширением .owl понятно, а с поиском .tpl - "нет совпадений...." ? чем открывать? Спасибо откликнувшимся.

rovki
18.12.2013, 07:22
Открывать овен лоджиком. Импортируйте макрос в библиотеку овен лоджика ,потом вставляйте в проект и смотрите (редактируйте) ...

AVF
18.12.2013, 08:18
Новый пустой проект создайте и туда вставляйте - если не понятно.

Алексей Геннадьевич
04.01.2014, 14:40
Экономит ,наверное ,ФБ:D
Для ПР114 это особенно актуально, с его 16384 функциональных блоков... может и не хватить :D

Василий Кашуба
09.04.2014, 16:06
Предлагаю новые макросы Указатель номера активного входа и Генератор пачек импульсов​.

AVF
10.04.2014, 08:53
У генератора пачек есть один недостаток - требуется сброс на ноль для индикации следующего пакета.
То есть при смене входа, к примеру, с 4 на 5 генерация не запускается.
Плюс - он асинхронный. Это приводит к тому, что при изменении длительности тактов нарушается работа макроса.

Пример: Синхронный число-импульсный генератор. Использованы идеи от Василий Кашуба и Евгений Сергеевич.

Введены: Вход для синхронного запуска, Выход строба окончания генерации пакета.
Генерация начинается асинхронно после смены числа на входе.

Василий Кашуба
10.04.2014, 20:45
У генератора пачек есть один недостаток - требуется сброс на ноль для индикации следующего пакета.
То есть при смене входа, к примеру, с 4 на 5 генерация не запускается.
Плюс - он асинхронный. Это приводит к тому, что при изменении длительности тактов нарушается работа макроса.

Пример: Синхронный число-импульсный генератор. Использованы идеи от Василий Кашуба и Евгений Сергеевич.

Введены: Вход для синхронного запуска, Выход строба окончания генерации пакета.
Генерация начинается асинхронно после смены числа на входе.
Посмотрите предыдущий пост, я этот макрос ещё вчера исправил.

AVF
11.04.2014, 10:59
Изменил время включённого/выключенного состояния лампы - больше шести импульсов не генерируется.
Не все недостатки устранены-то, да и мой-родимый макрос заработал.
Спасибо-таки за подсказанную идею.

Василий Кашуба
11.04.2014, 11:23
Изменил время включённого/выключенного состояния лампы - больше шести импульсов не генерируется.
Не все недостатки устранены-то, да и мой-родимый макрос заработал.
Спасибо-таки за подсказанную идею.
Если изменили временные параметры в одном макросе, то нужно было и во втором макросе так же изменить, так как они били настроены для совместной работы. Если вы заметили в первом макросе я для чего то умножал номер входа на время генерации одного импульса и приплюсовывал ещё паузу 1 секунду.

AVF
11.04.2014, 13:48
А смысл? Ковыряться то там, то здесь ... вникать в то, что и как связано.
Потом через пару месяцев вообще забыть и по-новому тратить время на колупание?

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

http://www.owen.ru/forum/attachment.php?attachmentid=12564&d=1397114777

Кстати, прикладываю конечный рабочий вариант на обеих платформах.

rovki
11.04.2014, 19:57
недостатки -
1.не учитывается очередность поступления входных сигналов
2.при пропадании входного сигнала ,пропадают сразу же выходные сигналы
то есть был сигнал на входе 8 ,началось мигание и где нибудь на 3 мигании входной сигнал уходит ,а мы увидели ,что сработал 3 вход -раз 3 раза моргнул...

AVF
14.04.2014, 08:51
недостатки -
1.не учитывается очередность поступления входных сигналов
--- в принципе это неважно - главное зафиксировать факт появления. Смотрим далее.


2.при пропадании входного сигнала ,пропадают сразу же выходные сигналы
то есть был сигнал на входе 8 ,началось мигание и где нибудь на 3 мигании входной сигнал уходит ,а мы увидели ,что сработал 3 вход -раз 3 раза моргнул...
--- макрос будет использован внутри другого, где будет собран регистр для запоминания всех происходивших неисправностей.
Опрос и индикация, а также сброс будут проводится после ввода кодовой последовательности. Все ошибки будут индицироваться в порядке нумерации сработавших входов.
Он пока не дописан. Проблема возникла при отладке ФБ, которую общими усилиями победили. Работа продолжается.:)

Алексей Геннадьевич
18.04.2014, 13:27
Макрос кнопочного дешифратора.
Позволяет комбинировать нажатия кнопок SB1-SB3, также добавляются кнопки SB4-SB7 для включения различных режимов.
Для разрешения работы имеет вход ЕQ. включается по лог 1. Вход разрешения должен активироваться заблаговременно.
Два макроса добавочных кнопок комбинаций 110 и 111
Макрос двуручного (прессового) включения с защитой от "особо умных" - детектирует перемычку между входами и при наличии её вываливается в аварию.
Макросы рассчитаны на подключение к дискретным входам. Время фильтрации входов желательно до 10мс.

Павел Братковский
24.10.2014, 11:22
макрос для управления модулирующим клапаном зад- задание, ос - обратная связь, сб- сброс управляющего сигнала

14914

AVF
24.10.2014, 16:54
в чём универсальность?
Работает только на 114-ой платформе
что за константы внутри? - откуда появились? - почему именно такие?
Масштаб входных сигналов? ...

Павел Братковский
24.10.2014, 17:32
не нравится не используйте

внутри коменты

rovki
24.10.2014, 20:12
в чём универсальность?
Работает только на 114-ой платформе
что за константы внутри? - откуда появились? - почему именно такие?
Масштаб входных сигналов? ...
Платформа не имеет значения ,главное что для ОЛ.
Павел ,спасибо за макрос ,но Для подобных макросов есть специальная тема-СПЕЦИАЛЬНЫЕ ФУНКЦИОНАЛЬНО ЗАКОНЧЕННЫЕ МАКРОСЫ .

Павел Братковский
24.10.2014, 20:24
СПЕЦИАЛЬНЫЕ ФУНКЦИОНАЛЬНО ЗАКОНЧЕННЫЕ МАКРОСЫ .



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

кому что нужно объяснить, не стесняйтесь, тайны нет , отвечу прям с удовольствием!!!


спасибо за внимание!!!

Павел Братковский
24.10.2014, 20:25
СПЕЦИАЛЬНЫЕ ФУНКЦИОНАЛЬНО ЗАКОНЧЕННЫЕ МАКРОСЫ .

да тема погибла (ИМХО)

rovki
24.10.2014, 22:27
Я ее создавал в надежде на пополнение вами, всеми :rolleyes:

Алексей Геннадьевич
27.10.2014, 09:24
да тема погибла (ИМХО)


Я ее создавал в надежде на пополнение вами, всеми :rolleyes:

Прикрепить надо. И почистить. А то годный макрос уже трудно найти. Особенно для новичка.
Сделать каталог - идеально.

AVF
27.10.2014, 10:47
не нравится не используйте

внутри коменты
--- хамские выпады вместо ответов ... весьма способствуют использованию поделки другими ;)

AVF
27.10.2014, 10:55
годный макрос уже трудно найти. Особенно для новичка.
--- некоторые на своём компьютере-то не могут найти файлы. Поиск по сайту выдаёт весьма посредственные результаты.


Сделать каталог - идеально.
--- Идеально - научиться самому создавать макросы и навести порядок в голове и компьютере :)

Павел Братковский
28.10.2014, 05:32
--- хамские выпады вместо ответов ... весьма способствуют использованию поделки другими

уважаемый, ответы достойны вопросов, вам ли, с вашей то квалификацией, подобные вопросы задавать!!!

Павел Братковский
28.10.2014, 06:31
что за константы внутри? - откуда появились? - почему именно такие?
Масштаб входных сигналов? ...

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

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

при уровне сигнала обратной связи менее 85% скорость реакции клапана будет равна 0,01с + 10мс, при более 85% 0,01с + 50мс, и так далее. при большом уровне сигнала обратной связи все будет то же самое, только наоборот.

константы можно переписать по своему усмотрению.

Лютерный
18.11.2014, 13:49
... выкладываю два макроса, аналоги ФБ TOGGLE и INTERLOCK из Oscat библиотеки.

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

demetriuse
10.12.2014, 10:43
Загоняет целочисленное значение (сетевой переменной или переменной тех. процесса) в заданный диапазон - ограничивает значение по Min, Max исключая некорректные значения для алгоритма.

Timonjan
28.07.2015, 00:21
Всем приятного времени суток!
Попробую и я закинуть свою поделку - авось пригодится кому-нибудь (первый раз на форуме - не судите строго)).
Макрос управления освещением из четырех точек.
Особенность - можно использовать обыкновенные выключатели типа вкл/выкл.

rwg
28.09.2015, 09:39
Предлагаю макрос, считающий количество циклов исполнения программы за заданное время. Кажется, такого пока никто не предлагал. У меня получилось, что ПР200 на холостом ходу выполняет 1000 циклов в секунду. Было бы интересно узнать, как меняется количество циклов с усложнением программы и на других ПР.
https://yadi.sk/d/0Br7emHpjN66r

rovki
28.09.2015, 15:30
Подобное ранее делалось ,только по другому .инвертор с выхода на вход связь -получаем генератор ,период которого равен 2 циклам ПР .С генератора подаем на счетчик модуль 1000 или 10000(с автосбросом) с него на ТР (0,2сек) .выход ТР на выход ПР .
Тогда замерев время между двумя вспышками и поделив на модуль счета ,определяем время цикла ..Впрочем это уже не нужно ,потому как сейчас время выполнения расчитывается в ОЛ.

flicker581
22.11.2015, 13:33
Здравствуйте!

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

Если проблема в отсутствии документации, то лучше иметь мало, чем ничего. Можно в качестве документации, например, давать ссылку на страницу форума (за неимением лучшего). Это ведь несложно, зато резко увеличивает полезность библиотеки.

А ещё онлайн-базе в ОЛ не хватает поиска по имени макроса, чтобы не приходилось просматривать всё содержание.

orbita-skb
22.11.2015, 14:34
Почему бы не добавить в библиотеку онлайн-макросов всё то, что было опубликовано в этой теме? Знаете, очень странно, что там нет даже макроса FSEL, который используется в уйме алгоритмов.

+1.
И вопрос какую версию Adobe Reader необходимо установить чтобы имелась возможность видеть справку по макросу в окне онлайн-макросов?

Мордорец
23.11.2015, 10:30
Здравствуйте!

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

судя по популярности FSEL его можно и нужно уже не в онлайн макросы, а в функции вводить.

Алексей Геннадьевич
26.11.2015, 21:28
судя по популярности FSEL его можно и нужно уже не в онлайн макросы, а в функции вводить.
И в большинстве применений его используют как ячейку памяти.
Собственно, сама ячейка.

Алексей Геннадьевич
09.03.2016, 20:43
Тема на вторую-третью страницу постоянно уплывает...
Модераторы!!! пожалуйста, прикрепите эту тему!

Max83
28.06.2016, 09:53
Добрый день!
Если не сложно, можете дать ссылочку на скачивание, или выложить где-нибудь в облаке.

Евстигнеев Максим
29.06.2016, 16:45
Тема на вторую-третью страницу постоянно уплывает...
Модераторы!!! пожалуйста, прикрепите эту тему!

Сделано...

Евстигнеев Максим
29.06.2016, 16:50
В планах - обновить функционал работы с макросами.
Добавить менеджер макросов для работы, как с локальной базой макросов, так и с онлайн базой.

Также будет поддержана функция "Опубликовать" макрос в онлайн базе (через модерацию ОВЕНа).

Надеюсь, это даст новое развитие сервисов макросов.

Василий Кашуба
30.06.2016, 01:55
В планах - обновить функционал работы с макросами.
Добавить менеджер макросов для работы, как с локальной базой макросов, так и с онлайн базой.

Также будет поддержана функция "Опубликовать" макрос в онлайн базе (через модерацию ОВЕНа).

Надеюсь, это даст новое развитие сервисов макросов.
Поддерживаю такие планы.

Devoter
05.07.2016, 12:25
Решил сделать свой маленький вклад. Посмотрел - тут такие сложные большие макросы, у меня все очень скромно.
Небольшой набор макросов для работы со знаковыми целыми числами. Единственный минус этого набора - макрос sDIV - он не поддерживает работу с числом -2147483648. Да и за оптимальность решения не ручаюсь. В общем, берите - что есть.

Devoter
05.07.2016, 12:48
Делал проект, придумал формат Week Time Clock. Суть проста, формат хранит текущий день недели, час и минуту в виде одного целого числа. Максимальное значение 10079 - Вс. 23:59. Собственно, набор макросов как раз позволяет преобразовывать из одного этого числа в три отдельных, где 0 - понедельник, 1 - вторник и т.п.. Дата зациклена, то есть, после последней минуты воскресенья наступает Пн. 00:00. Для обеспечения всех этих условностей в комплекте идут макросы типа wtcADD и wtcSUB. Также мне было нужно иметь возможность оставить дату неуказанной, для этого я использую число 10080, так как оно больше допустимого на 1, строго говоря, можно использовать любое число, больше 10079, проверку на корректность даты делает макрос corrWTC. Конечно, там многое сделано не идеально, и есть смысл дорабатывать, но все опробовано на реальном железе и вполне успешно работает.
Для тех, кому не ясно - зачем нужен такой формат - приведу пример:
У нас есть какой-то временной интервал, скажем от Пн. 00:20 до Пн. 06:10. Причем этот интервал задает пользователь. Нам же нужно указать отрицательное или положительное смещение, относительно указанного времени, скажем, на 1 час назад отодвинуть нижнюю границу, то есть - 60 минут. Тогда у нас должен получиться уже интервал Вс. 23:20 - Пн. 06:10. Чтобы автоматизировать обработку всех этих переходов между днями и удобно использовать данные макросы.
P.S.: Макрос toWTCDay вычисляет день недели (от 0 до 6), получая на входе год, месяц и число, так что вполне может быть использован отдельно от остальных.

Ger4sim
05.07.2016, 21:20
Не знаю, может нужен кому - простенький макрос: Включение устройства при превышении порога верхнего давления, и выключение при достижении порога нижнего давления.
25265

Если такой уже есть - прошу удалить пост.

rovki
05.07.2016, 21:26
А чем макрос гистерезиса не угодил ?

rovki
05.07.2016, 21:48
В поиске нашел http://www.owen.ru/forum/showthread.php?t=12691&p=85274&viewfull=1#post85274

rovki
05.07.2016, 21:52
Из-за того что макросы хоть и собраны в одной теме ,но очень сильно разбросаны и не систематизированы ,гляжу некоторые уже по 3 кругу изобретают то ,что уже давно есть .Но это вопрос к администрации форума больше ,чем к авторам .Это их работа -зерна извлекать из плевел .

Devoter
06.07.2016, 10:32
По правде говоря, не вполне понял - кому адресованы последние два сообщения? А насчет базы макросов - есть одна мысль, но пока нет времени на ее реализацию. Пока и рассказывать нечего, а как будет - сразу покажу )

AI!
07.07.2016, 18:22
увидел макрос (http://www.owen.ru/forum/attachment.php?attachmentid=25319&d=1467874016) и решил себя попробовать на этом же поприще...

В общем: макрос вычисления дня недели XXI века, год задаётся как 00-99, на выходе ВС=0, ПН=1 ... СБ=6

PS если заменить три 4х значные константы на 240,5008и1314 соответственно, то получится календарь от 1901 до 2099г включительно, с обязательным указанием года полностью (1917 или 2017, но не "17")

Pavel_
07.07.2016, 19:44
увидел макрос (http://www.owen.ru/forum/attachment.php?attachmentid=25319&d=1467874016) и решил себя попробовать на этом же поприще...

В общем: макрос вычисления дня недели XXI века, год задаётся как 00-99, на выходе ВС=0, ПН=1 ... СБ=6
А я увидел его после... ))
http://www.owen.ru/forum/showthread.php?t=23201&page=2&p=201881&viewfull=1#post201881

Алексей Геннадьевич
08.07.2016, 08:35
увидел макрос (http://www.owen.ru/forum/attachment.php?attachmentid=25319&d=1467874016) и решил себя попробовать на этом же поприще... Красивое решение, снимаю шляпу. Тот макрос что вы видели - создал rovki, я его переписал под ОЛ117 и ненужное удалил. В приложении ваш макрос и rovki, для сравнения.

Сергей0308
08.07.2016, 09:02
увидел макрос (http://www.owen.ru/forum/attachment.php?attachmentid=25319&d=1467874016) и решил себя попробовать на этом же поприще...

В общем: макрос вычисления дня недели XXI века, год задаётся как 00-99, на выходе ВС=0, ПН=1 ... СБ=6

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

AI!
08.07.2016, 10:36
В приложении ваш макрос и rovki, для сравнения.а как нужно, что бы на выходе было 0..6 или 1..7?

PS если заменить три 4х значные константы на 240,5008и1314 соответственно, то получится календарь от 1901 до 2099г включительно, с обязательным указанием года полностью, а на выходе всё те же, общепринятые 0..6

Алексей Геннадьевич
08.07.2016, 10:58
а как нужно, что бы на выходе было 0..6 или 1..7?
Более привычно 1-7


PS если заменить три 4х значные константы на 240,5008и1314 соответственно, то получится календарь от 1901 до 2099г включительно, с обязательным указанием года полностью, а на выходе всё те же, общепринятые 0..6
ПР200 выдаёт год двухзначным числом, нет смысла что-то менять. И через 85лет ПР200 место в музее будет.

Devoter
10.07.2016, 20:18
Тот набор макросов, что я выкладывал, тоже, по идее, выдает как Вс - 0, Сб - 6, но я сдвиг сделал, ничто не мешает в любом макросе поправить сдвиг, да и привычность - это личное дело каждого, я давно привык считать от нуля, но мне, например, неудобно начинать отсчет недели от воскресенья. К слову сказать, не проверял, но формула, по которой писал макрос утреждает, что вычисляет от 15xx- какого-то года.

Darov
22.11.2016, 18:08
Прошу прощения, может кто подскажет? В библиотеке есть интегральный таймер CLOCK1, мне необходимо выставить 2017 год, а он до 31.12.16г ?

Ревака Юрий
22.11.2016, 18:20
Добрый день! Во вложении файл с выставленным таймером на 2017 год. У меня это получилось сделать, переставив время на компьютере, для более гибкого применения, можно попробовать применить похожие макросы из онлайн базы или от пользователей форума.

Darov
22.11.2016, 18:25
Большое спасибо. Хотя я тоже пытался менять время на компе, но не получилось...

Ревака Юрий
22.11.2016, 18:33
Большое спасибо. Хотя я тоже пытался менять время на компе, но не получилось...

Я закрыл OL, потом поменял время, и открыл программу создав новый файл.

Эдуард_Н
22.11.2016, 20:10
Прошу прощения, может кто подскажет? В библиотеке есть интегральный таймер CLOCK1, мне необходимо выставить 2017 год, а он до 31.12.16г ?

А производители не могли заложить больше?

Ревака Юрий
23.11.2016, 10:03
А производители не могли заложить больше?

Я уточню этот момент, обязательно.

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

dim1987
28.01.2017, 17:52
Не могу скачать макрос аварий. Перезалейте люди добрые.

Василий Кашуба
28.01.2017, 19:12
Не могу скачать макрос аварий. Перезалейте люди добрые.

Посмотрите здесь. http://www.owen.ru/forum/attachment.php?attachmentid=6626&d=1343749858/

dim1987
28.01.2017, 19:29
у вас скачивается? у меня нет

Василий Кашуба
28.01.2017, 21:37
у вас скачивается? у меня нет
Попробуйте из моего архива.

Mortumas
14.04.2017, 08:57
Всем доброе утро !!! Прошу у вас помощи подскажите как реализовать изменение температуры в зависимости от температуры наружного воздуха. Прошу меня не критиковать ибо новичок в этом деле.

Сергей0308
14.04.2017, 09:17
Всем доброе утро !!! Прошу у вас помощи подскажите как реализовать изменение температуры в зависимости от температуры наружного воздуха. Прошу меня не критиковать ибо новичок в этом деле.

Вам график температуры?
Я примерно так высчитываю в мастерскаде Т = (25,6 - Т ул.) х 2,4

Mortumas
14.04.2017, 09:24
просто я не знаю на каких элементах в овен логик его реализовать

Сергей0308
14.04.2017, 09:31
просто я не знаю на каких элементах в овен логик его реализовать

В ОЛ есть и математические функции!

Mortumas
14.04.2017, 10:22
Спасибо огромное на формулу реализовал погодозависимость на вычитание и умножении

Василий Кашуба
14.04.2017, 11:00
Спасибо огромное на формулу реализовал погодозависимость на вычитание и умножении
Есть уже готовые макросы для вычисления температуры отопления в зависимости от погоды.
30553

Сергей0308
14.04.2017, 22:05
Есть уже готовые макросы для вычисления температуры отопления в зависимости от погоды.
30553

Предлагаю немного упростить:

30582

Mortumas
17.04.2017, 21:00
Доброго вечера ! Прошу помощи ! Нужен таймер с сбросом. Сам делаю получается громоздко .

rovki
17.04.2017, 21:04
Сбрасывайте уставку через сел на ноль и таймер сбросится ...через блок записи в ФБ

Сергей0308
17.04.2017, 21:05
Доброго вечера ! Прошу помощи ! Нужен таймер с сбросом. Сам делаю получается громоздко .

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

Mortumas
17.04.2017, 21:17
Дак в этом и проблема нужен таймер который не сбрасывается ! При подаче сигнала таймер должен начать считать при пропадании сигнала остановиться при повторной подаче сигнала возобновить счёт . А сбрасывать вручную

rovki
17.04.2017, 21:20
Вы о ТР таймере? Я про него говорил.
Вам нужен ТР таймер с паузой и сбросом .такие я делал ,ищите поиском .

Василий Кашуба
17.04.2017, 21:51
Дак в этом и проблема нужен таймер который не сбрасывается ! При подаче сигнала таймер должен начать считать при пропадании сигнала остановиться при повторной подаче сигнала возобновить счёт . А сбрасывать вручную
Попробуйте вот такой таймер ТОН.
30641

Mortumas
17.04.2017, 22:10
так и не смог найти но всё равно спасибо!)

rovki
17.04.2017, 22:29
Искать нужно в теме ПР ,а не ОЛ

SEREGAFSP
18.04.2017, 08:01
Что-то ни одна ссылка не работает...У меня, или проблемы у всех???

Ревака Юрий
18.04.2017, 14:15
Что-то ни одна ссылка не работает...У меня, или проблемы у всех???

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

anthrwpos
19.04.2017, 09:10
Наконец, довел большинство своих макросов до стабильной версии.
Буду потихоньку выкладывать наиболее полезные.
Первым идет макрос определения времени программного цикла "dt".
Используется в фильтрах, регуляторах и прочих алгоритмах реального времени.
Макрос и описание к нему во вложении. Исходный файл описания либо файл изображения могу дам по запросу (если например, оное будет полезно для добавления этого макроса в онлайн-библиотеку).
В будущем выложу свои фильтры (скользящая средняя, адаптивная скользящая средняя) и свою реализацию ПИД, а то я часто всем советую делать рукописный ПИД, но ни разу не выложил ту его версию, что я считаю правильной=)

rovki
19.04.2017, 11:35
А зачем считать dt , а не использовать сам цикл ПР?

anthrwpos
19.04.2017, 12:36
А зачем считать dt , а не использовать сам цикл ПР?
Потому что длительность циклов зависит от сложности программы.

capzap
19.04.2017, 12:39
Потому что длительность циклов зависит от сложности программы.

не перепутали с плк? Тут выполняется каждый элемент расположенный на холстах проекта и время будет не изменным в каждом цикле программы

rovki
19.04.2017, 12:53
Сам цикл ПР меняется от сложности программы ,но постоянен для данного проекта .То есть цикл ПР является минимальным квантом времени ,меньше его вычислять нет смысла ,а больше -не та будет точность .Ибо дельта Т должна стремится к нулю в идеале , в ПР к времени цикла ...

anthrwpos
19.04.2017, 16:30
Сам цикл ПР меняется от сложности программы ,но постоянен для данного проекта .
В этом случае макрос полезен тем, что выводит длительность цикла автоматически, иначе пользователю нужно будет для каждой написанной программы проверять значение длительности цикла в сервисном меню прибора и вбивать его в настройки.

rovki
19.04.2017, 17:15
Я же говорю ,что его можно вообще не вычислять ,а применять . Например ,возьмите ADD на один вход подайте значение ,а второй вход соедините с его же выходом - получите интегратор ,с квантом времени -цикл ПР.

anthrwpos
20.04.2017, 06:04
Я же говорю ,что его можно вообще не вычислять ,а применять . Например ,возьмите ADD на один вход подайте значение ,а второй вход соедините с его же выходом - получите интегратор ,с квантом времени -цикл ПР.
Представьте, что нам нужно компенсировать инерцию датчика, которая составляет 1 секунду. По началу у нас 1000 циклов в секунду, мы пишем t_ист=t_показ+dt*1000 и идем дальше.
По началу это работает, но по мере усложнения программы цикл внезапно становится равен 2 миллисекундам. И наш алгоритм начинает перерегулировать. Если не знать эту тонкость, можно долго не понимать, что происходит, почему при удалении одного элемента все работает, а при добавлении любого нового начинается перерегулирование)
Вот для борьбы с этим и будет полезно автоматическое вычисление dt. В будущем когда программа устаканится, вы всегда можете заменить макрос dt на константу с определенным известным вам значением.