Добрый день!
Скажите, почему большинство макросов не скачиваются, открывается пустая страница с гиф 1на1?
Хочу скачать макросы: Макрос последовательное включение 8TON и Счетчик наработки
Вид для печати
Добрый день!
Скажите, почему большинство макросов не скачиваются, открывается пустая страница с гиф 1на1?
Хочу скачать макросы: Макрос последовательное включение 8TON и Счетчик наработки
Очень убивает отсутствие возможности запуска кода по времени.
К примеру, если время от до, то выполняем код. Это обычно происходит на стандартном языке программирования.
В Owen Logic эта функция типа есть, но по факту её НЕТ.
Точнее так, этот кусок кода все равно считается, а на выходе выдает НОЛЬ.
К примеру, нужно посчитать контрольную сумму параметров. Делается это ночь, когда нагрузка минимальная.
Есть макрос. Есть ограничение по времени.
Но макрос все равно считается ВСЕГДА, а в конце расчётов выдаёт ноль.
Специально проверял много раз.
Когда ресурсов эта особенность ела мало, закрывал глаза, а когда постоянно делает тяжёлый расчёт, да к тому же который в текущее время просто не нужен - уже сильно напрягает.
У кого какие есть решения, мысли на этот счёт.
Я понимаю, что это можно сделать через
Выбор (SEL, fSEL)
но если входных параметров в макрос 28 - уже получается огород городим.
В общем, как заставить НЕ ВЫПОЛНЯТЬСЯ код, если условие = 0!!!
У меня все равно промежуточные значения считаются, даже если уже явно понятно, что условие не сработало.
Вот пример
Вложение 38367
Ранее в одной из тем обсуждались главные отличия ПР от ПЛК, это как раз и называлось главным отличием(в ПР всегда выполняется весь код), если у Вас цель такая(не представляю зачем), то по-моему не верно оборудование выбрано!
Попытка не пытка.
Можно что то и придумать.
В лоб не получилось. Жаль конечно. Но не сказать, фатально.
ПЛК за 19-25 т.р - это не сектор моих клиентов.
Для меня за 25 т.р. проще уже собрать систему на альтернативных составляющих, где функционала и возможностей больше.
Я считаю, что у ОВЕН ПР200 это самый идеальный продукт на сегодняшнем рынке.
Ничего похожего нет ни кого из конкурентов. По всему остальному - вопрос уже предпочтения.
При наличии фантазии любую проблему можно минимизировать. :)
Буду фантазировать с ПР200. ;)
Ранее в какой-то теме довольно долго "очередь" обсуждали: http://www.owen.ru/forum/showthread....17153&page=218
Вкратце суть такова: появляются по очереди сигналы на входах, в той же последовательности активируются соответствующие входам выхода, включено всегда не более одного выхода, например включаются по очереди входа 1, 3, 5, 7 - включается 1 выход, когда 1 вход выключается, включается 3 выход и так далее, проблема была в том, что сигнал на входах должен был держаться до включения соответствующего ему выхода, иначе логика нарушалась, короче доработал схему, теперь логика не должна нарушаться в этом случае, просто соответствующий входу выход выпадает из очереди, может кто придумает проще, будет интересно посмотреть:
Вложение 38469
https://yadi.sk/d/_GL1wswM3aYbjU
Немного "подрихтовал":
Вложение 38470
https://yadi.sk/d/J6Fzww5s3aZF7Q
Без проблем можно расширить до 32 входов-выходов! ПР с максимально возможным количеством модулей расширения по внутренней шине имеющихся на данный момент в продаже имеет только 28 входов, считая и аналоговые, выходов и того меньше!
Или так в виде готового макроса:
Вложение 38475 Вложение 38476 Вложение 38477 Вложение 38478 Вложение 38482 Вложение 38479 Вложение 38480 Вложение 38481
Вроде работает как задумано, но в симуляторе невозможно посмотреть работу макроса DTRIG(входит в состав), всякие настройки делал, но сразу перескакивает минимум на 16 циклов и на выходе значение мгновенно изменяется если все входа включить, а должно постепенно с каждыми двумя циклами добавляться один вход(его весовой коэффициент), короче, лыжи не едут и всё, если в симуляторе не смотреть, то всё работает как задумано!
https://yadi.sk/d/nn6fHj3L3aa54G
С симулятором разобрался, сделал время цикла = 1 мс и всё нормально запоказывало, был не прав, исправлюсь!
Надеюсь всем понятно как это просто устроено, имею ввиду алгоритм работы?
Еще усовершенствовал(стала быстрей в 2 раза), теперь опрос всех входов(8) за 8 циклов программы и сделал совсем "предсказуемой", то есть если включатся сразу несколько входов(что на практике маловероятно), то младший вход(по номеру и весовому коэффициенту в программе) имеет приоритет, например, если одновременно включатся все 8 входов, то активируется первый выход, когда первый вход выключится, включится второй выход и так далее, ранее такого не было и определялось случайно в зависимости от значения соответствующего счётчика на момент включения, сейчас счётчик "CTMU" сбрасывается и при изменении состояния входов начинает отсчёт с "0", короче, практически все макросы переделал(что входили в состав), проще они не стали, но стали, на мой взгляд, более "правильными", раньше боялся так сделать(перестраховывался), но проверил, вроде всё работает! Вот ссылка, выложить программу невозможно: https://yadi.sk/d/wP2TP7xI3acPT3
И хотел предупредить макросы изменил из преведущего проекта, а не создал новые, поэтому они одновременно в один проект не влезут, будут заменяться!
Вложение 38489 Вложение 38490 Вложение 38491 Вложение 38492
Вот ещё макрос очередь нарисовал на 32 входа-выхода:
Вложение 38515
Например так можно индицировать наличие и номер аварии в порядке их поступления при квитировании:
Вложение 38523
Вот, ещё модернизировал:
Вложение 42637
И ещё:
Вложение 42654
Добрый день.
Господа-товарищи, имеет ли такая конструкция право на жизнь ?
Newcomer работает как запланировано и вас устраивает почему нет ? но лучше имхо делать через R-Trig (или F-Trig) в зависимости на каком фронте должен быть счет мне кажется.
Суть-то в чём и чем это лучше того, что ранее предлагалось? Вот например давно известен 32 битный счётчик, но он считает через цикл! Для "ускорения" процесса счёта в 2 раза, чтобы значение счётчика изменялось каждый цикл я придумал свой счётчик и неоднократно его выкладывал(имеется в посте #333 текущей темы)! У Вас в чём изюминка?
Добрый день.
В предыдущих версиях OL, вроде, не было проблем с созданием нового макроса по образцу: изменял его имя и в перечне появлялся новый, который можно было менять. В новой версии пытаюсь сделать так же - меняется имя макроса в списке, а новый не добавляется.
Пробовал выгрузить в файл и переименовать. При загрузке получаю сообщение, что такой макрос уже есть.
Вопрос: как сделать макрос по образцу.
Заранее благодарен.
Макросы определяются по ID а не только по именам. Имя всего лишь отображение...
Кажется надо делать Сохранить макрос как, после чего уже менять имя и делать экспорт. Тогда его ID должен поменяться.
О! Спасибо! А я смотрел-смотрел в меню и не видел этой опции.
Кто - нибудь знает автора данного макроса? Хотелось бы порасспрашивать его по принципу работы этого макроса.
Вот я и не знаю откуда этот макрос. В онлайн базе его нет, на форуме тоже его не нашел.
он из макроса в базе вентиляции
Юрий, здравствуйте! Вот такие вопросы:Цитата:
Расспрашивайте
1.ut_StepFull(s)-это время полного хода КЗР, сек? На что этот параметр влияет?
2.ut_StepMin(s)-время импульса откр/закр КЗР, сек?
3.ut_Cycle(ms)-вот это, что за параметр? Как я понимаю это период опроса входа oa_PWR в мс?
Ежу понятно, что
- ut_StepFull (Float) Полное время хода клапана
- ut_StepMin(s) (Float) Минимальная длительность импульса для клапана
- ut_Cycle(ms) (Float) Время цикла программы
Для расчета ut_Cycle можно использовать макрос CycleTime
оa_Pwr - Требуемый процент открытия клапана 0..100
для достижения соответствия между расчетным и фактическим положением клапана сервопривода на привод подаются импульсы «открыть» (ob_Open=1) или «закрыть» (ob_Close=1) определенной длительности.
Приросту процента открытия клапана от 0 до 100 соответствует импульс длительностью, равной времени полного хода клапана (ut_StepFull(s)).
Прирост определяется как разница между новым рассчитанным (оa_Pwr) и предыдущим значением.
Для предотвращения лишних колебаний, импульс на сервопривод подается только, если его длительность больше минимальной длительности (ut_StepMin(s)).
Если рассчитанный процент равен 100 (оa_Pwr=100), то это соответствует открытому положению клапана — на сервопривод подается команда «Открыть» (ob_Open=1). Если рассчитанный процент равен 0 (оa_Pwr=0), то это соответствует закрытому положению клапана — на сервопривод подается команда «Закрыть» (ob_Close=1).
С временем цикла не понятно. Где вообще про период и время цикла почитать?Цитата:
Для расчета ut_Cycle можно использовать макрос CycleTime
Циклическое выполнение программы - основа работы любого ПЛК.
Если это не понятно, значит программирование ПЛК или ПР не Ваша тема.
Кратко
Как работает ПЛК
Очень просто. Опрашивает входы, выполняет программный цикл, записывает выходы. Принципиально важно понимать, что программа ПЛК выполняется не постоянно, а циклически каждые несколько миллисекунд.
Я бы не стал так категорично говорить...И причем тут ПЛК в этой теме .Все же цикл ПЛК и цикл ПР это не одно и то же ,имхо.И чем отличается работа постоянно от работы в цикле. неужели нельзя работать постоянно в цикле ,как в пр.
rovki одно и то же. Просто во многих ПЛК можно время цикла задать, тогда программа выполняется какое-то время, дальше спячка и новый круг.
В ПР задать время для цикла нельзя, он просто гоняет по кругу. Принципиальных отличий практически нет.
Это и есть принципиальные отличия !
rovki да никаких, ПЛК тоже можно отправить в свободное плавание и цикл будет равен циклу программы. Просто ПР более простое устройство и не позволяет настраивать. У некоторых ПЛК например жестко задано время цикла и быстрее его не сделать.
забудьте про время цикла, основа - опрос входов, выполнение программы, запись выходов - это практически у всех одинаково. а игры с временем цикла могут быть а может и не быть, зависит от производителя.
Вы сами противоречите себе - если в ПР нет таких возможностей как в ПЛК ,в смыле игры с циклами ,а ПЛК может все ,то это и есть отличие .Тем более человек спрашивал про цикл ПР ,а ему в ответ про ПЛК ,где все сложнее... В ПР так же нет ветвлений что обеспечивает относительную стабильность времени цикла программы (выполняется всегда проект целиком). Да есть ПЛК ,где цикл ,как в ПР организован , но что о них говорить на форуме Овен ,разве что эрудицую показать ...Просто в ПР это цикл выполнения программы всегда ,а в ПЛК это частный случай ,где цикл программы = циклу ПЛК .Это всеравно что сказать ,что мужчина это человек ,из чего не следует ,что любой человек это мужчина ,есть еще и женщины и различии у них значительные ,хотя и много общего .То есть из этого не следует делать вывод ,что мужчина=женщина ..Ну ладно ,не будем предираться к словам ,все поняли...
rovki еще раз, есть устройства, которые позиционируются как ПЛК но цикл поменять нельзя, и мало того, он там больше, чем может выполняться программа.
ПР от ПЛК отличается больше позиционированием производителя и меньшими возможностями, например такими как ограниченный набор языков программирования.
если не рассматривать ограничения то по сути все это одно и то же. как не назови кобылу, кобылой она и останется.
Проще говоря ПР это ПЛК со специально ухудшенными характеристиками. Искусственно переведенное устройство в другой ценовой диапазон.
Ни кто специально не ухудшал ПЛК ,что бы получить ПР .Это вновь созданное (специальное) устройство ,под определенные задачи ,от сюда и ограниченные возможности (из- за этого круга задач,не требующих большого быстродействия ) и язык FBD (LD) ,не требюущий глубоких познаний в архитектуре контроллера и написании программы .Тоесть задачи и пользователи обусловили появление класса таких реле ,а не менеджеры ...Историю нужно учить ,батенька.
Ну, если ПР пощупать основательно появилась возможность 2 недели назад, то это не значит, что за это время я должен был научиться писать программы на каком-нибудь IL и вообще знать все. Тем более, что часто время на изучение на работе вообще нет.Цитата:
Циклическое выполнение программы - основа работы любого ПЛК.
Если это не понятно, значит программирование ПЛК или ПР не Ваша тема.
Из выше написанного я понял, что в плк задаем вручную время цикла программы в течении которого она должна выполниться. Или в плк возможно выполнение каких-то отдельных частей программы по разным временам цикла ?
В ПР время цикла задать нельзя. Так? Значит необходимо зашить программу в ПР и запустить счетчик который подсчитает время цикла этой самой программы?
Да, в самой библиотеке его нет. Он в макросе KZR_DO_Sel_v1.0.