Просмотр полной версии : Вопросы чайника, не ругайтесь пожалуйста
1. Когда компьютер засыпает (Win10 LTSC2019) то OL вылетает (как релиз 17 так и бета 19) - это нормально или нет?
2. Астрономических часов нет, или я плохо искал?
3. Что делать, если нужно 8 аналоговых выходов?
4. Как работают аналоговые входы?
Точнее, какое значение появляется на входе, если туда подать 5В (при настройке 0..10 В) - 5,00(float)? У меня привод выдаёт значение угла 0..90 напряжением 2..10 В, я правильно понимаю что если указать нижнюю границу -22,5, а верхнюю 90, то напряжение будет автоматически пересчитываться в значение угла? Есть ли такая же функция для выходных сигналов? Или делать это руками - последовательно умножая и складывая с константами?
5. Разница между целыми и рациональным переменными?
В том смысле, имеет ли какой-то смысл преимущественное использование целых чисел? меньше количество тактов, меньше расход памяти итп?
6. Есть ли импорт проектов из среды LOGO SoftComfort?
Всем заранее спасибо!
1. Это ненормально, но это все поганая винда. Не пользуйтесь сном на коротких промежутках. У меня вообще отключен - не раз спасало!
2. Что такое астрономические часы? Если астротаймер, то по этому слову ищите макрос. Он существует, но не в виде заводского блока
3. Подключите нужное количество модулей Mx110 (или любых других с нужным количеством выходов) по rs-485. Да, некрасиво выглядит, зато работает хорошо. Работа прки не ограничивается только модулям тна внутренней шине, просто работать с ними не так удобно.
4. Если в режиме напряжения, то диапазон на входе от 0 до 10 вольт преобразовывается сигнал от нижнего до верхнего значения, которые указаны в настройках этого входа. Читайте инструкцию, в ней много полезного думаете вполне правильно
5. Почитайте разницу в Гугле между типами float и integer. Тут уж простите.
6. Да, но только один -руки программиста ;) по сути у обоих устройств один язык программирования. Портация труда составить не должна, ед нчтвенное у лого работа с аналоговыми данными сделана через жопу.
По вопросу 6. Полной совместимости нет. Есть совпадения только по логике(И,ИЛИ,НЕ, и тд и тп). А вот остальные макросы у ОЛ и немца разные. Тут только самому делать "аналог".
1. Это ненормально, но это все поганая винда. Не пользуйтесь сном на коротких промежутках. У меня вообще отключен - не раз спасало!
Так всё-таки, вылетает программа при сне или нет? У меня нотебук, и там переключение в режим сна происходит постоянно, отключать его не разумно совсем.
К слову, ни одна программа из множества установленных не вылетает. Постараюсь сделать скриншот с ошибкой.
Если астротаймер, то по этому слову ищите макрос. Он существует, но не в виде заводского блока
Спасибо, нашёл обсуждение, научился пользоваться репозитарием макросов, вопрос снят :)
Почитайте разницу в Гугле между типами float и integer. Тут уж простите.
Вы не поняли вопрос: имеет ли смысл использовать int вместо float там где целочисленных значений достаточно? например, float и их обработка отъедает больше памяти, замедляется программа итп.
В отношении документации у меня тоже какой-то косяк: выделяю некий элемент (FB, вход/выход итп), нажимаю F1, а в ответ - пустота:
54383
Алексеев
05.04.2021, 09:12
Так всё-таки, вылетает программа при сне или нет? У меня нотебук, и там переключение в режим сна происходит постоянно, отключать его не разумно совсем.
К слову, ни одна программа из множества установленных не вылетает. Постараюсь сделать скриншот с ошибкой.
У меня не слетает во время сна . И на WIN7 32 WIN10 - 64 .
Спасибо, нашёл обсуждение. Вопрос в связи с этим - я так понял, что есть некий репозитарий макросов, но в OL нет места где его можно подключить. Как эти макросы подцепить к программе?
[/ATTACH]
Из менеджера компонентов . Загрузить в проект и поставить галочку у макроса. Или из файла импорт из файла .
Вы не поняли вопрос: имеет ли смысл использовать int вместо float там где целочисленных значений достаточно? например, float и их обработка отъедает больше памяти, замедляется программа итп.
54383
Если вам удобно работать с Int то есть смыл . А так нет -- можно выводить на экран 0 точек после запятой и все операции доступны с float . Мне не требуется быстродействие входов
цикл 34.00 мсек Я и не обращаю внимание Int или float . А Вам это нужно быстродействие входов или выходов ???? 54391
Что касается ошибки c F1 обещали исправить .
https://owen.ru/forum/showthread.php?t=34214&p=351544&viewfull=1#post351544
Сергей0308
05.04.2021, 09:33
Принято считать, что целочисленные вычисления отъедают в несколько раз меньше ресурсов, чем вычисления с плавающей запятой, поэтому где хватает "инта" или можно им обойтись, стараюсь его и применять. Например передавать значение в умноженном на 10(100) виде, после передачи преобразовать во флоат и разделить на 10(100), кроме того и один регистр потребуется вместо двух. Только имейте ввиду что инт в ОЛ беззнаковый тип данных, но не всё так безнадёжно, есть макросы для преобразования.
Принято считать, что целочисленные вычисления отъедают в несколько раз меньше ресурсов, чем вычисления с плавающей запятой, поэтому где хватает "инта" или можно им обойтись, стараюсь его и применять. Например передавать значение в умноженном на 10(100) виде, после передачи преобразовать во флоат и разделить на 10(100), кроме того и один регистр потребуется вместо двух. Только имейте ввиду что инт в ОЛ беззнаковый тип данных, но не всё так безнадёжно, есть макросы для преобразования.
Я так понимаю, Вы сейчас о внешних интерфейсах (485?). А в самой программе эта оптимизация имеет хоть какой-то смысл?
Я помню что когда (давно) учился в институте нас ругали за применение операции вычитания без нужды, т.к. она требовала больше тактов процессора чем сложение, и типа можно получить инвертированное значение на предыдущей операции и потом складывать, не тупо вычитать. Но вот есть у меня предположение, что в современных средах программирования давно всё не так, и на бинарные переменные тратятся те же 4 или сколько там байтов памяти, что и на рациональные.
Ладно, это не так принципиально, пока не мешает работать с float :)
Вопрос по обратным связям - система подсвечивает их жёлтым и предлагает заменить на линии задержки (на которые тоже ругается желтым). Их применять нельзя или это просто предостережение?
Я взял первый попавшийся "официальный" макрос и увидел там эти обратные связи с предупреждением. Не понимаю :)
Алексеев
05.04.2021, 10:42
Вопрос по обратным связям - система подсвечивает их жёлтым и предлагает заменить на линии задержки (на которые тоже ругается желтым). Их применять нельзя или это просто предостережение?
Я взял первый попавшийся "официальный" макрос и увидел там эти обратные связи с предупреждением. Не понимаю :)
Всегда меняю на линию задержки , раздражает жёлтый цвет . Это сделано для совместимости со старыми проектами .
Коллеги, вот столкнулся с ещё одной «проблемой» на пустом месте. Если выделяю кусок «кода» и прошу сделать из него макрос, то получаю огромный такой символ макроса на четверть экрана, а если создаю пустой макрос и потом переношу туда нужные мне FB, то символ макроса остаётся прежним маленьким и аккуратным.
Где поменять размер символа макроса я не нашел, с размеры рабочей области это никак не связано.
Сергей0308
11.04.2021, 13:25
Коллеги, вот столкнулся с ещё одной «проблемой» на пустом месте. Если выделяю кусок «кода» и прошу сделать из него макрос, то получаю огромный такой символ макроса на четверть экрана, а если создаю пустой макрос и потом переношу туда нужные мне FB, то символ макроса остаётся прежним маленьким и аккуратным.
Где поменять размер символа макроса я не нашел, с размеры рабочей области это никак не связано.
Размеры макроса, насколько я понимаю, зависят от количества входов-выходов(чего больше), длины надписи на входах-выходах(где длиннее) и длины названия самого макроса, когда Вы создаете новый макрос, названия входов-выходов принимаются по умолчанию и их длина минимальна, короче, мне казалось это весьма очевидным, что и понимать там нечего, оказалось, что я ошибаюсь и не всегда(не всем) это понятно!
Размеры макроса, насколько я понимаю, зависят от количества входов-выходов(чего больше), длины надписи на входах-выходах(где длиннее) и длины названия самого макроса, когда Вы создаете новый макрос, названия входов-выходов принимаются по умолчанию и их длина минимальна, короче, мне казалось это весьма очевидным, что и понимать там нечего, оказалось, что я ошибаюсь и не всегда(не всем) это понятно!
Сергей, спасибо, Вы абсолютно правы - размер символа меняет ширину в зависимости от длины названий входов-выходов, достаточно один вход или выход назвать длинным именем, как символ раздаётся в ширину :)
Экспериментально подтверждено, вопрос снят! :)
А вот ещё вопрос (честно, не читал пока документации на этот счёт) - есть ли в контроллерах ПР журнал событий?
Журнала события нет.
И по переменным/входам тоже ничего такого нет? Остаётся только 1 кбайт энергонезависимой памяти, правильно?
А вообще есть типовые схемы как реализовать память ошибок/аварий? На каждую ситуацию заводить две ячейки - дату последней и кол-во ошибок?
Ревака Юрий
12.04.2021, 09:24
И по переменным/входам тоже ничего такого нет? Остаётся только 1 кбайт энергонезависимой памяти, правильно?
А вообще есть типовые схемы как реализовать память ошибок/аварий? На каждую ситуацию заводить две ячейки - дату последней и кол-во ошибок?
Такие решения легко сделать на панели оператора, для ПР можно посмотреть макрос Event_Log, так же были примеры по этой теме на форуме поищите.
Сергей0308
12.04.2021, 09:53
И по переменным/входам тоже ничего такого нет? Остаётся только 1 кбайт энергонезависимой памяти, правильно?
А вообще есть типовые схемы как реализовать память ошибок/аварий? На каждую ситуацию заводить две ячейки - дату последней и кол-во ошибок?
Таких тем было как минимум с десяток(неужели мало?):
https://owen.ru/forum/showthread.php?t=29865
https://owen.ru/forum/showthread.php?t=31113
https://owen.ru/forum/showthread.php?t=31113&page=7
Спасибо, пойду изучать :)
Я для себя рассматриваю единственную модель реле - это запланированное на начало выпуска в 1 квартале (хе-хе) ПР103, остальные без LAN как-то совсем унылы.
Вопрос, к каким ячейкам будет доступ по сети и каким образом... Рассуждать о ещё не вышедшем продукте как-то неловко :))) Опять же - есть облако, умеет ли оно накапливать "бигдату" по переменным?
Ну и чтобы дважды не вставать - есть ли готовый макрос для подсчёта условных моточасов?
Ревака Юрий
12.04.2021, 13:37
Спасибо, пойду изучать :)
Я для себя рассматриваю единственную модель реле - это запланированное на начало выпуска в 1 квартале (хе-хе) ПР103, остальные без LAN как-то совсем унылы.
Вопрос, к каким ячейкам будет доступ по сети и каким образом... Рассуждать о ещё не вышедшем продукте как-то неловко :))) Опять же - есть облако, умеет ли оно накапливать "бигдату" по переменным?
Ну и чтобы дважды не вставать - есть ли готовый макрос для подсчёта условных моточасов?
Так в ПР103 возможности по архивированию событий будут шире, внутренние архивы, архивирование в облако. Доступ по сети аналогичен ПР200, только количество сетевых регистров будет больше. По моточасам есть макрос наработки OperTimer_ в базе группа "Общие".
Спасибо, пойду изучать :)
Я для себя рассматриваю единственную модель реле - это запланированное на начало выпуска в 1 квартале (хе-хе) ПР103
вы просто путаете позиционирование ПР разных видов. ПР200 пока уникальна тем, что имеет дисплей и совмещение аналоговых входов и дискретных входов с потенциалом 220VAC, есть собственный источник питания 24В 100 мА для питания аналоговых датчиков), что позволяет значительно уменьшить бюджет проекта (нет нужен БП, и реле для развязки сигналов) и собрать самые бюджетные вещи.
у других моделей, включая ПР103 - или входы "фазные" и питание 220В или аналоговые входы на борту и питание и дискретные входы - 24В, что резко увеличивает стоимость применения в бюджетных решениях. кроме этого нет дисплея.
На вкус и цвет все фломастеры разные. Брать 103 из за изернет и использовать высокоскоростные входа для кнопок это по-моему слишком дорого. Я вижу что 103 для станков , прессов и прочего оборудования где нужно что то посчитать. А строить умный дом на 103 это что на Белазе на буханкой хлеба ездить.
На вкус и цвет все фломастеры разные. Брать 103 из за изернет и использовать высокоскоростные входа для кнопок это по-моему слишком дорого. Я вижу что 103 для станков , прессов и прочего оборудования где нужно что то посчитать. А строить умный дом на 103 это что на Белазе на буханкой хлеба ездить.
лично мне нужно следующее: только для вентиляции - шесть аналоговых входов 0-10/4-20 и шесть аналоговых выходов 0-10, по простому это делает либо 102 либо 103 (с двумя аналоговыми модулями расширения к каждому), но у 102 нет LAN, и соответственно требуется докупать дополнительное устройство и сопрягать его по 485. 103 выходит дешевле любой другой комбинации овнов (если верить предварительной информации). кроме этого мне нужно ещё шесть входов PT1000, и в таком раскладе я вроде как укладываюсь всем климатом в один контроллер.
на счёт цены - контроллер стоит дешевле одного только привода для воздушной заслонки (дросселя), т.е. в бюджете проекта автоматизации это несколько процентов.
На вкус и цвет все фломастеры разные. Брать 103 из за изернет и использовать высокоскоростные входа для кнопок это по-моему слишком дорого. Я вижу что 103 для станков , прессов и прочего оборудования где нужно что то посчитать. А строить умный дом на 103 это что на Белазе на буханкой хлеба ездить.
тут вы не правы, посколmre у ПР как и других хоть и есть быстрые входы, но они асинхронные с циклом программы. по факту эти входы это удел счетчиков? чтобы накопление данных не промахать. а в станках нужны прерывания, и прочие плюшки высокоскоростных операций. ПР103 хороша там, где тебе надо в овеновское облако въехать. тут конечно из ее стоимости надо выкинуть стоимость шлюза и можно и на белазе по дому покататься.
лично мне нужно следующее: только для вентиляции - шесть аналоговых входов 0-10/4-20 и шесть аналоговых выходов 0-10, по простому это делает либо 102 либо 103 (с двумя аналоговыми модулями расширения к каждому), но у 102 нет LAN, и соответственно требуется докупать дополнительное устройство и сопрягать его по 485. 103 выходит дешевле любой другой комбинации овнов (если верить предварительной информации). кроме этого мне нужно ещё шесть входов PT1000, и в таком раскладе я вроде как укладываюсь всем климатом в один контроллер.
на счёт цены - контроллер стоит дешевле одного только привода для воздушной заслонки (дросселя), т.е. в бюджете проекта автоматизации это несколько процентов.
все зависит от сферы деятельности. не вентиляшкой одной задачи программируемых реле перекрываются.
Народ! у меняф тут форумчанин в личку спросил, почему у него не работает макрос. я посмотрел, проверил, и правда когда конструкция собрана в макрос она не работает, когда находится на поляне - работает. что за косяк? я чего-то не знаю, или в симуляторе баг? ОЛ 19.266
Алексеев
14.04.2021, 20:20
Народ! у меняф тут форумчанин в личку спросил, почему у него не работает макрос. я посмотрел, проверил, и правда когда конструкция собрана в макрос она не работает, когда находится на поляне - работает. что за косяк? я чего-то не знаю, или в симуляторе баг? ОЛ 19.266
Почему то был СТ2 , а не СТ1 , раньше были ошибки когда переменные повторялись с одним названием и с энергонезависимые в схеме
и макросе . 54543 Во вторых ведет себя не адекватно если есть такое совпадение . Раньше было это исправлено .
Это баг или фича .54544 а вот ещё 54545 . Уберите энерго не зависимость в макросе .
Это надо отправить в обсуждение OwenLogic 1.19 бета!!! как баг или фича .
AlexCrane
14.04.2021, 21:11
Народ! у меняф тут форумчанин в личку спросил, почему у него не работает макрос. я посмотрел, проверил, и правда когда конструкция собрана в макрос она не работает, когда находится на поляне - работает. что за косяк? я чего-то не знаю, или в симуляторе баг? ОЛ 19.266
Поставил использовать в макросе - Нет и все заработало...
Собрал макрос. Поправил пару связей которые в макросе криво собираются относительно полотна. Все работает.
54548 54549
пс. я кстати уже с таким сталкивался, когда ОЛ лепит макрос по каким то своим понятиям, а не так как мне надо.
Надо править внутри, как нужно.
И так поизголялся и сяк.. Внутри макроса развел связи, снаружи. работает.
54551 54552 54553
Может я что то не понял, как должно работать?
Поставил использовать в макросе - Нет и все заработало...
Вот тут не понял что куда поставили??
AlexCrane
15.04.2021, 21:03
Вот тут не понял что куда поставили??
Ну да забыл уточнить в каком месте
Алексеев
15.04.2021, 21:16
Ну да забыл уточнить в каком месте
На это тоже обратил внимание , как это получилось , в макросе счётчик начинается с 2 . Я его просто удалил , и вновь
поставил с номером 1 . Но натолкнулся на другое ,с которым давно мучаюсь с большими проектами .
https://owen.ru/forum/showthread.php?t=34214&p=353748&viewfull=1#post353748
спасибо за разъяснение, только не понял, на что эта настройка сообще должна была влиять (я про "ИСПОЛЬЗОВАНИЕ В МАКРОСЕ" и еще, а что вы за программу используете для съемки видео в гифки?
программу используете для съемки видео в гифки?
oCam
54635
AlexCrane
16.04.2021, 15:01
на что эта настройка сообще должна была влиять (я про "ИСПОЛЬЗОВАНИЕ В МАКРОСЕ" и еще, а что вы за программу используете для съемки видео в гифки?
На что влияет понятия не имею, а прогу загугли ScreenToGif
Алексеев
16.04.2021, 15:23
спасибо за разъяснение, только не понял, на что эта настройка сообщи должна была влиять (я про "ИСПОЛЬЗОВАНИЕ В МАКРОСЕ" и еще, а что вы за программу используете для съемки видео в гифки?
Лучше всего портейбл распакуй (без всякой рекламы -- надоест всякая реклама) и работай уже настроен . В пустой папке будут gif загружаются как картинки нужно только соблюдать размер .
Кстати Я тоже это не понял про "ИСПОЛЬЗОВАНИЕ В МАКРОСЕ" может быть нужно было задавать из основной схемы настройки СТ ???
Спасибо!! Вечером скачаю, поиграюсь!
Всем привет! Написал первую программу на OL и сразу появились сомнения.
Задача совершенно простая - при включении-выключении света делать это не резко, а плавно.
Драйвер ламп имеет вход 0-10 В для управления яркостью, вроде как всё просто, а вот стал писать программу - ужаснулся как громоздко всё получилось:
54911
Можете глянуть профессиональным взглядом и рассудить: я чего-то не понимаю и поэтому делаю через одно место, или оно действительно требует столько блоков чтобы реализовать простейшую функцию?
Сергей0308
30.04.2021, 19:12
Можно так:
54912
На входе немного переделать, как в вашем проекте инвертор на меньше, всё! На аналоговый выход из программы подаётся диапазон 0,0 - 1,0!
Примерно как-то так:
54914
Сергей0308,
Огромное спасибо! Так как у Вас существенно элегантнее (почти в два раза меньше блоков) и лучше допиливается под мои желания, а именно - я хочу ввести настройку скорости диммирования.
Два вопроса в этой связи:
1. Я использовал таймеры, но так и не понял, можно ли в программе менять их параметры (время задержки)
2. У вас целочисленные вычисления, а мне так и не ответили, даёт ли это хоть какое-то преимущество (память-скорость) перед работой с числами с плавающей точкой конкретно в программируемых реле ОВЕН (понятно, что в нормальной жизни нужно этого избегать).
Сергей0308
30.04.2021, 22:21
Сергей0308,
Огромное спасибо! Так как у Вас существенно элегантнее (почти в два раза меньше блоков) и лучше допиливается под мои желания, а именно - я хочу ввести настройку скорости диммирования.
Два вопроса в этой связи:
1. Я использовал таймеры, но так и не понял, можно ли в программе менять их параметры (время задержки)
2. У вас целочисленные вычисления, а мне так и не ответили, даёт ли это хоть какое-то преимущество (память-скорость) перед работой с числами с плавающей точкой конкретно в программируемых реле ОВЕН (понятно, что в нормальной жизни нужно этого избегать).
Можно задавать уставки через блок записи в функциональный блок, будет в миллисекундах!
54922
Если не изменяет память, кажется Алексей Геннадьевич проводил сравнения и писал, что вычисления с целочисленными переменными раза в 4 меньше ресурсов отъедают по сравнению с переменными с плавающей запятой!
Подскажите новичку плиз. Пытаюсь собрать схему управления двумя тэнами разной мощности в зависимости от дельты до уставки.
1 Как быть с функцией вычитания SUB? Пока Т воды меньше уставки все работает. Но если произошел перегрев (а такое возможно) функция выдает что то немыслимое на своем выходе. Вся логика ломается.
2 можно ли данную задачу решить как то изящнее (компактнее)?
Сергей0308
03.05.2021, 17:44
Подскажите новичку плиз. Пытаюсь собрать схему управления двумя тэнами разной мощности в зависимости от дельты до уставки.
1 Как быть с функцией вычитания SUB? Пока Т воды меньше уставки все работает. Но если произошел перегрев (а такое возможно) функция выдает что то немыслимое на своем выходе. Вся логика ломается.
2 можно ли данную задачу решить как то изящнее (компактнее)?
Много тем было по каскадному управлению, можно и посмотреть, вот проект из одной из тем:
54946
Мне кажется, должно подойти с минимальными изменениями!
Спасибо, Сергей, за наводку. Посмотрю, постараюсь вникнуть, подумаю. Пока такой костыль приладил))
Сергей0308
03.05.2021, 18:09
Спасибо, Сергей, за наводку. Посмотрю, постараюсь вникнуть, подумаю. Пока такой костыль приладил))
Непонятно, что Вы хотите придумать, если макрос гистерезиса, то он уже есть в менеджере компонентов и, кстати, в моём проекте, короче, боюсь, Вам ничего не надо выдумывать, всё уже выдумали до Вас! И Вам можно разбить ваши тэны на 3-и ступени, 1кВт, 2кВт и 3кВт - одновременно включены 1-ая и 2-ая ступени!
Сергей, я понял. Пока уткнулся в то, что макрос под флоат. Я же планировал целочисленные использовать. Ищу to FLOAT где взять)) Не все сразу...
Сергей0308
03.05.2021, 18:59
Сергей, я понял. Пока уткнулся в то, что макрос под флоат. Я же планировал целочисленные использовать. Ищу to FLOAT где взять)) Не все сразу...
Вы случайно не Вий, поднимите мне веки!
В ОЛ есть справка, можно там посмотреть:
54948
Ну не ругайтесь пожалуйста)) Искал значит но не там. Не ожидал что оно под носом.
Есть чайниковый вопрос. При работе с битами в OЛ младший бит нулевой или первый? Вообще, понимаю, стандартно должнн быть нулевой. Но в руководстве ОЛ в описании функций чтения и записи битов в примерах по-разному посчитано. Пример чтения бита - отсчет битов начат с единицы, пример записи бита - отсчет с нуля??
Сергей0308
04.05.2021, 13:11
Есть чайниковый вопрос. При работе с битами в OЛ младший бит нулевой или первый? Вообще, понимаю, стандартно должнн быть нулевой. Но в руководстве ОЛ в описании функций чтения и записи битов в примерах по-разному посчитано. Пример чтения бита - отсчет битов начат с единицы, пример записи бита - отсчет с нуля??
Младший - нулевой бит, в ОЛ есть функции вставки и извлечения бита, можно легко это проверить!
Спасибо. Доступа к ОЛ сейчас нет, поэтому и уточняю,в руководстве ошибки.. Время свободное пока есть, дома делаю кое какие наброски, чтобы на работе меньше времени тратить.
Доброго времени! Есть ли возможность сравнивать переменную float с её же значением секунду или 3 секунды назад? С помощью макроса fSave можно сохранить величину и через секунду сравнить с текущей, но это дискретно можно делать; а так чтобы постоянно мониторить? Поиском пользовался, но что искать - тоже не знаю (
HaterCheaters
23.06.2021, 23:47
Доброго времени! Есть ли возможность сравнивать переменную float с её же значением секунду или 3 секунды назад? С помощью макроса fSave можно сохранить величину и через секунду сравнить с текущей, но это дискретно можно делать; а так чтобы постоянно мониторить? Поиском пользовался, но что искать - тоже не знаю (
не вижу сложностей
Триггер спецом оставил висеть, хотя можно и без него было
55717
Сергей0308
24.06.2021, 08:18
Доброго времени! Есть ли возможность сравнивать переменную float с её же значением секунду или 3 секунды назад? С помощью макроса fSave можно сохранить величину и через секунду сравнить с текущей, но это дискретно можно делать; а так чтобы постоянно мониторить? Поиском пользовался, но что искать - тоже не знаю (
Можно в стек глубиной два писать с периодом равным 3 секунды, тогда можно сравнивать значения:
55718
Такой алгоритм запишет переменную 1 раз в 3 секунды и потом все 3 секунды можно сравнивать эту записанную величину с текущей, т.е. переменную саму с собой 3 секунды назад можно сравнить один раз в 3 секунды, остальное время выполнения программы она будет сравниваться с самой собой, но не 3 секунды назад, а 0,1с, 0,2с ... 2,8с, 2,9 с назад.
Для того, чтобы сравнивать переменную саму с собой 3 с назад каждые 0,1 с нужно построить 30 таких цепочек. Это я и называю дискретно, так я могу сделать...
А можно ли сделать сравнение с самой собой 3 секунды назад каждые 0,1 с не делая 30 цепочек, в он-лайн режиме?
Не знаю как иными словами это описать, первый раз пробую работать с программируемым реле....
Спасибо за ответы!
ну а где и на каком языке такое делали?
Ни на каком, потому в этой теме и написал )
Ревака Юрий
24.06.2021, 10:29
Такой алгоритм запишет переменную 1 раз в 3 секунды и потом все 3 секунды можно сравнивать эту записанную величину с текущей, т.е. переменную саму с собой 3 секунды назад можно сравнить один раз в 3 секунды, остальное время выполнения программы она будет сравниваться с самой собой, но не 3 секунды назад, а 0,1с, 0,2с ... 2,8с, 2,9 с назад.
Для того, чтобы сравнивать переменную саму с собой 3 с назад каждые 0,1 с нужно построить 30 таких цепочек. Это я и называю дискретно, так я могу сделать...
А можно ли сделать сравнение с самой собой 3 секунды назад каждые 0,1 с не делая 30 цепочек, в он-лайн режиме?
Не знаю как иными словами это описать, первый раз пробую работать с программируемым реле....
Спасибо за ответы!
Больше интересно в каком ключе Вы хотите это применять, для какой задачи, дискретно будет в любом случае.
Сергей0308
24.06.2021, 11:10
Такой алгоритм запишет переменную 1 раз в 3 секунды и потом все 3 секунды можно сравнивать эту записанную величину с текущей, т.е. переменную саму с собой 3 секунды назад можно сравнить один раз в 3 секунды, остальное время выполнения программы она будет сравниваться с самой собой, но не 3 секунды назад, а 0,1с, 0,2с ... 2,8с, 2,9 с назад.
Для того, чтобы сравнивать переменную саму с собой 3 с назад каждые 0,1 с нужно построить 30 таких цепочек. Это я и называю дискретно, так я могу сделать...
А можно ли сделать сравнение с самой собой 3 секунды назад каждые 0,1 с не делая 30 цепочек, в он-лайн режиме?
Не знаю как иными словами это описать, первый раз пробую работать с программируемым реле....
Спасибо за ответы!
Непонятно, как хотите сделать? Короче, делаете стек глубиной 30, запись с периодом 100 миллисекунд и сравнивайте любые значения за последние 3 секунды, всё!
Могу предложить стек для целочисленных переменных, вам придётся округлить вещественную переменную до n знаков после запятой и умножить на 10 в степени n, для сохранения в этом стеке, короче, Вам хватит этого стека(при написанных хотелках):
55725
Стек на 32 ячейки(разряда), но значение со входа сразу пишется в выбранную ячейку(разряд) для записи, подавая импульсы на входа сдвиг вправо(влево) происходит сдвиг на одну ячейку(разряд) вправо(влево). Каждый импульс сдвигает данные на один разряд(ячейку)! Номера ячеек(разрядов) 0-31, в основном всё!
Примерно как-то так:
55726
55727
Даже так:
55728
55729
Для отрицательных значений(если они присутствуют) есть макросы преобразования в INT(DINT) и функции обратного преобразования!
... дискретно будет в любом случае.
Именно это и хотел узнать. Спасибо!
Не совсем понимаю понятие дискретность тут... Если сделать скользящее окно как для входящего сигнала, так и для запомненного 3 минуты назад. Получится всегда сравнивать сигнал 3 минуты назад в любой момент времени.
Сергей0308
24.06.2021, 15:00
Не совсем понимаю понятие дискретность тут... Если сделать скользящее окно как для входящего сигнала, так и для запомненного 3 минуты назад. Получится всегда сравнивать сигнал 3 минуты назад в любой момент времени.
Чего здесь может быть непонятным? Значения переменной пишутся в стек с периодом 100 мс, стек на 30 разрядов(ячеек) в 30 разряде всегда будет значение сигнала 3 секунды назад, здесь ничего и городить не надо, и подглядывать нехорошо!
Сергей0308 да я не подглядывал. Понял, последняя и первая ячейка стека и есть всегда то, что есть и 3 секунды назад... :)
Только было бы прикольно, если бы из макроса было два выхода - последний, первый. Для простоты
Сергей0308
24.06.2021, 15:19
Сергей0308 да я не подглядывал. Понял, последняя и первая ячейка стека и есть всегда то, что есть и 3 секунды назад... :)
Только было бы прикольно, если бы из макроса было два выхода - последний, первый. Для простоты
Согласен, будет намного удобнее в подобных случаях, у меня имеется матрица памяти с двумя независимыми выходами, можно и в этот макрос добавить второй независимый выход, макрос без пароля, каждый может это сделать! И выходы не жёстко привязаны к какому-то разряду, а имеется выбор какой разряд стека выводить на каждый из выходов!
55730
Снова напишу в этой теме: вопрос по журналу... С упаковкой в целочисленную переменную нескольких значений я разобрался, но как записывать эти самые значения? Я записываю их в энергонезависимые переменные, но чтобы сделать журнал на 100 записей нужно создать 100 переменных, сделать 100 блоков для их записи и 100 блоков для обработки этих записей (для вывода на экран).
55915
Я на правильном пути или что-то пропустил и формировать журнал можно как-то иначе, элегантнее?
Сергей0308
08.07.2021, 10:29
Снова напишу в этой теме: вопрос по журналу... С упаковкой в целочисленную переменную нескольких значений я разобрался, но как записывать эти самые значения? Я записываю их в энергонезависимые переменные, но чтобы сделать журнал на 100 записей нужно создать 100 переменных, сделать 100 блоков для их записи и 100 блоков для обработки этих записей (для вывода на экран).
55915
Я на правильном пути или что-то пропустил и формировать журнал можно как-то иначе, элегантнее?
Странно, а чем Вас стек не устроил, что я в 55 посте предложил, кстати, он может работать и как матрица памяти(если сдвиг не использовать, просто писать в выбранные ячейки), или Вы проект не смотрели?
Странно, а чем Вас стек не устроил, что я в 55 посте предложил, кстати, он может работать и как матрица памяти(если сдвиг не использовать, просто писать в выбранные ячейки), или Вы проект не смотрели?
Там речь шла об определении роста/падения величины; здесь - о сохранении результатов работы.
Для прошлой задачи Ваш проект слишком "прожорливый", мне такая частота сравнений не нужна, сделал всё проще.
Для текущей задачи... Я правильно понимаю, то стек хранит одну сохраняемую переменную в одном и том же бите 32 запомненных переменных? А если нужно больше 32 значений, передавать переменную из 31х битов во второй такой же стек?
Сергей0308
08.07.2021, 14:14
Там речь шла об определении роста/падения величины; здесь - о сохранении результатов работы.
Для прошлой задачи Ваш проект слишком "прожорливый", мне такая частота сравнений не нужна, сделал всё проще.
Для текущей задачи... Я правильно понимаю, то стек хранит одну сохраняемую переменную в одном и том же бите 32 запомненных переменных? А если нужно больше 32 значений, передавать переменную из 31х битов во второй такой же стек?
Я вроде уже писал и в этой теме, что стек имеет 32 разряда(ячейки), со входа данных значение сразу пишется в выбранную ячейку, при использовании макроса в качестве матрицы памяти!
Ранее в других темах описывал работу этого макроса, если что непонятно могу ответить! Вроде уже должно быть ясно, как белый день и проект есть, где можно посмотреть и проверить, если что непонятно!
И большой разницы не вижу, там сохранение со сдвигом, Вы наверно хотите без сдвига, я уже написал, что макрос и так может работать, что здесь может быть непонятным?
Например со входа данных значение сразу пишется допустим в "0" ячейку(диапазон ячеек: 0-31), теперь меняем ячейку для записи на любую другую, при этом в "0" ячейке запоминается значение на входе данных на момент смены ячейки для записи и т. д., всё!
Спасибо, буду пробовать.
Извините за глупые вопросы...
Методический вопрос по блоку BLINK:
если поставить T_low= 0,25c, а T_high=0, то можно ли считать эту конструкцию как генератор одиночных импульсов с частотой 0,25с?
или же нужно делать 0,125/0,125 (не важно, суть чтобы было длиннее цикла программы), а потом ставить блок TP?
Можно после блинка с равными временами поставить R-TRIG, и на его выходе будет импульс на один цикл.
Можно после блинка с равными временами поставить R-TRIG, и на его выходе будет импульс на один цикл.
Спасибо что не прошли мимо, но Вы совершенно не ответили по существу моего вопроса.
Сергей0308
01.09.2021, 11:07
И что Вам непонятно, что уставка таймера не может быть менее времени цикла программы?
Теперь, надеюсь, понятно?
совершенно не ответили по существу моего вопроса.
можно ли считать эту конструкцию как генератор одиночных импульсов с частотой 0,25с?
Блинк с параметрами 0,125/0,125 + R-TRIG и есть генератор одиночных импульсов с частотой 0,25с. Время жизни импульса один цикл ПР.
Нулевое время в блинке - в симуляторе работает. Как будет в железе - вопрос.
И что Вам непонятно, что уставка таймера не может быть менее времени цикла программы?
Теперь, надеюсь, понятно?
Мне не понятно следующее: если задержка в таймере установлена меньше времени цикла (конкретно = 0), то будет ли гарантирован одиночный импульс (вполне допускаю что это - стандартная фича, и именно поэтому спрашиваю). Попробовал на небольшом тесте - всё работает как нужно, вопрос можно ли так и делать? понятно что можно и двумя блоками обойтись, но зачем перегружать программу лишними операциями?!
И что Вам непонятно, что уставка таймера не может быть менее времени цикла программы?
Теперь, надеюсь, понятно?
НЕТ, не понятно. Что значит "не может"? если ОЛ допускает ввод таких данных, а программа в виртуальной среде и будучи загруженной в прибор работает.
Сергей0308
01.09.2021, 18:44
НЕТ, не понятно. Что значит "не может"? если ОЛ допускает ввод таких данных, а программа в виртуальной среде и будучи загруженной в прибор работает.
Не может быть менее означает, что минимальное значение ограничено временем цикла программы!
Не может быть менее означает, что минимальное значение ограничено временем цикла программы!
т.е. уставка 0 означает фактически время одного цикла и этим гарантирует одиночный импульс, так?
кстати интересное дело с блоком TP: там (в описании) допустимо ставить длительность импульса = 0, в симуляторе (втч в пошаговом режиме) 1 на выходе не появляется никогда (как и на входе последующего блока), но при этом всё работает как нужно :) это вот точно бага!
Dron/9K на счет ТР выполните в симуляции работу по шагам, можете удивиться одному импульсу.
Вообще программно можно обрывать работу таймеров, меняя PT на 0, только в некоторых случаях еще необходимо ставить AND на выход таймера и этим нулем (int_to_bool) так же заводить на AND
Dron/9K на счет ТР выполните в симуляции работу по шагам, можете удивиться одному импульсу.
я же в сообщении выше написал - в пошаговом режиме!
смотрите на ТР2 - там на выходе всегда ноль, но при этом присоединённый SEL вполне себе увеличивает счётчик :)
56826
Ревака Юрий
02.09.2021, 11:09
я же в сообщении выше написал - в пошаговом режиме!
смотрите на ТР2 - там на выходе всегда ноль, но при этом присоединённый SEL вполне себе увеличивает счётчик :)
56826
Рекомендую еще обратить внимание на задание параметров симуляции, "Время цикла" и "Период".
Рекомендую еще обратить внимание на задание параметров симуляции, "Время цикла" и "Период".
Внимание обратил, ничего не поменялось.
Подскажите, плиз: у меня на ПР200 установлены два порта 485. Первый - мастер, он опрашивает устройства в сетевые переменные. Второй - слейв. Как можно использовать эти сетевые переменные вторым портом, назначенные для первого порта? Или сторонний мастер их сам сможет считать по номеру регистра, невзирая, что они прописаны в первом RS485?
Ревака Юрий
02.10.2021, 21:20
Подскажите, плиз: у меня на ПР200 установлены два порта 485. Первый - мастер, он опрашивает устройства в сетевые переменные. Второй - слейв. Как можно использовать эти сетевые переменные вторым портом, назначенные для первого порта? Или сторонний мастер их сам сможет считать по номеру регистра, невзирая, что они прописаны в первом RS485?
Регистры из мастера записать в регистры слейва или наоборот, общий доступ это когда оба интерфейсы в режиме слейв.
Спасибо, будем пробовать.
Приветствую, коллеги. Делаю счетчик наработки двигателя на ПР200. Каждую минуту целочисленная переменная "Наработка" увеличивается на 1. Есть два вопроса. 1) Одинаковая ли погрешность по времени у сервисной переменной "Минуты" и у генератора "Blink"? 2) Необходимо предусмотреть задание переменной "Наработка" вручную с кнопок ПР200. Т.е. переменная "Наработка" была например 1000 мин, затем по каким-то причинам ее надо задать равной 500 мин и подсчет времени наработки должно продолжаться уже от 500 мин. Правильно я понимаю, что если редактировать переменную "Наработка" на дисплее с помощью кнопок, то очередные минутные импульсы во время редактирования не будут восприниматься переменной? Просто ПР200 пока нет на руках, а возможности ОвенЛоджик не позволяют проверить этот момент.
Ревака Юрий
04.10.2021, 15:52
Приветствую, коллеги. Делаю счетчик наработки двигателя на ПР200. Каждую минуту целочисленная переменная "Наработка" увеличивается на 1. Есть два вопроса. 1) Одинаковая ли погрешность по времени у сервисной переменной "Минуты" и у генератора "Blink"? 2) Необходимо предусмотреть задание переменной "Наработка" вручную с кнопок ПР200. Т.е. переменная "Наработка" была например 1000 мин, затем по каким-то причинам ее надо задать равной 500 мин и подсчет времени наработки должно продолжаться уже от 500 мин. Правильно я понимаю, что если редактировать переменную "Наработка" на дисплее с помощью кнопок, то очередные минутные импульсы во время редактирования не будут восприниматься переменной? Просто ПР200 пока нет на руках, а возможности ОвенЛоджик не позволяют проверить этот момент.
Добрый день. Посмотрите макрос OperTimer_ в Менеджере компонентов, группа Общие, может он с минимальными доработками подойдет. Я думаю если за минуту время наработки скорректировать, то никакой погрешности не будет, да и наработка обычно в часах идет, даже если на пару минут набежит погрешность не должно быть критично.
Добавлю, что блинк != минуты, последние точнее.
Юрий поставьте на полотно 6 а лучше 8 макросов opertimer. Запустите от секунды включите счет и оставьте на сутки. Будете удивлены.
Ревака Юрий
04.10.2021, 20:56
Юрий поставьте на полотно 6 а лучше 8 макросов opertimer. Запустите от секунды включите счет и оставьте на сутки. Будете удивлены.
Хм.. интересно, нужно будет протестировать, как раз логгер проверю. Я ж надеюсь мы не про симуляцию сейчас говорим?
Спасибо за подсказки. Тоже была чуйка, что "Минуты" точнее, чем "Блинк"
То что они тормозят в режиме симуляции я писал. Чем больше макросов тем больше в симуляции расхождение между входом секунда и изменением состояния выхода минута. Если при 4 макросах задержки почти нет. А вот пришла 6 макросах задержка доходит до 10секун. А при 8макросах время задержки ещё больше.
Юрий что за логгер? Железочка или макрос. Если можно то подробности здесь или в личку.
Ревака Юрий
08.10.2021, 10:27
Юрий что за логгер? Железочка или макрос. Если можно то подробности здесь или в личку.
Железо на основе моей платы, а дальше скрипт на ПК который архивирует регистры в файл, запустил Ваш пример на тест, вывел минуты в регистры, накопится время, можно будет увидеть несоответствие по времени. Кстати, за какое время набегает у Вас погрешность в макросе, что это становится заметно?
Если смотреть на железе . То время изменения минут на индикаторе может может доходить до 20 секунд на минуту между макросами.
Например. На всех входах макроса( opertimer) 59 секунд. Приходит ещё одна секунда и должен поменяться счетчик минут. И мы видим что произошла мена на 1 и 2 макросе. через 3-5 секунд на 3, 4, 5 макросе и еще через 10 секунд на 6,7,8 макросе. Это примерное время. Но самое главное оно не повторяется. В одно цикле нормально сработал 1 макрос. В другом цикле 8 макрос.
Ревака Юрий
08.10.2021, 16:09
В общем 6 часов простоял проект с запущенным тестом, никаких изменений по времени я не заметил, лог прикрепляю, можно увидеть что переключение каждой минуты по всем 5 счетчикам начинается в 49-50 сек, как в начале так и в конце теста. Смотрел 5 каналов, вторые 5 каналов это часы.
Юрий пять счетчиков работают на Ура. Сбои после 6. А если 7-8 то это даже в режиме онлайн отладки видно что изменение на вход(секунда) не совпадает с переводом минуты на выходе макроса. Если с симулятором это зависит от настройки то в железе это от чего зависит. В понедельник по пробую снять видео о работе.
Vladimir F
16.10.2021, 15:29
Помогите пожалуйста. Проблема в следующем как подключить подстроечный резистор как пример 10 кОМ к аналоговому входу ПР200 и преобразовать значение в мощность и подать на аналоговый выход ПР200.
Сергей0308
16.10.2021, 16:00
Помогите пожалуйста. Проблема в следующем как подключить подстроечный резистор как пример 10 кОМ к аналоговому входу ПР200 и преобразовать значение в мощность и подать на аналоговый выход ПР200.
Это же элементарно, короче, запоминаете значения сопротивлений в крайних положениях резистора и преобразуете полученный диапазон в диапазон 0-1 с помощью макроса Scale, имеется в менеджере компонентов, всё!
Подобный пример в этом проекте можно посмотреть:
57510
Помогите пожалуйста. Проблема в следующем как подключить подстроечный резистор как пример 10 кОМ к аналоговому входу ПР200 и преобразовать значение в мощность и подать на аналоговый выход ПР200.
Зачем вам переменник на 10к, когда диапазон аналоговых входов ПР200 в режиме измерения сопротивления 0-4к? Оно, кагбэ, работает и с бОльшими сопротивлениями, и это обсуждалось на форуме. Но тогда ОВЕН ничего не гарантирует.
Vladimir F
16.10.2021, 16:47
Спасибо Сергей 0308 за помощь. Я про это совсем забыл. Если можно подскажите пожалуйста как заставить макрос ( Простой PID регулятор правильно работать. Задача следующая поддерживать температуру 80 градусов. Какие мне параметры нужно ввести.
Сергей0308
16.10.2021, 17:01
Спасибо Сергей 0308 за помощь. Я про это совсем забыл. Если можно подскажите пожалуйста как заставить макрос ( Простой PID регулятор правильно работать. Задача следующая поддерживать температуру 80 градусов. Какие мне параметры нужно ввести.
У ПИД-регулятора из ОЛ есть автоматическая настройка, можно ей воспользоваться!
Вот их и введёте, полученные значения после автоматической настройки!
Vladimir F
16.10.2021, 17:07
Я 10к обозначил как пример и это условие не обязательное.
Vladimir F
16.10.2021, 17:13
Сергей 0308 если можно подскажи какие условия нужно соблюсти чтобы этот PID заработал.
Сергей0308
16.10.2021, 17:30
Сергей 0308 если можно подскажи какие условия нужно соблюсти чтобы этот PID заработал.
Чтобы в симуляторе работало можно так настроить:
57512
Vladimir F
16.10.2021, 17:57
Спасибо Сергей 0308 позже попробую.
Ревака Юрий
16.10.2021, 21:14
Юрий пять счетчиков работают на Ура. Сбои после 6. А если 7-8 то это даже в режиме онлайн отладки видно что изменение на вход(секунда) не совпадает с переводом минуты на выходе макроса. Если с симулятором это зависит от настройки то в железе это от чего зависит. В понедельник по пробую снять видео о работе.
Я запустил Ваш проект, там 8 таймеров, логи пишутся до сих пор, только что посмотрел, уже 202 часа насчитало, да есть небольшое рассогласование на сейчас это около 12 секунд, но это за 8 дней непрерывной работы. За год набежит 9 минут, если считать без перерыва, в году 525600 минут!!! я не вижу тут проблем, вся логика строится на часах реального времени, если рассогласование превышает разумные пределы, возможно проблемы с часами и нужна подстройка.
Юрий. Спасибо что помогли. Разгрузим до 6 блоков и хай это работает(почему то всем срочно нужно облучать комнаты уф лампами)
Ревака Юрий
20.10.2021, 08:20
Юрий. Спасибо что помогли. Разгрузим до 6 блоков и хай это работает(почему то всем срочно нужно облучать комнаты уф лампами)
Я думаю что можно и не уменьшать, если нужно больше в одном реле, на точность не это влияет.
Сейчас посмотрел, при наработке в 286 часов (12 дней), разница в переключении от первоначального состояния составляет ~25 секунд, т.е. погрешность есть, но не такая чтоб это было заметно на глаз, можно ввести коррекцию хода часов в меню или периодически делать синхронизацию.
Первый раз этот блок тоже использовал на ламинарных камерах для контроля наработки УФ ламп.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot