PDA

Просмотр полной версии : Вопросы чайника, не ругайтесь пожалуйста



Dron/9K
04.04.2021, 23:36
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?

Всем заранее спасибо!

bayk
05.04.2021, 00:16
1. Это ненормально, но это все поганая винда. Не пользуйтесь сном на коротких промежутках. У меня вообще отключен - не раз спасало!
2. Что такое астрономические часы? Если астротаймер, то по этому слову ищите макрос. Он существует, но не в виде заводского блока
3. Подключите нужное количество модулей Mx110 (или любых других с нужным количеством выходов) по rs-485. Да, некрасиво выглядит, зато работает хорошо. Работа прки не ограничивается только модулям тна внутренней шине, просто работать с ними не так удобно.
4. Если в режиме напряжения, то диапазон на входе от 0 до 10 вольт преобразовывается сигнал от нижнего до верхнего значения, которые указаны в настройках этого входа. Читайте инструкцию, в ней много полезного думаете вполне правильно
5. Почитайте разницу в Гугле между типами float и integer. Тут уж простите.
6. Да, но только один -руки программиста ;) по сути у обоих устройств один язык программирования. Портация труда составить не должна, ед нчтвенное у лого работа с аналоговыми данными сделана через жопу.

игорь68
05.04.2021, 07:51
По вопросу 6. Полной совместимости нет. Есть совпадения только по логике(И,ИЛИ,НЕ, и тд и тп). А вот остальные макросы у ОЛ и немца разные. Тут только самому делать "аналог".

Dron/9K
05.04.2021, 08:32
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), кроме того и один регистр потребуется вместо двух. Только имейте ввиду что инт в ОЛ беззнаковый тип данных, но не всё так безнадёжно, есть макросы для преобразования.

Dron/9K
05.04.2021, 10:11
Принято считать, что целочисленные вычисления отъедают в несколько раз меньше ресурсов, чем вычисления с плавающей запятой, поэтому где хватает "инта" или можно им обойтись, стараюсь его и применять. Например передавать значение в умноженном на 10(100) виде, после передачи преобразовать во флоат и разделить на 10(100), кроме того и один регистр потребуется вместо двух. Только имейте ввиду что инт в ОЛ беззнаковый тип данных, но не всё так безнадёжно, есть макросы для преобразования.

Я так понимаю, Вы сейчас о внешних интерфейсах (485?). А в самой программе эта оптимизация имеет хоть какой-то смысл?
Я помню что когда (давно) учился в институте нас ругали за применение операции вычитания без нужды, т.к. она требовала больше тактов процессора чем сложение, и типа можно получить инвертированное значение на предыдущей операции и потом складывать, не тупо вычитать. Но вот есть у меня предположение, что в современных средах программирования давно всё не так, и на бинарные переменные тратятся те же 4 или сколько там байтов памяти, что и на рациональные.

Ладно, это не так принципиально, пока не мешает работать с float :)

Вопрос по обратным связям - система подсвечивает их жёлтым и предлагает заменить на линии задержки (на которые тоже ругается желтым). Их применять нельзя или это просто предостережение?
Я взял первый попавшийся "официальный" макрос и увидел там эти обратные связи с предупреждением. Не понимаю :)

Алексеев
05.04.2021, 10:42
Вопрос по обратным связям - система подсвечивает их жёлтым и предлагает заменить на линии задержки (на которые тоже ругается желтым). Их применять нельзя или это просто предостережение?
Я взял первый попавшийся "официальный" макрос и увидел там эти обратные связи с предупреждением. Не понимаю :)
Всегда меняю на линию задержки , раздражает жёлтый цвет . Это сделано для совместимости со старыми проектами .

Dron/9K
11.04.2021, 08:25
Коллеги, вот столкнулся с ещё одной «проблемой» на пустом месте. Если выделяю кусок «кода» и прошу сделать из него макрос, то получаю огромный такой символ макроса на четверть экрана, а если создаю пустой макрос и потом переношу туда нужные мне FB, то символ макроса остаётся прежним маленьким и аккуратным.

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

Сергей0308
11.04.2021, 13:25
Коллеги, вот столкнулся с ещё одной «проблемой» на пустом месте. Если выделяю кусок «кода» и прошу сделать из него макрос, то получаю огромный такой символ макроса на четверть экрана, а если создаю пустой макрос и потом переношу туда нужные мне FB, то символ макроса остаётся прежним маленьким и аккуратным.

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

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

Dron/9K
11.04.2021, 13:56
Размеры макроса, насколько я понимаю, зависят от количества входов-выходов(чего больше), длины надписи на входах-выходах(где длиннее) и длины названия самого макроса, когда Вы создаете новый макрос, названия входов-выходов принимаются по умолчанию и их длина минимальна, короче, мне казалось это весьма очевидным, что и понимать там нечего, оказалось, что я ошибаюсь и не всегда(не всем) это понятно!

Сергей, спасибо, Вы абсолютно правы - размер символа меняет ширину в зависимости от длины названий входов-выходов, достаточно один вход или выход назвать длинным именем, как символ раздаётся в ширину :)
Экспериментально подтверждено, вопрос снят! :)

А вот ещё вопрос (честно, не читал пока документации на этот счёт) - есть ли в контроллерах ПР журнал событий?

игорь68
11.04.2021, 18:32
Журнала события нет.

Dron/9K
12.04.2021, 07:06
Журнала события нет.
И по переменным/входам тоже ничего такого нет? Остаётся только 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

Dron/9K
12.04.2021, 12:44
Спасибо, пойду изучать :)

Я для себя рассматриваю единственную модель реле - это запланированное на начало выпуска в 1 квартале (хе-хе) ПР103, остальные без LAN как-то совсем унылы.
Вопрос, к каким ячейкам будет доступ по сети и каким образом... Рассуждать о ещё не вышедшем продукте как-то неловко :))) Опять же - есть облако, умеет ли оно накапливать "бигдату" по переменным?

Ну и чтобы дважды не вставать - есть ли готовый макрос для подсчёта условных моточасов?

Ревака Юрий
12.04.2021, 13:37
Спасибо, пойду изучать :)

Я для себя рассматриваю единственную модель реле - это запланированное на начало выпуска в 1 квартале (хе-хе) ПР103, остальные без LAN как-то совсем унылы.
Вопрос, к каким ячейкам будет доступ по сети и каким образом... Рассуждать о ещё не вышедшем продукте как-то неловко :))) Опять же - есть облако, умеет ли оно накапливать "бигдату" по переменным?

Ну и чтобы дважды не вставать - есть ли готовый макрос для подсчёта условных моточасов?

Так в ПР103 возможности по архивированию событий будут шире, внутренние архивы, архивирование в облако. Доступ по сети аналогичен ПР200, только количество сетевых регистров будет больше. По моточасам есть макрос наработки OperTimer_ в базе группа "Общие".

bayk
13.04.2021, 17:49
Спасибо, пойду изучать :)
Я для себя рассматриваю единственную модель реле - это запланированное на начало выпуска в 1 квартале (хе-хе) ПР103
вы просто путаете позиционирование ПР разных видов. ПР200 пока уникальна тем, что имеет дисплей и совмещение аналоговых входов и дискретных входов с потенциалом 220VAC, есть собственный источник питания 24В 100 мА для питания аналоговых датчиков), что позволяет значительно уменьшить бюджет проекта (нет нужен БП, и реле для развязки сигналов) и собрать самые бюджетные вещи.
у других моделей, включая ПР103 - или входы "фазные" и питание 220В или аналоговые входы на борту и питание и дискретные входы - 24В, что резко увеличивает стоимость применения в бюджетных решениях. кроме этого нет дисплея.

игорь68
14.04.2021, 10:03
На вкус и цвет все фломастеры разные. Брать 103 из за изернет и использовать высокоскоростные входа для кнопок это по-моему слишком дорого. Я вижу что 103 для станков , прессов и прочего оборудования где нужно что то посчитать. А строить умный дом на 103 это что на Белазе на буханкой хлеба ездить.

Dron/9K
14.04.2021, 10:40
На вкус и цвет все фломастеры разные. Брать 103 из за изернет и использовать высокоскоростные входа для кнопок это по-моему слишком дорого. Я вижу что 103 для станков , прессов и прочего оборудования где нужно что то посчитать. А строить умный дом на 103 это что на Белазе на буханкой хлеба ездить.

лично мне нужно следующее: только для вентиляции - шесть аналоговых входов 0-10/4-20 и шесть аналоговых выходов 0-10, по простому это делает либо 102 либо 103 (с двумя аналоговыми модулями расширения к каждому), но у 102 нет LAN, и соответственно требуется докупать дополнительное устройство и сопрягать его по 485. 103 выходит дешевле любой другой комбинации овнов (если верить предварительной информации). кроме этого мне нужно ещё шесть входов PT1000, и в таком раскладе я вроде как укладываюсь всем климатом в один контроллер.

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

bayk
14.04.2021, 13:10
На вкус и цвет все фломастеры разные. Брать 103 из за изернет и использовать высокоскоростные входа для кнопок это по-моему слишком дорого. Я вижу что 103 для станков , прессов и прочего оборудования где нужно что то посчитать. А строить умный дом на 103 это что на Белазе на буханкой хлеба ездить.

тут вы не правы, посколmre у ПР как и других хоть и есть быстрые входы, но они асинхронные с циклом программы. по факту эти входы это удел счетчиков? чтобы накопление данных не промахать. а в станках нужны прерывания, и прочие плюшки высокоскоростных операций. ПР103 хороша там, где тебе надо в овеновское облако въехать. тут конечно из ее стоимости надо выкинуть стоимость шлюза и можно и на белазе по дому покататься.


лично мне нужно следующее: только для вентиляции - шесть аналоговых входов 0-10/4-20 и шесть аналоговых выходов 0-10, по простому это делает либо 102 либо 103 (с двумя аналоговыми модулями расширения к каждому), но у 102 нет LAN, и соответственно требуется докупать дополнительное устройство и сопрягать его по 485. 103 выходит дешевле любой другой комбинации овнов (если верить предварительной информации). кроме этого мне нужно ещё шесть входов PT1000, и в таком раскладе я вроде как укладываюсь всем климатом в один контроллер.

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

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

bayk
14.04.2021, 17:43
Народ! у меняф тут форумчанин в личку спросил, почему у него не работает макрос. я посмотрел, проверил, и правда когда конструкция собрана в макрос она не работает, когда находится на поляне - работает. что за косяк? я чего-то не знаю, или в симуляторе баг? ОЛ 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

Поставил использовать в макросе - Нет и все заработало...

Юрий Н
14.04.2021, 21:34
Собрал макрос. Поправил пару связей которые в макросе криво собираются относительно полотна. Все работает.

54548 54549

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

Юрий Н
14.04.2021, 22:07
И так поизголялся и сяк.. Внутри макроса развел связи, снаружи. работает.

54551 54552 54553

Может я что то не понял, как должно работать?

bayk
15.04.2021, 00:27
Поставил использовать в макросе - Нет и все заработало...

Вот тут не понял что куда поставили??

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

bayk
16.04.2021, 14:50
спасибо за разъяснение, только не понял, на что эта настройка сообще должна была влиять (я про "ИСПОЛЬЗОВАНИЕ В МАКРОСЕ" и еще, а что вы за программу используете для съемки видео в гифки?

Юрий Н
16.04.2021, 15:01
программу используете для съемки видео в гифки?

oCam

54635

AlexCrane
16.04.2021, 15:01
на что эта настройка сообще должна была влиять (я про "ИСПОЛЬЗОВАНИЕ В МАКРОСЕ" и еще, а что вы за программу используете для съемки видео в гифки?
На что влияет понятия не имею, а прогу загугли ScreenToGif

Алексеев
16.04.2021, 15:23
спасибо за разъяснение, только не понял, на что эта настройка сообщи должна была влиять (я про "ИСПОЛЬЗОВАНИЕ В МАКРОСЕ" и еще, а что вы за программу используете для съемки видео в гифки?
Лучше всего портейбл распакуй (без всякой рекламы -- надоест всякая реклама) и работай уже настроен . В пустой папке будут gif загружаются как картинки нужно только соблюдать размер .
Кстати Я тоже это не понял про "ИСПОЛЬЗОВАНИЕ В МАКРОСЕ" может быть нужно было задавать из основной схемы настройки СТ ???

bayk
16.04.2021, 15:31
Спасибо!! Вечером скачаю, поиграюсь!

Dron/9K
30.04.2021, 18:24
Всем привет! Написал первую программу на OL и сразу появились сомнения.

Задача совершенно простая - при включении-выключении света делать это не резко, а плавно.
Драйвер ламп имеет вход 0-10 В для управления яркостью, вроде как всё просто, а вот стал писать программу - ужаснулся как громоздко всё получилось:

54911

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

Сергей0308
30.04.2021, 19:12
Можно так:

54912

На входе немного переделать, как в вашем проекте инвертор на меньше, всё! На аналоговый выход из программы подаётся диапазон 0,0 - 1,0!

Примерно как-то так:

54914

Dron/9K
30.04.2021, 21:03
Сергей0308,
Огромное спасибо! Так как у Вас существенно элегантнее (почти в два раза меньше блоков) и лучше допиливается под мои желания, а именно - я хочу ввести настройку скорости диммирования.
Два вопроса в этой связи:
1. Я использовал таймеры, но так и не понял, можно ли в программе менять их параметры (время задержки)
2. У вас целочисленные вычисления, а мне так и не ответили, даёт ли это хоть какое-то преимущество (память-скорость) перед работой с числами с плавающей точкой конкретно в программируемых реле ОВЕН (понятно, что в нормальной жизни нужно этого избегать).

Сергей0308
30.04.2021, 22:21
Сергей0308,
Огромное спасибо! Так как у Вас существенно элегантнее (почти в два раза меньше блоков) и лучше допиливается под мои желания, а именно - я хочу ввести настройку скорости диммирования.
Два вопроса в этой связи:
1. Я использовал таймеры, но так и не понял, можно ли в программе менять их параметры (время задержки)
2. У вас целочисленные вычисления, а мне так и не ответили, даёт ли это хоть какое-то преимущество (память-скорость) перед работой с числами с плавающей точкой конкретно в программируемых реле ОВЕН (понятно, что в нормальной жизни нужно этого избегать).

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

54922

Если не изменяет память, кажется Алексей Геннадьевич проводил сравнения и писал, что вычисления с целочисленными переменными раза в 4 меньше ресурсов отъедают по сравнению с переменными с плавающей запятой!

brig62
03.05.2021, 17:27
Подскажите новичку плиз. Пытаюсь собрать схему управления двумя тэнами разной мощности в зависимости от дельты до уставки.
1 Как быть с функцией вычитания SUB? Пока Т воды меньше уставки все работает. Но если произошел перегрев (а такое возможно) функция выдает что то немыслимое на своем выходе. Вся логика ломается.
2 можно ли данную задачу решить как то изящнее (компактнее)?

Сергей0308
03.05.2021, 17:44
Подскажите новичку плиз. Пытаюсь собрать схему управления двумя тэнами разной мощности в зависимости от дельты до уставки.
1 Как быть с функцией вычитания SUB? Пока Т воды меньше уставки все работает. Но если произошел перегрев (а такое возможно) функция выдает что то немыслимое на своем выходе. Вся логика ломается.
2 можно ли данную задачу решить как то изящнее (компактнее)?

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

54946

Мне кажется, должно подойти с минимальными изменениями!

brig62
03.05.2021, 17:58
Спасибо, Сергей, за наводку. Посмотрю, постараюсь вникнуть, подумаю. Пока такой костыль приладил))

Сергей0308
03.05.2021, 18:09
Спасибо, Сергей, за наводку. Посмотрю, постараюсь вникнуть, подумаю. Пока такой костыль приладил))

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

brig62
03.05.2021, 18:49
Сергей, я понял. Пока уткнулся в то, что макрос под флоат. Я же планировал целочисленные использовать. Ищу to FLOAT где взять)) Не все сразу...

Сергей0308
03.05.2021, 18:59
Сергей, я понял. Пока уткнулся в то, что макрос под флоат. Я же планировал целочисленные использовать. Ищу to FLOAT где взять)) Не все сразу...

Вы случайно не Вий, поднимите мне веки!

В ОЛ есть справка, можно там посмотреть:

54948

brig62
03.05.2021, 19:02
Ну не ругайтесь пожалуйста)) Искал значит но не там. Не ожидал что оно под носом.

wad71
04.05.2021, 12:58
Есть чайниковый вопрос. При работе с битами в OЛ младший бит нулевой или первый? Вообще, понимаю, стандартно должнн быть нулевой. Но в руководстве ОЛ в описании функций чтения и записи битов в примерах по-разному посчитано. Пример чтения бита - отсчет битов начат с единицы, пример записи бита - отсчет с нуля??

Сергей0308
04.05.2021, 13:11
Есть чайниковый вопрос. При работе с битами в OЛ младший бит нулевой или первый? Вообще, понимаю, стандартно должнн быть нулевой. Но в руководстве ОЛ в описании функций чтения и записи битов в примерах по-разному посчитано. Пример чтения бита - отсчет битов начат с единицы, пример записи бита - отсчет с нуля??

Младший - нулевой бит, в ОЛ есть функции вставки и извлечения бита, можно легко это проверить!

wad71
04.05.2021, 15:20
Спасибо. Доступа к ОЛ сейчас нет, поэтому и уточняю,в руководстве ошибки.. Время свободное пока есть, дома делаю кое какие наброски, чтобы на работе меньше времени тратить.

n711
23.06.2021, 21:11
Доброго времени! Есть ли возможность сравнивать переменную float с её же значением секунду или 3 секунды назад? С помощью макроса fSave можно сохранить величину и через секунду сравнить с текущей, но это дискретно можно делать; а так чтобы постоянно мониторить? Поиском пользовался, но что искать - тоже не знаю (

HaterCheaters
23.06.2021, 23:47
Доброго времени! Есть ли возможность сравнивать переменную float с её же значением секунду или 3 секунды назад? С помощью макроса fSave можно сохранить величину и через секунду сравнить с текущей, но это дискретно можно делать; а так чтобы постоянно мониторить? Поиском пользовался, но что искать - тоже не знаю (

не вижу сложностей
Триггер спецом оставил висеть, хотя можно и без него было
55717

Сергей0308
24.06.2021, 08:18
Доброго времени! Есть ли возможность сравнивать переменную float с её же значением секунду или 3 секунды назад? С помощью макроса fSave можно сохранить величину и через секунду сравнить с текущей, но это дискретно можно делать; а так чтобы постоянно мониторить? Поиском пользовался, но что искать - тоже не знаю (

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

55718

n711
24.06.2021, 09:19
Такой алгоритм запишет переменную 1 раз в 3 секунды и потом все 3 секунды можно сравнивать эту записанную величину с текущей, т.е. переменную саму с собой 3 секунды назад можно сравнить один раз в 3 секунды, остальное время выполнения программы она будет сравниваться с самой собой, но не 3 секунды назад, а 0,1с, 0,2с ... 2,8с, 2,9 с назад.
Для того, чтобы сравнивать переменную саму с собой 3 с назад каждые 0,1 с нужно построить 30 таких цепочек. Это я и называю дискретно, так я могу сделать...
А можно ли сделать сравнение с самой собой 3 секунды назад каждые 0,1 с не делая 30 цепочек, в он-лайн режиме?
Не знаю как иными словами это описать, первый раз пробую работать с программируемым реле....

Спасибо за ответы!

n711
24.06.2021, 09:56
ну а где и на каком языке такое делали?

Ни на каком, потому в этой теме и написал )

Ревака Юрий
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) и функции обратного преобразования!

n711
24.06.2021, 12:19
... дискретно будет в любом случае.

Именно это и хотел узнать. Спасибо!

melky
24.06.2021, 14:35
Не совсем понимаю понятие дискретность тут... Если сделать скользящее окно как для входящего сигнала, так и для запомненного 3 минуты назад. Получится всегда сравнивать сигнал 3 минуты назад в любой момент времени.

Сергей0308
24.06.2021, 15:00
Не совсем понимаю понятие дискретность тут... Если сделать скользящее окно как для входящего сигнала, так и для запомненного 3 минуты назад. Получится всегда сравнивать сигнал 3 минуты назад в любой момент времени.

Чего здесь может быть непонятным? Значения переменной пишутся в стек с периодом 100 мс, стек на 30 разрядов(ячеек) в 30 разряде всегда будет значение сигнала 3 секунды назад, здесь ничего и городить не надо, и подглядывать нехорошо!

melky
24.06.2021, 15:11
Сергей0308 да я не подглядывал. Понял, последняя и первая ячейка стека и есть всегда то, что есть и 3 секунды назад... :)

Только было бы прикольно, если бы из макроса было два выхода - последний, первый. Для простоты

Сергей0308
24.06.2021, 15:19
Сергей0308 да я не подглядывал. Понял, последняя и первая ячейка стека и есть всегда то, что есть и 3 секунды назад... :)

Только было бы прикольно, если бы из макроса было два выхода - последний, первый. Для простоты

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

55730

n711
07.07.2021, 19:13
Снова напишу в этой теме: вопрос по журналу... С упаковкой в целочисленную переменную нескольких значений я разобрался, но как записывать эти самые значения? Я записываю их в энергонезависимые переменные, но чтобы сделать журнал на 100 записей нужно создать 100 переменных, сделать 100 блоков для их записи и 100 блоков для обработки этих записей (для вывода на экран).
55915
Я на правильном пути или что-то пропустил и формировать журнал можно как-то иначе, элегантнее?

Сергей0308
08.07.2021, 10:29
Снова напишу в этой теме: вопрос по журналу... С упаковкой в целочисленную переменную нескольких значений я разобрался, но как записывать эти самые значения? Я записываю их в энергонезависимые переменные, но чтобы сделать журнал на 100 записей нужно создать 100 переменных, сделать 100 блоков для их записи и 100 блоков для обработки этих записей (для вывода на экран).
55915
Я на правильном пути или что-то пропустил и формировать журнал можно как-то иначе, элегантнее?

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

n711
08.07.2021, 13:58
Странно, а чем Вас стек не устроил, что я в 55 посте предложил, кстати, он может работать и как матрица памяти(если сдвиг не использовать, просто писать в выбранные ячейки), или Вы проект не смотрели?

Там речь шла об определении роста/падения величины; здесь - о сохранении результатов работы.
Для прошлой задачи Ваш проект слишком "прожорливый", мне такая частота сравнений не нужна, сделал всё проще.
Для текущей задачи... Я правильно понимаю, то стек хранит одну сохраняемую переменную в одном и том же бите 32 запомненных переменных? А если нужно больше 32 значений, передавать переменную из 31х битов во второй такой же стек?

Сергей0308
08.07.2021, 14:14
Там речь шла об определении роста/падения величины; здесь - о сохранении результатов работы.
Для прошлой задачи Ваш проект слишком "прожорливый", мне такая частота сравнений не нужна, сделал всё проще.
Для текущей задачи... Я правильно понимаю, то стек хранит одну сохраняемую переменную в одном и том же бите 32 запомненных переменных? А если нужно больше 32 значений, передавать переменную из 31х битов во второй такой же стек?

Я вроде уже писал и в этой теме, что стек имеет 32 разряда(ячейки), со входа данных значение сразу пишется в выбранную ячейку, при использовании макроса в качестве матрицы памяти!
Ранее в других темах описывал работу этого макроса, если что непонятно могу ответить! Вроде уже должно быть ясно, как белый день и проект есть, где можно посмотреть и проверить, если что непонятно!
И большой разницы не вижу, там сохранение со сдвигом, Вы наверно хотите без сдвига, я уже написал, что макрос и так может работать, что здесь может быть непонятным?
Например со входа данных значение сразу пишется допустим в "0" ячейку(диапазон ячеек: 0-31), теперь меняем ячейку для записи на любую другую, при этом в "0" ячейке запоминается значение на входе данных на момент смены ячейки для записи и т. д., всё!

n711
08.07.2021, 14:59
Спасибо, буду пробовать.
Извините за глупые вопросы...

Dron/9K
31.08.2021, 13:25
Методический вопрос по блоку BLINK:

если поставить T_low= 0,25c, а T_high=0, то можно ли считать эту конструкцию как генератор одиночных импульсов с частотой 0,25с?
или же нужно делать 0,125/0,125 (не важно, суть чтобы было длиннее цикла программы), а потом ставить блок TP?

Sulfur
31.08.2021, 13:32
Можно после блинка с равными временами поставить R-TRIG, и на его выходе будет импульс на один цикл.

Dron/9K
31.08.2021, 14:01
Можно после блинка с равными временами поставить R-TRIG, и на его выходе будет импульс на один цикл.
Спасибо что не прошли мимо, но Вы совершенно не ответили по существу моего вопроса.

Сергей0308
01.09.2021, 11:07
И что Вам непонятно, что уставка таймера не может быть менее времени цикла программы?
Теперь, надеюсь, понятно?

Sulfur
01.09.2021, 13:58
совершенно не ответили по существу моего вопроса.

можно ли считать эту конструкцию как генератор одиночных импульсов с частотой 0,25с?
Блинк с параметрами 0,125/0,125 + R-TRIG и есть генератор одиночных импульсов с частотой 0,25с. Время жизни импульса один цикл ПР.
Нулевое время в блинке - в симуляторе работает. Как будет в железе - вопрос.

Dron/9K
01.09.2021, 14:34
И что Вам непонятно, что уставка таймера не может быть менее времени цикла программы?
Теперь, надеюсь, понятно?

Мне не понятно следующее: если задержка в таймере установлена меньше времени цикла (конкретно = 0), то будет ли гарантирован одиночный импульс (вполне допускаю что это - стандартная фича, и именно поэтому спрашиваю). Попробовал на небольшом тесте - всё работает как нужно, вопрос можно ли так и делать? понятно что можно и двумя блоками обойтись, но зачем перегружать программу лишними операциями?!

Dron/9K
01.09.2021, 14:36
И что Вам непонятно, что уставка таймера не может быть менее времени цикла программы?
Теперь, надеюсь, понятно?

НЕТ, не понятно. Что значит "не может"? если ОЛ допускает ввод таких данных, а программа в виртуальной среде и будучи загруженной в прибор работает.

Сергей0308
01.09.2021, 18:44
НЕТ, не понятно. Что значит "не может"? если ОЛ допускает ввод таких данных, а программа в виртуальной среде и будучи загруженной в прибор работает.

Не может быть менее означает, что минимальное значение ограничено временем цикла программы!

Dron/9K
02.09.2021, 09:03
Не может быть менее означает, что минимальное значение ограничено временем цикла программы!

т.е. уставка 0 означает фактически время одного цикла и этим гарантирует одиночный импульс, так?
кстати интересное дело с блоком TP: там (в описании) допустимо ставить длительность импульса = 0, в симуляторе (втч в пошаговом режиме) 1 на выходе не появляется никогда (как и на входе последующего блока), но при этом всё работает как нужно :) это вот точно бага!

melky
02.09.2021, 09:33
Dron/9K на счет ТР выполните в симуляции работу по шагам, можете удивиться одному импульсу.
Вообще программно можно обрывать работу таймеров, меняя PT на 0, только в некоторых случаях еще необходимо ставить AND на выход таймера и этим нулем (int_to_bool) так же заводить на AND

Dron/9K
02.09.2021, 10:09
Dron/9K на счет ТР выполните в симуляции работу по шагам, можете удивиться одному импульсу.
я же в сообщении выше написал - в пошаговом режиме!

смотрите на ТР2 - там на выходе всегда ноль, но при этом присоединённый SEL вполне себе увеличивает счётчик :)
56826

Ревака Юрий
02.09.2021, 11:09
я же в сообщении выше написал - в пошаговом режиме!

смотрите на ТР2 - там на выходе всегда ноль, но при этом присоединённый SEL вполне себе увеличивает счётчик :)
56826

Рекомендую еще обратить внимание на задание параметров симуляции, "Время цикла" и "Период".

Dron/9K
02.09.2021, 11:19
Рекомендую еще обратить внимание на задание параметров симуляции, "Время цикла" и "Период".

Внимание обратил, ничего не поменялось.

Ollema
02.10.2021, 16:12
Подскажите, плиз: у меня на ПР200 установлены два порта 485. Первый - мастер, он опрашивает устройства в сетевые переменные. Второй - слейв. Как можно использовать эти сетевые переменные вторым портом, назначенные для первого порта? Или сторонний мастер их сам сможет считать по номеру регистра, невзирая, что они прописаны в первом RS485?

Ревака Юрий
02.10.2021, 21:20
Подскажите, плиз: у меня на ПР200 установлены два порта 485. Первый - мастер, он опрашивает устройства в сетевые переменные. Второй - слейв. Как можно использовать эти сетевые переменные вторым портом, назначенные для первого порта? Или сторонний мастер их сам сможет считать по номеру регистра, невзирая, что они прописаны в первом RS485?

Регистры из мастера записать в регистры слейва или наоборот, общий доступ это когда оба интерфейсы в режиме слейв.

Ollema
03.10.2021, 07:34
Спасибо, будем пробовать.

Kulman
04.10.2021, 15:16
Приветствую, коллеги. Делаю счетчик наработки двигателя на ПР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_ в Менеджере компонентов, группа Общие, может он с минимальными доработками подойдет. Я думаю если за минуту время наработки скорректировать, то никакой погрешности не будет, да и наработка обычно в часах идет, даже если на пару минут набежит погрешность не должно быть критично.

Ollema
04.10.2021, 17:10
Добавлю, что блинк != минуты, последние точнее.

игорь68
04.10.2021, 20:00
Юрий поставьте на полотно 6 а лучше 8 макросов opertimer. Запустите от секунды включите счет и оставьте на сутки. Будете удивлены.

Ревака Юрий
04.10.2021, 20:56
Юрий поставьте на полотно 6 а лучше 8 макросов opertimer. Запустите от секунды включите счет и оставьте на сутки. Будете удивлены.

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

Kulman
05.10.2021, 06:32
Спасибо за подсказки. Тоже была чуйка, что "Минуты" точнее, чем "Блинк"

игорь68
05.10.2021, 21:50
То что они тормозят в режиме симуляции я писал. Чем больше макросов тем больше в симуляции расхождение между входом секунда и изменением состояния выхода минута. Если при 4 макросах задержки почти нет. А вот пришла 6 макросах задержка доходит до 10секун. А при 8макросах время задержки ещё больше.

игорь68
08.10.2021, 09:46
Юрий что за логгер? Железочка или макрос. Если можно то подробности здесь или в личку.

Ревака Юрий
08.10.2021, 10:27
Юрий что за логгер? Железочка или макрос. Если можно то подробности здесь или в личку.

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

игорь68
08.10.2021, 14:53
Если смотреть на железе . То время изменения минут на индикаторе может может доходить до 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 каналов это часы.

игорь68
16.10.2021, 14:25
Юрий пять счетчиков работают на Ура. Сбои после 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

dan75
16.10.2021, 16:47
Помогите пожалуйста. Проблема в следующем как подключить подстроечный резистор как пример 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 минут!!! я не вижу тут проблем, вся логика строится на часах реального времени, если рассогласование превышает разумные пределы, возможно проблемы с часами и нужна подстройка.

игорь68
20.10.2021, 07:53
Юрий. Спасибо что помогли. Разгрузим до 6 блоков и хай это работает(почему то всем срочно нужно облучать комнаты уф лампами)

Ревака Юрий
20.10.2021, 08:20
Юрий. Спасибо что помогли. Разгрузим до 6 блоков и хай это работает(почему то всем срочно нужно облучать комнаты уф лампами)

Я думаю что можно и не уменьшать, если нужно больше в одном реле, на точность не это влияет.
Сейчас посмотрел, при наработке в 286 часов (12 дней), разница в переключении от первоначального состояния составляет ~25 секунд, т.е. погрешность есть, но не такая чтоб это было заметно на глаз, можно ввести коррекцию хода часов в меню или периодически делать синхронизацию.
Первый раз этот блок тоже использовал на ламинарных камерах для контроля наработки УФ ламп.