PDA

Просмотр полной версии : Обсуждение макросов для OWEN Logic



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

Ревака Юрий
30.08.2016, 09:15
Уважаемые коллеги!

Данная тема предназначена для обсуждения макросов, которые размещены на форуме в разных темах. Для облегчения поиска в первом сообщении будут прикрепляться ссылки на макросы, с описанием работы от пользователей, которые выкладывались на форуме. Мы надеемся это упростит использование макросов и ускорит написание программ в OWEN Logic.

Также обращаем Ваше внимание на онлайн базу макросов, которая доступна из программы OWEN Logic, в данной теме (http://www.owen.ru/forum/showthread.php?t=25067/) происходит обсуждение макросов содержащихся в этой базе.

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




Макрос синуса (0-360) (http://www.owen.ru/forum/attachment.php?attachmentid=6652&d=1344019482/)(доработанный есть в онлайн базе!)обсуждение (http://www.owen.ru/forum/showthread.php?t=23215/)
ToRange (http://www.owen.ru/forum/attachment.php?attachmentid=15628&d=1418197395/) описание
Макрос, на входе 2 значения, на выходе то которое менялось последним (http://www.owen.ru/forum/attachment.php?attachmentid=25684&d=1470219184/) обсуждение
Аналогично для вещественных чисел (http://www.owen.ru/forum/attachment.php?attachmentid=25688&d=1470223795/) обсуждение
Альтернативный вариант для вещественных чисел (http://www.owen.ru/forum/attachment.php?attachmentid=25697&d=1470240182/) обсуждение
Демультиплексор целочисленный (http://www.owen.ru/forum/attachment.php?attachmentid=6138&d=1337414449/)
Мультиплексор целочисленный (http://www.owen.ru/forum/attachment.php?attachmentid=6140&d=1337414639/)
Папка с макросами для вещественных чисел (http://www.owen.ru/forum/attachment.php?attachmentid=6327&d=1340131783/)(часть есть в онлайн базе!)
Макрос гистерезиса вещественных чисел (http://www.owen.ru/forum/attachment.php?attachmentid=6336&d=1340435167/)
Макрос экстремума вещественного числа (http://www.owen.ru/forum/attachment.php?attachmentid=6514&d=1342633950/)
Макрос экстремума вещественного числа (http://www.owen.ru/forum/attachment.php?attachmentid=8251&d=1363242773/) (альтернативный вариант со сбросом)обсуждение
Макрос экстремума вещественного числа (http://www.owen.ru/forum/attachment.php?attachmentid=8252&d=1363243071/) (еще одна модификация)
Набор макросов для работы со знаковыми целыми числами (http://www.owen.ru/forum/attachment.php?attachmentid=25249&d=1467710712/) описание
Возведение произвольного целого числа в произвольную целую степень (http://www.owen.ru/forum/attachment.php?attachmentid=7942&d=1360133289/) (показатель степени может быть от 0 до 15)
Компаратор реальных чисел (http://www.owen.ru/forum/attachment.php?attachmentid=7987&d=1360603139/) описание
Ячейка памяти float (http://www.owen.ru/forum/attachment.php?attachmentid=21073&d=1448562481)
Макрос EPROM. Макрос ROM (http://www.owen.ru/forum/attachment.php?attachmentid=24716&d=1464927365/)-16ячеек по 32бит (до 240ячеек) - независимые входа для записи и считывания. описание
Стек16 (http://www.owen.ru/forum/attachment.php?attachmentid=25076&d=1466548224/) обсуждение
Среднее арифметическое (http://www.owen.ru/forum/attachment.php?attachmentid=20197&d=1443644025/) описание
Мин. Макс. Среднее (http://www.owen.ru/forum/attachment.php?attachmentid=20256&d=1443982348/) описание
INT_TO_FLOAT (http://www.owen.ru/forum/attachment.php?attachmentid=20520&d=1445533387/) описание
Кусочно-линейная аппроксимация (http://www.owen.ru/forum/attachment.php?attachmentid=8470&d=1365094443/) пример использования (http://www.owen.ru/forum/attachment.php?attachmentid=8471&d=1365095987/)
Работа с EEPROM (http://www.owen.ru/forum/attachment.php?attachmentid=26164&d=1473028046/) описание
Стек с плавающей точкой (http://www.owen.ru/forum/attachment.php?attachmentid=26542&d=1474608744/)
Округление чисел с типом float (http://www.owen.ru/forum/attachment.php?attachmentid=26543&d=1474612107/)описание
Макрос для масштабирования значений scale_r (http://www.owen.ru/forum/attachment.php?attachmentid=10747&d=1384683667/)описание
Модифицированный макрос fSAVE_res (http://www.owen.ru/forum/attachment.php?attachmentid=28001&d=1481175583/)описание







Папка с макросами генераторов (http://www.owen.ru/forum/attachment.php?attachmentid=6127&d=1337276366/) (есть в онлайн базе!)
Генератор случайных чисел (http://www.owen.ru/forum/attachment.php?attachmentid=25447&d=1468869431/) обсуждение
Генератор случайных чисел RND1024 (http://www.owen.ru/forum/attachment.php?attachmentid=7688&d=1356113963/) обсуждение
Указатель номера активного входа и Генератор пачек импульсов (http://www.owen.ru/forum/attachment.php?attachmentid=12559&d=1397065312/) обсуждение
Синхронный число-импульсный генератор (http://www.owen.ru/forum/attachment.php?attachmentid=12561&d=1397113118/) описание
Blink7 (http://www.owen.ru/forum/attachment.php?attachmentid=8037&d=1361022811/) описание





Макрос интервального таймера с маской недели (даты и секунд нет)(установлен пароль!) (http://www.owen.ru/forum/attachment.php?attachmentid=23230&d=1458341087/) (похожий есть в онлайн базе!)
Релиз v2.1 (от 26.10.2016) (даты и секунд нет)(установлен пароль!) (http://www.owen.ru/forum/attachment.php?attachmentid=27289&d=1477498196/) описание
Week Time Clock (http://www.owen.ru/forum/attachment.php?attachmentid=25250&d=1467712124/) описание
Макрос вычисления дня недели XXI века (http://www.owen.ru/forum/attachment.php?attachmentid=25328&d=1467904949/) описание
Макрос вычисления дня недели (http://www.owen.ru/forum/attachment.php?attachmentid=23269&d=1458552937/) еще один вариант описание
Макрос вычисления дня недели (http://www.owen.ru/forum/attachment.php?attachmentid=25329&d=1467955886/) еще один вариант описание
Набор макросов для работы с временем UNIX (http://www.owen.ru/forum/attachment.php?attachmentid=26341&d=1473621704/) описание
Еще вариант макросов для работы с временем UNIX (http://www.owen.ru/forum/attachment.php?attachmentid=26337&d=1473621080/) описание







Папка с макросами дешифраторов,шифраторов,мультиплексоров, демультиплексоров (http://www.owen.ru/forum/attachment.php?attachmentid=6132&d=1337330298/) (часть есть в онлайн базе!)
Демультиплексор вещественный (http://www.owen.ru/forum/attachment.php?attachmentid=6139&d=1337414465/) (есть в онлайн базе!)
Макрос пароля (http://www.owen.ru/forum/attachment.php?attachmentid=6419&d=1341316710/) описание (есть в онлайн базе!)
Макросы для подключения ПР200+МДВВ при помощи битовой маски (http://www.owen.ru/forum/attachment.php?attachmentid=22095&d=1453951410/) описание (есть в онлайн базе!)
Макросы для модуля 32 дискретнх входа , 32 дискретнх выхода, макрос регистрации аварий, макрос контроль вращения (http://www.owen.ru/forum/attachment.php?attachmentid=23167&d=1458115221/) (часть есть в онлайн базе!)
Модифицированный макрос EXTRB (EXTBN) (http://www.owen.ru/forum/attachment.php?attachmentid=8354&d=1364113714/) описание
RS триггер с задержками на включение и выключение (http://www.owen.ru/forum/attachment.php?attachmentid=7868&d=1359266757/)
Два макроса, аналоги ФБ TOGGLE и INTERLOCK из Oscat библиотеки.
Т-триггер (http://www.owen.ru/forum/attachment.php?attachmentid=10750&d=1384702882/) описание
Расширение булевых входов в макросе (http://www.owen.ru/forum/attachment.php?attachmentid=8355&d=1364130722/) описание
Расширение булевых входов в макросе (http://www.owen.ru/forum/attachment.php?attachmentid=8357&d=1364143775/) (альтернативный вариант) описание
Макрос приоритета входов (http://www.owen.ru/forum/attachment.php?attachmentid=6141&d=1337415877/)
Диодно-кнопочный дешифратор (http://www.owen.ru/forum/attachment.php?attachmentid=12641&d=1397812385/) описание
Задание уставки четырьмя клавишами (http://www.owen.ru/forum/attachment.php?attachmentid=7940&d=1360094010/)
Макрос пикового индикатора (http://www.owen.ru/forum/attachment.php?attachmentid=6516&d=1342667320/) описание
AND, OR, XOR для целочисленных значений до 32-х бит (http://www.owen.ru/forum/attachment.php?attachmentid=26559&d=1474633025/) описание






Папка с макросами логических элементов (http://www.owen.ru/forum/attachment.php?attachmentid=6126&d=1337272594/) (есть в онлайн базе!)





Макрос бегущая строка (http://www.owen.ru/forum/attachment.php?attachmentid=23342&d=1458743077/) описание (доработанный есть в онлайн базе!)
Бегущая строка 2 (http://www.owen.ru/forum/attachment.php?attachmentid=23335&d=1458729291/) описание





Макросы счетчиков (http://www.owen.ru/forum/attachment.php?attachmentid=6137&d=1337358150/)
Двоичный реверсивный счетчик с диапазоном счета и сбросом (http://www.owen.ru/forum/attachment.php?attachmentid=6167&d=1337608460/) (доработанный есть в онлайн базе!)
Универсальный счетчик с автосбросом и предустановкой (http://www.owen.ru/forum/attachment.php?attachmentid=8370&d=1364240336/) описание
Универсальный счетчик с автосбросом и предустановкой №2 (http://www.owen.ru/forum/attachment.php?attachmentid=8371&d=1364241020/) описание
Счетчик наработки (http://www.owen.ru/forum/attachment.php?attachmentid=8722&d=1367743361/) описание
Макрос таймера со сбросом (http://www.owen.ru/forum/attachment.php?attachmentid=6688&d=1344364229/)
Универсальный 32 разрядный счетчик (http://www.owen.ru/forum/attachment.php?attachmentid=7023&d=1348509301/) (пароль 221254)
Универсальный 32 разрядный счетчик (http://www.owen.ru/forum/attachment.php?attachmentid=7959&d=1360312930/) (альтернативный вариант)описание
Макросы - аналоги таймерам из библиотеки Oscat (http://www.owen.ru/forum/attachment.php?attachmentid=8262&d=1363347589/)
Макрос последовательное включение TON ов (http://www.owen.ru/forum/attachment.php?attachmentid=8050&d=1361098341/) описание
Макрос последовательное включение 8TON ов (http://www.owen.ru/forum/attachment.php?attachmentid=8051&d=1361100649/) описание
Макрос последовательное включение 8TON ов (http://www.owen.ru/forum/attachment.php?attachmentid=8051&d=1361100649/) (альтернативный вариант) описание
Макрос последовательное включение 32TON ов (http://www.owen.ru/forum/attachment.php?attachmentid=8059&d=1361188725/) описание Пример использования (http://www.owen.ru/forum/attachment.php?attachmentid=8062&d=1361208607/)
счётчик тактов ПР, и/или длительность одного такта в мс (http://www.owen.ru/forum/attachment.php?attachmentid=26039&d=1472321028/) описание
Тахометр (http://www.owen.ru/forum/attachment.php?attachmentid=20717&d=1447013896/) описание
Измеритель производительности (http://www.owen.ru/forum/attachment.php?attachmentid=26041&d=1472325354/) описание






Универсальный макрос управления насосами (http://www.owen.ru/forum/attachment.php?attachmentid=6446&d=1341678871/) описание
Счетчик в унитарном коде со сбросом (http://www.owen.ru/forum/attachment.php?attachmentid=6208&d=1338208737/)
Макрос управления освещением из четырех точек (http://www.owen.ru/forum/attachment.php?attachmentid=19135&d=1438031792/) описание
Контроль уровня (http://www.owen.ru/forum/attachment.php?attachmentid=25272&d=1467779933/) обсуждение
Макрос управления модулирующим клапаномр (http://www.owen.ru/forum/attachment.php?attachmentid=14914&d=1414135313/)
Макрос на 7 выходов последовательного запуска (http://www.owen.ru/forum/attachment.php?attachmentid=8043&d=1361074046/) описание
Построения графика температуры в зависимости от погоды (http://www.owen.ru/forum/attachment.php?attachmentid=6601&d=1343596707/)
Фиксатор событий на ПР200 (http://www.owen.ru/forum/attachment.php?attachmentid=22876&d=1456657288/) обсуждение

Макрос телефон на ПР200 (http://www.owen.ru/forum/attachment.php?attachmentid=6619&d=1343743188/) описание
Макрос АВАРИЯ (анализатор событий) (http://www.owen.ru/forum/attachment.php?attachmentid=6626&d=1343749858/) описание
Макрос блокировки работы ПР с часами (http://www.owen.ru/forum/attachment.php?attachmentid=6627&d=1343750166/) описание
Макрос передатчик (http://www.owen.ru/forum/attachment.php?attachmentid=6648&d=1343917678/) и приемник (http://www.owen.ru/forum/attachment.php?attachmentid=6649&d=1343917725/) описание
Интегральный регулятор с ШИМ (http://www.owen.ru/forum/attachment.php?attachmentid=6751&d=1345040671/) описание
ПИД регулятор (http://www.owen.ru/forum/attachment.php?attachmentid=23149&d=1457976062/) описание
ШИМ с ограничением сверху и снизу и задаваемым периодом (http://www.owen.ru/forum/attachment.php?attachmentid=23547&d=1459524760/)
Макрос моточасов (http://www.owen.ru/forum/attachment.php?attachmentid=20562&d=1445886218/)
Макрос работы с энкодером (http://www.owen.ru/forum/attachment.php?attachmentid=17896&d=1429884304/)описание
Макрос поочередной работы оборудования с учетом времени наработки (http://www.owen.ru/forum/attachment.php?attachmentid=26558&d=1474630298/)

Pavel_
30.08.2016, 12:26
Моя оценка теме - смайл "палец вверх".
Думаю, еще будет полезной информация в скобках, о дате публикации того или иного макроса на форуме.

AI!
30.08.2016, 13:50
был еще такой макрос fROM - кусочнолинейная апрксимация....
(http://www.owen.ru/forum/showthread.php?t=12687&p=107293&viewfull=1#post107293)

Ревака Юрий
30.08.2016, 14:28
был еще такой макрос fROM - кусочнолинейная апрксимация....
(http://www.owen.ru/forum/showthread.php?t=12687&p=107293&viewfull=1#post107293)

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

Эдуард_Н
01.09.2016, 05:45
5.Макрос управления модулирующим клапаном
Что к нему нужно подключить что бы получить на выходе дискретные сигналы открытия-закрытия?

Павел Братковский
01.09.2016, 06:30
Что к нему нужно подключить что бы получить на выходе дискретные сигналы открытия-закрытия?

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

Эдуард_Н
01.09.2016, 07:52
изначально макрос делался для клапана 0..10в. дискретные сигналы здесь не прокатят, нужно делать другой макрос.

Обратная связь тоже 0..10в? Какие значения должны быть на входе "зад"?

Павел Братковский
01.09.2016, 09:01
входы задание и обратная связь должны сойтись с точностью до % указанных в зоне нечувствительности....сейчас нет ОЛ и макроса под рукой, приду на рабочее место опишу весь макрос подробно если интересно.

Эдуард_Н
01.09.2016, 09:40
входы задание и обратная связь должны сойтись с точностью до % указанных в зоне нечувствительности....сейчас нет ОЛ и макроса под рукой, приду на рабочее место опишу весь макрос подробно если интересно.

Конечно интересно.

Павел Братковский
01.09.2016, 10:10
входы задание и обратная связь должны сойтись с точностью до % указанных в зоне нечувствительности отмечено оранжевым зона нечувствительности.

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

константы замедление на открытие и закрытие, отмечены зеленым, при разнице зад. и обр.св. менее 85% 1блинк будет добавлять в счетчик 0,01 сек имп, 0,001 сек пауза., при более 85% блинк 0,01 сек имп, 0,005 пауза и т.д.....на замедление в обратном порядке...
26120

Grampus
01.09.2016, 11:19
ПОМОГИТЕ ПОЖАЛУЙСТА!!!! НАрисовал схему , потом захотел сделать из нее макрос. нажимаю "создать макрос" открывается новое полотно чистое. и там не могу поставить аналоговый вход!

Павел Братковский
01.09.2016, 11:26
по входу или выходу щелкните, в правой стороне холста появится вкладка свойства, в ней и изменяйте тип входа или выхода

Василий Кашуба
01.09.2016, 17:37
Блок управления циркуляционными насосами в системе отопления.
26123
BCI – Блок контроля исправности насоса. Сигнал с датчика потока «Dp» контролируется только во время работы насоса, к которому он подключён и, при отсутствии сигнала с датчика потока, через 25-30 секунд (Время подбирается опытным путём) выдаёт сигнал «Авария» и запрещает работу неисправного насоса.
G.S.I. – Генератор коротких импульсов, время задаётся в часах, своими импульсами переводит переключатель в следующее состояние.
Switch – Переключатель работы насосов, имеет два состояния и переключается импульсами от генератора G.S.I.

Игорюня
01.09.2016, 20:30
Блок управления циркуляционными насосами в системе отопления.
26123


Все хорошо в этом макросе, но... Возьмем такую ситуацию. Сломался один из насосов, второй переводить в ручное положение и работать без датчика потока? Я уже выкладывал как-то макрос, где на входе еще ставлю какой насос работает в автомате. Еще в 51 версии делал. Зарекомендовал себя с положительной стороны. http://www.owen.ru/forum/attachment.php?attachmentid=18272&d=1432189746

Василий Кашуба
01.09.2016, 20:42
Все хорошо в этом макросе, но... Возьмем такую ситуацию. Сломался один из насосов, второй переводить в ручное положение и работать без датчика потока? Я уже выкладывал как-то макрос, где на входе еще ставлю какой насос работает в автомате. Еще в 51 версии делал. Зарекомендовал себя с положительной стороны. http://www.owen.ru/forum/attachment.php?attachmentid=18272&d=1432189746
При аварии одного насоса, второй включится автоматически и все датчики остаются включёнными.
Это я даю описание макроса выложенного в он-лайн базе.

Сергей0308
01.09.2016, 23:51
Непонятно, что обсуждать, у каждого свои плюсы и минусы, лично мои все открытые для редактирования, не нравится, подправь как ты хочешь, а закрытые паролем это кот в мешке, тут вообще нечего обсуждать, зачем их выкладывать?! А новые нужны? Например ячейки памяти типа К155РУ2(5), только энергонезависимые, не полные копии, а нечто подобное, например независимый выбор ячеек для записи и чтения, наверно удобно для архива, например вход целочисленный или вещественный, высчитал доход за день и отправил в ячейку памяти с числом в месяце, надеюсь суть понятна, не знаю есть такие макросы или нет и нужны или нет? Я не против закрытых паролем макросов, просто перед тем как обсуждать картину, хотелось бы её увидеть!

Woolfy
02.09.2016, 06:29
Присоединюсь к Сергею. Уж если выкладывать макросы в публичный доступ, то открытые и с описанием - для возможной корректировки. Коллеги, все мы хотим достойной оплаты за свой труд и не хотим, чтобы у нас что-то воровали. Опасаетесь копирования? Считаете программу своим "ноу-хау"? Тогда закрывайте клиентскую программу полностью (или частично в виде закрытого ФБ, макроса). И не хвастайтесь этим... Сам ставлю пароль на программу или ограничиваю время работы в случае "мутного" клиента, когда могут не расплатиться. Но это, как говорится, тема для отдельного разговора.

Алмаз_Кунафин
02.09.2016, 10:02
Всем привет.

Есть вопрос по макросу PT1000. При подключении к ПР200 датчика температуры PT1000, макрос работает и формирует значение температуры. При отключении датчика, макрос формирует аварию. Но при подключении датчика обратно к ПР200 ,макрос не формирует значение температуры. Все начинает работать после перезагрузки контроллера. Прошивку контроллера и версию Owen logic обновил, не помогло.

Ревака Юрий
02.09.2016, 10:26
Всем привет.

Есть вопрос по макросу PT1000. При подключении к ПР200 датчика температуры PT1000, макрос работает и формирует значение температуры. При отключении датчика, макрос формирует аварию. Но при подключении датчика обратно к ПР200 ,макрос не формирует значение температуры. Все начинает работать после перезагрузки контроллера. Прошивку контроллера и версию Owen logic обновил, не помогло.


Добрый день! Ответил Вам на почту, продублирую для всех кто будет использовать макросы термосопротивлений.

Данную проблему можно решить поставив ограничение на входе макроса. Дело в том, что при обрыве датчика, значение на аналоговом входе стремится к 9999999, и когда данное число попадает на вход макроса, в результате прохождения через полином оно выходит за пределы 2^32. Поставив ограничение на входе макроса немногим более максимального значения можно решить данную проблему.

В дальнейшем данный алгоритм будет встроен в макрос.

Сергей0308
05.09.2016, 00:17
Грозился макросом, вот выкладываю память EEPROM:

26182

I1 - целочисленный(32 бита) вход данных;
W - запись данных в выбранную ячейку при W = "1";
SELW - выбор ячейки для записи(0-8), если вне диапазона 0-8, запись ни в какую ячейку не происходит;
SELR - выбор ячейки для чтения(0-8), если вне диапазона 1-8, читается ячейка "0";
Q1 - целочисленный выход данных(32 бита).

Эдуард_Н
05.09.2016, 13:24
Хоть бы в свойствах входов-выходов комментарии заполнили.

Ревака Юрий
05.09.2016, 13:46
Грозился макросом, вот выкладываю память EEPROM:


Спасибо, добавил на первую страницу в подгруппу "Аналоговые преобразования".

Сергей0308
05.09.2016, 15:08
Хоть бы в свойствах входов-выходов комментарии заполнили.

Написал комментарии, проект и макрос обновил! Если чё, назначение входов-выходов есть в посте!

Ревака Юрий
06.09.2016, 15:36
Блок управления циркуляционными насосами в системе отопления.
26123
BCI – Блок контроля исправности насоса. Сигнал с датчика потока «Dp» контролируется только во время работы насоса, к которому он подключён и, при отсутствии сигнала с датчика потока, через 25-30 секунд (Время подбирается опытным путём) выдаёт сигнал «Авария» и запрещает работу неисправного насоса.
G.S.I. – Генератор коротких импульсов, время задаётся в часах, своими импульсами переводит переключатель в следующее состояние.
Switch – Переключатель работы насосов, имеет два состояния и переключается импульсами от генератора G.S.I.

Начал разбираться с макросом для подготовки описания, возникли некоторые вопросы. Задам их здесь, чтобы потенциальные пользователи тоже могли найти ответы:
-макрос на который есть ссылка в первом сообщении не имеет блоков, как у Вас на картинке, это такой-же макрос только компактно представленный или там были изменения, мои вопросы будут относится именно к макросу внутренних макросов
-вход время работы в часах, внутри идет умножение на 1800000, что значит это число, время работы можно задавать кратно 30 минутам? Я так понял этим временем мы задаем время через которое включается другой насос и так по кругу пока есть вход вкл/выкл?
-в летнем режиме все остается так-же только снимается единица и при смене насоса он работает 10 сек и все, затем отсчитывается время переключается на другой насос и опять работает 10 сек?

Василий Кашуба
06.09.2016, 20:59
Начал разбираться с макросом для подготовки описания, возникли некоторые вопросы. Задам их здесь, чтобы потенциальные пользователи тоже могли найти ответы:
-макрос на который есть ссылка в первом сообщении не имеет блоков, как у Вас на картинке, это такой-же макрос только компактно представленный или там были изменения, мои вопросы будут относится именно к макросу внутренних макросов
-вход время работы в часах, внутри идет умножение на 1800000, что значит это число, время работы можно задавать кратно 30 минутам? Я так понял этим временем мы задаем время через которое включается другой насос и так по кругу пока есть вход вкл/выкл?
-в летнем режиме все остается так-же только снимается единица и при смене насоса он работает 10 сек и все, затем отсчитывается время переключается на другой насос и опять работает 10 сек?
1. Совершенно верно, я, для наглядности и лучшего понимания работы макроса, разбил его схему на более мелкие макросы и сделал описание их работы.
2. Всё верно поняли.
3. Да, этот режим предупреждает закисание насосов, когда выключено отопление.

petera
11.09.2016, 21:22
В начале макрос, который упаковывает стандартные дата_время в UNIX формат ( в кодесис это формат DATA_AND_TIME).
26324
На выходе собственно упакованное DT и на двух дополнительных выходах - младший и старший WORD этого самого DT.
Выход DT можно использовать в самом ПР, например расчитывать интервалы для событий реального времени, например для вкл/выкл по расписанию. Ведь DT можно складывать, вычитать и сравнивать между собой, т.к. любое DT это всего лишь число секунд с 0 часов 1 января 1970г.
К выходам Lo_wDT и Hi_wDT нужно подключать две сетевые переменные с последовательными адресами, тогда панель или скада или ПЛК смогут прочитать DT как переменную DWORD.
26323
ВНИМАНИЕ.
Т.к. в ПР не поддерживается работа со знаковыми целыми числами, макрос будет корректно работать только с даты "эры Unix" - с 0 часов 1 января 1970г. Зато не будет проблемы 2038г, когда 19 января 2038 многие системы сойдут сума и время у них потечет вспять. У нас, в макросе, эра Unix закончится 5 февраля 2106г.:rolleyes:

Теперь макросы, которые позволяют использовать в программах это самое Unix-время.
26325

26315

ЗЫ.
Пришлось пост разбить на части. Больше 8 картинок прикрепить нельзя:confused:

petera
11.09.2016, 21:37
1. ExtrD_T. Извлекает из DT дату и время суток, как отдельные части, что позволят использовать их по отдельности.
26326
Этот макрос используется в
DT_to_UTC

2. Собственно из TIME можно получит только Час, Мин и Сек времени суток. Чем и будет заниматься макрос ExtrTime
26327
Этот макрос используется в
DT_to_UTC


3. DayOfYear. Определяет по Дате номер дня в году.
26328
Этот макрос используется в
ExtrMonth
ExtrDay
DT_to_UTC

4. LeapYear. Макрос для определение високосного года
26329
Этот макрос используется в
ExtrMonth
ExtrDay
DT_to_UTC

5. ExtrYear. Извлекает Год из упакованной Даты.
26330
Этот макрос используется в
DT_to_UTC

6. ExtrMonth. Извлекает из упакованной Даты номер месяца.
26331
Этот макрос используется в
ExtrDay

7. D_of_W. Возвращает день недели. Пн - 1, .. Вс - 7 из упакованной даты.
26332
Этот макрос используется в
DT_to_UTC

8. ExtrDay. Извлекает номер дня месяца из упакованной Даты. А также определяет признак четного дня месяца, может кто захочет расписание врачей сделать.:)
26333

energvk
11.09.2016, 22:11
petera, вот гду вы раньше были??!:confused:

Выкладываю аналогичные макросы (не зря же делал) упаковки/распаковки времени в формате Unix.
Основные макросы:
1. DT_TO_DW - упаковка времени в формат Unix с разбивкой на два регистра (для отправки по сети).
2. DW_TO_DT - распаковка времени из формата Unix. Если на вход dwDT блока подается значение, то расчёт идет по нему, иначе расчёт идет по входам highDT и lowDT (используется в случае прихода данных по сети).

26337

petera
11.09.2016, 22:22
Пример использования макросов, приведенных в предыдущем посте.
26334 26335

А теперь макрос DT_to_UTC обратного преобразования из времени Unix в стандартное время.
26336

Чтобы не плодить вложенные макросы, DayOfYear и LeapYear вынес из других наружу.
Пример с этим макросом
26338

26339

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

Сергей0308
12.09.2016, 00:26
Так не проще разбить, чисто механически, переменную пополам, если 16 старших бит сами отсекаются:

26343

petera
12.09.2016, 05:41
petera, вот гду вы раньше были??!:confused:

Выкладываю аналогичные макросы (не зря же делал) упаковки/распаковки времени в формате Unix.
Основные макросы:
1. DT_TO_DW - упаковка времени в формат Unix с разбивкой на два регистра (для отправки по сети).
2. DW_TO_DT - распаковка времени из формата Unix. Если на вход dwDT блока подается значение, то расчёт идет по нему, иначе расчёт идет по входам highDT и lowDT (используется в случае прихода данных по сети).

26337

Да я и не думал их делать, Вы же видите, что я в темах про ПР всего лишь редкий гость.:rolleyes:
Не надо было меня раззадоривать http://www.owen.ru/forum/showthread.php?t=10555&p=219827&viewfull=1#post219827. Потому, что получилось как у Ильфа и Петрова

Васюкинские шахматисты внимали Остапу с сыновней любовью. Остапа понесло. Он почувствовал прилив новых сил и шахматных идей...
http://www.owen.ru/forum/attachment.php?attachmentid=11951&d=1392750788

ЗЫ.

Если на вход dwDT блока подается значение, то расчёт идет по нему, иначе расчёт идет по входам highDT и lowDT (используется в случае прихода данных по сети)
Однако значение DT=0 с точки зрения формата Unix не является критерием того, что ничего не приходит на вход, т.к. DT=0 нормальное значение и соответствует стандартному 1970-00-00-00:00:00.
DT может быть и отрицательным. DT=-2147483648 соответствует 13 декабря 1901 года, 20:45:52. Просто в лоджике нет отрицательных целых чисел.

capzap
12.09.2016, 05:46
а чего там раззадоривать, в оскат есть все функции, остается только их в лоджик перевести

petera
12.09.2016, 06:19
а чего там раззадоривать, в оскат есть все функции, остается только их в лоджик перевести

Так это же я над собой иронизирую, в смысле "И тут Остапа понесло"
Да сами алгоритмы не мои, как я думаю они появились задолго и до ОСКАТ. А вот алгоритм макроса ExtrDay у меня совсем не такой как в ОСКАТ, похоже я его сам сочинил.

energvk
12.09.2016, 09:56
Однако значение DT=0 с точки зрения формата Unix не является критерием того, что ничего не приходит на вход, т.к. DT=0 нормальное значение и соответствует стандартному 1970-00-00-00:00:00.
DT может быть и отрицательным. DT=-2147483648 соответствует 13 декабря 1901 года, 20:45:52. Просто в лоджике нет отрицательных целых чисел.

Да, я не спорю. Я к тому, что если вход не подключен, то расчёт идет по highDT и lowDT.


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

Разумеется. Но чтобы их перевести нужно было время. Ну и как выяснилось, есть ньюансы различий cds и лоджика, которые petera учёл.

Ревака Юрий
12.09.2016, 11:39
По поводу использования макросов перевода времени, не забываем учитывать, что формат года в ПР имеет усеченный формат, и в случае использования системных переменных на вход макроса а не сетевых, как в примерах, результат в реальном устройстве будет отличаться от того что в симуляции OL. Данное несоответствие устранено, и выйдет я думаю с обновлением.

capzap
12.09.2016, 12:46
Разумеется. Но чтобы их перевести нужно было время. Ну и как выяснилось, есть ньюансы различий cds и лоджика, которые petera учёл.

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

energvk
12.09.2016, 13:17
да вот с помощью такого перевода я и выкладывал здесь макросы расчета восхода и заката солнца,а там кроме времени еще и долгота с широтой присутствуют

Блин, не видел этого макроса.

Ревака Юрий
12.09.2016, 14:38
Что бы не плодить темы, спрошу здесь. А зачем в онлайн-базе макросов нужен Адобе Риадер. Читать хелпы к макросам? А если я пользуюсь другими читалками pdf, так на кой ляд он мне нужен? А без него не входит в базу.

А что мешает поставить Acrobat Reader только для базы, а в остальном использовать другие программы?

Ревака Юрий
12.09.2016, 14:46
Блин, не видел этого макроса.

Да, если можно я б тоже на него посмотрел, была задумка сделать макрос по типу "Астротаймера", есть такая реализация для микроконтроллеров, там задается широта и долгота местности где испульзуется прибор, и он круглый год вычисляет время восхода и захода, а дальше уже по своему усмотрению используются данные переменные, для ПР пока только сделал макросы sin и cos необходимые для того алгоритма. Интересно посмотреть на Ваш вариант.

petera
12.09.2016, 15:10
Разумеется. Но чтобы их перевести нужно было время. Ну и как выяснилось, есть ньюансы различий cds и лоджика, которые petera учёл.
Для лоджика перевод и отладка заняли только один день.
Вот когда я это делал с помощью ГМ для панели, неделю точно просидел.
26354

https://www.youtube.com/watch?v=K09VxLHA3Ls
Там свои нюансы - операций сдвига в ГМ нет, а целочисленное деление вместо сдвига вправо может добавлять лишнюю 1, из-за дебильного авто округления в эмуляторе, а в реальной панели его нет, деления по модулю тоже нет, пришлось выкручиваться.
Не знаю будет ли видно

https://www.youtube.com/watch?v=JHH36A00AkU
А это результат

https://www.youtube.com/watch?v=-DHDPyVPw-Q

capzap
12.09.2016, 15:25
Да, если можно я б тоже на него посмотрел, была задумка сделать макрос по типу "Астротаймера", есть такая реализация для микроконтроллеров, там задается широта и долгота местности где испульзуется прибор, и он круглый год вычисляет время восхода и захода, а дальше уже по своему усмотрению используются данные переменные, для ПР пока только сделал макросы sin и cos необходимые для того алгоритма. Интересно посмотреть на Ваш вариант.

где то вот с этого места http://www.owen.ru/forum/showthread.php?t=12687&page=37&p=107981&viewfull=1#post107981 и еще было в теме про 114, по поиску наверное clockrts

Ревака Юрий
12.09.2016, 15:46
где то вот с этого места http://www.owen.ru/forum/showthread.php?t=12687&page=37&p=107981&viewfull=1#post107981 и еще было в теме про 114, по поиску наверное clockrts

Спасибо, нашел, изучаю.

Ревака Юрий
23.09.2016, 09:36
Добрый день!

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

ASo
23.09.2016, 09:55
Цель макроса?

Ревака Юрий
23.09.2016, 10:12
Цель макроса?

Управление различными задвижками, клапанами, в которых в качестве органа закрытия/открытия используется мотор с редуктором, и используется дискретное управление "Прибавить" "Убавить". С использованием резистивного датчика положения заслонки так и без него.

Николаев Андрей
23.09.2016, 10:32
Полностью поддерживаю, такой макрос нужен.
Возможность управлять клапанами и приводами:
1. В ручную.
2. Управление от ПИД регулятора.

ASo
23.09.2016, 12:19
Управление различными задвижками, клапанами, в которых в качестве органа закрытия/открытия используется мотор с редуктором, и используется дискретное управление "Прибавить" "Убавить". С использованием резистивного датчика положения заслонки так и без него.
Без резистора будут большие накопительные погрешности.

Сергей0308
23.09.2016, 12:32
Без резистора будут большие накопительные погрешности.

С датчиком положения особо и не надо ничего делать, и это прокладка, насколько я понял, сам макрос преобразует аналоговый сигнал ПИД-регулятора в дискретные больше-меньше!
Если не ошибаюсь, Василий Кашуба выкладывал нечто подобное!

Ревака Юрий
23.09.2016, 12:39
Без резистора будут большие накопительные погрешности.

Ну это да, но тем не менее читал отзывы что люди целенаправлено убирали ДП и работали без датчиков, экономя при этом на аналоговом входе, один из входов макроса будет установка <0> для синхронизации, а вот на сколько долго можно будет так работать вопрос. Еще как вариант заложить переменные по люфту и времени пуска/останова.

Ревака Юрий
23.09.2016, 12:41
С датчиком положения особо и не надо ничего делать, и это прокладка, насколько я понял, сам макрос преобразует аналоговый сигнал ПИД-регулятора в дискретные больше-меньше!
Если не ошибаюсь, Василий Кашуба выкладывал нечто подобное!

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

Сергей0308
23.09.2016, 13:02
Ну да, сам регулятор будет снаружи, т.к их множество, даже в этой теме, на вход макроса планирую подавать задание с регулятора и знак ошибки регулирования.

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

Ревака Юрий
23.09.2016, 13:18
Предлагаю добавить в планируемый макрос отключаемый режим блокирования подачи импульсов при уменьшении рассогласования, лично мне был бы полезен в инерционных системах и для экономии ресурса исполняемых механизмов, в принципе достаточно сигнала рассогласование увеличивается-уменьшается!

Типа гистерезиса, если находимся в определенном коридоре не дергаем выходами? Тогда, чтоб не увеличивать кол-во входов предлагаю вариант если уставка =0 работаем в обычном режиме, если >0 тогда работает коридор.

Сергей0308
23.09.2016, 13:27
Типа гистерезиса, если находимся в определенном коридоре не дергаем выходами? Тогда, чтоб не увеличивать кол-во входов предлагаю вариант если уставка =0 работаем в обычном режиме, если >0 тогда работает коридор.

Нет, не так работает, сейчас поясню: в результате внешнего возмущения параметр регулирования стал меньше уставки, подаётся сигнал больше, клапан немного открывается и например уровень(или какой другой параметр) начинает увеличиваться(до этого уменьшался или стоял на месте) и блокируется дальнейшая подача сигналов на открытие, ПИД-регулятор старается максимально быстро догнать до уставки и там последуют ещё сигналы на открытие, а когда этого не надо, уровень будет доходить до уставки относительно медленно, но не будет лишних телодвижений регулирующего органа управления, надеюсь так понятней7 нУ И ЗОНА НЕЧУСТВИТЕЛЬНОСТИ!

Эдуард_Н
23.09.2016, 13:33
В КДС2 хороший блок PIDP http://www.owen.ru/forum/showthread.php?t=24626&page=2&p=211755&viewfull=1#post211755

Ревака Юрий
23.09.2016, 14:09
Нет не так работает, сейчас поясню: подаётся сигнал больше, клапан немного открывается и например уровень(или какой другой параметр) начинает увеличиваться, ПИД-регулятор старается максимально быстро догнать до уставки, а когда этого не надо, уровень будет доходить до уставки относительно медленно, но не будет лишних телодвижений регулирующего органа управления, надеюсь так понятней7 нУ И ЗОНА НЕЧУСТВИТЕЛЬНОСТИ!

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

Сергей0308
23.09.2016, 14:29
Это наверное больше относится к самому ПИД и регулируется его коэффициентом, я не совсем пока представляю механизм реализации. А вот по гистерезису если задавать его в % от задания и регулятора, и в случае если задание ниже уставки гистерезиса, то прекращать дергать выходы, такой алгоритм уместен?

Не надо, так не надо, я это рассматривал как первый шаг к адаптивному ПИД-регулятору! И могло частично компенсировать неверные настройки ПИД-регулятора!

capzap
23.09.2016, 14:38
Это наверное больше относится к самому ПИД и регулируется его коэффициентом, я не совсем пока представляю механизм реализации. А вот по гистерезису если задавать его в % от задания и регулятора, и в случае если задание ниже уставки гистерезиса, то прекращать дергать выходы, такой алгоритм уместен?

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

Ревака Юрий
23.09.2016, 15:13
как не представляете, компания производит трм-ы с быстрым выходом на уставку

Я про то, как это использовать в макросе, если там нет ПИДа, а только задание уже сформированное с учетом, надо быстро выйти на уставку задание под 100%, а макрос уже пропорционально удлиняет импульс + или -.

Василий Кашуба
23.09.2016, 15:40
Это наверное больше относится к самому ПИД и регулируется его коэффициентом, я не совсем пока представляю механизм реализации. А вот по гистерезису если задавать его в % от задания и регулятора, и в случае если задание ниже уставки гистерезиса, то прекращать дергать выходы, такой алгоритм уместен?
Как я понимаю, Нужно после подачи сигнала на открытие заслонки, контролировать изменение температуры и пока она (температура) увеличивается, но менее уставки, новых управляющих импульсов не давать, если остановилась или падает дать новый управляющий импульс, пропорциональный величине рассогласования. Аналогично в сторону уменьшения.

capzap
23.09.2016, 15:49
мне сложно с телефона описать, вот если не рассматривать преобразование в импульсы,тг вместо пид можно обойтись значениями PV трех итераций и три компонента, в первом текущее показание вычитается из уставки, во втором текущее показание вычитается из предыдущего, в третьем компоненте из суммы текущего значения(условно первая итерация) и третьей итерации вычитается предыдущее значение(вторая итерация) умноженная на два. так вот при любой линейной характеристике третья компонента должна быть равна нулю, как только пройдет нагрев или охлаждение у 3 компоненты появится знак и некое значение, на этой особенности и можно реализовать что просят. А так я реализовывал регулятор складывая эти компоненты и умножая каждую на коэффициент

Сергей0308
23.09.2016, 19:07
Как я понимаю, Нужно после подачи сигнала на открытие заслонки, контролировать изменение температуры и пока она (температура) увеличивается, но менее уставки, новых управляющих импульсов не давать, если остановилась или падает дать новый управляющий импульс, пропорциональный величине рассогласования. Аналогично в сторону уменьшения.

Вы правильно понимаете логику работы, что я предлагал, но управляющий импульс я не предлагал ограничить пропорциональной составляющей!

Сергей0308
23.09.2016, 21:49
обсуждение регулятора напимнило мне о представлениии аборигенами Туамоту принципов работы реактивного двигателя. Ну просто какой то бред. как будто никто никогда полноценного регулятора не писал. если так то жаль сообщество. Очевидно что ПИД-регулятор, предложенный в ОЛ - вряд ли рабочий. Приходится делать по своему. А средства обрамления регулятора- вопрос вкуса и опыта разработчика. Кто у регулятора часами не дежурил, тот не поймёт нюансов. Предложения обсуждения похоже касаются вопросов селекции сигналов, это просто для тех кто постоял у регулятора и непонятно для тех, кому это абстракция.

Напрасно Вы так иронизируете, "Овен" даже не представляет логику работы реверсивного счётчика, купите СИ8 и убедитесь в этом, если в своё время конструктору этого счётчика это объяснили, может он что-то понял! А Вы про ПИД-регулятор с особенностями, Вы что их приборами не пользуйтесь?

Сергей0308
23.09.2016, 23:37
Я про то, как это использовать в макросе, если там нет ПИДа, а только задание уже сформированное с учетом, надо быстро выйти на уставку задание под 100%, а макрос уже пропорционально удлиняет импульс + или -.

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

Сергей0308
29.09.2016, 23:44
Вроде тема подходящая, теперь проблема, извиняюсь по-моему искусственно созданная и на ровном месте: Когда-то сделал макрос, там 16 констант, которые хотелось бы менять из свойств макроса, но не могу их никак подписать(обозначить), разумеется в свойствах макроса не могу их распознать, как изотопы элементов, ни как не отличаются по химическим свойствам, скажите, как их можно распознавать в свойствах макроса???

26753

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

26755

melky
30.09.2016, 00:14
Редактирование макроса. Стать на переменную константы. Там где включаете "Использование в макросе" - Да, появляется поле "Переименование переменных" - <Список имен> - зайти и изменить правое поле "Отображение в макросе"

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

Сергей0308
30.09.2016, 00:41
Редактирование макроса. Стать на переменную константы. Там где включаете "Использование в макросе" - Да, появляется поле "Переименование переменных" - <Список имен> - зайти и изменить правое поле "Отображение в макросе"

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

Если можно поподробней, ну никак не могу переименовать, ничего не пишется и не меняется, прямо заговор какой-то!

petera
30.09.2016, 06:40
Если можно поподробней, ну никак не могу переименовать, ничего не пишется и не меняется, прямо заговор какой-то!

Как-то так

https://www.youtube.com/watch?v=r49hcSxIgb8

Когда выпадает список имен, то мышку в правую колонку и просто пишем название и все.
Вот только сохранение изменений не активно, видимо ОЛ не считает это изменением. По этому подвигал элемент на схеме.

Сергей0308
30.09.2016, 08:42
Как-то так

https://www.youtube.com/watch?v=r49hcSxIgb8

Когда выпадает список имен, то мышку в правую колонку и просто пишем название и все.
Вот только сохранение изменений не активно, видимо ОЛ не считает это изменением. По этому подвигал элемент на схеме.

Спасибо большое, просто шаманство какое-то, где изменить название нашёл, но пока не подвигал один из элементов, как Вы написали ничего не сохранялось, теперь осталось "разнюхать" как импортировать "похожие" макросы(значения констант и имя разное)???

melky
30.09.2016, 09:05
Сергей0308 я ничего не двигал и у меня сохранилось.

Созданием нового макроса из редактора макроса с выставленными новыми параметрами, чтобы ID макроса изменилось.
типа FSTEK_Vasya.tpl FSTEK_Petya.tpl ну и соответственно их потом экспортировать в файл

Сергей0308
30.09.2016, 09:34
Сергей0308 я ничего не двигал и у меня сохранилось.

Созданием нового макроса из редактора макроса с выставленными новыми параметрами, чтобы ID макроса изменилось.
типа FSTEK_Vasya.tpl FSTEK_Petya.tpl ну и соответственно их потом экспортировать в файл

Спасибо, если правильно понял, имя файла макроса должно отличаться, а не имя макроса, вроде у меня так и было(1FSTEK.tpl, 2FSTEK.tpl, 3FSTEK.tpl), попробую ещё раз! Я же сохранял в одной папке!

melky
30.09.2016, 09:43
Именя файлов должны отличаться это ограничение ОС, тем более если вы их в одну папку кидать будете.
Но нельзя просто взять в редакторе, изменить константы и экспортировать в несколько файлов, так как ID макросов для Овен лождик будут идентичны. Надо пересохранять макросы из редактора.
Ну и соответственно желательно потом менять и названия Макросов, иначе они будут одинаковыми в базе, если у вас в проекте их окажется 2, чтобы потом идентифицировать их при выборе для установки в программу.

Сергей0308
30.09.2016, 10:14
Именя файлов должны отличаться это ограничение ОС, тем более если вы их в одну папку кидать будете.
Но нельзя просто взять в редакторе, изменить константы и экспортировать в несколько файлов, так как ID макросов для Овен лождик будут идентичны. Надо пересохранять макросы из редактора.
Ну и соответственно желательно потом менять и названия Макросов, иначе они будут одинаковыми в базе, если у вас в проекте их окажется 2, чтобы потом идентифицировать их при выборе для установки в программу.

Спасибо, попробуем! Но как-то очень заморочено, делать людям что ли нечего, чего проще изменил имя вот тебе и другой макрос, нет всё как обычно через то место, через которое в России всё обычно и делается!

Ревака Юрий
02.10.2016, 21:30
Уважаемые коллеги! Перенес Ваши последние сообщения в соседнюю тему. Здесь хотелось бы видеть обсуждение конкретных макросов. Спасибо за понимание.

energvk
14.10.2016, 18:19
В начале макрос, который упаковывает стандартные дата_время в UNIX формат ( в кодесис это формат DATA_AND_TIME).
26324
На выходе собственно упакованное DT и на двух дополнительных выходах - младший и старший WORD этого самого DT.
Выход DT можно использовать в самом ПР, например расчитывать интервалы для событий реального времени, например для вкл/выкл по расписанию. Ведь DT можно складывать, вычитать и сравнивать между собой, т.к. любое DT это всего лишь число секунд с 0 часов 1 января 1970г.
К выходам Lo_wDT и Hi_wDT нужно подключать две сетевые переменные с последовательными адресами, тогда панель или скада или ПЛК смогут прочитать DT как переменную DWORD.
26323
ВНИМАНИЕ.
Т.к. в ПР не поддерживается работа со знаковыми целыми числами, макрос будет корректно работать только с даты "эры Unix" - с 0 часов 1 января 1970г. Зато не будет проблемы 2038г, когда 19 января 2038 многие системы сойдут сума и время у них потечет вспять. У нас, в макросе, эра Unix закончится 5 февраля 2106г.:rolleyes:

Теперь макросы, которые позволяют использовать в программах это самое Unix-время.
26325

26315

ЗЫ.
Пришлось пост разбить на части. Больше 8 картинок прикрепить нельзя:confused:

То ли лыжи не едут то ли я. petera рассуди. Когда были написаны макросы - тестил в эмуляторе на СПК и ПЛК - всё было нормально. Сегодня залил проекты в реальные ПР и СПК - на выходе и DWORD_TO_DT и DTU.Split получаю 2058 год, месяц и день тоже неправлильные (точно не помню какие). Попробовал функцию извлечения года (petera ранее выкладывал на ПЛК) - то же самое. Вбиваю реальные значения даты-времени (также из фукции от petera) - получаю нормальные значения. Уже не знаю куда копать...

petera
14.10.2016, 22:23
То ли лыжи не едут то ли я. petera рассуди. Когда были написаны макросы - тестил в эмуляторе на СПК и ПЛК - всё было нормально. Сегодня залил проекты в реальные ПР и СПК - на выходе и DWORD_TO_DT и DTU.Split получаю 2058 год, месяц и день тоже неправлильные (точно не помню какие). Попробовал функцию извлечения года (petera ранее выкладывал на ПЛК) - то же самое. Вбиваю реальные значения даты-времени (также из фукции от petera) - получаю нормальные значения. Уже не знаю куда копать...

Для ПР см. описание http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineMacroes/DATE_TIME/UNIX_TIME.pdf

**- т.к. в программируемых реле значение года может принимать значение от 00 до
99, то на вход макроса «Год» необходимо подавать значение с добавлением 2000,
чтоб на входе иметь полный формат года 2016
А в симуляторе, до недавнего времени, сервисная переменная Год была четырехзначная

energvk
15.10.2016, 00:03
Да, действительно, осенило недавно, проверил - с +2000 работает

melky
15.10.2016, 00:49
Очередная Алярма на 32 бита для Динамического текста в экране.

Вдохновитель petera, но в его Аварии_2 закралась ошибка....

Вариант с фиксацией наверное извращение, хотя может кому пригодится.

petera
15.10.2016, 01:18
Очередная Алярма на 32 бита для Динамического текста в экране.

Вдохновитель petera, но в его Аварии_2 закралась ошибка....

Вариант с фиксацией наверное извращение, хотя может кому пригодится.

Ткните носом в ошибку, пожалуйста!

melky
15.10.2016, 08:02
petera я не знаю какая из версий у меня, файл назывался Аварии 2. А ошибка проявляется при поступлении несколькиз подряд идущих ошибок.
я код 15 и 7 давал при проверке.

energvk
17.10.2016, 10:29
Для ПР см. описание http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineMacroes/DATE_TIME/UNIX_TIME.pdf

А в симуляторе, до недавнего времени, сервисная переменная Год была четырехзначная


Да, действительно, осенило недавно, проверил - с +2000 работает

Теперь почему то время считает неправильно.

melky
17.10.2016, 10:47
energvk и что вы хотите добиться умножая на 65535 ? может надо 1 добавить ко второму операнду ? на 65536 умножать

Ревака Юрий
17.10.2016, 10:59
Теперь почему то время считает неправильно.

Вы сейчас используете макрос с онлайн базы или от petera?

energvk
17.10.2016, 11:05
Ну вообще я хотел склеить 2 WORD в DWORD. Неправильно, да?

energvk
17.10.2016, 11:08
Вы сейчас используете макрос с онлайн базы или от petera?

Макрос от petera использую

Ревака Юрий
17.10.2016, 11:11
Ну вообще я хотел склеить 2 WORD в DWORD. Неправильно, да?

А разве выход DT это не тоже самое?

energvk
17.10.2016, 11:14
energvk и что вы хотите добиться умножая на 65535 ? может надо 1 добавить ко второму операнду ? на 65536 умножать

melky, спасибо! Помогло, действительно нужно было умножить на 65536

energvk
17.10.2016, 11:18
А разве выход DT это не тоже самое?

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

melky
17.10.2016, 14:47
как сделать самоподстраивающийся макрос ?

На примере роллет чтобы было проще. Вот открыты роллеты полностью, есть сигнал с концевика "открыто", даем команду "закрыть" и ждем N секунд (у меня 25 сек), а роллета закрылась допустим за 22 сек.
Как эти 22 сек потом записать в переменную N чтобы при очередных махинациях мы ждали уже 22 сек. ???

Секунды взял для простоты, вообще надо будет мс измерять...
Может мс это круто, учитывая еще и время цикла, хотя бы 10-тые...

rovki
17.10.2016, 16:18
Так если концевики останутся ,то это не к чему .А так сделать не сложно ...

melky
17.10.2016, 16:39
rovki ну роллету я привел образно, чтобы проще было понимать...
а то мне тут генератор попался капризный, не хочет запускаться горячий без закрытия заслонки, единственный сигнал, который могу с него снять это наличие 220В (через схемку контроля).
если заслонку держать закрытой он тоже заводиться не хочет.

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

rovki
17.10.2016, 17:18
Да нет проблем ...только кто скажет первый раз что заслонка закрыта\открыта если нет концевика .Ну или замерьте как то время ,а потом уточните .Но только такая система работает при постоянном моменте ,а то у вас следячка только и будет делать ,что подбирать новое значение времени ...

melky
17.10.2016, 17:52
так мне и надо, чтобы система не следила постоянно.

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

Например попытка 1, неудачная, время было 1,2 сек. (шаг добавления например 0,2 сек)
Увеличиваем время до 1,4, попытка, неудачная
Увеличиваем время до 1,6, попытка, удачная - сохранили это время.
При следующих попытках сразу начинаем с 1,6

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

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

rovki
17.10.2016, 18:26
Кто будет говорить что удачно ,концевик или глаз ? остальное просто ...

melky
17.10.2016, 22:53
только наличие 220В если запустиля.

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

rovki
17.10.2016, 23:05
Счетчик который считает от блинка тики (0,01 период ,например) от момента пуска ,до момента появления напряжения и сохраняет это значение при выключении питания .Насчитанное число является уставкой для таймера .Если есть несколько пусков без выключения питания ,то данные складываются в стек и усредняются в нем и сохраняются в энергонезависимой переменной .После включения питания уставка сохраненная переписывается в таймер .В таком случае счетчик делается не энергонезависимый ....

melky
17.10.2016, 23:38
смысл понят, только есть поправочка - неизвестно запустился или нет, пока не бросишь стартер и не закроешь заслонку.... вот такой он бывает "Фу Баг"

melky
18.10.2016, 12:22
У ПР200 ограничение 12 регистров как говорят, но группой с него читать точно можно. Я пока все не подключил в SCADA чтобы проверить, если действительно есть ограничение то 20 надо будет разбить на 2 запроса со стороны мастера.

melky
18.10.2016, 12:53
Упс, у вас ПР200 мастером куда-то отправляет ? так не знаю, заметил тоже, что галочка "Груповой запрос" неактивна.

игорь68
25.10.2016, 16:37
Из опыта эксплуатации.
Система приточной вентиляции собрана на TAChenta. Так вот у меня есть обратный сигнал 0-10 V с клапана( данфос). Сама схема для меня закрыта. Но из общения с программистом выяснил. У меня считают время от полного открытия до полного закрытия и этими данными оперирует PID. И если по каким то причинам клапан тормозит то я получаю сообщение Рассогласование Клапана. А сигнал 0-10 вольт используют для индикации в скаде. Как то так.

игорь68
15.11.2016, 12:35
Юрий добрый день. Что то не могу сообразить как сделать макрос.
Делаю макрос для включения и отключения электродвигателя.
1) вход -Реле контроля фаз = 1 фаза есть /0 фазы нет_сообщение Авария Реле Фаз
2) вход -Автомат защиты двигателя=1 автомат включен/ 0 автомат выключен_сообщение Авария автомата.
3) вход -С работал магнито-пускатель=1 сработал/ 0 не сработал(обрыв катушки пускателя)_сообщение Авария магнито пускателя.
4) вход -Подтверждение работы двигателя( Таймер задержки на получение сигнала с датчика ( реле протока для насоса или реле давления для масло станции ))=1 работает / Если чере ХХХ секунд 0 не работает _сообщение АВАРИЯ.
Как мне контролировать что пускатель сработал. А то у меня что то авария висит.
То есть пока я не нажму кнопку ПУСК у меня сообщение что авария пускателя.

Ревака Юрий
15.11.2016, 12:46
Юрий добрый день. Что то не могу сообразить как сделать макрос.
Делаю макрос для включения и отключения электродвигателя.
1) вход -Реле контроля фаз = 1 фаза есть /0 фазы нет_сообщение Авария Реле Фаз
2) вход -Автомат защиты двигателя=1 автомат включен/ 0 автомат выключен_сообщение Авария автомата.
3) вход -С работал магнито-пускатель=1 сработал/ 0 не сработал(обрыв катушки пускателя)_сообщение Авария магнито пускателя.
4) вход -Подтверждение работы двигателя( Таймер задержки на получение сигнала с датчика ( реле протока для насоса или реле давления для масло станции ))=1 работает / Если чере ХХХ секунд 0 не работает _сообщение АВАРИЯ.
Как мне контролировать что пускатель сработал. А то у меня что то авария висит.
То есть пока я не нажму кнопку ПУСК у меня сообщение что авария пускателя.

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

twit
07.12.2016, 22:46
Юрий, для своего проекта потребовался макрос сохраняющий значение с возможностью безусловного сброса/останова сохранения значения. Допилил имеющийся fSAVE, и получил fSAVE_res. есть смысл добавить в базу?

Павел Братковский
08.12.2016, 06:55
есть смысл добавить в базу?

выкладывайте на форум.......

twit
08.12.2016, 08:41
Хорошо. Мне потребовался для использование в звене интегратора. ограничение интегральной составляющей.

Ревака Юрий
08.12.2016, 09:55
Юрий, для своего проекта потребовался макрос сохраняющий значение с возможностью безусловного сброса/останова сохранения значения. Допилил имеющийся fSAVE, и получил fSAVE_res. есть смысл добавить в базу?

Добрый день! Переместил сообщения в данную ветку, Ваш макрос будет прикреплен на первой странице, с ссылкой на описание применения.

twit
08.12.2016, 10:39
Спасибо, надо было сразу в эту ветку выложить. виноват...

Алексей Геннадьевич
09.12.2016, 07:34
Хорошо. Мне потребовался для использование в звене интегратора. ограничение интегральной составляющей.
Для этих целей испльзую F_mem и F_memR (со сбросом). Просто вложил в вашу программу.

Ревака Юрий
10.01.2017, 11:40
Так как макрос по управлению КЗР на данный момент не готов к выгрузке в онлайн базу, выложу файл с тем что есть на текущий момент, возможно при участии пользователей и тестировании на реальных объектах, быстрее появится законченное решение. Проект выкладываю в виде файла owl для ПР200-24.2, если необходимо с него можно выгрузить отдельно макрос. В файле есть комментарии по блокам, если возникнут вопросы задавайте.

Алексей Геннадьевич
12.01.2017, 12:57
28691
Небольшая переделка модуля.

Алексей Геннадьевич
13.01.2017, 15:00
Ревака Юрий - переработал ваш модуль "Регистрация времени выдачи импульсов "

Соображения:
1) считать лучше в целочисленном формате - быстрее работает.
2) дискретность равна времени исполнения цикла программы, работа в диапазоне 32битного числа. (хватит с запасом на все).
3) введена задержка на разгон привода - иначе при работе короткими импульсами в одну сторону и возвратом пост. вращением получим большую ошибку.

Проверяйте.

Ревака Юрий
13.01.2017, 15:34
Ревака Юрий - переработал ваш модуль "Регистрация времени выдачи импульсов "

Соображения:
1) считать лучше в целочисленном формате - быстрее работает.
2) дискретность равна времени исполнения цикла программы, работа в диапазоне 32битного числа. (хватит с запасом на все).
3) введена задержка на разгон привода - иначе при работе короткими импульсами в одну сторону и возвратом пост. вращением получим большую ошибку.

Проверяйте.

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

Алексей Геннадьевич
17.01.2017, 14:32
Спасибо за проделанную работу, у меня сейчас проверить возможности нет, надеюсь пользователи кто нуждается в данном макросе, смогут протестировать и дать обратную связь.
Для тестирования нужно знать что задумано, и примерный принцип реализации.

Макрос управления задвижкой/заслонкой с определением положения по времени и концевиками крайних положений.
Делать универсальный думаю не стоит.

dim1987
31.01.2017, 15:57
Всем хорош макрос задвижка, но есть ли готовые аналоги для codesys?

melky
31.01.2017, 16:02
dim1987 так нарисуйте его в CDS, там нет явных обратных связей, должен заработать будет, если понравился так.

dim1987
31.01.2017, 16:18
Если никто не поделится, буду перерисовывать)) Но вдруг кто то делал такой блок.

Ревака Юрий
31.01.2017, 16:39
Если никто не поделится, буду перерисовывать)) Но вдруг кто то делал такой блок.

Для codesys, что-то попадалось, я помню, когда занимался этим вопросом, смотрел как раз из него, спросите в разделе codesys.

ALEXBUY
31.01.2017, 19:31
Для тестирования нужно знать что задумано, и примерный принцип реализации.

Макрос управления задвижкой/заслонкой с определением положения по времени и концевиками крайних положений.
Делать универсальный думаю не стоит.

а этот макрос только для приводов с 3-х позиционным регулированием?

Алексей Геннадьевич
31.01.2017, 20:14
Всем хорош макрос задвижка, но есть ли готовые аналоги для codesys?


dim1987 так нарисуйте его в CDS, там нет явных обратных связей, должен заработать будет, если понравился так.
Василий Кашуба рекомендует поставить этот модуль формирователя импульсов: http://www.owen.ru/forum/showthread.php?t=7023&page=487&p=235103&viewfull=1#post235103
А в нём обратные связи есть.

Алексей Геннадьевич
31.01.2017, 20:24
а этот макрос только для приводов с 3-х позиционным регулированием?
нет. Для аналогового. Пока для тестирования.

Borserg
31.01.2017, 23:15
С первой страницы многие макросы "не грузятся". Вместо них открывается пустая страница:

29050

Хочу внести скромную лепту в библиотеку макросов.

1. Вариант счетчика моточасов:

29051

Вход I1 - запуск счетчика (синхронно с, например, двигателем агрегата).
Счетчик CTN1 (с сохранением состояния) считает минутные импульсы и обнуляется каждый час.
Счетчик CTN2 (без сохранения состояния) также считает минутные импульсы, подает их количество на выход Q2 (время текущего сеанса работы агрегата в минутах) и обнуляется при каждом новом запуске.
Счетчик CTN3 (с сохранением состояния) считает часовые импульсы и подает их количество на выход Q1 (общие моточасы).

Иногда, например после обновления программы, бывает полезно записать в счетчик то количество моточасов, которое было перед обновлением.
Для этого предусмотрены вход I2 (команда "Запись") и вход I3 для записываемого количества часов (записываются в счетчик CTN3 при помощи блока "Write to FB").

2. "Сервисный" счетчик:

29053

Многое оборудование имеет так называемый "межсервисный интервал" - периодичность проведения технического обслуживания.
Счетчик считает часы "в обратном направлении" от значения, подаваемого на вход I2.
Т.к. возможна "просрочка" обслуживания, то на выход Q1 оставшиеся часы передаются в виде значения типа FLOAT (может быть отрицательным).
Со входа I3 можно "сбросить" счетчик. Счетчики CTN1 и CTN2, как и в предыдущем макросе, с сохранением состояния.
С выхода Q2 получаем сигнал предупреждения, когда до ТО осталось менее, скажем, 200 часов.
С выхода Q3 можно получить сигнал блокировки работы оборудования, когда интервал обслуживания "просрочен" более, чем на, например, 200 часов.

При желании точность отсчета обоих счетчиков можно увеличить, настроив блок BLINK на генерацию секундных импульсов, а константе на входе блока EQ присвоить значение 3600. Но в этом случае число импульсов, подсчитанных счетчиком CTN2 в первом макросе, перед подачей на выход Q2 необходимо разделить на 60. Правда максимальная продолжительность текущего сеанса работы в минутах, измеренная счетчиком, будет ограничена значением 1092 (немногим более 18 часов).

Borserg
01.02.2017, 09:30
Немного подумал и решил, что счетчики можно упростить.

Счетчик моточасов:

29065

"Сервисный" счетчик:

29066

Счетчики CT в макросах - с сохранением состояния.
Изменение точности отсчета - параметрами блоков BLINK и CT и добавлением операции деления на 60 в счетчике моточасов.

melky
01.02.2017, 09:58
а если немного поэкспериментировать, то вы упретесь в ограничение счетчика CTN в 16 бит, отсюда и делались счетчики на 32 бита из простых элементов...

Borserg
01.02.2017, 10:23
а если немного поэкспериментировать, то вы упретесь в ограничение счетчика CTN в 16 бит, отсюда и делались счетчики на 32 бита из простых элементов...

Думаю, в большинстве случаев возможностей 16-битного счетчика (65 535 часов) должно хватить. По крайней мере для того оборудования, с которым я имею дело. После такого "пробега" обычно делается капитальный ремонт. А там можно и заново отсчет начать :)

А можно и макрос немного дополнить и получить полноценный 32-битный счетчик моточасов (на выходе данные типа FLOAT):

29067

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

Ревака Юрий
01.02.2017, 17:55
С первой страницы многие макросы "не грузятся". Вместо них открывается пустая страница:

29050



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

Алексей Геннадьевич
01.02.2017, 19:41
Думаю, в большинстве случаев возможностей 16-битного счетчика (65 535 часов) должно хватить. По крайней мере для того оборудования, с которым я имею дело. После такого "пробега" обычно делается капитальный ремонт. А там можно и заново отсчет начать :)

А можно и макрос немного дополнить и получить полноценный 32-битный счетчик моточасов (на выходе данные типа FLOAT):
Поясню насчёт типов данных в ПР : "внутри" используется 32х разрядный INT. Float также имеет 32 разряда, только арифметика в 4 раза медленнее.

32х разрядный реверсивный счётчик с предустановкой имеется в моём макросе задвижки.
Так-что можете не заморачиваться и считать наработку в секундах. У ПР114 (с часами) и ПР200 есть вывод секунд.

Макросы выкладывают "завернув" их в программу(.OWL сайт понимает, tpl-нет) , или заархивировав ZIP.

Borserg
01.02.2017, 23:51
Поясню насчёт типов данных в ПР : "внутри" используется 32х разрядный INT. Float также имеет 32 разряда, только арифметика в 4 раза медленнее.

Не совсем понял: почему тогда сетевые переменные типа INT занимают один регистр 16 бит, а FLOAT - два, идущих подряд (32 бита)?


32х разрядный реверсивный счётчик с предустановкой имеется в моём макросе задвижки.
Так-что можете не заморачиваться и считать наработку в секундах. У ПР114 (с часами) и ПР200 есть вывод секунд.

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


Макросы выкладывают "завернув" их в программу(.OWL сайт понимает, tpl-нет) , или заархивировав ZIP.

Прилагаю .OWL.

29085

Павел Братковский
02.02.2017, 05:44
Не совсем понял: почему тогда сетевые переменные типа INT занимают один регистр 16 бит, а FLOAT - два, идущих подряд (32 бита)?

внутри программы у целых больше диапазон, чем у сетевых переменных в 2 раза

Сергей0308
02.02.2017, 06:25
Не совсем понял: почему тогда сетевые переменные типа INT занимают один регистр 16 бит, а FLOAT - два, идущих подряд (32 бита)?



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



Прилагаю .OWL.

29085

Вам правильно сказали что внутри ОЛ тип данных INT32, на самом деле это UINT32, при выводе в сетевой переменной обрезается до UINT16, т. е. 16 младших бит!

29086

melky
02.02.2017, 08:44
потому что один регистр в modbus это одно СЛОВО, вот и 16 бит. а float в Modbus это два идущих подряд регистра.
Вам нужно двойное слово ?, разделите в программе uint32 на два регистра а в scada склеивайте.

Сергей0308
02.02.2017, 08:51
потому что один регистр в modbus это одно СЛОВО, вот и 16 бит. а float в Modbus это два идущих подряд регистра.
Вам нужно двойное слово ?, разделите в программе uint32 на два регистра а в scada склеивайте.

Что там делить, сдвиг вправо на 16, вот вам и второй регистр!

melky
02.02.2017, 09:18
Сергей0308 я не о принципах и способах деления писал... ну слово "делить" немного в другом контексте применено....

verpup
18.02.2017, 12:52
Не могу разобраться, помогите плз
Использую макрос для датчика сопротивления Pt 1000 и в нем надо задавать сопротивление провода.
Датчик трёхпроводной, длина провода порядка 10м
Сопротивление провода примерно 4 Ом
Но сданным показателем прибор ПР 200 выдаёт некорректную температуру
Поигрался со значениями сопротивления в программе и наиболее приближенные к реальности значениея ПР выдает при значении 10 Ом
Что не так?

melky
18.02.2017, 12:56
китайский прибор измерения сопротивления
калибровка аналогового входа (не знаю по сопротивлению калибруется или нет)

Сергей0308
18.02.2017, 13:04
Датчик температуры подключается по двум проводам, для компенсации должно учитываться полное сопротивление проводов, это получается петля, если датчик температуры закоротить!

verpup
18.02.2017, 13:18
Да, я подключаю по двум проводам. Не понял про петлю

Сергей0308
18.02.2017, 13:23
Да, я подключаю по двум проводам. Не понял про петлю

Вы не понятно написали сопротивление одного провода Вы измеряете или суммарное сопротивление двух проводов?

verpup
18.02.2017, 22:26
Измерял сопротивление провода двумя разными тестерами, китайскими правда, по схеме (рис 2) между 1 и 3 проводами, оба показывают плавающее значение в районе 4 Ома (2 метра). Сопротивление самого датчика ств стандартам при разных температурах http://www.zamer.ru/files/files/all_tr.pdf, значит он в норме.

Ошибки в макросе исключены?
Есть ли описание того, как юстировать датчики?

спасибо

Сергей0308
18.02.2017, 23:55
Измерял сопротивление провода двумя разными тестерами, китайскими правда, по схеме (рис 2) между 1 и 3 проводами, оба показывают плавающее значение в районе 4 Ома (2 метра). Сопротивление самого датчика ств стандартам при разных температурах http://www.zamer.ru/files/files/all_tr.pdf, значит он в норме.

Ошибки в макросе исключены?
Есть ли описание того, как юстировать датчики?

спасибо

Для Pt1000 ±4 Ом это примерно ±1°C, если из-за этого весь сыр-бор, не теряйте зря время!
И чтобы макросы проверить при наличии такой замечательной таблицы достаточно и симулятора:

29620

Ревака Юрий
19.02.2017, 12:41
Измерял сопротивление провода двумя разными тестерами, китайскими правда, по схеме (рис 2) между 1 и 3 проводами, оба показывают плавающее значение в районе 4 Ома (2 метра). Сопротивление самого датчика ств стандартам при разных температурах http://www.zamer.ru/files/files/all_tr.pdf, значит он в норме.

Ошибки в макросе исключены?
Есть ли описание того, как юстировать датчики?

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

Сергей0308
21.02.2017, 01:07
Вроде тема подходящая, в процессе создания очереди для клапанов(была такая тема) получился любопытный макрос, даже не знаю как обозвать, короче и матрица памяти и стек целочисленный! Целочисленное значение можно писать в одну из 32 ячеек памяти(0-31), можно сдвигать(с реверсом), и читать из одной из ячеек по выбору, короче - не пойми что вышло! Сильно не ругайте!

29660

29661

Алексей Геннадьевич
21.02.2017, 07:31
Вроде тема подходящая, в процессе создания очереди для клапанов(была такая тема) получился любопытный макрос, даже не знаю как обозвать, короче и матрица памяти и стек целочисленный! Целочисленное значение можно писать в одну из 32 ячеек памяти(0-31), можно сдвигать(с реверсом), и читать из одной из ячеек по выбору, короче - не пойми что вышло! Сильно не ругайте!

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

Сергей0308
21.02.2017, 08:24
Сергей, стек - штука хорошая, вот только применять его следует крайне осторожно!
У стека есть такая поганая особенность- он или переполняется, или вылетает через "дно" при малейшем сбое.

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

SF_Axel
21.02.2017, 19:03
Здравствуйте. Может где уже такое и было, а только не нашел.
Если вкратце, при написании программы для вентустановки с водяным нагревателем, понадобилось (по моей логике) управлять 3-ходовым клапаном в зависимости от режима. Т.е. при прогреве открывать полностью (или по датчику обмерзания), в дежурном режиме поддерживать небольшую мощность (и все равно следить чтобы не разморозилось) и в рабочем режиме передавать на аналоговый выход сигнал с ПИД-регулятора. Готового решения в базе макросов не нашел, пришлось изобретать по ходу дела )
Что получилось: получился небольшой макрос, с 5 входами и 1 выходом. Первый вход (№входа, целочисленное) служит для указания, значение какого из других входов (с плавающей точкой) передавать на выход. Если на входе "№ входа" у нас 0, или число большее 4, то на выходе не будет ничего. Сигнал на входе "№ входа" равен 1, то на выход будет передаваться значение входа "Вход 1". Если значение "№ входа" будет равно 2, то на выходе будет значение входа "Вход 2" и так далее. Мда. Масло масленное ) Но суть, думаю, понятна. Не знаю, пригодится кому или нет - но как по мне, такой макрос был бы не лишним в базе.

P.S. Кстати пришла сейчас мысль... Можно ведь использовать для переключения датчиков температуры. Т.е. по сигналу генератора выводить на экран "Датчик 1", "Датчик 2" и т.д., и по тому же выходу счетчика записывать в переменную, которую выводим на экран, для отображения показаний датчиков, нужное значение.

AAA1
21.02.2017, 19:57
P.S. Кстати пришла сейчас мысль... Можно ведь использовать для переключения датчиков температуры. Т.е. по сигналу генератора выводить на экран "Датчик 1", "Датчик 2" и т.д., и по тому же выходу счетчика записывать в переменную, которую выводим на экран, для отображения показаний датчиков, нужное значение.
Совершенно верно, очень удобно. Я делал таким образом через аналоговый выход ПР на ИТП-11. Температуры с разных датчиков по очереди отображаются на индикаторе.

Василий Кашуба
08.03.2017, 15:07
Предлагаю простой, но эффективный П_регулятор для дискретных сервоприводов.

Эдуард_Н
08.03.2017, 16:24
Предлагаю простой но эффективный П_регулятор для дискретных сервоприводов.

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

Сергей0308
08.03.2017, 23:16
Предлагаю простой но эффективный П_регулятор для дискретных сервоприводов.

Я бы оконечную часть сделал как-то так:

29939

Василий Кашуба
08.03.2017, 23:20
Я бы оконечную часть сделал как-то так:

29939
Так я уже делал в БУСП.
29940

Сергей0308
08.03.2017, 23:49
Тогда я выкладываю свой мультиплексор и демультиплексор на 32 входа/выхода! Раньше выкладывали подобное, но чтобы были сделаны так "извращённо" я не видел, хотя не исключаю может у кого и есть в загашнике, но не выкладывает!
Короче, как-то так:

29941

Сергей0308
09.03.2017, 00:02
Так я уже делал в БУСП.
29940

Решили для разнообразия по другому сделать? Напоминает сцену из "Белое солнце пустыни" : опять икра, щас бы хлебушка!

alexm32
09.03.2017, 21:03
Предлагаю простой но эффективный П_регулятор для дискретных сервоприводов.
Вариант для аналоговых сервоприводов

Сергей0308
09.03.2017, 21:35
Вариант для аналоговых сервоприводов

У Вас какой-то специфический получился с двойным преобразованием, сначала аналоговые сигналы преобразуются в дискретное больше-меньше, затем обратный процесс, дискретное больше-меньше в аналоговый сигнал, если не секрет, к чему такие "мучения"???

alexm32
10.03.2017, 09:54
У Вас какой-то специфический получился с двойным преобразованием, сначала аналоговые сигналы преобразуются в дискретное больше-меньше, затем обратный процесс, дискретное больше-меньше в аналоговый сигнал, если не секрет, к чему такие "мучения"???
Клапан позиционируется согласно сигнала на входе, когда система уравновесилась, это значение сохраняется в счетчике. И вообще только начинаю пробовать ПР, так-что, как получилось...

Сергей0308
10.03.2017, 11:34
Клапан позиционируется согласно сигнала на входе, когда система уравновесилась, это значение сохраняется в счетчике. И вообще только начинаю пробовать ПР, так-что, как получилось...

Вот не так давно обсуждали: http://www.owen.ru/forum/showthread.php?t=17153&page=229

29964

Почти готовый П-регулятор!
Вот самый простейший П-регулятор:

29998

Тоже самое с уставкой и зоной пропорциональности:

30001

Василий Кашуба
12.03.2017, 11:21
Попробовал KZR из сетевой базы. Возник вопрос. Он правильно работает?
29990
Я дал задание +50.

AAA1
12.03.2017, 12:04
Попробовал KZR из сетевой базы. Возник вопрос. Он правильно работает?
29990
Я дал задание +50.

Сугубо имхо. Когда, дай бог, появятся в ОЛ вменяемые регуляторы, у производителя продажи вырастут в десятки раз. Я как дилетант на форуме вижу, что производителю на кадры по боку... Уважаемый Овен, Вы бы, как пример, Реваке как минимум памятник поставили, а лучше премию дали.

Сергей0308
12.03.2017, 20:27
Сугубо имхо. Когда, дай бог, появятся в ОЛ вменяемые регуляторы, у производителя продажи вырастут в десятки раз. Я как дилетант на форуме вижу, что производителю на кадры по боку... Уважаемый Овен, Вы бы, как пример, Реваке как минимум памятник поставили, а лучше премию дали.

Так можно самому нарисовать, тогда если чё не так работает и обижаться не на кого, выше 1/3 ПИД-регулятора выложил! Да и много регуляторов уже выкладывалось, есть где посмотреть, сравнить! С адаптивными ПИД-регуляторами согласен пока проблематично, а обычные нарисовал и дело с концом, можно и под свои нужды заострить да и всегда приятней самому сделать, зачем здесь выжидать!

Ревака Юрий
13.03.2017, 10:06
Попробовал KZR из сетевой базы. Возник вопрос. Он правильно работает?
29990
Я дал задание +50.

Добрый день! А когда это он в сетевой базе появился? данный макрос был выгружен как болванка для дальнейшей доработки под свои задачи, на него и описание только в виде комментариев внутри макроса.
Из скриншота я вижу что выбран режим работы по концевым выключателям, в этом режиме изначально предполагается, что пользователь вручную производит юстировку задвижки и принимает "0" и "100", и далее от этих значений уже идет автоматическое вычисление положения задвижки.

Василий Кашуба
13.03.2017, 10:11
Добрый день! А когда это он в сетевой базе появился? данный макрос был выгружен как болванка для дальнейшей доработки под свои задачи, на него и описание только в виде комментариев внутри макроса.
Извините, уже не помню от куда скачал. А по существу вопроса, он правильно работает?

rovki
13.03.2017, 10:14
Болванка может работать по разному ;)

Ревака Юрий
13.03.2017, 10:25
Извините, уже не помню от куда скачал. А по существу вопроса, он правильно работает?

В режиме симуляции работал правильно, Вы как его хотите использовать? Смысл данного макроса был в универсальном использовании: 0-чисто расчетное значение по длительности выданных импульсов в ту или иную сторону 1-используется резистивный датчик положения 2-по концевым выключателям. Так же необходимо подстраивать длительность импульсов минимальную и максимальную под конкретную задвижку. Для этого макроса необходим внешний регулятор, который в зависимости от ошибки регулирования будет выдавать задание и сигнал направления, KZR выдает импульсы пропорциональные заданию, ограниченные мин. длительностью и макс. длительностью. Это кратко по данному макросу.

Василий Кашуба
13.03.2017, 10:30
Я про другое, если задание +50, положение задвижки начинает уходить в минус, а не в плюс.

Ревака Юрий
13.03.2017, 10:59
Я про другое, если задание +50, положение задвижки начинает уходить в минус, а не в плюс.

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

Василий Кашуба
13.03.2017, 11:59
Попробуйте поменять переменную знак, т.к. регулятор подразумевается внешний, необходима начальная привязка. Для быстрого обнуления текущего положения вход Уст.<0>.
Знак не менял, а обнулять обнулял. После обнуления всё равно считает в минус. Сейчас попробую знак поменять.

Ревака Юрий
13.03.2017, 12:30
Знак не менял, а обнулять обнулял. После обнуления всё равно считает в минус. Сейчас попробую знак поменять.

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

Василий Кашуба
13.03.2017, 13:17
Юрий, меня заинтересовала формула, по которой вы вычисляете мин, макс и ноль позиционирования. Вы можете её пояснить?
30014

Ревака Юрий
13.03.2017, 13:25
Юрий, меня заинтересовала формула, по которой вы вычисляете мин, макс и ноль позиционирования. Вы можете её пояснить?
30014

Если Вы про выделенное желтым цветом, это не мое:rolleyes:

Василий Кашуба
13.03.2017, 13:28
Если Вы про выделенное желтым цветом, это не мое:rolleyes:
Но это находится в макросе KZR.
Кто тогда автор?

Ревака Юрий
13.03.2017, 14:16
Но это находится в макросе KZR.
Кто тогда автор?

Я понял, тема начиналась тут http://www.owen.ru/forum/showthread.php?t=25068&p=233424&viewfull=1#post233424, данный вариант предложил Алексей Геннадьевич http://www.owen.ru/forum/member.php?u=56349, там в теме есть его комментарии.

Алексей Геннадьевич
13.03.2017, 15:03
Но это находится в макросе KZR.
Кто тогда автор?
Это - проработка. Смысл - определение среднего числа циклов за 1 секунду, т.к. в зависимости от программы может быть разное время цикла.
В результате сделал свой макрос (пока он в работе не проверялся), который мы с вами уже обсуждали.

Эдуард_Н
13.03.2017, 15:42
Нельзя сделать так что бы можно было скачать одним файлом все макросы находящиеся в шапке темы?

Ревака Юрий
13.03.2017, 16:01
Нельзя сделать так что бы можно было скачать одним файлом все макросы находящиеся в шапке темы?

Там пока проблема и по отдельности их скачать, пока еще не восстановлены побитые ссылки.

Эдуард_Н
13.03.2017, 16:17
А чего Вы не добавите макрос управления КЗР в онлайн базу?

Ревака Юрий
13.03.2017, 16:43
А чего Вы не добавите макрос управления КЗР в онлайн базу?

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

petera
28.03.2017, 16:54
Известно, что если выполнить преобразование (-1) TO INT, то получим 4 294 967 295 (минус единица в дополнительном коде). Тут все пока верно, но (4 294 967 295) TO FLOAT не даст -1, а получим тоже число 4 294 967 295!
С этим целыми числами в дополнительном коде, что-то надо делать.
Предлагаю макрос TO_FLOAT, который учитывает, что целые отрицательные числа представлены в дополнительном коде. И выполняет преобразования во всем диапазоне представления целых 32 битных чисел.

https://www.youtube.com/watch?v=H8AfGvEeLtk

Сергей0308
28.03.2017, 22:06
Известно, что если выполнить преобразование (-1) TO INT, то получим 4 294 967 295 (минус единица в дополнительном коде). Тут все пока верно, но (4 294 967 295) TO FLOAT не даст -1, а получим тоже число 4 294 967 295!
С этим целыми числами в дополнительном коде, что-то надо делать.
Предлагаю макрос TO_FLOAT, который учитывает, что целые отрицательные числа представлены в дополнительном коде. И выполняет преобразования во всем диапазоне представления целых 32 битных чисел.

https://www.youtube.com/watch?v=H8AfGvEeLtk

По моему не INT, а DINT! INT он неправильно преобразует, а то кто ему INT подсунет и будет сильно разочарован!

30298

Одного только пока не могу понять, где такое можно использовать?

Sel
29.03.2017, 21:47
поправьте в шапке "3.Макрос управления освещением из четырех точек описание"
описание уходит не на ту тему

JohnV
30.03.2017, 08:37
Проблема с макросом датчика температуры pt1000.
Если датчик присоединить при выключенном приборе то отображение идёт правильно всё работает. Но если датчик присоединить при включенном приборе то показывает совсем не то, а вернее ничего. Можно ли как то изменить?

Ревака Юрий
30.03.2017, 08:51
Проблема с макросом датчика температуры pt1000.
Если датчик присоединить при выключенном приборе то отображение идёт правильно всё работает. Но если датчик присоединить при включенном приборе то показывает совсем не то, а вернее ничего. Можно ли как то изменить?

Можно, необходимо перед входом макроса поставить ограничение, что бы на вход не попадали значения к примеру >4000, тогда есть возможность регистрировать обрыв, и расчетные значения не вываливаются за 2^32.

Алексей Геннадьевич
30.03.2017, 09:35
Можно, необходимо перед входом макроса поставить ограничение, что бы на вход не попадали значения к примеру >4000, тогда есть возможность регистрировать обрыв, и расчетные значения не вываливаются за 2^32.
Так что-ли?

Ревака Юрий
30.03.2017, 10:14
Так что-ли?

Нет, вот я так обычно делаю:

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

Сергей0308
01.04.2017, 01:24
Нет, вот я так обычно делаю:

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

А Вы случайно не увидели, что катастрофически не хватает макроса для время-токовой защиты, Вы же наверно уже макросы для всех термосопротивлений выдумали, а это нечто похожее:

30334

Можно и чтобы характеристику задавать, ну там: A, B, C, D, тепловой расцепитель, электромагнитный, комбинированный, короче как-то так!

Алексей Геннадьевич
03.04.2017, 07:18
А Вы случайно не увидели, что катастрофически не хватает макроса для время-токовой защиты, Вы же наверно уже макросы для всех термосопротивлений выдумали, а это нечто похожее:

30334

Можно и чтобы характеристику задавать, ну там: A, B, C, D, тепловой расцепитель, электромагнитный, комбинированный, короче как-то так!
Вы скажите зачем таки весь этот огород городить, если обычный автомат стоит дешевле связки ПР200+датчики тока+контактор ? Смысл сего мероприятия?:confused:

melky
03.04.2017, 08:04
Алексей Геннадьевич автоматы не смогут менять приоритеты нагрузкам. они смогут только отключать.

Алексей Геннадьевич
03.04.2017, 08:26
Алексей Геннадьевич автоматы не смогут менять приоритеты нагрузкам. они смогут только отключать.
Хитрое реле ограничения мощности? Тогда да, согласен. Сперва подумал о защите.

Ревака Юрий
03.04.2017, 10:21
А Вы случайно не увидели, что катастрофически не хватает макроса для время-токовой защиты, Вы же наверно уже макросы для всех термосопротивлений выдумали, а это нечто похожее:

30334

Можно и чтобы характеристику задавать, ну там: A, B, C, D, тепловой расцепитель, электромагнитный, комбинированный, короче как-то так!

Идея интересная, а как часто Вы используете ПР200 в качестве МТЗ? Обычно для этого используются специализированные терминалы типа Micom, ЭКРА и т.п. в которые заводятся ток и напряжение, саму кривую наверное можно описать формулой, но вот по быстродействию это наверное имеет смысл только на больших выдержках.

Сергей0308
03.04.2017, 11:21
Идея интересная, а как часто Вы используете ПР200 в качестве МТЗ? Обычно для этого используются специализированные терминалы типа Micom, ЭКРА и т.п. в которые заводятся ток и напряжение, саму кривую наверное можно описать формулой, но вот по быстродействию это наверное имеет смысл только на больших выдержках.

Пока не использовал, только планируется для защиты мощных двигателей(30-90 кВт), сейчас стоят авт. выключатели, например на 90 кВт двигатели на 250 - 400 А, что не защитит даже от двух кратной перегрузки! Никто ничего там делать не будет(не хочет), никакие АЗД покупать не будет, хоть какае-то защита не помешает! Забыл сказать, это всё будет выводится в Мастерскаду!

Алексей Геннадьевич
03.04.2017, 11:55
Пока не использовал, только планируется для защиты мощных двигателей(30-90 кВт), сейчас стоят авт. выключатели, например на 90 кВт двигатели на 250 - 400 А, что не защитит даже от двух кратной перегрузки! Никто ничего там делать не будет(не хочет), никакие АЗД покупать не будет, хоть какае-то защита не помешает! Забыл сказать, это всё будет выводится в Мастерскаду!
А тепловые реле поставить не судьба?

сейчас стоят авт. выключатели, например на 90 кВт двигатели на 250 - 400 А,
Такие точно не защитят. На ступень меньшие нужно ставить... И чтобы с тепловыми расцепителями были, а не только с мгновенными.
Номинальный ток 90квт - 164А у двигателя 5АМ250М4.

Сергей0308
03.04.2017, 14:32
А тепловые реле поставить не судьба?

Такие точно не защитят. На ступень меньшие нужно ставить... И чтобы с тепловыми расцепителями были, а не только с мгновенными.
Номинальный ток 90квт - 164А у двигателя 5АМ250М4.

Во-первых тепловое реле я не смогу при отсутствии стенда точно настроить на номинальный ток двигателя, а преждевременное выключение также нежелательно! И при его срабатывании я не знаю правильно оно сработало или нет, а здесь в Мастерскаде я всё буду видеть и в ПР200 настрою выключение как угодно! Во-вторых я имел дело с тепловыми реле и в 50% случаев они или раньше времени срабатывали либо вообще не срабатывали, может покупали самые дешёвые, но мне от этого не легче! А у преобразователей переменного тока в сигнал 4-20 мА как-никак сертификат средств измерения! Но главное я всё вижу!
Ну а что за 35 лет с последней модернизации тепловые реле не поставили я не знаю, спрашивал никто не знает, отвечают обычно, а что надо что-то поставить, люди без понятия, как им чё объяснишь?!

ShmoninEN
14.04.2017, 07:41
Управление различными задвижками, клапанами, в которых в качестве органа закрытия/открытия используется мотор с редуктором, и используется дискретное управление "Прибавить" "Убавить". С использованием резистивного датчика положения заслонки так и без него.

Юрий, здравствуйте.

Потестировал данный макрос в режиме расчёта положения, почему то при достижении задания клапан продолжает двигаться, пока до 100% не дойдёт (то есть импульсы продолжаются и процент положения увеличивается. Я уже по всякому пробовал, что я делаю не так?

Ревака Юрий
14.04.2017, 11:02
Юрий, здравствуйте.

Потестировал данный макрос в режиме расчёта положения, почему то при достижении задания клапан продолжает двигаться, пока до 100% не дойдёт (то есть импульсы продолжаются и процент положения увеличивается. Я уже по всякому пробовал, что я делаю не так?

Нужно программу смотреть.

ssm
27.05.2017, 08:18
В качестве зарядки для ума и тренировки, возможно подойдет для выключателей в домашнюю автоматизацию. Цель - узнать какое нажатие (одинарное или двойное) на кнопку было за период времени, ну скажем, в 0,5 секунды. Примерная логика работы:
1. Ловим первое нажатие, считаем его и запоминаем;
2. Запускаем таймер и ждем второго нажатия, если произошло, то стираем первое и запоминаем второе;
3. Выдаем коротенький импульс на первый выход (в случае одинарного нажатия) или соответственно на второй выход в случае двойного нажатия;
4. Приводим схему в исходное состояние (сбрасываем в 0 все счетчики и триггера).
Выглядит вот так:

31402

или так:

31403

Покритикуйте, пожалуйста. Ничего не забыл? Не слишком ли накручено? Возможно ли упростить?

capzap
27.05.2017, 08:55
В оскат библиотеке на языке ST есть такая функция, сравните с ней то что написали в ОЛ

rovki
27.05.2017, 10:02
Вроде чуть проще , на скорую руку ;) без оскатов всяких

capzap
27.05.2017, 10:11
хорошо, хорошо, раз уж была фраза про зарядку ума, тогда конечно стоит изобрести свой велосипед, что же касается слов по критиковать, то стоит сравнит с тем что давно уже придумано, возможно там и не будет расхождений

rovki
27.05.2017, 12:18
Да я не любитель сравнивать свои мысли с чужими ...Мне не нужно заглядывать в таблицу умножения ,что бы проверить результат .

capzap
27.05.2017, 13:25
Да я не любитель сравнивать свои мысли с чужими ...Мне не нужно заглядывать в таблицу умножения ,что бы проверить результат .

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

rovki
27.05.2017, 15:05
Фигней страдаете вы ,в теме про ПР какую то библиотеку для кодесис навязываете .Мы все когда то учимся ,а потом сами начинаем писать книги и учит других.

capzap
27.05.2017, 16:15
Open Source Community for Automation Technology так расшифровывается аббревиатура библиотеки, я Вам лично что то сейчас навязываю, нет, тогда чего Вы встреваете, можете не отвечать и так всё ясно

ssm
27.05.2017, 18:00
Джентльмены, будет вам уже задирать друг друга, ведь всякая задача имеет несколько способов решения, оскат, увы, не подключить к ОЛ, а кодесис и ПЛК для меня, например, сейчас явно и сильно избыточен, ПР самое то для домашних дел. Да и потом пособирать кубики, как 30 лет назад 155 серию одно удовольствие. Заказал себе ПР-200 на поиграться/поучиться и потом в бой, вот, привезу и все вживую как раз и будет.

Сергей0308
27.05.2017, 20:45
В качестве зарядки для ума и тренировки, возможно подойдет для выключателей в домашнюю автоматизацию. Цель - узнать какое нажатие (одинарное или двойное) на кнопку было за период времени, ну скажем, в 0,5 секунды. Примерная логика работы:
1. Ловим первое нажатие, считаем его и запоминаем;
2. Запускаем таймер и ждем второго нажатия, если произошло, то стираем первое и запоминаем второе;
3. Выдаем коротенький импульс на первый выход (в случае одинарного нажатия) или соответственно на второй выход в случае двойного нажатия;
4. Приводим схему в исходное состояние (сбрасываем в 0 все счетчики и триггера).
Выглядит вот так:

31402

или так:

31403

Покритикуйте, пожалуйста. Ничего не забыл? Не слишком ли накручено? Возможно ли упростить?

Я как-то так вижу:

31422

Не претендую на совершенство!

Василий Кашуба
27.05.2017, 21:11
Я как-то так вижу:

31422

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

Сергей0308
27.05.2017, 21:16
Сергей, но на первом выходе у вас появится импульс при любом количестве импульсов на входе.

Если импульсы поступают не реже одного за 0,5с - ничего там не появляется, проверял в симуляторе!
Короче вот Вам проект, можете сами убедиться!

Василий Кашуба
27.05.2017, 21:47
Если импульсы поступают не реже одного за 0,5с - ничего там не появляется, проверял в симуляторе!
Короче вот Вам проект, можете сами убедиться!
Сергей, импульсов всего 1 или два.
Цель - узнать какое нажатие (одинарное или двойное) на кнопку было за период времени, ну скажем, в 0,5 секунды. Примерная логика работы:1. Ловим первое нажатие, считаем его и запоминаем;
2. Запускаем таймер и ждем второго нажатия, если произошло, то стираем первое и запоминаем второе;
3. Выдаем коротенький импульс на первый выход (в случае одинарного нажатия) или соответственно на второй выход в случае двойного нажатия;
4. Приводим схему в исходное состояние (сбрасываем в 0 все счетчики и триггера).

ssm
27.05.2017, 21:56
Ну не обязательно 1 или 2 - может быть и больше, если смотреть ширше (ширее) ;) Я с прискорбием констатирую, что в случае с ПР и овен логик меня губит давнишняя привычка мыслить набором мелкой логики из далекого уже прошлого, надо мозг перестраивать под современные реалии, стану далее думать, читать и анализировать

Сергей0308
27.05.2017, 22:10
Сергей, импульсов всего 1 или два.

Вы наверно об этом, что если сработал второй выход, первый не срабатывал, даже если частота упала ниже 2 Гц(период более 500мс) на входе, ну тогда как-то так:

31425

ssm
01.06.2017, 07:32
Поискал по форуму и не нашел (может плохо искал?), нарисовал сам, выборочно проверил, с учетом високосных годов, на 21 век должно хватить. Посчитаем день недели по формуле Зеллера - пригодится.

31492

и сам макрос: 31493

PS: упс - не посмотрел в недельный таймер - там такое есть, ну да ладно - пусть отдельно будет

AI!
01.06.2017, 20:39
Поискал по форуму и не нашел
PS: упс - не посмотрел в недельный таймер - там такое есть, ну да ладно - пусть отдельно будеттоже когда-то делал расчет дня недели для XXI века (http://www.owen.ru/forum/showthread.php?t=12691&p=214339&viewfull=1#post214339)

ParuSnow
05.06.2017, 16:57
Здравствуйте! представляю свой макрос "последовательного электронного замка". Пароль меняется сменой клемм ввода в реле (всего 4). можно и увеличить.

Эдуард_Н
06.06.2017, 09:17
Здравствуйте! представляю свой макрос "последовательного электронного замка". Пароль меняется сменой клемм ввода в реле (всего 4). можно и увеличить.

А пароль от макроса это секрет?;)

ParuSnow
06.06.2017, 23:59
Не секрет! паруснов25501 по моему этот точно не помню.

Эдуард_Н
07.06.2017, 02:49
Не секрет! паруснов25501 по моему этот точно не помню.

Нет не этот.

AI!
08.06.2017, 13:50
Пришло сообщение в личку:

перезалил макрос (http://www.owen.ru/forum/showthread.php?t=12687&p=107293&viewfull=1#post107293)Спасибо...
Пытаюсь применить ваш макрос в ситуации:
Входной параметр - температура теплоносителя установки меняется с 82,5С до 100С..
Выходной параметр(задание - управление исполнителем) - флоат - уменьшается с 1,0 до 0,01.
Смещение - 2 градуса..
Зависимость следующая:
Темп. - задание
82.5 - 1.000
84.5 - 0.980
86.5 - 0.886
88.5 - 0.780
90.5 - 0.670
92.5 - 0.564
94.5 - 0.450
96.5 - 0.348
98.5 - 0.206
100.0 - 0.012Решил, что нужно выложить пример использования макроса fROM на всеобщее обозрение....
1) Первое что мы видим, что шаг 2 градуса, а у fROM, как у любого нормального ROM ;) шаг=1 т.е. надо будет разделить на 2
2) шаг должен быть одинаковый, а контрольная точка "100" не вписывается в это условие, но с учётом, что это крайнее значение, и то что больше 100 нас не интересует, просто сделаем линейную интерполяцию до "100.5".
Путём несложных вычислений, у меня получилось что при 100.5 значение должно быть -0,052(6)
3) внутри макроса есть константа "смещение", это смещение первого значения, в нашем случае, т.к. мы вход предварительно делим пополам, смещение равно 82.5/2=41.25
4) для демонстрации возможностей каскадирования макроса, решил усложнить задачу, и увеличить кол-во контрольных точек в 2 раза, т.е. с 62.5 до 100, с шагом 2 градуса, т.к. именно для удобства каскадированияо внутрь макроса было встроено "смещение". При этом, "смещение" соседних блоков должно отличаться ровно на 10. (на выходе числа абстрактные, просто для примера)
получается бесшовная склейка выходных значений, т.е. линейная интерполяция между последним значением одного макроса и первым значением второго
PS если во вложенном примере удалить fROM2 то будет исходное условие.

Сергей0308
08.06.2017, 18:17
Пришло сообщение в личку:Решил, что нужно выложить пример использования макроса fROM на всеобщее обозрение....
1) Первое что мы видим, что шаг 2 градуса, а у fROM, как у любого нормального ROM ;) шаг=1 т.е. надо будет разделить на 2
2) шаг должен быть одинаковый, а контрольная точка "100" не вписывается в это условие, но с учётом, что это крайнее значение, и то что больше 100 нас не интересует, просто сделаем линейную интерполяцию до "100.5".
Путём несложных вычислений, у меня получилось что при 100.5 значение должно быть -0,052(6)
3) внутри макроса есть константа "смещение", это смещение первого значения, в нашем случае, т.к. мы вход предварительно делим пополам, смещение равно 82.5/2=41.25
4) для демонстрации возможностей каскадирования макроса, решил усложнить задачу, и увеличить кол-во контрольных точек в 2 раза, т.е. с 62.5 до 100, с шагом 2 градуса, т.к. именно для удобства каскадированияо внутрь макроса было встроено "смещение". При этом, "смещение" соседних блоков должно отличаться ровно на 10. (на выходе числа абстрактные, просто для примера)
получается бесшовная склейка выходных значений, т.е. линейная интерполяция между последним значением одного макроса и первым значением второго
PS если во вложенном примере удалить fROM2 то будет исходное условие.

Константы надо подписать как нибудь, хотя бы так:

31600

А то немудрено и попутать, и не факт что они идут по порядку, как Вы полагаете:

31601

AI!
08.06.2017, 18:55
Константы надо подписать как нибудь, хотя бы так:

31600

А то немудрено и попутать, и не факт что они идут по порядку, как Вы полагаете:

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

Сергей0308
08.06.2017, 19:22
Когда писался макрос, я не знал что константы можно редактировать, но я очень старался что бы они шли по порядку, ну и предустановленные значения были подсказкой...

Понятно, Вы не верите, пока шишек не набьёте вдоволь, вот смотрите, зашёл в макрос и случайно "шевельнул" ни чего не меняя и что получилось в итоге:

31602

AI!
08.06.2017, 19:27
Понятно, Вы не верите, пока шишек не набьёте вдоволь, вот смотрите, зашёл в макрос и случайно "шевельнул" ни чего не меняя и что получилось в итоге:

31602верю, но перерисовывать макрос не буду, т.к. с 2013г. никому ничего не мешало и/или макрос никому был не нужен...

Сергей0308
10.06.2017, 19:03
Вроде подходящая тема: посмотрел макросы SCALE, точно не скажу как обозвать, типа преобразователь диапазона или перенос диапазона из одной области в другую и ужаснулся, честно чуть с ума не сошёл, зачем так всё сильно усложнили, короче, чтобы не сойти с ума придумал свой вариант, как мне кажется минимум раза в два проще чем я смог найти из самых простых:

31627

Конструктивная критика приветствуется!

smk1635
10.06.2017, 20:36
Вроде подходящая тема: посмотрел макросы SCALE, точно не скажу как обозвать, типа преобразователь диапазона или перенос диапазона из одной области в другую и ужаснулся, честно чуть с ума не сошёл, зачем так всё сильно усложнили, короче, чтобы не сойти с ума придумал свой вариант, как мне кажется минимум раза в два проще чем я смог найти из самых простых:

Конструктивная критика приветствуется!

Норм.
Добавит условие что при превышении входным сигналом IN значения MAX_IN, выход Q всегда имел значение MAX_Q, и можно использовать в качестве задатчика. Хоть для тех же частотников.

Э-э ... А где можно глянуть на так сказать первоисточник. Ну мне так, просто поржать.

Сергей0308
10.06.2017, 21:50
Норм.
Добавит условие что при превышении входным сигналом IN значения MAX_IN, выход Q всегда имел значение MAX_Q, и можно использовать в качестве задатчика. Хоть для тех же частотников.

Э-э ... А где можно глянуть на так сказать первоисточник. Ну мне так, просто поржать.

Я бы тогда как-то так сделал:

31629

Сколько людей, столько и мнений, лично я не вижу особого смысла объединять два, функционально разных макроса, хотя не исключаю такого в отдельных случаях!

smk1635
10.06.2017, 23:04
Сколько людей, столько и мнений, лично я не вижу особого смысла объединять два, функционально разных макроса, хотя не исключаю такого в отдельных случаях!


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

Это я обычно место экономлю на холсте. :)

Шибко уж не удобно после КДС в ОЛ работать когда много переменных.

Сергей0308
10.06.2017, 23:48
У меня с точностью до наоборот. Раз задаются в блоке верхние и нижние пределы, то и использую их сразу в макросе для контроля входного значения.

Это я обычно место экономлю на холсте. :)

Шибко уж не удобно после КДС в ОЛ работать когда много переменных.

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

31634

Зачем фундаментальные строительные кирпичики губить в общей массе, потом же придётся заново создавать!
Заодно модернизировал макрос двустороннего ограничения, на новом элементном уровне, а то с Василием Кашубой раньше спорили кто раньше придумал!

Сергей0308
11.06.2017, 20:34
Заранее извиняюсь, не кого не хотел обидеть, посмотрел макрос "Vip", вектор изменения величины называется, есть в онлайн базе макросов, правда создатель по другому его обзывает(Вектор изменения вещественного числа), но суть не в этом, посмотрел макрос:

31639

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

31648

Мой без тайного смысла!
Вот хотел спросить, может я не понял всей глубины замысла???

А вот, как мне кажется, его полный аналог(из онлайн базы макросов):

31644

Да и здесь можно убрать один из RS-триггеров, заменив его инвертором, как в моём первом макросе, так как разница в работе будет только до первого изменения входного сигнала!

ParuSnow
12.06.2017, 17:38
здравствуйте! представляю свой макрос "Гирлянды в бета версии"

игорь68
18.07.2017, 11:55
Архив GerlandBeta не открывается

игорь68
24.07.2017, 14:39
Спасибо все открыл. вопрос снят.

Эдуард_Н
24.07.2017, 15:58
Спасибо все открыл. вопрос снят.
Интересно как Вы его открыли?

игорь68
27.07.2017, 08:04
Rovki вот ТЗ на Кулачковый переключатель / ПЗУ в дальнейшем ФБ. Этот ФБ имеет 50 позиций( ячеек)
ФБ имеет 3 входа для управления . 1 вход управляет на переключением на следующую позицию( ячейку). 2 вход управляет переключением на предыдущую позицию( ячейку). 3 вход RESET производит сброс и возвращается из любой позиции ( ячейки) к позиции 1 (ячейка )
Этот БФ имеет 8 цифровых выходов которые меняют свое состояние 1/0 в зависимости что я записал в позицию( ячейку). Также есть один выход который позволяет вывести на экран номер позиции( ячейки) от 1 до 50 .
Например позиция 1(ячейка ) выхода 10101010
позиция 2(ячейка ) выхода 01010101
позиция 3(ячейка ) выхода 00100100
позиция 4(ячейка ) выхода 11011011
Теперь как это работает. Как только я " подам питание " на выходе ФБ будет то состояние что я " записал" для позиции ( ячейки) 1. Если я подам единичку на вход номер 1 то состояние выходов поменяется на состояние в позиции( ячейке) 2. Если я подам единичку опять на вход номер 1 то состояние выходов поменяется на состояние в позиции( ячейке)3. Если я подам единичку на вход номер 2 то состояние выходов поменяется на состояние в позиции( ячейке)2
Важно. Если я буду например подавать единичку например только на вход номер один то пройдя круг от первой до пятидесятой позиции( ячейки ) мы начнем новый круг опять с первой ячейки.
Выход на рисунке помеченный зеленый и есть выход который позволяет выводить на экран номер позиции( ячейки)
на рисунка есть меню настройке такова блока.32264
Ну или может Овен сделает это.

pop70
27.07.2017, 08:33
Rovki вот ТЗ на Кулачковый переключатель / ПЗУ в дальнейшем ФБ.
........
Ну или может Овен сделает это.
Игорь, а самому не хочется попробовать?
Тем более, что есть уже заготовки для реализации.
На входе реверсивный счётчик, на сброс заведён сигнал с выхода "50"....
Ячейки имеют адреса 0-49. Хотите 1-50 для отображения - прибавите 1.
Ко всему этому прикручиваете ФБ "ПЗУ"...
Ну неужели совсем не хочется пошевелить мозгами?

melky
27.07.2017, 10:16
ППЗУ скрестить с Extract bit. в Exel набросать битовые маски и прописать в ППЗУ согласно выбранному адресу. Адрес соответственно сформировать из входных каналов при помощи Putbit

Сергей0308
27.07.2017, 15:52
Так я выкладывал в какой-то теме на 257 ячеек(позиций) по 32 бита, т. е. более чем в 20 раз превосходит то, что Вы желаете, вот картинка:

32270

Счётчик, неужели трудно ограничить!

игорь68
27.07.2017, 17:05
Сергей 0308 я видел Вашу работу. Большое спасибо Всем кто написал. Но вы все не видите главного. А главное это меню что на картинке. Именно через меню удобно и просто это делать. Тут я сразу вижу позицию( ячейку) и состояние выходов . Мне не нужно лазить в редакторе макроса и менять там уставки в нужных мне ячейка.
Сергей 0308 и ROVKI вы молодцы. Вы сделали такой макрос. Так пусть теперь ОВЕН поработает и сделает нормальную настройку под этот макрос.
Мне понадобилось по моргать лампочками. Взял пр114 макрос пзу и завис на 2 дня настраивая " программу в ПЗУ". Бросил это дело достал старый шанайдер электрик и за 20 минут через этот блок и меню написал моргушку для гирлянд. Есть разница. Извините если кого то не поблагодарил .

Сергей0308
27.07.2017, 17:46
Сергей 0308 я видел Вашу работу. Большое спасибо Всем кто написал. Но вы все не видите главного. А главное это меню что на картинке. Именно через меню удобно и просто это делать. Тут я сразу вижу позицию( ячейку) и состояние выходов . Мне не нужно лазить в редакторе макроса и менять там уставки в нужных мне ячейка.
Сергей 0308 и ROVKI вы молодцы. Вы сделали такой макрос. Так пусть теперь ОВЕН поработает и сделает нормальную настройку под этот макрос.
Мне понадобилось по моргать лампочками. Взял пр114 макрос пзу и завис на 2 дня настраивая " программу в ПЗУ". Бросил это дело достал старый шанайдер электрик и за 20 минут через этот блок и меню написал моргушку для гирлянд. Есть разница. Извините если кого то не поблагодарил .

В данном случае можно воспользоваться макросом PUTBIT на нужное количество входов(бит):

32273

Результат вносить в ячейку что в свойствах макроса:

32274

Наверно можно это и как-то автоматизировать, у меня, кстати, есть макросы EEPROM, там точно это без проблем можно сделать!
http://www.owen.ru/forum/showthread.php?t=26806&page=3

pop70
27.07.2017, 18:17
Автоматизировать что?
Ввод десятичного значения из побитной таблицы?
Для этого можно эксель использовать, если в уме в 8 битах путаетесь.

Сергей0308
27.07.2017, 18:34
Чтобы перевести достаточно и калькулятора из Винды:

32277

Но народ видимо путается, если два дня(как написал) мучился!
А "автоматизировать", если так кто-то хочет, можно, вводя не десятичное число, а его двоичный эквивалент, это я про макросы EEPROM, боюсь в свойствах макроса такое невозможно?!
Так что в ПР200 это можно сделать и прямо с экрана менять, получится намного круче и проще Шнайдера, не надо перезаливать программу чтобы логику работы изменить, единственный минус полчаса времени потратить, короче, разговоров больше, я помню ещё несколько лет назад кто-то такую таблицу(меню для настройки) хотел!
Как-то примерно так:

32278

Я бы заодно в меню и параметр "количество позиций" ввёл, для универсальности, например с моим макросом EEPROM3232 максимально возможно 128 позиций, но автору надо всего 50, он вводит значение 50 и всё, ничего делать(переделывать) не надо, ищет себе другое занятие или курит бамбук! Вроде смотрел внимательно картинку и Шнайдерцы до такого не додумались, может и додумались, просто смотрел невнимательно, короче, как-то так!

ParuSnow
31.07.2017, 09:08
Здравствуйте представляю макрос:
Генератор случайных чисел
Результат выводиться как целочисленными так и пошагово..

Принцип работы очень прост
Просто жмём на ввод Результат и получаем желаемое число:)
Тагже есть Сброс, Отбой и увеличить.

Ваши предложения

Сергей0308
31.07.2017, 09:23
Здравствуйте представляю макрос:
Генератор случайных чисел
Результат выводиться как целочисленными так и пошагово..

Принцип работы очень прост
Просто жмём на ввод Результат и получаем желаемое число:)
Тагже есть Сброс, Отбой и увеличить.

Ваши предложения

Поздравляю, первый макрос, что открылся, до этого все ваши архивы с гирляндами и замками у меня не открывались!
И надеюсь круче ранее предложенных:

32326

32327

ParuSnow
31.07.2017, 10:48
Сергей0308...
Чьи это варианты интересно же?

Нет у меня всё не так как там
Например в первой моей версии ГСЧ использоваось 3 генератора с разными чистотами взаимосоединёные И и получалась так что запуская ихх шло время и они совподая выводили результат ... Долго писать .
Короче туда бы генераторы добавить
Штук 5итп
32329
В 9ГСЧPPСГ использоваться тоже генератор с И но на выходе обрабатывается массой ИИ.. как-то так

Сергей0308
31.07.2017, 10:52
Сергей0308...
Чьи это варианты интересно же?

Нет у меня всё не так как там
Например в первой моей версии ГСЧ использоваось 3 генератора с разными чистотами взаимосоединёные И и получалась так что запуская ихх шло время и они совподая выводили результат ... Долго писать .
Короче туда бы генераторы добавить
Штук 5итп

В 9ГСЧPPСГ использоваться тоже генератор с И но на выходе обрабатывается массой ИИ.. как-то так

Это господина(товарища) Ситникова!

Владимир Ситников
31.07.2017, 11:31
Генератор случайных чисел
Результат выводиться как целочисленными так и пошагово..


Генератор случайных чисел с паролем? Это что-то с чем-то.
Его наобум делали или по какой-нибудь книге?

ParuSnow
31.07.2017, 11:45
Генератор случайных чисел с паролем? Это что-то с чем-то.
Его наобум делали или по какой-нибудь книге?

Не поверите восне увидел как Менделеев:)
И решил да пош.. все эти формулы и прочий мусор..
Просто взял 3 генератора и Чудо
Даже если вскроется пароль от макроса аналогов не найти;)

Владимир Ситников
31.07.2017, 13:04
И решил да пош.. все эти формулы и прочий мусор..
Слышали, что ГСЧ можно проверить "на случайность"? Как бы не оказалось, что случайности в вашем "восне" нет.

Сергей0308
31.07.2017, 13:05
Ясно, вся ценность в уникальности!

ParuSnow
31.07.2017, 13:42
Слышали, что ГСЧ можно проверить "на случайность"? Как бы не оказалось, что случайности в вашем "восне" нет.

Проверьте! начинайте прям щас,
Потом доложить когда совподает Хорошо;)
Будем править

pop70
31.07.2017, 14:31
Слышали, что ГСЧ можно проверить "на случайность"? Как бы не оказалось, что случайности в вашем "восне" нет.
"Случайность" отлично генерируется на внешних "случайностях" - момент запроса, внешний генератор шума... Все детерминированные алгоритмы "по формулам" дают только "псевдослучайность".

Алексей Геннадьевич
31.07.2017, 14:50
ParuSnow
pop70
Владимир Ситников
Для чего ГСЧ в ПР? Что им делать в электроавтоматике?:confused:
В ПК понятно: пароли, шифрование, и т.д.

Владимир Ситников
31.07.2017, 14:51
"Случайность" отлично генерируется на внешних "случайностях" - момент запроса, внешний генератор шума... Все детерминированные алгоритмы "по формулам" дают только "псевдослучайность".

Если ГСЧ "имени ParuSnow" будет возвращать 90% единиц и 10% нулей, то у вас повернётся язык назвать такой генератор "случайным"? Разумеется, уже есть готовые библиотеки подобных статистических тестов (не для ОЛ, а для генераторов на Си), и тест на "равномерность нулей и единиц" далеко не единственный.

pop70
31.07.2017, 14:58
Если ГСЧ "имени ParuSnow" будет возвращать 90% единиц и 10% нулей, то у вас повернётся язык назвать такой генератор "случайным"?А почему нет? Если кроме соотношения нулей/единиц нет других закономерностей ... У случайностей бывают разные распределения. :)

Владимир Ситников
31.07.2017, 15:00
Для чего ГСЧ в ПР? Что им делать в электроавтоматике?:confused:
В ПК понятно: пароли, шифрование, и т.д.

Алексей Геннадьевич, вы же видели прошлый балаган про xorshift128, oscat и ГСЧ.

Вообще говоря, ГСЧ может быть полезным для:
1) Отложенного запуска. Например, нездорово будет, если запускать всю нагрузку в одно и то же время. Пусковые токи и все дела. Можно, конечно, запускать ровно по расписанию (1-ый вход через 1 сек, второй через 2 сек и т.п.). Но тогда 10 ПРок запустят 1ый вход каждая в эту самую 1-ую секунду и получили то же самое -- синхронный запуск нагрузки в один момент времени.

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

2) Моделирования системы, для генерации "внешних событий". Например, тестируем схему-макрос для какого-нибудь усреднения. Что подавать на вход? Можно подавать константу, а можно некую "случайную" величину.

3) Фиг знает где ещё. Но если уж и делать генераторы, то лучше уж книжные, а не "абы-какие". В истории была куча примеров, когда из-за неправильности ГСЧ либо эксперимент неправильно шёл, либо вообще делались неверные выводы. Так сказать, "делай хорошо, плохо само получится".

pop70
31.07.2017, 15:01
ParuSnow
pop70
Владимир Ситников
Для чего ГСЧ в ПР? Что им делать в электроавтоматике?:confused:
В ПК понятно: пароли, шифрование, и т.д.
Например, световые эффекты.
Могут быть и другие вполне себе прикладные применения.
Хотябы даже для тестирования других компонентов в симуляторе ОЛ.