Просмотр полной версии : Макросы в онлайн базе OWEN Logic
Владимир31
07.11.2020, 19:47
Ткните пожалуйста как скачать макросы, которые описаны в разделе Макросы в онлайн базе OWEN Log
Описания открываются в пдф формате, а сами макросы где и как их скачать.
О, я нашел! - хотя это было непросто!
База оказывается в самой программе Owen Logic.
В меню Файл -> Менеджер компонентов.
Нужно галочками выделить интересующие макросы и нажать "Загрузить в библиотеку", затем на вкладке "Библиотека", выделить галочкой и нажать "Загрузить в проект".
Использую макрос "(Pt100)". Во время прошивки произошел сбой, отвалились аналоговые входа, и после этого макрос стал выдавать NaN, причем error=0! Тоесть ситуация ошибочная но макрос об этом никак не сигнализирует.
Если-ли у кого макрос IsNaN? (перерыв весь форум ничего не нашел)
Ревака Юрий
04.02.2021, 11:12
Использую макрос "(Pt100)". Во время прошивки произошел сбой, отвалились аналоговые входа, и после этого макрос стал выдавать NaN, причем error=0! Тоесть ситуация ошибочная но макрос об этом никак не сигнализирует.
Если-ли у кого макрос IsNaN? (перерыв весь форум ничего не нашел)
Это переполнение, тут макрос не поможет, это особенности расчета формул в макросе, когда при обрыве сопротивление стремится к бесконечности, можно уменьшить ограничение внутри макроса как показано тут: https://youtu.be/VggplYw0ieo
Ошибка оказалась куда глубже и хуже - полное зависание модуля Pt100. Спасает только перезагрузка контроллера.
Ошибку легко воспроизвести в симуляции: задаем на вход модуля число 9999, затем задаем 100, и получаем t=NaN и error=0. Далее любые числа не выводят его из зависания.
В итоге получается что после кратковременного обрыва датчика модуль полностью зависает без сигнализации о ошибке, при этом изза NaN ломается все последующая логика и оборудование работает бесконечно до физической поломки (поскольку система не получает сигнала error от зависшего модуля).
При этом NaN на дисплее отображается как "0,0" - что еще сильнее ухудшает ситуацию (поскольку рядовой персонал не понимает что в показаниях есть серьезная ошибка).
Потестил модуль (Pt100) - там ошибка в функции SEL_FLOAT, которая зависает при попадании туда числа NaN (в механизме зависания еще не разобрался).
Замена функции SEL_FLOAT на штатную fSEL исправляет ошибку.
Версия Owen Logic 1.17.259
53380
P.S. "Это переполнение" - я бы не стал называть NaN "переполнением" (overflow), это совершенно разные термины и явления. NaN специальное состояние числа, "придуманное" и описанное стандартом IEEE 754.
Ревака Юрий
05.02.2021, 11:22
Ошибка оказалась куда глубже и хуже - полное зависание модуля Pt100. Спасает только перезагрузка контроллера.
Ошибку легко воспроизвести в симуляции: задаем на вход модуля число 9999, затем задаем 100, и получаем t=NaN и error=0. Далее любые числа не выводят его из зависания.
В итоге получается что после кратковременного обрыва датчика модуль полностью зависает без сигнализации о ошибке, при этом изза NaN ломается все последующая логика и оборудование работает бесконечно до физической поломки (поскольку система не получает сигнала error от зависшего модуля).
При этом NaN на дисплее отображается как "0,0" - что еще сильнее ухудшает ситуацию (поскольку рядовой персонал не понимает что в показаниях есть серьезная ошибка).
Потестил модуль (Pt100) - там ошибка в функции SEL_FLOAT, которая зависает при попадании туда числа NaN (в механизме зависания еще не разобрался).
Замена функции SEL_FLOAT на штатную fSEL исправляет ошибку.
Версия Owen Logic 1.17.259
53380
P.S. "Это переполнение" - я бы не стал называть NaN "переполнением" (overflow), это совершенно разные термины и явления. NaN специальное состояние числа, "придуманное" и описанное стандартом IEEE 754.
Вы ограничение на входе пробовали уменьшить до значения чуть больше рабочего диапазона НСХ?
Вы ограничение на входе пробовали уменьшить до значения чуть больше рабочего диапазона НСХ?
Да, как сказано в видео установил константу 200. Это еще сильнее поломало макрос - он не выдает ошибку при большом значении. Тестирования на реальном железе показали что при обрыве датчика аналог выдает большое число (>99999.99). Тоесть после коррекции Pt100 вообще не выдает ошибку при обрыве и некорректные числа уходят в алгоритмы. Но отмечу что NaN не возникает и Pt100 не зависает.
53392
найдите сой макрос, он чисто переводит сопротивление в температуру, а всякие аварии может обвесить кодом поверх макроса
Сой? Что это? Поиск по "сой" ничего не дал...
Сой? Что это? Поиск по "сой" ничего не дал...
ну смысл Вам помогать, если вы не в состоянии подобрать ближайшее логичное по смыслу слово, трудно представить что я имел ввиду мой? https://owen.ru/forum/showthread.php?t=26216&p=326493&viewfull=1#post326493
ну смысл Вам помогать, если вы не в состоянии подобрать ближайшее логичное по смыслу слово, трудно представить что я имел ввиду мой? https://owen.ru/forum/showthread.php?t=26216&p=326493&viewfull=1#post326493
Ошибаетесь. По вашим сообщениям я сделал расширенный поиск, с настройкой: {Ключевые слова: "pt100", Имя: "capzap"}. Поиск не дал результатов, а перебирать вручную ~11'000 сообщений я че-то поленился, извините))). Вам нужно добавить в то сообщение слово Pt100 (название вложения увы не участвует в поиске).
P.S. Надо отметить что ваш макрос гораздо более читаемый (ну и не зависает)).
Ревака Юрий
06.02.2021, 16:53
Да, как сказано в видео установил константу 200. Это еще сильнее поломало макрос - он не выдает ошибку при большом значении. Тестирования на реальном железе показали что при обрыве датчика аналог выдает большое число (>99999.99). Тоесть после коррекции Pt100 вообще не выдает ошибку при обрыве и некорректные числа уходят в алгоритмы. Но отмечу что NaN не возникает и Pt100 не зависает.
53392
200 маловато будет, обрыв не будет определяться, рабочий диапазон Pt100 от 18,52 Ом до 390,48 Ом, внизу в макросе как раз и установлены эти значения, по ним регистрируются короткое замыкание на входе и обрыв, поэтому я и ставил 400 Ом.
Здравствуйте. Было бы неплохо сделать распаковку битовой маски
Ревака Юрий
22.02.2021, 09:38
Здравствуйте. Было бы неплохо сделать распаковку битовой маски
Добрый день. Все уже давно упаковано и распаковано :), мароксы BOOL_INT и INT_BOOL в менеджере компонентов.
Сергей0308
22.02.2021, 14:39
Здравствуйте. Было бы неплохо сделать распаковку битовой маски
Вот мои варианты:
53599
53600
Много раз выкладывал, здесь наверно проще(быстрей) самому нарисовать, чем спрашивать или искать!
Привет!
Год назад нарисовал макрос для работы вентиляции до 4-х ступеней электронагревателя.
Этот макрос отработал уже порядочно на реальных объектах. Выкладываю на суд общественности.
Первые 4 входа - защита и они равноправны (1 на все для работоспособности).
Pwr_In - мощность в процентах (плавучка).
wt_Tx - весовой коэффициент мощности каждой ступени (первая не менее 1, остальные могут быть нолём, целочисленное).
Выходы:
Т1-Т4 - включение соответствующих контакторов.
PWM_T1 - ШИМ сигнал на управление ТТР первой ступени (булевская).
Y_T1 - мощность первой ступени в процентах (плавучка).
Забыл добавить, что в свойствах макроса задается период ШИМ (10 с) и гистрезис (1%).
В планах сделать на 8 или 16 ступеней, но это уже будет закрытая информация.....
В макросе BM_in из менеджера компонентов ошибка - все биты укладываются в инт со сдвигом на единицу. Нужно убрать для первого входа DI_1 добавление единицы к номеру бита, у нас это же нулевой бит, а не первый.
СергейНовосиб
13.04.2021, 12:29
Да, там действительно ошибка.
54501
Сергей0308
13.04.2021, 13:13
Да, там действительно ошибка.
54501
А чем мой не устраивает, что я выложил(там и настройки имеются в свойствах макроса)?
От этой картинки я в шоке, это же талант нужен, так суметь всё усложнить, далеко не у каждого получится, поставь сдвиг на выходе и будет в разы проще!
Ревака Юрий
13.04.2021, 13:28
В макросе BM_in из менеджера компонентов ошибка - все биты укладываются в инт со сдвигом на единицу. Нужно убрать для первого входа DI_1 добавление единицы к номеру бита, у нас это же нулевой бит, а не первый.
С этим макросом постоянно вопросы, он попал в базу как часть макросов от разработчиков макросов для СУНА, и там он использовался в каком-то хитром алгоритме, все что по нему есть в описании. Используйте BOOL_INT и INT_BOOL там все прозрачно и понятно.
С этим макросом постоянно вопросы, он попал в базу как часть макросов от разработчиков макросов для СУНА, и там он использовался в каком-то хитром алгоритме, все что по нему есть в описании. Используйте BOOL_INT и INT_BOOL там все прозрачно и понятно.
Ну я то думал Овен постарались для меня - "вот те нате пользуйтесь" :) У меня тоже свой есть макрос для этого, но наткнулся на него в менеджере - дай думаю его поставлю, не зря же разработчики старались. Воткнул к себе в проект, стал через него в панель булевые переменные закидывать, и сначала не понял, то ли я отупел, то ли панель замудрила, ну ни как я не мог подумать что макрос кривой. Если бы он мне попался ещё зеленому вчерашнему студенту, я бы проклинал тот день когда связался с Овеном. Господа, не портите жизнь начинающим, да и себе репутацию. Считаю что его бы надо поправить, либо исключить из менеджера компонентов.
Ревака Юрий
13.04.2021, 15:53
Ну я то думал Овен постарались для меня - "вот те нате пользуйтесь" :) У меня тоже свой есть макрос для этого, но наткнулся на него в менеджере - дай думаю его поставлю, не зря же разработчики старались. Воткнул к себе в проект, стал через него в панель булевые переменные закидывать, и сначала не понял, то ли я отупел, то ли панель замудрила, ну ни как я не мог подумать что макрос кривой. Если бы он мне попался ещё зеленому вчерашнему студенту, я бы проклинал тот день когда связался с Овеном. Господа, не портите жизнь начинающим, да и себе репутацию. Считаю что его бы надо поправить, либо исключить из менеджера компонентов.
У него, насколько я помню, было хитрое применение, каскадирование что-то в таком духе, может он использовался как вложенный, поэтому попал в базу, нужно уточнить у авторов, если есть свежая версия заменим.
Может уже было, не нашел. При попытке попасть из проекта в менеджер компонентов требует Adobe Reader. Можно как нибудь это обойти. Пользуюсь Foxit Reader, вполне устраивает. Не хотелось бы монстра Adobe устанавливать. Или никак?
Ревака Юрий
26.04.2021, 15:36
Может уже было, не нашел. При попытке попасть из проекта в менеджер компонентов требует Adobe Reader. Можно как нибудь это обойти. Пользуюсь Foxit Reader, вполне устраивает. Не хотелось бы монстра Adobe устанавливать. Или никак?
Можно через ftp зайти и все выкачать.
http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineComponents/Macros/
У меня нет адоба, установлен STDUViewer. Все вроде открывается и скачивается.
.tpl это макрос, а что такое .mtd?
Ревака Юрий
27.04.2021, 09:07
.tpl это макрос, а что такое .mtd?
Это Вам не надо, это для лоджика.
Vladimir F
11.05.2021, 21:06
Подскажите пожалуйста как можно реализовать простую схему с применением макроса TIСKER (Бегущая строка) с функцией экрана ПР200 ( текст).
Ревака Юрий
12.05.2021, 08:19
Подскажите пожалуйста как можно реализовать простую схему с применением макроса TIСKER (Бегущая строка) с функцией экрана ПР200 ( текст).
В описании к макросу есть скриншоты логики, проекты можно поискать, на форуме были разные.
https://owen.ru/forum/showthread.php?t=34525
Vladimir F
12.05.2021, 16:42
Можете написать хотябы приблизительно как это должно выглядеть. Нечего похожее не нашел. Задача простая при поступлении (булевой переменной) на вход TICKER на экране ПР200 появляется текст. Как это можно быстро реализовать.
Ревака Юрий
13.05.2021, 12:41
Можете написать хотябы приблизительно как это должно выглядеть. Нечего похожее не нашел. Задача простая при поступлении (булевой переменной) на вход TICKER на экране ПР200 появляется текст. Как это можно быстро реализовать.
Вот что было под рукой, там сигнал постоянный через "НЕ", можно допилить под задачу.
Пример что на выходе: https://www.youtube.com/watch?v=XJAhMO7OebY
Vladimir F
13.05.2021, 18:43
Спасибо большое за помощь.
добрый день, подскажите, может кто создавал, или он существует макрос по типу астрономического реле????
добрый день, подскажите, может кто создавал, или он существует макрос по типу астрономического реле????
На этом форуме их штук 5, один даже по моему в библиотеке лежит)))))
Ищите по слову астротаймер
Алексеев
14.05.2021, 15:20
Коллеги где то встречал на форуме макрос реализации ПЗУ ( в зависимости от 8 бит вытаскивать требуемое целочисленное значение или с большим количеством бит --лишнее удалю ) .
Скорей всего Сергей 0308 выкладывал , не могу найти .
Может быть кто нибудь сбросит ссылку -- где это . Или просьба к Сергею 0308 -- повтори . Ни когда не нужно было сейчас потребовалось .:)
Сергей0308
14.05.2021, 15:32
Коллеги где то встречал на форуме макрос реализации ПЗУ ( в зависимости от 8 бит вытаскивать требуемое целочисленное значение или с большим количеством бит --лишнее удалю ) .
Скорей всего Сергей 0308 выкладывал , не могу найти .
Может быть кто нибудь сбросит ссылку -- где это . Или просьба к Сергею 0308 -- повтори . Ни когда не нужно было сейчас потребовалось .:)
В этом проекте есть макрос:
55086
Только надо быть внимательным при настройке, не все состояния идут по порядку!
Алексеев
14.05.2021, 15:44
В этом проекте есть макрос:
55086
Только надо быть внимательным при настройке, не все состояния идут по порядку!
Учту. Спасибо дай бог тебе здоровья .
Василий Кашуба
14.05.2021, 16:37
В этом проекте есть макрос:
55086
Только надо быть внимательным при настройке, не все состояния идут по порядку!
Поздравляю, крутой номер.55087
Vladimir F
24.05.2021, 07:19
Подскажите пожалуйста как можно реализовать следующие. Работа насоса длится 10 минут затем на 10 минут останавливается. Как реализовать возможность корректировки времени с панели оператора.
Подскажите пожалуйста как можно реализовать следующие. Работа насоса длится 10 минут затем на 10 минут останавливается. Как реализовать возможность корректировки времени с панели оператора.
взять ШИМ, назначить ему длительность 20минут и заполнение 50%
Ревака Юрий
24.05.2021, 10:02
Подскажите пожалуйста как можно реализовать следующие. Работа насоса длится 10 минут затем на 10 минут останавливается. Как реализовать возможность корректировки времени с панели оператора.
Можно взять блок BLINK, например, в нем можно задать время вкл. и время выкл. состояния, уставки можно менять задавая значение в мс через Write to FB, тут https://www.youtube.com/watch?v=7XlMjFgQkoA есть пример управление временем в разных режимах и для разных таймеров с экрана ПР, можно переназначить на задание по сети. Похожий пример описан в Help OwenLogic.
Vladimir F
24.05.2021, 20:36
Спасибо Юрий всё разобрался. Если можно ещё вопрос как лучше реализовать двух считывающих из ФБ в одну сетевую переменную с последующим отображением в минутах.
Ревака Юрий
25.05.2021, 09:38
Спасибо Юрий всё разобрался. Если можно ещё вопрос как лучше реализовать двух считывающих из ФБ в одну сетевую переменную с последующим отображением в минутах.
Не очень понял вопрос, сами функциональные блоки не поддерживают чтение оставшегося времени, вычитывается только уставка, ее можно брать со входа задания, если нужен обратный отсчет, есть макрос TIME_U/D. Или Вам необходимо две уставки хранить в 1 сетевом регистре?
Vladimir F
25.05.2021, 16:32
Спасибо тогда почитаю про этот макрос. А ФБ Blink не поддерживает функцию считывания?
Ревака Юрий
26.05.2021, 08:02
Спасибо тогда почитаю про этот макрос. А ФБ Blink не поддерживает функцию считывания?
Он то поддерживает, но это будет то что в него записали, а не оставшееся время, поэтому нет смысла вычитывать, можно сразу брать то что записываем.
ОЛ Версия 1.17.267
Вопрос - только у меня пропали макросы в онлайн базе в менеджере компонентов или их теперь там нет?
Ревака Юрий
26.05.2021, 13:41
ОЛ Версия 1.17.267
Вопрос - только у меня пропали макросы в онлайн базе в менеджере компонентов или их теперь там нет?
Уже все должно работать, до этого проводились работы на сервере.
Сергей0308
26.05.2021, 13:43
ОЛ Версия 1.17.267
Вопрос - только у меня пропали макросы в онлайн базе в менеджере компонентов или их теперь там нет?
Уже всё заработало, на три дня опоздали со своим сообщением, три дня не работало!
Vladimir F
26.05.2021, 19:46
Спасибо огромное Юрий за помощь.
Vladimir F
27.05.2021, 07:08
Ещё один вопрос можно ли как-то сделать отсчёт времени с TIME_U/D в минутах.
Ревака Юрий
27.05.2021, 08:37
Ещё один вопрос можно ли как-то сделать отсчёт времени с TIME_U/D в минутах.
Теоретически да, (там основной упор делался на более точный вывод в секундах с несколькими знаками после запятой, и в зависимости от времени цикла "загрублялся" вывод количества знаков после запятой), а практически проще полученные секунды разделить на 60 и назначить на переменную. Но нужно посмотреть, скорее всего будет ограничение, макрос построен на счетчике, которые считает до 65535, ~10 минут может накапливать.
ОлегИзКрыма
27.05.2021, 20:07
Мало макросов в разделе "Работа с экраном", тем более что в " Помощи" весьма скромное описание.Или хотя-бы примеры программ с активным использованием экрана ПР200.
потому, что набор функций урезан до обсурда
Ревака Юрий
28.05.2021, 10:52
потому, что набор функций урезан до обсурда
В плейлисте Лайфхаки OWENLogic&ПР https://www.youtube.com/playlist?list=PLTJJg6aLoOUoxXWShgH9KLf8uB-CXsKH- можно посмотреть ч.2, ч.7, ч.10, ч.14 там с примерами активное использование экранов в разных режимах. Макрос "Бегущая строка" описан вроде подробно.
Witalianno
30.05.2021, 05:42
Здравствуйте! В теме "Обсуждения..." вчера писал, что-то до сих пор не опубликовали мое сообщение... Можно попросить еще раз разместить макрос или ссылку на "Построения графика температуры в зависимости от погоды", там ссылка не рабочая. Спасибо
Василий Кашуба
30.05.2021, 09:01
Здравствуйте! В теме "Обсуждения..." вчера писал, что-то до сих пор не опубликовали мое сообщение... Можно попросить еще раз разместить макрос или ссылку на "Построения графика температуры в зависимости от погоды", там ссылка не рабочая. Спасибо
Посмотрите здесь. https://owen.ru/forum/showthread.php?t=17153&p=236461&viewfull=1#post236461
Ревака Юрий
31.05.2021, 09:18
Здравствуйте! В теме "Обсуждения..." вчера писал, что-то до сих пор не опубликовали мое сообщение... Можно попросить еще раз разместить макрос или ссылку на "Построения графика температуры в зависимости от погоды", там ссылка не рабочая. Спасибо
Есть еще тут https://youtu.be/j6xGbq7f8AU с примером проекта.
Ревака Юрий
03.06.2021, 20:04
Пример работы с макросом Password(пароль).
https://www.youtube.com/watch?v=qskImBpICH4
Vladimir F
04.06.2021, 16:53
Помогите пожалуйста справиться с такой задачей. Необходимо подключить термосопротивление. Можно ли это сделать на прямую к ПР102. И как лучше реализовать при превышении уставки появлялась булевая переменная.
Сергей0308
04.06.2021, 17:24
Помогите пожалуйста справиться с такой задачей. Необходимо подключить термосопротивление. Можно ли это сделать на прямую к ПР102. И как лучше реализовать при превышении уставки появлялась булевая переменная.
Какой-то странный вопрос, типы ТС поддерживаемые "из коробки" указаны в РЭ и свойствах входа!
Если в этом списке нет вашего типа ТС, мне кажется, лучше применить совместно с ТС нормирующий преобразователь, встроенный в головку ТС или отдельный.
И есть функция сравнения на большее.
Вероятно Вы ленитесь РЭ прочитать или хотя бы посмотреть в ОЛ, там всё указано и даже справка есть.
Vladimir F
05.06.2021, 16:03
Вопрос состоит в том в основном все ТС преобразователи на выходе выдают переменные с плавающей запятой. Мне надо возможность задавать уставу и выдавать булевую переменную.
Сергей0308
05.06.2021, 16:12
Вопрос состоит в том в основном все ТС преобразователи на выходе выдают переменные с плавающей запятой. Мне надо возможность задавать уставу и выдавать булевую переменную.
Какой тип ТС, какой диапазон задаваемых температур?
Я так понимаю, у Вас глубокие познания в ТС, осталось изучить функцию сравнения на большее!
Если это вся задача то достаточно ТРМ1, поставил и головой не надо думать, Вам идеально подойдёт, мне так кажется!
Vladimir F
05.06.2021, 17:05
Если было бы так просто я бы не заморачивался. У меня другое сейчас волнует можно ли подключить к Аналоговым входам ТС. И как подключить трехпроводный датчик к ПР.
Сергей0308
05.06.2021, 17:20
Если было бы так просто я бы не заморачивался. У меня другое сейчас волнует можно ли подключить к Аналоговым входам ТС. И как подключить трехпроводный датчик к ПР.
Насколько понимаю, у вас ещё нет ТС, тогда даже проще, покупаете ТС со встроенным нормирующим преобразователем. Если у ТС нет типа(названия) боюсь подключить проблематично, если точнее, не подключить, а получить реальное значение температуры!
Vladimir F
05.06.2021, 17:33
Сергей 0308 если вам не сложно посмотрите вот такой вид ТС который я рассматриваю. (ДТС224-РТ100.В3.43/1)
Сергей0308
05.06.2021, 17:35
Сергей 0308 если вам не сложно посмотрите вот такой вид ТС который я рассматриваю. (ДТС224-РТ100.В3.43/1)
Диапазон задаваемой температуры какой?
Vladimir F
05.06.2021, 17:52
В данное время рассматривается диапазон температур от 0 до 100.
Сергей0308
05.06.2021, 17:58
В данное время рассматривается диапазон температур от 0 до 100.
Тогда зачем ТС с платиновым чувствительным элементом? Насколько понимаю он дороже медного при той же погрешности(точности). Платиновые выигрывают в максимальной температуре, могут измерять до 500 градусов Цельсия, но вам это не нужно!
Сергей0308
05.06.2021, 18:20
Но в основном подходит?
Вы читали мой вопрос, почему платиновый, а не медный?
Если уже выбрали платиновый, то как раз ПР102 поддерживает Pt500(1000), а Pt100 не поддерживает(из коробки), к тому же без компенсации сопротивления проводов будет большая погрешность, более чем от ранее указанных в 5(10) раз. Можно применить компенсацию сопротивления проводов, тогда для одного ТС два аналоговых входа потребуется, у вас хватит аналоговых входов, сколько ТС планируете подключить к одному ПР102?
55434
Vladimir F
06.06.2021, 09:27
Да вы правы наверное тогда с медным чувствительным элементом. Подскажите а блок преобразователь 100м подходит для медного ЧЭ.
Vladimir F
06.06.2021, 09:43
Сергей 0308 ещё такой вопрос аналоговых входов хватает. Ка лучше реализовать в программе через чего лучше подключить два аналоговых входов для компенсации сопротивления к блоку преобразователя для более точного подсчёта температуры.
Сергей0308
06.06.2021, 10:21
Сергей 0308 ещё такой вопрос аналоговых входов хватает. Ка лучше реализовать в программе через чего лучше подключить два аналоговых входов для компенсации сопротивления к блоку преобразователя для более точного подсчёта температуры.
Для этого нужно определится с типом ТС, например остановились на 100М(или Pt100), берёте макрос для соответствующего типа ТС из менеджера компонентов, всё. Я так понимаю, вам не нужна высокая точность измерения, как бы с нормирующим преобразователем(особенно в головке ТС) будет выше, к тому же уменьшаются требования к проводам какими ТС подключается и их сопротивление не влияет на точность измерения, короче, к чему речь веду: мне кажется если применить вместо платинового(как Вы сначала хотели) медный ТС в комплекте с нормирующим преобразователем, учитывая что и провода потребуются более дешёвые(не знаю какая у вас будет длинна этих проводов), то по стоимости выйдет приблизительно одинаково, но с большей точностью измерения и в два раза меньше аналоговых входов потребуется! У вас над тем, что желательно иметь(нормирующий преобразователь) свет клином сошёлся, тем более его цена компенсируется за счёт применения более дешёвых проводов и медного ТС(вместо платинового), уже повторяюсь!
Vladimir F
06.06.2021, 10:37
Да я согласен с вами скорее всего будем брать из медного ЧЭ ТС. У меня остались вопросы как лучше реализовать в программе подключения двух аналоговых входов для компенсации к блоку 100М.
Сергей0308
06.06.2021, 11:04
Да я согласен с вами скорее всего будем брать из медного ЧЭ ТС. У меня остались вопросы как лучше реализовать в программе подключения двух аналоговых входов для компенсации к блоку 100М.
Там уже всё сделано до Вас!
Вам даже не придётся использовать на практике свои глубокие познания в области математики, как разность найти.
Vladimir F
06.06.2021, 11:28
Спасибо Сергей0308 за помощь.
Добрый день. Макрос преобразования сопротивления в Т Pt1000, ни как не выдает ошибку в проекте, хотя в самом макросе работает как нужно.
Блок выходной переменной "error" свойства - целочисловое5639256393
Что не так в проекте делаю?
Ревака Юрий
05.08.2021, 09:51
Добрый день. Макрос преобразования сопротивления в Т Pt1000, ни как не выдает ошибку в проекте, хотя в самом макросе работает как нужно.
Блок выходной переменной "error" свойства - целочисловое5639256393
Что не так в проекте делаю?
Ошибка висит в воздухе, назначьте на экран или сделайте энергонезависимой для проверки.
Muhomor-74
05.08.2021, 11:49
Доброго дня! Поясните по макросам:
UNIX_TIME (Время в секундах в формате UNIX, описание макроса)
UTNIX_to_DT (Преобразование UNIX-времени в дату и время, описание макроса)
Записываем c UNIX_TIME в EventLog 5/08 в 15:40 а читается это событие с UTNIX_to_DT как 2/15 10: 5
Почему так получается у меня?
Ревака Юрий
05.08.2021, 13:14
Доброго дня! Поясните по макросам:
UNIX_TIME (Время в секундах в формате UNIX, описание макроса)
UTNIX_to_DT (Преобразование UNIX-времени в дату и время, описание макроса)
Записываем c UNIX_TIME в EventLog 5/08 в 15:40 а читается это событие с UTNIX_to_DT как 2/15 10: 5
Почему так получается у меня?
Добрый день, проект с примером сможете прикрепить сюда?
Ошибка висит в воздухе, назначьте на экран или сделайте энергонезависимой для проверки.
Энергонезависимой она была сразу, а вот за "висит в воздухе" спасибо, второй раз на эти грабли наступаю))))))
Muhomor-74
06.08.2021, 04:42
Добрый день, проект с примером сможете прикрепить сюда?
Доброй пятницы всем!
Вот пожалуйста, проектик.
Ревака Юрий
06.08.2021, 10:26
Доброй пятницы всем!
Вот пожалуйста, проектик.
Ну все понятно, Вы на вход UNIX_to_DT подаете не unix time, поэтому и получаете на то на выходе. Я сходу не скажу что там за значения, возможно vi_UT_R и vi_UT_L это unixtime разбитый на 2 регистра, тогда их нужно собрать в один int32 и уже его подавать на вход.
Хотя нет, запустил в симуляции, что-то не то там, даже если с одного макроса подать на второй, на выходе не получается исходное значение, посмотрю.
Ревака Юрий
06.08.2021, 10:42
Год не правильно указан, нужно 2000 прибавлять.
Muhomor-74
09.08.2021, 04:53
Здравствуйте, Юрий. Так прибавлять 2000 это обязательное условие? Не на тысячелетия журнал требуется.
Ревака Юрий
09.08.2021, 07:26
Здравствуйте, Юрий. Так прибавлять 2000 это обязательное условие? Не на тысячелетия журнал требуется.
Обратите внимание на формат года в симуляции, там 21, чтоб получить актуальную дату 2021, нужно прибавить 2000.
Muhomor-74
09.08.2021, 15:02
Спасибо, Юрий.
Alex_Under_ B
18.10.2021, 10:14
Добрый день! Юрий подскажите для макроса AVG сколько длится время измерения N? или это зависит от времени опроса прибора? Если так то не нашел информации для аналоговых входов ПР102. Ипользую датчик влажности, и при некоторых погодных условиях слишком большой шум. Необходимо сгладить занчения на 10-15 минут измерений.
Ревака Юрий
18.10.2021, 11:01
Добрый день! Юрий подскажите для макроса AVG сколько длится время измерения N? или это зависит от времени опроса прибора? Если так то не нашел информации для аналоговых входов ПР102. Ипользую датчик влажности, и при некоторых погодных условиях слишком большой шум. Необходимо сгладить занчения на 10-15 минут измерений.
Добрый день. Можно открыть макрос на редактирование, там установлен зависимый от времени цикли программы генератор, который суммирует значения на входе, входом EN можно регулировать квантование.
Здравствуйте! На ПР-200 нужно реализовать ПИД-регулирование сервоприводом с входами "больше" - "меньше" и без датчика положения. Думаю подойдёт связка макросов "простой ПИД-регулятор (PID_)" и "управление дискретной задвижкой (RegKZR)". Только не могу найти описание на RegKZR. Подскажите за что отвечают входа ut_StepFull (s), ut_StepMin (s), ut_Cycle (ms). Думаю что это полное время хода привода, минимальная длительность управляющего импульса и время цикла программы. Так ли это?57771
Ревака Юрий
01.11.2021, 08:16
Здравствуйте! На ПР-200 нужно реализовать ПИД-регулирование сервоприводом с входами "больше" - "меньше" и без датчика положения. Думаю подойдёт связка макросов "простой ПИД-регулятор (PID_)" и "управление дискретной задвижкой (RegKZR)". Только не могу найти описание на RegKZR. Подскажите за что отвечают входа ut_StepFull (s), ut_StepMin (s), ut_Cycle (ms). Думаю что это полное время хода привода, минимальная длительность управляющего импульса и время цикла программы. Так ли это?57771
Здравствуйте. Макрос входит в состав другого макроса, из-за этого нет описания в общем виде, но в вы правильно все поняли. Можно еще открыть макрос на редактирование и проверить в симуляции.
куваев андрей
02.11.2021, 13:19
Добрый день, возникла проблема с загрузкой макросов из онлайн базы в библиотеку и проект. При нажатии ЛКМ по квадрату рядом с названием макроса для его выделения галочка не ставится. Соответственно дальнейшие действия невозможны. Подскажите, это какой-то глюк программы, или я что-то не так делаю?
Добрый день, возникла проблема с загрузкой макросов из онлайн базы в библиотеку и проект. При нажатии ЛКМ по квадрату рядом с названием макроса для его выделения галочка не ставится. Соответственно дальнейшие действия невозможны. Подскажите, это какой-то глюк программы, или я что-то не так делаю?
https://owen.ru/forum/showthread.php?t=12264&p=365449&viewfull=1#post365449
Kendrik33
05.11.2021, 11:10
Подскажите, для каких практических задач можно применить макрос arccos и макросы других геометрических функций
Подскажите, для каких практических задач можно применить макрос arccos и макросы других геометрических функций
Макрос для астротаймера
57823 57824
https://owen.ru/forum/showthread.php?t=12691&p=347102&viewfull=1#post347102
57825
https://owen.ru/forum/showthread.php?t=9398&p=296624&viewfull=1#post296624
Сергей0308
05.11.2021, 11:38
Подскажите, для каких практических задач можно применить макрос arccos и макросы других геометрических функций
https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B8%D0%B3%D0%BE%D0%BD%D0%BE%D0%BC%D 0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0% B8%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B 8
Здравствуйте.
В описании макросов для датчиков 50М, 100П, PT1000 сказано, что выход "Error" отображает ошибку преобразования (или нормальную работу).
На скриншоте видно, что при онлайн отладке на выходе Error значения отсутствуют на всех макросах, температура равна "0" на выходе всех макросов, хотя датчики к прибору не подключены.
Как заставить макросы работать нормально - то есть не выдавать "0" при отсутствии датчика и на выходе Error выдавать соответствующее значение?
Овен ПР200-220.5.2.0, версия OL и прошивки прибора - последние доступные.
58034
kondor3000
24.11.2021, 00:43
Здравствуйте.
В описании макросов для датчиков 50М, 100П, PT1000 сказано, что выход "Error" отображает ошибку преобразования (или нормальную работу).
На скриншоте видно, что при онлайн отладке на выходе Error значения отсутствуют на всех макросах, температура равна "0" на выходе всех макросов, хотя датчики к прибору не подключены.
Как заставить макросы работать нормально - то есть не выдавать "0" при отсутствии датчика и на выходе Error выдавать соответствующее значение?
Овен ПР200-220.5.2.0, версия OL и прошивки прибора - последние доступные.
А что по вашему должен выдавать макрос если нет термосопротивления? Пределы от 0 до 4000 Ом, у вас нет ни того ни другого! При комнатной Т примерно 22 градуса, ПТ100 - 109 Ом, ПТ1000 -1090 Ом
А ошибку не показывает, потому что нет подключения переменной ERROR, её надо куда то подключить или ( на время) сделать переменную энергонезависимой или подключить сетевую переменную.
Смотри скрин, на ПТ100 нет ошибок (0) T=260 градусов, ошибку на ПТ1000 показывает (1) сопротивление ниже диапазона 58035
Здравствуйте.
В описании макросов для датчиков 50М, 100П, PT1000 сказано, что выход "Error" отображает ошибку преобразования (или нормальную работу).
На скриншоте видно, что при онлайн отладке на выходе Error значения отсутствуют на всех макросах, температура равна "0" на выходе всех макросов, хотя датчики к прибору не подключены.
Как заставить макросы работать нормально - то есть не выдавать "0" при отсутствии датчика и на выходе Error выдавать соответствующее значение?
Овен ПР200-220.5.2.0, версия OL и прошивки прибора - последние доступные.
58034
У вас сопротивление отрицательное????? Суперсверхпроводимость открыли?))))))))))58037
Здравствуйте.
В описании макросов для датчиков 50М, 100П, PT1000 сказано, что выход "Error" отображает ошибку преобразования (или нормальную работу).
На скриншоте видно, что при онлайн отладке на выходе Error значения отсутствуют на всех макросах, температура равна "0" на выходе всех макросов, хотя датчики к прибору не подключены.
Как заставить макросы работать нормально - то есть не выдавать "0" при отсутствии датчика и на выходе Error выдавать соответствующее значение?
Скорее всего, у Вас переменные Error в программе нигде не используются, поэтому лоджик и не показывает их значения.
Макрос при ошибке преобразования показывает последнюю измеренную температуру, хотите, чтобы показывал что-то другое - обрабатывайте ошибку
58038
Скорее всего, у Вас переменные Error в программе нигде не используются, поэтому лоджик и не показывает их значения.
58038
Спасибо, не знал
keysansa
24.11.2021, 15:44
У вас сопротивление отрицательное????? Суперсверхпроводимость открыли?)))))
В отладке и проверяется работа макроса. в том числе, на отрицательные значения.
Лично мне не нравится политика Owen, что модули ввода возвращают температуру именно в самой температуре, а не в коде АЦП. Тут и погрешность двойного преобразования, и необходимость тратить больше ресурсов...
Лично мне не нравится политика Owen, что модули ввода возвращают температуру именно в самой температуре, а не в коде АЦП. Тут и погрешность двойного преобразования, и необходимость тратить больше ресурсов...
ПР103 и модули расширения работают с датчиками температуры напрямую
В отладке и проверяется работа макроса. в том числе, на отрицательные значения.
Проверяли с отрицателным значением сопротивления? Вас не смущает знак минус перед значением сопротивления, ни капли?
keysansa
27.11.2021, 14:18
Проверяли с отрицателным значением сопротивления? Вас не смущает знак минус перед значением сопротивления, ни капли?
Абсолютно не смущает. Даже наоборот, специально делаем unit для тестирования системы на отрицательные значения. Не поверите, иногда при отрицательных значениях сопротивления, деление на 0 прилетает в обслуживающих функциях.
Абсолютно не смущает. Даже наоборот, специально делаем unit для тестирования системы на отрицательные значения. Не поверите, иногда при отрицательных значениях сопротивления, деление на 0 прилетает в обслуживающих функциях.
Огромное желание подарить Вам учебник физики.....
581405814158142
f
Добрый день работаю с макросом преобразование ntc в показания температуры, все ли я делаю правильно? у меня на выходе значение 44,41Е+01, когда я задаю на вход AI1 5000 ом в ручную, а когда на входе AI1 значение 0, то показывает 25
Ревака Юрий
30.11.2021, 11:18
581405814158142
f
Добрый день работаю с макросом преобразование ntc в показания температуры, все ли я делаю правильно? у меня на выходе значение 44,41Е+01, когда я задаю на вход AI1 5000 ом в ручную, а когда на входе AI1 значение 0, то показывает 25
Добрый день, в данном случае макрос не нужен, это для ПР200 где вход в режиме сопротивления выдает в логику сопротивление, а Вас сразу будет температура в логике.
Добрый день, в данном случае макрос не нужен, это для ПР200 где вход в режиме сопротивления выдает в логику сопротивление, а Вас сразу будет температура в логике.
когда я задаю вручную температуру 10кОМ у меня и в переменную приходит 10кОм. Контроллер будет ОВЕН ПР102-24.2416.06.2., подскажите в каком направлении двигатся
Ревака Юрий
30.11.2021, 12:01
когда я задаю вручную температуру 10кОМ у меня и в переменную приходит 10кОм. Контроллер будет ОВЕН ПР102-24.2416.06.2., подскажите в каком направлении двигатся
Симуляция не отражает реальной картины, если есть прибор, лучше использовать онлайн отладку, тут есть общие примеры по работе с отладкой https://www.youtube.com/watch?v=IReuSCO1T5M
когда я задаю вручную температуру 10кОМ у меня и в переменную приходит 10кОм. Контроллер будет ОВЕН ПР102-24.2416.06.2., подскажите в каком направлении двигатся
А зачем вручную "температуру" в килоОмах задавать? Вы ведь вход сконфигурировали как температура от -50 до 105 гр (пост #609 (https://owen.ru/forum/showthread.php?t=25067&p=369342&viewfull=1#post369342). Вот и задавайте в отладке сразу температуру и и в переменную будет приходить температура.
Симуляция не отражает реальной картины, если есть прибор, лучше использовать онлайн отладку, тут есть общие примеры по работе с отладкой https://www.youtube.com/watch?v=IReuSCO1T5M
ОВЕН ПР102-24.2416.06.2 для него значит не нужен макрос? т.е. я если все сконфигурировал в настройке входов у меня само будет сопротивление преобразовываться?
Контроллера нет еще, вобщем пока оборудование закупается мне нужно написать софт.
А зачем вручную "температуру" в килоОмах задавать? Вы ведь вход сконфигурировали как температура от -50 до 105 гр (пост #609 (https://owen.ru/forum/showthread.php?t=25067&p=369342&viewfull=1#post369342). Вот и задавайте в отладке сразу температуру и и в переменную будет приходить температура.
у меня контроллер ОВЕН ПР102-24.2416.06.2. он сам уже ковертирует сопративление?
Ревака Юрий
30.11.2021, 12:43
ОВЕН ПР102-24.2416.06.2 для него значит не нужен макрос? т.е. я если все сконфигурировал в настройке входов у меня само будет сопротивление преобразовываться?
Контроллера нет еще, вобщем пока оборудование закупается мне нужно написать софт.
Да, во всех ПР102 при выборе НСХ, на входе в логику сразу значения в виде температуры будет, для симуляции можно ее сразу и задавать, в онлайн отладке будет сразу температура выводится.
Да, во всех ПР102 при выборе НСХ, на входе в логику сразу значения в виде температуры будет, для симуляции можно ее сразу и задавать, в онлайн отладке будет сразу температура выводится.
а для датчиков 4-20мА нужен макрос или так же все?
Ревака Юрий
30.11.2021, 13:17
а для датчиков 4-20мА нужен макрос или так же все?
А что на этом сигнале, какой датчик, для него рекомендую макрос SCALE, можно задать нужные диапазоны под конкретный датчик.
А что на этом сигнале, какой датчик, для него рекомендую макрос SCALE, можно задать нужные диапазоны под конкретный датчик.
датчики давления 0-35 бар, 4-20 мА, макрос SCALE подойдет?
Еще вопрос, для ПР200 значит нужен макрос NTC для работы с NTC датчиками?
Добрый день! Перелопатил все! Нужен макрос извлечения квадратного корня или что то похожее. Возедение в степень не подойдет так как не изестно число которое надо возводить! К примеру, из числа 30 необходимо извлечь квадратный корень?
Это будет 30 в степени 0,5, разве нет?
keysansa
30.11.2021, 15:57
Огромное желание подарить Вам учебник физики.....
А мне вам - учебник по программированию )
Ревака Юрий
30.11.2021, 16:24
датчики давления 0-35 бар, 4-20 мА, макрос SCALE подойдет?
Еще вопрос, для ПР200 значит нужен макрос NTC для работы с NTC датчиками?
Подойдет, да для ПР200 нужен макрос.
А что на этом сигнале, какой датчик, для него рекомендую макрос SCALE, можно задать нужные диапазоны под конкретный датчик.
SCALE макрос не нашел в онлайн базе, где его скачать можно?
Ревака Юрий
02.12.2021, 16:06
SCALE макрос не нашел в онлайн базе, где его скачать можно?
Да там он, в группе "Аналоговые преобразования", наберите в строке поиска SC.
Да там он, в группе "Аналоговые преобразования", наберите в строке поиска SC.
Спасибо, а описание есть этого макроса?
Ревака Юрий
03.12.2021, 08:29
Спасибо, а описание есть этого макроса?
Есть, сбоку при выборе макроса есть pdf файл.
Есть, сбоку при выборе макроса есть pdf файл.
MAX_IN- 20мА
MIN_IN- 4мА
MAX_Q- 35 bar
MIN_Q- 0 bar
Все верно я понял?
Ревака Юрий
03.12.2021, 09:44
MAX_IN- 20мА
MIN_IN- 4мА
MAX_Q- 35 bar
MIN_Q- 0 bar
Все верно я понял?
Да, похоже на правду.
Ревака Юрий
03.12.2021, 10:40
Вот в эмуляторе в PID регулятор уставка 16, я задаю на ai1 5мА, на выходе с pid регулятора 0,2, и задаю 20мА- все равно 0,2 значение а должно меняться,
ПИД имеет еще и настройки, но его лучше проверять и настраивать в железе, по ПИД есть подборка материалов, наберите в поисковике "ПИД OwenLogic"
Здравствуйте. Сегодня обновился и не могу добавить компоненты из онлайн базы. Галочки не ставятся. Подскажите пожалуйста, что не так?
Денисов Максим Сергеевич
13.12.2021, 11:13
Здравствуйте. Сегодня обновился и не могу добавить компоненты из онлайн базы. Галочки не ставятся. Подскажите пожалуйста, что не так?
Расширьте столбик, в котором ставится галочка для выбора макроса.
59068 Привет, Использую макрос для NTC, только вот отображается переменная float 4,96E+01, должна писать 49,.... с хвостом, как это скорректировать? и еще если на входе R макроса значение 0, то на выходе 25
Сергей0308
02.02.2022, 14:32
59068 Привет, Использую макрос для NTC, только вот отображается переменная float 4,96E+01, должна писать 49,.... с хвостом, как это скорректировать? и еще если на входе R макроса значение 0, то на выходе 25
Округлите!
kondor3000
02.02.2022, 16:08
59068 Привет, Использую макрос для NTC, только вот отображается переменная float 4,96E+01, должна писать 49,.... с хвостом, как это скорректировать? и еще если на входе R макроса значение 0, то на выходе 25
Вы не ПР 102 случайно используете? Если ПР 102-103, то макросы вообще не нужны, ставите в настройках входа свой NTC и получаете сразу температуру, без макроса.
Со входа прямо на переменную температуры.
Для удобства чтения показаний, можете поставить преобразование в целочисленное.
округлить, вы имеете ввиду перевести в интеджер?
Сергей0308
03.02.2022, 11:08
округлить, вы имеете ввиду перевести в интеджер?
Округлить, это округлить! До целых, десятых, сотых и т. д. долей, как Вам необходимо(с какой точность отображать), без преобразования в другой тип данных, кстати я и макрос неоднократно выкладывал для этих целей!
Имеется в проекте 475 поста текущей темы: https://owen.ru/forum/showthread.php?t=25067&page=48
59085
Округлить, это округлить! До целых, десятых, сотых и т. д. долей, как Вам необходимо(с какой точность отображать), без преобразования в другой тип данных, кстати я и макрос неоднократно выкладывал для этих целей!
Имеется в проекте 475 поста текущей темы: https://owen.ru/forum/showthread.php?t=25067&page=48
59085
Спасибо, буду пробовать
Округлить, это округлить! До целых, десятых, сотых и т. д. долей, как Вам необходимо(с какой точность отображать), без преобразования в другой тип данных, кстати я и макрос неоднократно выкладывал для этих целей!
Имеется в проекте 475 поста текущей темы: https://owen.ru/forum/showthread.php?t=25067&page=48
59085
Что то с поиском на форуме что то нито. Вот в том проекте еще один макрос Float-int1, это для передачи по сети переменных с отрицательным числом?
Сергей0308
03.02.2022, 16:01
Что то с поиском на форуме что то нито. Вот в том проекте еще один макрос Float-int1, это для передачи по сети переменных с отрицательным числом?
А с округлением получилось?
С преобразованием в инт какие проблемы? Берёте макрос и пользуйтесь! Если не устраивает по каким-то мотивам, например религиозным - ищете другой, всё!
Sunschine
03.02.2022, 16:38
Ave.
Вопрос, можно как-то использовать сервисные переменные в макросе?
Трабл в недельном таймере. Он работает с сервисными переменными и кучей всего ещё. Хочу закинуть всё это в макрос, а на ввод подавать только время и mode.
59090
59091
А с округлением получилось?
С преобразованием в инт какие проблемы? Берёте макрос и пользуйтесь! Если не устраивает по каким-то мотивам, например религиозным - ищете другой, всё!
Подскажи пожалуйста как передать переменную с отрицательным числом? Округление получилось)
Подскажи пожалуйста как передать переменную с отрицательным числом? Округление получилось)
https://owen.ru/forum/showthread.php?t=12264&p=371838&viewfull=1#post371838
https://owen.ru/forum/showthread.php?t=12264&p=371838&viewfull=1#post371838
благодарствую
Mr Helper
04.02.2022, 16:39
А онлайн база макросов планирует расширяться?
Будут ли в неё добавляться пользовательские макросы?
Сергей0308
04.02.2022, 19:10
Подскажи пожалуйста как передать переменную с отрицательным числом? Округление получилось)
На второй вход макроса округления подаётся константа(значение) соответствующая количеству знаков после запятой, до которого происходит округление, это если что непонятно!
С макросом преобразования Float в Int(тоже имеется, как Вы заметили, в моём проекте) никаких проблем в принципе не может возникнуть, один вход один выход(как бы и путать нечего), значения преобразования ограничены диапазоном Int!
Короче, напишите, какие у Вас возникли проблемы, если с этим макросом проблем не может возникнуть в принципе, просто любопытно!
Может Вы макрос не можете перенести? Можно так: открываете оба проекта(мой и ваш) и с помощью копировать-вставить переносите в свой проект! В принципе имеются более правильные способы переноса макросов, но этот самый простой!
https://owen.ru/forum/showthread.php?t=12264&p=371838&viewfull=1#post371838
подскажите, а в точке передачи у нас singet int& я могу использовать этот макрос для преобразования float в Sint для передачи в облако и обратно например? или для таких целей есть другой макрос?
подскажите, а в точке передачи у нас singet int& я могу использовать этот макрос для преобразования float в Sint для передачи в облако и обратно например? или для таких целей есть другой макрос?
В диапазоне чисел от -32768 до 32767 можно
добрый день. где найти простое реле с задержкой по времени с выносом времени в переменную?
Сергей0308
09.02.2022, 19:50
добрый день. где найти простое реле с задержкой по времени с выносом времени в переменную?
Очень странный вопрос, как бы в ОЛ все таймеры такие, других нет, кроме интервальных таймеров реального времени!
Можно задавать уставку таймера из переменной!
Ревака Юрий
09.02.2022, 23:14
добрый день. где найти простое реле с задержкой по времени с выносом времени в переменную?
Как работать с таймерами есть информация тут: https://owen.ru/forum/showthread.php?t=33720&p=340010&viewfull=1#post340010
Человеку нужен выход 'ET'
Ревака Юрий
10.02.2022, 09:11
Человеку нужен выход 'ET'
На уровне лоджика этой поддержки нет, но для таких случаев специально разработан пример прямого/обратного отсчета.
Сергей0308
16.02.2022, 12:21
Человеку нужен выход 'ET'
Мелкий, гадалка из Вас никудышняя, во всяком случае я затрудняюсь припомнить случай когда Вы угадали, хотя постоянно это делаете, когда это не нужно(в этом нет необходимости), пусть чел, сам осознает что он хочет и вразумительно напишет!
короче, здесь в посте 170 я таймер выкладывал с паузой, прямым и обратным отсчётом времени: https://owen.ru/forum/showthread.php?t=33720&page=17
И можно в качестве задающего генератора использовать не секундные импульсы(как в моих проектах), а с меньшим периодом, например 0,1 или 0,01 секунды!
majevgenij
24.02.2022, 20:12
Подскажите, какой макрос преобразования сопротивления в температуру взять из базы для термопреобразователя ТП203-8/150/м-М20S22 ХА-И-А+0м??? спасибо
Сергей0308
24.02.2022, 20:29
Подскажите, какой макрос преобразования сопротивления в температуру взять из базы для термопреобразователя ТП203-8/150/м-М20S22 ХА-И-А+0м??? спасибо
Макрос здесь не поможет, нужен датчик, который ПР поддерживает или нормирующий преобразователь.
majevgenij
25.02.2022, 07:05
Спасибо. Так и подозревал
Всем привет. Натолкнулся на готовый макрос "OperTimer_v1.00" . Кто ни будь пробовал его прикрутить в проект? 59536
у меня не получается его запустить.
kondor3000
03.03.2022, 09:25
Всем привет. Натолкнулся на готовый макрос "OperTimer_v1.00" . Кто ни будь пробовал его прикрутить в проект?
у меня не получается его запустить.
Всё там работает, там выход в часах и минутах, подождите пока минуты дойдут. Сделайте выходы энергонезависимыми для показаний.
Да все работает, это я не допёр. Спасибо за уделённое время)
Доброго времени суток! Подскажите где найти блок аварий котла, не могу найти...скрин прилагаю.60361
Денисов Максим Сергеевич
18.04.2022, 14:49
Доброго времени суток! Подскажите где найти блок аварий котла, не могу найти...скрин прилагаю.60361
Данный макрос, к сожалению, больше недоступен в онлайн базе макросов.
Сергей0308
19.04.2022, 13:16
Данный макрос, к сожалению, больше недоступен в онлайн базе макросов.
Санкции действуют?
Доброго времени суток! Подскажите где найти блок аварий котла, не могу найти...скрин прилагаю.60361
Задавал вопрос на форуме. Мне ответили что это первые варианты макросов для ТРМ 1032. И в доступе их не было.
Задавал вопрос на форуме. Мне ответили что это первые варианты макросов для ТРМ 1032. И в доступе их не было.
Спасибо за ответ!
Данный макрос, к сожалению, больше недоступен в онлайн базе макросов.
Спасибо за ответ!....а можно его где-нибудь найти?...
kondor3000
20.04.2022, 15:17
Спасибо за ответ!....а можно его где-нибудь найти?...
Вы бы лучше написали, что вам надо от блока, у Сергей0308 полно готовых блоков и аварий в том числе.
например https://owen.ru/forum/showthread.php?t=31076&page=2
Вы бы лучше написали, что вам надо от блока, у Сергей0308 полно готовых блоков и аварий в том числе.
например https://owen.ru/forum/showthread.php?t=31076&page=2
Спасибо!Сейчас посмотрю.
Добрый день. Использую в проекте макрос AVG, OwenLogic при этом жалуется на этот блок и выдает предупреждение: Обнаружен циклические связи (0) или блоки (1) в которых используются эти самые связи. Вы можете заменить их на линии задержки сейчас или позже. Подскажите, пожалуйста, насколько это критично и что надо делать?. При этом сам макрос работает.
Работает не трогайте. Ну или отредактируйте как предлагает ОЛ и проверьте работу. Иногда при данной ошибке блок работает правильнее чем с линией задержки, зависит от задумки создателя.
Ну вот и хотелось узнать у создателя. Просто непонятно, оно так и должно быть?
Сейчас создал пустой проект. Вставил в него блок AVG-тоже ругается.60908
Сейчас создал пустой проект. Вставил в него блок AVG-тоже ругается.60908
красное это ругается, желтое это просто предупреждает
А меня, вот интересует, кто и как добавляет макросы в базу? Просто есть непонятки: примеры
1. Макрос 2PosHisReg из раздела "Управляющие и регулирующие модули" и 2PHReg+ из раздела "Регуляторы" - оба двухпозиционные регуляторы с гистерезисом, но почему в разных разделах?
2. Такая же фишка с недельным таймером - один есть а разделе "Дата и время", другой в разделе "Доп. функции"
3. Есть устаревшие макросы, которые используют fSel в виде макроса, хотя в Лоджике уже давно есть функция
4. Есть макросы без явно выраженных обратных связей - они на полотне весело светятся желтым.
Я понимаю, что все это на ход не влияет, но нельзя ли как-то навести порядок в базе!
Сергей0308
12.07.2022, 21:09
А меня, вот интересует, кто и как добавляет макросы в базу? Просто есть непонятки: примеры
1. Макрос 2PosHisReg из раздела "Управляющие и регулирующие модули" и 2PHReg+ из раздела "Регуляторы" - оба двухпозиционные регуляторы с гистерезисом, но почему в разных разделах?
2. Такая же фишка с недельным таймером - один есть а разделе "Дата и время", другой в разделе "Доп. функции"
3. Есть устаревшие макросы, которые используют fSel в виде макроса, хотя в Лоджике уже давно есть функция
4. Есть макросы без явно выраженных обратных связей - они на полотне весело светятся желтым.
Я понимаю, что все это на ход не влияет, но нельзя ли как-то навести порядок в базе!
Так там полный беспорядок!
Один раз Юрия Реваку спрашивал зачем в макросе два одинаковых элемента(уже и не припомню насчёт какого макроса интересовался), никак между собой не связанных, макрос был в менеджере компонентов(раньше это по-другому называлось), может лучше удалить один элемент из макроса, кому надо 2 элемента - возьмут два макроса, а кому один нужен - второй будет висеть мёртвым грузом?
Ответ удивил, говорит в таком виде к нему он поступил, ну это же не дело, надо всё приводить в человеческий вид!
Короче, согласен с товарищем, в плане всё поправить!
Немного ошибся, даже не два одинаковых элемента, а четыре: https://owen.ru/forum/showthread.php?t=25067&page=4
Эдуард_Н
15.07.2022, 13:05
Хочу библиотечный макрос График по четырем точкам (Graf_4pnt_v1.04) переделать под 10 точек, но что-то ума не хватает. Помогите.
До пилил, вроде работает.
Сергей0308
15.07.2022, 13:21
Хочу библиотечный макрос График по четырем точкам (Graf_4pnt_v1.04) переделать под 10 точек, но что-то ума не хватает. Помогите.
Так, вроде, был макрос и на 10 точек и не так давно в какой-то теме это встречалось и выкладывалось, если не ошибаюсь Пётр из Минска выкладывал.
Я тоже как то думал сделать подобный макрос на 32 точки, но пока руки не дошли!
Хочу библиотечный макрос График по четырем точкам (Graf_4pnt_v1.04) переделать под 10 точек, но что-то ума не хватает. Помогите.
Так, вроде, был макрос и на 10 точек и не так давно в какой-то теме это встречалось и выкладывалось, если не ошибаюсь Пётр из Минска выкладывал.
Я тоже как то думал сделать подобный макрос на 32 точки, но пока руки не дошли!
Мой макрос в базе называется PLA, но я уже на ST вариант выкладывал https://owen.ru/forum/showthread.php?t=35489&p=369459&viewfull=1#post369459
график по 10 точкам, метод поиска делением интервала пополам, известный также как двоичный поиск или Дихотомия (https://ru.wikipedia.org/wiki/Дихотомия)
function PLA_ST: real; // (c) PeterA
var_input //объявление входных переменных
x1: real;
x2: real;
x3: real;
x4: real;
x5: real;
x6: real;
x7: real;
x8: real;
x9: real;
x10: real;
y1: real;
y2: real;
y3: real;
y4: real;
y5: real;
y6: real;
y7: real;
y8: real;
y9: real;
y10: real;
In: real;
end_var
var //объявление локальных переменных
a:udint; (*Начало интервала поиска*)
b: udint; (*Конец интервала поиска*)
N: udint; (*Число точек в графике*)
i: udint;
x: array [0..9] of real;
y: array [0..9] of real;
end_var
N:= 10;
x[0]:= x1;
x[1]:= x2;
x[2]:= x3;
x[3]:= x4;
x[4]:= x5;
x[5]:= x6;
x[6]:= x7;
x[7]:= x8;
x[8]:= x9;
x[9]:= x10;
y[0]:= y1;
y[1]:= y2;
y[2]:= y3;
y[3]:= y4;
y[4]:= y5;
y[5]:= y6;
y[6]:= y7;
y[7]:= y8;
y[8]:= y9;
y[9]:= y10;
(*Начальные значения интервала поиска*)
a:=0;
b:=N-1;
(*Обрезание графика для крайних точек*)
IF IN<=x[0] THEN
PLA_ST:=y1;
ELSIF IN>= x[N-1] THEN
PLA_ST:= y[N-1];
(*Теперь можно начать поиск*)
ELSE
WHILE (b-a) <> 1 DO (*В конце концов, входной сигнал ТОЧНО попадет между двумя соседними точками X(a) и Х(а+1)*)
i:=(a+b)/2; (*Делим интервал поиска пополам*)
IF IN=x[i+1] THEN (*Может нам повезло, и мы сразу нашли точку? *)
a:=i; b:=i+1; (*Бинго! прекращаем итераций, нечего в пустую молотить :) *)
(*мимо :( ,тогда посмотрим в какую половину интервала попали*)
ELSIF IN>x[i] THEN (*Если входной сигнал больше середины интервала поиска,*)
a:=i; (*то следующий поиск будем делать начиная от середины и до конца массива*)
ELSE (*А если входной сигнал меньше середины интервала поиска,*)
b:=i; (*то следующий поиск будем делать начиная от начала и до середины массива*)
END_IF
(*Таким образом на каждой итерации отбрасываем из поиска заведомо ненужную половину значений
две соседние координаты X(a) и Х(а+1), меду которыми попадает входной сигнал найдем очень быстро
для 8 точек графика нужно не более 3 итераций
при 9..16 точек в графике нужно не более 4 итераций
при 17..32 точек в графике нужно не более 5 итераций
при 33..64 точек в графике нужно не более 6 итераций
при 65..128 точек в графике нужно не более 7 итераций
инфа точная - 100% ;) *)
END_WHILE;
(*Теперь самое простое - сделать линейную аппроксимацию по двум точкам ;) *)
PLA_ST:= y[b] - (x[b] - IN) * (y[b] - y[a]) / (x[b] - x[a]);
END_IF
end_function
Эдуард_Н
15.07.2022, 14:23
Мой макрос в базе называется PLA, но я уже на ST вариант выкладывал https://owen.ru/forum/showthread.php?t=35489&p=369459&viewfull=1#post369459
график по 10 точкам, метод поиска делением интервала пополам, известный также как двоичный поиск или Дихотомия (https://ru.wikipedia.org/wiki/Дихотомия)
function PLA_ST: real; // (c) PeterA
var_input //объявление входных переменных
x1: real;
x2: real;
x3: real;
x4: real;
x5: real;
x6: real;
x7: real;
x8: real;
x9: real;
x10: real;
y1: real;
y2: real;
y3: real;
y4: real;
y5: real;
y6: real;
y7: real;
y8: real;
y9: real;
y10: real;
In: real;
end_var
var //объявление локальных переменных
a:udint; (*Начало интервала поиска*)
b: udint; (*Конец интервала поиска*)
N: udint; (*Число точек в графике*)
i: udint;
x: array [0..9] of real;
y: array [0..9] of real;
end_var
N:= 10;
x[0]:= x1;
x[1]:= x2;
x[2]:= x3;
x[3]:= x4;
x[4]:= x5;
x[5]:= x6;
x[6]:= x7;
x[7]:= x8;
x[8]:= x9;
x[9]:= x10;
y[0]:= y1;
y[1]:= y2;
y[2]:= y3;
y[3]:= y4;
y[4]:= y5;
y[5]:= y6;
y[6]:= y7;
y[7]:= y8;
y[8]:= y9;
y[9]:= y10;
(*Начальные значения интервала поиска*)
a:=0;
b:=N-1;
(*Обрезание графика для крайних точек*)
IF IN<=x[0] THEN
PLA_ST:=y1;
ELSIF IN>= x[N-1] THEN
PLA_ST:= y[N-1];
(*Теперь можно начать поиск*)
ELSE
WHILE (b-a) <> 1 DO (*В конце концов, входной сигнал ТОЧНО попадет между двумя соседними точками X(a) и Х(а+1)*)
i:=(a+b)/2; (*Делим интервал поиска пополам*)
IF IN=x[i+1] THEN (*Может нам повезло, и мы сразу нашли точку? *)
a:=i; b:=i+1; (*Бинго! прекращаем итераций, нечего в пустую молотить :) *)
(*мимо :( ,тогда посмотрим в какую половину интервала попали*)
ELSIF IN>x[i] THEN (*Если входной сигнал больше середины интервала поиска,*)
a:=i; (*то следующий поиск будем делать начиная от середины и до конца массива*)
ELSE (*А если входной сигнал меньше середины интервала поиска,*)
b:=i; (*то следующий поиск будем делать начиная от начала и до середины массива*)
END_IF
(*Таким образом на каждой итерации отбрасываем из поиска заведомо ненужную половину значений
две соседние координаты X(a) и Х(а+1), меду которыми попадает входной сигнал найдем очень быстро
для 8 точек графика нужно не более 3 итераций
при 9..16 точек в графике нужно не более 4 итераций
при 17..32 точек в графике нужно не более 5 итераций
при 33..64 точек в графике нужно не более 6 итераций
при 65..128 точек в графике нужно не более 7 итераций
инфа точная - 100% ;) *)
END_WHILE;
(*Теперь самое простое - сделать линейную аппроксимацию по двум точкам ;) *)
PLA_ST:= y[b] - (x[b] - IN) * (y[b] - y[a]) / (x[b] - x[a]);
END_IF
end_function
Спасибо, посмотрю.
Добрый день! Не могу понять, что происходит с макросом INT MAX10? Всегда макрос работал, а теперь что? Или у меня с симуляцией что-то не так?
Добрый день! Не могу понять, что происходит с макросом INT MAX10? Всегда макрос работал, а теперь что? Или у меня с симуляцией что-то не так?
Макрос неверно выполнен - там внутри все десять блоков сравнивают на большее значение первый вход, поэтому и не работает. Насчет раньше, не знаю
Сергей0308
22.08.2022, 20:36
Изначальный макрос, насколько я понимаю и как утверждает ТС, выполнен правильно(как и было задумано), просто ТС не понимает как он работает(алгоритм работы). Если это чужой макрос можно обратится к автору или тому кто осведомлён по этому вопросу. Всё равно не до конца понятно, как можно было использовать макрос, в алгоритме работы которого не до конца разобрался, короче, надо начать сначала, надеюсь суть понятна?!
И по решению конкретной задачи хотелось спросить: диапазон сравниваемых значений какой, он более значения "268435455"(28 бит) или нет?
Это я к тому, чтобы можно было метку(4 бита) добавить в значения на каждом входе, затем отсортировать в порядке возрастания(убывания) значений, если не ошибаюсь, "капзап" предлагал макрос сортировки и останется посмотреть метку у наибольшего(наименьшего) значения, в метке содержится номер входа на который подано это значение, всё! Это я один из вариантов решения предлагаю, но для окончательного решения нужны уточнения от ТС.
Вот совсем другой, принципиальный(без учёта модификации ПР) вариант решения:
62209
62210
Такие вещи наверное проще теперь на ST сделать (есть конечно проблема с тем, что это будет функция и выход только один - но можно также выделить несколько бит в выходном значении под номер входа)
Вы шутите? Макрос выгружен из менеджера компонентов и он не находит максимальное int
Сергей0308
24.08.2022, 09:50
Мой чем не устраивает, Вам шашечки или ехать?
Вот даже макрос состряпал, находит большее из 16 и номер входа показывает, вроде даже превосходит ваши хотелки?!
Так он ещё и на порядок проще вашего "монстра", можете же Вы находить худшее из худшего к тому же и неработающее!
Короче, проверяйте:
62227
62228
Совсем забыл, в отличии от вашего, мой макрос можно и легко расширить, до пределов диапазона, практически ничего не меняя: расширить мультиплексор на входе(поставить 2-3 экземпляра имеющегося макроса, короче, сколько понадобится) и изменить пару значений, в настройках счётчика и константе, всё!
Если два и более максимальных значения, будет показывать номер входа с меньшим порядковым номером!
Вы шутите? Макрос выгружен из менеджера компонентов и он не находит максимальное int
Так менеджер компонентов - это большая помойка, в которой куча устаревших и неоптимизированных макросов. А сейчас выясняется, что есть еще и не рабочие
MAX10 в базе существует в двух версиях
собственно MAX10.tpl
и MAX10_old.tpl
MAX10_old - работает, а в новом MAX10 что-то пошло не так!
Функция:
function Max: udint;
var_input
IN1,IN2,IN3,IN4,IN5,IN6,IN7,IN8 : udint;
end_var
var
num : udint := 1;
end_var
Max := IN1;
num := 1;
if IN2 > Max then Max := IN2; num := 2; end_if;
if IN3 > Max then Max := IN3; num := 3; end_if;
if IN4 > Max then Max := IN4; num := 4; end_if;
if IN5 > Max then Max := IN5; num := 5; end_if;
if IN6 > Max then Max := IN6; num := 6; end_if;
if IN7 > Max then Max := IN7; num := 7; end_if;
if IN8 > Max then Max := IN8; num := 8; end_if;
Max.28 := num.0;
Max.29 := num.1;
Max.30 := num.2;
Max.31 := num.3;
end_function
Функция:
function Max: udint;
var_input
IN1,IN2,IN3,IN4,IN5,IN6,IN7,IN8 : udint;
end_var
var
num : udint := 1;
end_var
Max := IN1;
num := 1;
if IN2 > Max then Max := IN2; num := 2; end_if;
if IN3 > Max then Max := IN3; num := 3; end_if;
if IN4 > Max then Max := IN4; num := 4; end_if;
if IN5 > Max then Max := IN5; num := 5; end_if;
if IN6 > Max then Max := IN6; num := 6; end_if;
if IN7 > Max then Max := IN7; num := 7; end_if;
if IN8 > Max then Max := IN8; num := 8; end_if;
Max.28 := num.0;
Max.29 := num.1;
Max.30 := num.2;
Max.31 := num.3;
end_function
и как решается проблема двух максимумов?
Сергей0308
24.08.2022, 14:20
А как надо(в идеале), чтобы на соответствующем выходе по очереди появлялись номера входов с наибольшими значениями, если их более одного?
Сергей0308
24.08.2022, 16:30
Функция:
function Max: udint;
var_input
IN1,IN2,IN3,IN4,IN5,IN6,IN7,IN8 : udint;
end_var
var
num : udint := 1;
end_var
Max := IN1;
num := 1;
if IN2 > Max then Max := IN2; num := 2; end_if;
if IN3 > Max then Max := IN3; num := 3; end_if;
if IN4 > Max then Max := IN4; num := 4; end_if;
if IN5 > Max then Max := IN5; num := 5; end_if;
if IN6 > Max then Max := IN6; num := 6; end_if;
if IN7 > Max then Max := IN7; num := 7; end_if;
if IN8 > Max then Max := IN8; num := 8; end_if;
Max.28 := num.0;
Max.29 := num.1;
Max.30 := num.2;
Max.31 := num.3;
end_function
Сложновато, можно так вырезать метку(4 старших бита):
62243
Сложновато, можно так вырезать метку(4 старших бита):
62243
Да, можно и так. Сделал что первое в голову пришло
и как решается проблема двух максимумов?
Это не столько проблема, сколько вопрос необходимой функциональности. Если о наличии более одного максимума нужно сигнализировать, то нужен ещё один выход. Если нужен другой приоритет входов, то нужно сделать соответствующий порядок их обхода.
Сергей0308
25.08.2022, 18:32
Это не столько проблема, сколько вопрос необходимой функциональности. Если о наличии более одного максимума нужно сигнализировать, то нужен ещё один выход. Если нужен другой приоритет входов, то нужно сделать соответствующий порядок их обхода.
Если Вы говорите, что на ST это просто, сделайте так, что бы при наличии нескольких входов с максимальными значениями их номера выводились одной строкой начиная с самого маленького порядкового номера входа, например, если все входа имеют одинаковое значение, строка будет так выглядеть: "12345678", тем более для восьми значений(одноразрядных) хватает диапазона типа данных(DINT), понятно объяснил?
Примерно как-то так:
62279
62280
62281
62306
Я к тому, что Вы сами это сказали!
Могу и в качестве разделителя нолик поставить:
62282
62283
Только тогда меньшее количество входов можно будет записать до переполнения.
Вот, немного текущий макрос поправил(были небольшие косяки):
64805
Денисов Максим Сергеевич
26.08.2022, 08:02
Так менеджер компонентов - это большая помойка, в которой куча устаревших и неоптимизированных макросов. А сейчас выясняется, что есть еще и не рабочие
Макрос заменили на рабочий. В целом про неактуальность макросов в онлайн базе менеджера компонентов готов к обсуждению, хотел бы услышать ваши замечания и предложения поподробнее, чтобы пользователем стало удобнее и понятнее пользоваться этим инструментом.
Макрос заменили на рабочий. В целом про неактуальность макросов в онлайн базе менеджера компонентов готов к обсуждению, хотел бы услышать ваши замечания и предложения поподробнее, чтобы пользователем стало удобнее и понятнее пользоваться этим инструментом.
Замечаний и предложений не так много, но работы хватит:
1. Перегруппировать макросы, примеры:
CLOCK_WEEK расположен в Дата и время, а его аналог ClockWeek_ - в Доп. функциях
CycleTime - в разделе Общие, а его аналог TIME CYCLE - Таймеры и счетчики
Так же, например B_SEL я бы перенес из раздела Общие в Дискретные преобразователи
2. Используемый макрос SEL_FLOAT заменить на штатную функцию fSel, а сам макрос можно и убрать из базы
3. В макросах, которые светятся желтым заменить связи на линию задержки
4. Ну и, я бы все макросы температурных датчиков вынес в отдельную группу
Денисов Максим Сергеевич у вас там есть макрос, который с битами работает с 1-ого бита вместо 0-ого. Со слов Ревака Юрия макрос делался для ТРМ1032(33) или около. Вот зачем подобные макросы без проверки попадают в Logic ? я понимаю, что какие-то полезны, но они ведь должны удовлетворять логике работы непосредственно для ОЛ, а не пиленные под какие-то там ТРМы...
Если Вы говорите, что на ST это просто, сделайте так, что бы при наличии нескольких входов с максимальными значениями их номера выводились одной строкой начиная с самого маленького порядкового номера входа, например, если все входа имеют одинаковое значение, строка будет так выглядеть: "12345678", тем более для восьми значений(одноразрядных) хватает диапазона типа данных(DINT), понятно объяснил?
Примерно как-то так:
...
Я к тому, что Вы сами это сказали!
Могу и в качестве разделителя нолик поставить:
...
Только тогда меньшее количество входов можно будет записать до переполнения.
Я говорил про конкретную задачу, что её проще на ST сделать
А код для этой виртуальной задачи такой (в одной функции выводится значение, а в другой - счётчик номера входов):
function Max: udint;
var_input
IN1,IN2,IN3,IN4,IN5,IN6,IN7,IN8 : udint;
end_var
var
Count : udint := 1;
end_var
Max := IN1;
Count := 1;
if IN2 > Max then Max := IN2; Count := 2;
elsif IN2 = Max then Count:=Count*10+2;
end_if;
if IN3 > Max then Max := IN3; Count := 3;
elsif IN3 = Max then Count:=Count*10+3;
end_if;
if IN4 > Max then Max := IN4; Count := 4;
elsif IN4 = Max then Count:=Count*10+4;
end_if;
if IN5 > Max then Max := IN5; Count := 5;
elsif IN5 = Max then Count:=Count*10+5;
end_if;
if IN6 > Max then Max := IN6; Count := 6;
elsif IN6 = Max then Count:=Count*10+6;
end_if;
if IN7 > Max then Max := IN7; Count := 7;
elsif IN7 = Max then Count:=Count*10+7;
end_if;
if IN8 > Max then Max := IN8; Count := 8;
elsif IN8 = Max then Count:=Count*10+8;
end_if;
end_function
Сергей0308
26.08.2022, 16:14
Я говорил про конкретную задачу, что её проще на ST сделать
А код для этой виртуальной задачи такой (в одной функции выводится значение, а в другой - счётчик номера входов):
function Max: udint;
var_input
IN1,IN2,IN3,IN4,IN5,IN6,IN7,IN8 : udint;
end_var
var
Count : udint := 1;
end_var
Max := IN1;
Count := 1;
if IN2 > Max then Max := IN2; Count := 2;
elsif IN2 = Max then Count:=Count*10+2;
end_if;
if IN3 > Max then Max := IN3; Count := 3;
elsif IN3 = Max then Count:=Count*10+3;
end_if;
if IN4 > Max then Max := IN4; Count := 4;
elsif IN4 = Max then Count:=Count*10+4;
end_if;
if IN5 > Max then Max := IN5; Count := 5;
elsif IN5 = Max then Count:=Count*10+5;
end_if;
if IN6 > Max then Max := IN6; Count := 6;
elsif IN6 = Max then Count:=Count*10+6;
end_if;
if IN7 > Max then Max := IN7; Count := 7;
elsif IN7 = Max then Count:=Count*10+7;
end_if;
if IN8 > Max then Max := IN8; Count := 8;
elsif IN8 = Max then Count:=Count*10+8;
end_if;
end_function
Вот смотрю эту картинку:
62299
Мне всё понятно!
А смотрю вашу писанину, мне вообще ничего не понятно, зачем Вы пишите, то что пишите, в смысле, что это проще? Это же не соответствует действительности!
Я всё прекрасно понимаю, что Вы выражаете своё мнение или для Вас проще, тогда это нужно уточнять! Боюсь со мной многие согласятся!
Вот мой вариант с разделителем между номерами входов в виде нолика и не переусердствуете с количеством максимумов, чтобы переменная(тип данных) не переполнялась.
62300
И, вашу нижнюю(на картинке) функцию(с номерами максимумов) не нашёл, Вы, наверно забыли выложить.
Вот смотрю эту картинку:
...
Мне всё понятно!
А смотрю вашу писанину, мне вообще ничего не понятно, зачем Вы пишите, то что пишите, в смысле, что это проще? Это же не соответствует действительности!
Я всё прекрасно понимаю, что Вы выражаете своё мнение или для Вас проще, тогда это нужно уточнять! Боюсь со мной многие согласятся!
Вот мой вариант с разделителем между номерами входов в виде нолика и не переусердствуете с количеством максимумов, чтобы переменная(тип данных) не переполнялась.
62300
И, вашу нижнюю(на картинке) функцию(с номерами максимумов) не нашёл, Вы, наверно забыли выложить.
Боюсь про понятность ФБД в таких типах задач вы сильно преувеличиваете, но это моё мнение, и я не боюсь, что многие со мной согласятся.
Сколько программных циклов занимает просмотр входных значений и передача результата на выход? Кстати в качестве генератора можно попробовать использовать элемент НЕ с обратной связью.
Функция с номерами входов имеет тот-же код, с перестановкой местами Max и Count в заголовке. Жаль конечно, что ST в OL не поддерживает передачу параметров по ссылке (IN_OUT).
Сергей0308
27.08.2022, 12:17
Боюсь про понятность ФБД в таких типах задач вы сильно преувеличиваете, но это моё мнение, и я не боюсь, что многие со мной согласятся.
Сколько программных циклов занимает просмотр входных значений и передача результата на выход? Кстати в качестве генератора можно попробовать использовать элемент НЕ с обратной связью.
Функция с номерами входов имеет тот-же код, с перестановкой местами Max и Count в заголовке. Жаль конечно, что ST в OL не поддерживает передачу параметров по ссылке (IN_OUT).
Вы, что действительно не понимаете в чём разница? Я же написал "мне"! Если бы я этого не обозначил, боюсь моё утверждение стало бы неправдивым, как и ваше! Вы в принципе понимаете смысл Вами написанного? Даже если найдётся всего один человек во Вселенной, знакомый с ОЛ, но не знакомый с ST, то ваше утверждение будет неправдивым! Считайте меня этим человеком, этого достаточно!
Вы, что действительно не понимаете в чём разница? Я же написал "мне"! Если бы я этого не обозначил, боюсь моё утверждение стало бы неправдивым, как и ваше! Вы в принципе понимаете смысл Вами написанного? Даже если найдётся всего один человек во Вселенной, знакомый с ОЛ, но не знакомый с ST, то ваше утверждение будет неправдивым! Считайте меня этим человеком, этого достаточно!
Да ладно, не заводитесь, это действительно было только моё личное мнение - я всегда использую FBD (а если точнее, то CFC), как язык основной программы - мне на нём проще сделать общую компоновку, он проще в отладке и при внесении изменений. Функциональные блоки (макросы, функции и т.п.) тоже на FBD. Но есть такие моменты, когда я сходу мог бы написать вариант решения на ST (или другом текстовом языке), но из-за отсутствия его поддержки в системе бывает трачу кучу времени на пляски с FBD.
Вообще, возможность использовать разные языки при программировании ПЛК сильно облегчает жизнь, поэтому я, например, очень рад, что в OL появился хотя-бы такой вариант ST.
Сергей0308 не важно вам или кому-то другому легче, но во многих вещах текстовый вариант кода будет многократно лаконичнее и меньше... Особенно если все потроха спрятаны от глаз прошивкой (ну или языком). Простой пример скажем копирование массива (В ОЛ нет их к сожалению но может со временем появятся)....
Например в ST по указателям циклом, а если бы функционал был заложен в прошивку то как в языках Array.Copy(исходный, индекс, получатель, индекс, количество) а дальше прошивка занимается.
Попробуйте в FBD например 4 байта перетрусить местами на новые места, а это могла быть всего одна строчка, если бы поддерживалось на уровне firmware прибора например...
Ну или один квадратик без кучи FBD внутри....
Ну еще пример проще. fSEL - раньше это был целый макрос, сейчас функция в прошивке.
Сергей0308
27.08.2022, 16:11
Сергей0308 не важно вам или кому-то другому легче, но во многих вещах текстовый вариант кода будет многократно лаконичнее и меньше... Особенно если все потроха спрятаны от глаз прошивкой (ну или языком). Простой пример скажем копирование массива (В ОЛ нет их к сожалению но может со временем появятся)....
Например в ST по указателям циклом, а если бы функционал был заложен в прошивку то как в языках Array.Copy(исходный, индекс, получатель, индекс, количество) а дальше прошивка занимается.
Попробуйте в FBD например 4 байта перетрусить местами на новые места, а это могла быть всего одна строчка, если бы поддерживалось на уровне firmware прибора например...
Ну или один квадратик без кучи FBD внутри....
Ну еще пример проще. fSEL - раньше это был целый макрос, сейчас функция в прошивке.
Вот Вам функцию, переставляет местами ворды в двойном слове:
62307
Всё элементарно, до проще не бывает!
Аналогично можно и байты в ворде переставить!
Сергей0308 байты, а не слова, соответственно добавится еще FBD, вместо того, чтобы такие вещи добавить в прошивку ПР и FBD бы выглядел примерно так, на один вход подаем что надо, на второй вход к примеру "4321" и на выходе получим переставленное именно в этом порядке...
Ну или в рамках ПР научить это делать галочками не только для мастера наконец, но и для слейва.... :)
Сергей0308
27.08.2022, 20:03
Сергей0308 байты, а не слова, соответственно добавится еще FBD, вместо того, чтобы такие вещи добавить в прошивку ПР и FBD бы выглядел примерно так, на один вход подаем что надо, на второй вход к примеру "4321" и на выходе получим переставленное именно в этом порядке...
Ну или в рамках ПР научить это делать галочками не только для мастера наконец, но и для слейва.... :)
Я же написал, хорошо повторюсь, в ворде переставить местами байты можно аналогично как на моей картинке, только измените константу для сдвига с "16" на "8", всё! Надеюсь как разбить двойное слово на два слова Вы сообразите?!
Вот Вы говорите, что не пользуйтесь ПР от Овена, Вы купите и попользуйтесь и тогда, если будут какие вопросы и спросите, зачем выдумывать несуществующие проблемы, у ПР есть перестановка байт и слов и с этим у меня никогда проблем не возникало! Тем более я Вам нарисовал как переставить слова и байты!
62309
62310
62311
Даже так:
62312
https://disk.yandex.ru/d/J58fo9rg44EtNg
Сергей0308 кто вам сказал, что я не пользуюсь ПР от Овена? я такого не говорил :) тем более один висит в котельной а другой на столе....
Я про другое говорю, как бы просто это не выглядело на картинках, в ST и тем более в С это выглядит гораздо компактнее и некоторые вещи могли быть заложены в прошивку на уровне железа, а в базе это выглядело бы как обертка как тот же TON, TOF, AND, PUTBIT и так далее и занимало бы гораздо меньше места без необходимости выстраивать кучу элементов и создавать макросы на достаточно простые вещи...
И пора бы Овену избавляться от хлама в виде счетчика например, в который нельзя записать уставку добавив в справку замену.
Загрузите старую программу - оп-па, покраснел элемент - внизу - "Смотри туда-то как его заменить"...
Надо освобождать прошивку от хлама, который оставлен для какой-то там совместимости, учитывая, что сама программа друг с другом фиг совместима вниз....
з.ы. это просто мое мнение, может быть когда-нибудь дойдет до (цензура :) ) программеров...
kondor3000
27.08.2022, 22:47
Вот разобрал и собрал, на регистры и байты, переставляй не хочу)))62313
Байты конечно условные, но правильные, проверено.
Даже можно в REAL переставлять, только сначала умножить на 10, 100, 1000 и конвертировать. Потом обратно, также.
Но на ST это намного проще)
ЗЫ Ну вот, пока рисовал, Сергей уже всё выложил)
Сергей0308
27.08.2022, 23:23
Да, десятки раз на форуме этот вопрос обсуждали, как разбить на байты и собрать обратно:
62314
Боюсь, даже медведь, если присутствовал на форуме, во всём бы разобрался!
kondor3000
27.08.2022, 23:38
Сергей0308, тут в другом проблема, в полученном REAL по сети, с переставленными байтами (регистрами), байты таким способом уже не переставишь, если ПР слейв.
Тут уже указатели нужны и ST, а так же наличие переменных типа BYTE.
Например число -3.388945e+025, если перевести в целочисленное будет 0, а SHR и SHL с флоатом не работают.
А реально это 123.4568 с переставленными регистрами.
Сергей0308
28.08.2022, 00:10
ТРМ-ы, модули ввода-выхода, ПЧ и датчики от Овена не могут быть мастером, тогда у вас мастером ПЛК должен выступать, короче, вам повезло, всё сделаете по красоте на ST! Не может же сеть без мастера работать!
ну и посчитайте количество ваших художеств? дело совсем не в байтах, словах и их перестановках, а в том, что таких элементарных вещей не заложили в потроха...
Это называется хотите быть лучше лого, зелио и прочего - делайте лучше... :)
Сергей0308
28.08.2022, 01:28
Так как порядок байт не стандартизирован на уровне протокола, то в слейве любой порядок правильный, разрулирование возможных проблем совместимости разных приборов(приборов разных фирм) возложено на мастера сети, так что это в принципе не проблема слейва, почему разумные аргументы до вас никак не доходят?!
Сергей, мастер один, а слейвов может быть много и разных производителей, что тогда делать?
Вот в FIProg сделано ,что менять можно последовательность и в мастере и слейве..для разных типов данных
Если учитель в группе общается с иностранными учениками, то как правило, в жизни ученики переводят , что им сказал учитель(мастер), а не мастер для каждого ученика переходит на разные языки...Имхо, так естественней.
rovki
Вот в FIProg сделано ,что менять можно последовательность и в мастере и слейве..для разных типов данных
WirenBoard сейчас мутят подобные решения (я писал пост про их датчики, они выдали мне к нему комментарии (https://cs-cs.net/datchiki-temperatury-vlajnosti-owen-pvt-wirenboard-msw-sentera-odthm#__wirenboard)), обещая даже ремаппинг регистров под себя (чтобы собрать свою карту регистров в нужном порядке без пропусков).
Я бы хотел, чтобы ОВЕН эти идеи взял себе на заметку.
Так как порядок байт не стандартизирован на уровне протокола, то в слейве любой порядок правильный, разрулирование возможных проблем совместимости разных приборов(приборов разных фирм) возложено на мастера сети, так что это в принципе не проблема слейва, почему разумные аргументы до вас никак не доходят?!
Сергей0308 в мире масса систем, где проще в слейве, ПР или ПЛК изменить порядок сетевых переменных, чем в этих системах написать скрипты для перестановки. Мир к сожалению не ограничен MasterScada или OwenOPC... поверьте, указанные галочки для slave режима ДОЛЖНЫ работать аналогично мастеру, многим станет легче....
Cs-Cs поддерживаю, с разработчиком RapidScada вышел аналогичный разговор по поводу Modbus слейва, нет возможности собрать свою карту, наличие пропусков, так как сделано отражение на данные, которые нужны не все.
Сергей0308
28.08.2022, 12:50
Я с вами не соглашусь, мне проще одну программу иметь и в ней всё настраивать, чем для ПЛК своя программа, для сенсорной панели своя, надо всё заранее предусмотреть, так как изменив одну, придётся и вторую менять!
Для каких случаев вы такое предлагаете? Если Вы изначально всё делаете, не задав правильный порядок чередования байт у вас и не будет работать! Мне принципиально не ясно, для чего этот сыр-бор, чтобы переделывать уже существующие системы, когда нет проекта для ПЛК? Мне всегда не нравилось, когда борются не с болезнью, а её симптомами, типа человек заболел, простудился у него поднялась высокая температура, чтобы её сбить, мы его в прорубь опускаем!
че как маленькие, есть прекрасный инструмент в виде текстового ЯП. Пользуйтесь им, чтоб выполнить сложные математические решения. Квадраты ни кто не трогает, получается на них и хорошо. Что же касается разношерстных слейвов, ну не выставляйте в конфигурации чтение реалов, поставте два слова и крутите ими как хочется,. хоть байты меняйте хоть слова, хоть не трогайте.
ЗЫ к проекту рисунок прилагается 62320
majevgenij
01.09.2022, 20:54
Помогите, когда-то мне помогли с макросом для пр200 что бы работать по аналогии трм2, нагревать и остужать температуру за определенное время. Может кто ещё раз напомнит где его искать. Спасибо
Сергей0308
01.09.2022, 23:42
Помогите, когда-то мне помогли с макросом для пр200 что бы работать по аналогии трм2, нагревать и остужать температуру за определенное время. Может кто ещё раз напомнит где его искать. Спасибо
Логика работы какая? У Овена нет такого прибора, ТРМ2!
Может Вам нужен двухпозиционный(релейный) регулятор с гистерезисом? Такой макрос имеется в менеджере компонентов, его и искать не нужно, в смысле, он и не терялся!
Короче, Вы вразумительно напишите, или тип прибора, который имеется в действительности или необходимую логику работы, без этого боюсь никто не сможет Вам помочь, в смысле, не знает чего Вы хотите, это же не форум ясновидящих! Если Вам нужен ПИД-регулятор, такой макрос тоже имеется в менеджере компонентов и в библиотеке ОЛ.
Помогите, когда-то мне помогли с макросом для пр200 что бы работать по аналогии трм2, нагревать и остужать температуру за определенное время. Может кто ещё раз напомнит где его искать. Спасибо
не нашли свою же тему?
https://owen.ru/forum/showthread.php?t=35169&p=361510&viewfull=1#post361510
павликморозов
14.09.2022, 16:33
Добрый вечер Всем. Кто нибудь применял макрос из менеджера компонентов (ActMech_ Контроль состояния исполнительного механизма. Версия 1.05) возникли сложности в организации его работы в группе. Программист самоучка поэтому прошу помощи.
Катя1987
15.10.2022, 13:28
не могу найти как скачать саму базу макросов?
не могу найти как скачать саму базу макросов?
файл - менеджер компонентов
Это называется исправили макрос?
63533
Если уж макрос не могут проверить перед размещением, то не удивительно, что Лоджик такой забагованный
Сергей0308
31.10.2022, 10:17
Мой попробуйте, посты 695, 700: https://owen.ru/forum/showthread.php?t=25067&page=70
Вроде адекватно работает:
63534
Кишки их макроса не смотрел, но подозреваю, что мой проще, в плане количества используемый элементов и лишние 6 входов есть не просят.
63536
Сергей0308 N-Max такой большой, потому что одновременно 4 входа с одним значением ?
Сергей0308
31.10.2022, 10:52
Сергей0308 N-Max такой большой, потому что одновременно 4 входа с одним значением ?
Если максимальное значение на нескольких входах, он последовательно, начиная с самого маленького по числовому значению входа, все входа показывает!
Если конечно диапазон значений переменной не переполнять! Только не переусердствуйте с количеством входов с максимальным значением!
Тему почитайте, там всё описано!
И, там 5 входов с максимальным значением, поэтому и показывает: 89111316
Что означает на входах 8, 9, 11, 13, и 16 максимальные значения!
Даже есть вариант с разделителем в виде ноля, но тогда меньшее количество входов можно отобразить!
63540
Мой попробуйте, посты 695, 700: https://owen.ru/forum/showthread.php?t=25067&page=70
Вроде адекватно работает
А если его немножко переделать, то будет работать в два раза быстрее
Сергей0308
31.10.2022, 11:49
А если его немножко переделать, то будет работать в два раза быстрее
Я знаю, я раньше так уже делал и соответствующие счётчики у меня есть! Просто зачем, в смысле, соревноваться не с кем, поэтому так и сделал, типа с запасом на ошибку в один цикл и чтобы улучшать было куда, по примеру старшего товарища Овена!
А так да, можно и ещё скорость работы увеличить, например пропускать входы(я уже подобные макросы делал) с нулевым значением, короче, можно улучшать до бесконечности!
Сергей0308 мне кажется было бы достаточно и битовой маски, на каких входах одинаковое значение.. То есть если MAX только одно число, то и бит будет всего один, если несколько одинаковых MAX то и битов будет несколько.
Сергей0308
31.10.2022, 12:26
Сергей0308 мне кажется было бы достаточно и битовой маски, на каких входах одинаковое значение.. То есть если MAX только одно число, то и бит будет всего один, если несколько одинаковых MAX то и битов будет несколько.
Так, Вы же первый тогда орать начнёте, что ничего непонятно, и надо сделать "по человечески", например значение 65535 на выходе Вам о чём-то говорит? Это будет означать, что на всех 16 входах одинаковые значения!
Сергей0308 а зачем понимать в программе? надо понимать в Scada, где эта информация может быть полезной :) Ну и на экран ПР возможно проще вывести будет....
Сергей0308
31.10.2022, 13:48
Сергей0308 а зачем понимать в программе? надо понимать в Scada, где эта информация может быть полезной :) Ну и на экран ПР возможно проще вывести будет....
Тогда, по вашей логике, безразлично, какое(в каком виде) значение обрабатывать, для склады без разницы, я правильно Вас понимаю?
Считайте это номерами бит!
Сергей0308 номера бит нельзя посчитать просто так :) то есть сколько всего... нельзя настроить на определение GetBit и получать 0 и 1 и так далее...
То есть ваш вариант макроса строго для онлайн отладки и экрана ПР, а дальше придется делать обратные никому не нужные манипуляции.
В продолжение темы о нерабочих макросах в Менеджере.
Макрос бегущей строки не рабочий
64124
Кто-то, вообще, отвечает за наполнение и контроль качества макросов?
Здесь, на форуме есть куча прекрасных и полезных макросов, но найти их бывает проблематично, а некоторые уже и скачать нельзя. Почему нельзя это отслеживать и потихоньку наполнять базу?
Кто-то, вообще, отвечает за наполнение и контроль качества макросов?
Здесь, на форуме есть куча прекрасных и полезных макросов, но найти их бывает проблематично, а некоторые уже и скачать нельзя. Почему нельзя это отслеживать и потихоньку наполнять базу? Объём работ превышает возможности фирмы.
Программисты завалены очередными первочередными задачами.
Поддержка и хотелки пользователей на последнем месте.
Всё как и везде. :( Главное, гребсти деньги. :)
Часть макросов на форумах погибла. То что в "Менеджере компонентов" - капля в море.
Некоторые макросы не в своих темах, и находятся случайно.
База онлайн, что бывает неудобно. И т.д. и т.п.
Что делать?
Создать второй "Менеджер компонентов II", и дать возможность
народу дополнять его без участия и соучастия ОВЕН.
Пусть как рядовые пользователи вносят коррективы. Если захотят.
Так же с хелпом на ОЛ. Создайте HELP-II от народа, доступный из ОЛ.
Недостаточное описание ST возможностей, вынудило меня, как новичка в ST,
ходить неделю по граблям, экспериментировать, и переспрашивать в сотый раз то,
о чём постоянно спрашивают пользователи...
Годы идут, нервы людские тратятся. Чем, и о чём, думают в ОВЕН???
СергейНовосиб
29.11.2022, 04:12
В продолжение темы о нерабочих макросах в Менеджере.
Макрос бегущей строки не рабочий
64124
Кто-то, вообще, отвечает за наполнение и контроль качества макросов?
Здесь, на форуме есть куча прекрасных и полезных макросов, но найти их бывает проблематично, а некоторые уже и скачать нельзя. Почему нельзя это отслеживать и потихоньку наполнять базу?
У меня работает и работает давно. Проблем небыло.
У меня работает и работает давно. Проблем небыло.
+ Аналогично
В продолжение темы о нерабочих макросах в Менеджере.
Макрос бегущей строки не рабочий
64124
Кто-то, вообще, отвечает за наполнение и контроль качества макросов?
Здесь, на форуме есть куча прекрасных и полезных макросов, но найти их бывает проблематично, а некоторые уже и скачать нельзя. Почему нельзя это отслеживать и потихоньку наполнять базу?
А что по Вашей картинке не работает?
Вас смущает число 4294967269 ?
Так это -27 в дополнительном коде, т.е. текущая (расчетная) координата начала строки равна минус 27.
И что здесь не работает?
Зы.
Вы же двигаете строку из 32 символов вправо, значит начинаться строка должна левее нуля, с -32. Вот и будет координата -27 в какой-то момент времени
Лоджик прекрасно работает с отрицательными целыми числами (арифметические вычисления выполняются правильно), только Вам показывает их как числа в дополнительном коде,
64159
Viktor1981
19.12.2022, 10:18
Всех приветствую! Подскажите новичку пожалуйста: есть датчик пвт100 и пр200, опрашивать хочу по rs485. Хоть убей не могу найти макрос на пвт10 пвт100 в библиотеке(( Может надо другую версию овен лоджик скачать? Или может он у кого остался?
Денисов Максим Сергеевич
19.12.2022, 10:30
Сетевой шаблон находится в менеджере компнентов - онлайн база - шаблоны сетевых устройств
64645
Viktor1981
19.12.2022, 11:41
Спасибо большое! Сваял програмку на пр200 для отображения температуры и влажности с датчика на экране пр200- а она нули кажет, хотя в конфигураторе показывала температуру, влажность и росу! Может кто сталкивался и подскажет?
Спасибо большое! Сваял програмку на пр200 для отображения температуры и влажности с датчика на экране пр200- а она нули кажет, хотя в конфигураторе показывала температуру, влажность и росу! Может кто сталкивался и подскажет?
Что-то неправильно сваяли значит.
Экстрасенсов тут нет, или опишите что сделали или прикрепите проект.
Viktor1981
19.12.2022, 12:13
спасибо уже разобрался сам
Newcomer
03.01.2023, 12:38
Добрый день
Нужен макрос регистра защелки (см. вложение). В базе макросов ничего подходящего нет. Можно сделать на D-триггерах, но в квадратиках получается очень канительно. Функцию на ST использовать нельзя в принципе. Может кто-то что-то подобное делал.
Добрый день
Нужен макрос регистра защелки (см. вложение). В базе макросов ничего подходящего нет. Можно сделать на D-триггерах, но в квадратиках получается очень канительно. Функцию на ST использовать нельзя в принципе. Может кто-то что-то подобное делал.
SEL с обратной связью 1 шт, и готово
Newcomer
03.01.2023, 12:47
SEL с обратной связью 1 шт, и готово
Можно подробнее ?
Можно подробнее ?
64993
Ну или чтобы совсем хорошо было
64994
ЗЫ.
По моему такой макрос был, только называется не регистр защелка, а типа память
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot