Просмотр полной версии : Обсуждение макросов для OWEN Logic
UNIX_TIME + ПР100
Проблема: в симуляторе и фактически не совпадают значение регистра (в примере 575-й).
Ожидаемое значение: 47024
Фактическое: -17786
79297
Так -17786 со знаком есть BA86 в hex формате, что соответствует без знаковому 47024. Можешь проверить в калькуляторе
Так -17786 со знаком есть BA86 в hex формате, что соответствует без знаковому 47024. Можешь проверить в калькуляторе
Вопрос закрыт.
Добавлю, из мануала Modbus Poll:
The 16-bit Modbus registers can be displayed in 4 different modes.
Signed
Unsigned
Hex
ASCII - Hex
Binary
kondor3000
10.10.2024, 14:31
Вопрос закрыт.
Добавлю, из мануала Modbus Poll:
The 16-bit Modbus registers can be displayed in 4 different modes.
Signed
Unsigned
Hex
ASCII - Hex
Binary
Выше уже написал про типы, в данном случае вы использовали Signed (знаковое целое), а надо было Unsigned (целое без знака).
Типы переменных надо выучить, есть в Лоджике и в Codesys справка по F1.
Так -17786 со знаком есть BA86 в hex формате, что соответствует без знаковому 47024. Можешь проверить в калькуляторе
Не понял, у меня по калькулятору ВА86 = 47750
79309
kondor3000
10.10.2024, 21:14
Не понял, у меня по калькулятору ВА86 = 47750
79309
Скрины сделаны с разницей 12 минут примерно, либо в симуляции Лоджика, время отстаёт как обычно.
MooRFooX
13.10.2024, 11:10
Здравствуйте. Не могу найти для OL макросы как в FBD на максимум минимум. Сам сделать уже всю голову сломал. Мне нужно принять до 8 входных значений с точкой и выхода максимума и минимума (в идеале конечно с возможностью вычисления разницы между ними). Может кто подсказать? Я в программировании не силён, сам электрик поступил на АСУ ТП на заочку и ковыряюсь по-маленьку, изучаю.
79366
Функции сможете добавить?
function fMin: real;
var_input
x1, x2 : real;
end_var
fMin := x1; if x2 < fMin then fMin := x2; end_if
end_function
function fMax: real;
var_input
x1, x2 : real;
end_var
fMax := x1; if x2 > fMax then fMax := x2; end_if
end_function
Или ФБ?
function_block f8MinMax
var_input
x1, x2, x3, x4, x5, x6, x7, x8 : real;
end_var
var_output
Min, Max, Delta : real;
end_var
Min := x1;
if x2 < Min then Min := x2; end_if
if x3 < Min then Min := x3; end_if
if x4 < Min then Min := x4; end_if
if x5 < Min then Min := x5; end_if
if x6 < Min then Min := x6; end_if
if x7 < Min then Min := x7; end_if
if x8 < Min then Min := x8; end_if
Max := x1;
if x2 > Max then Max := x2; end_if
if x3 > Max then Max := x3; end_if
if x4 > Max then Max := x4; end_if
if x5 > Max then Max := x5; end_if
if x6 > Max then Max := x6; end_if
if x7 > Max then Max := x7; end_if
if x8 > Max then Max := x8; end_if
Delta := Max - Min;
end_function_block
Сергей0308
13.10.2024, 12:11
Здравствуйте. Не могу найти для OL макросы как в FBD на максимум минимум. Сам сделать уже всю голову сломал. Мне нужно принять до 8 входных значений с точкой и выхода максимума и минимума (в идеале конечно с возможностью вычисления разницы между ними). Может кто подсказать? Я в программировании не силён, сам электрик поступил на АСУ ТП на заочку и ковыряюсь по-маленьку, изучаю.
79366
Так можно следить за сообщениями на форуме, это займёт не более 30 минут в день, в смысле, будете в курсе, а подобное уже делали:
79367
79369
https://owen.ru/forum/showthread.php?t=25067&page=70
MooRFooX
13.10.2024, 12:17
Функции сможете добавить?
function fMin: real;
var_input
x1, x2 : real;
end_var
fMin := x1; if x2 < fMin then fMin := x2; end_if
end_function
function fMax: real;
var_input
x1, x2 : real;
end_var
fMax := x1; if x2 > fMax then fMax := x2; end_if
end_function
Или ФБ?
function_block f8MinMax
var_input
x1, x2, x3, x4, x5, x6, x7, x8 : real;
end_var
var_output
Min, Max, Delta : real;
end_var
Min := x1;
if x2 < Min then Min := x2; end_if
if x3 < Min then Min := x3; end_if
if x4 < Min then Min := x4; end_if
if x5 < Min then Min := x5; end_if
if x6 < Min then Min := x6; end_if
if x7 < Min then Min := x7; end_if
if x8 < Min then Min := x8; end_if
Max := x1;
if x2 > Max then Max := x2; end_if
if x3 > Max then Max := x3; end_if
if x4 > Max then Max := x4; end_if
if x5 > Max then Max := x5; end_if
if x6 > Max then Max := x6; end_if
if x7 > Max then Max := x7; end_if
if x8 > Max then Max := x8; end_if
Delta := Max - Min;
end_function_block
Добавил, спасибо. Печально что ФБ на st нельзя помещать в макрос.
MooRFooX
13.10.2024, 12:27
Так можно следить за сообщениями на форуме, это займёт не более 30 минут в день, в смысле, будете в курсе, а подобное уже делали:
79367
79369
Спасибо. Согласен. Но, даже в освоении Owen Logic и ПР перерывы у меня бывают очень долгими по несколько месяцев, а про мониторинг форума я вообще молчу.
Добавил, спасибо. Печально что ФБ на st нельзя помещать в макрос.
Ваш макрос:
79372
где MinN:
79373
а MaxN:
79374
и еще:
- бросьте это занятие, оно точно не для Вас!
Рогов Алексей
14.10.2024, 07:43
Здравствуйте. Не могу найти для OL макросы как в FBD на максимум минимум. Сам сделать уже всю голову сломал. Мне нужно принять до 8 входных значений с точкой и выхода максимума и минимума (в идеале конечно с возможностью вычисления разницы между ними). Может кто подсказать? Я в программировании не силён, сам электрик поступил на АСУ ТП на заочку и ковыряюсь по-маленьку, изучаю.
79366
Пузырьковая сортировка? Вам нужна? здесь много примеров
P.S. Не могу уяснить источник проблемы (автоколебаний) - ведь сам ПИД регулятор не работает с абсолютными значениями, а только с невязкой (E=SP-PV), т.е. "смещение" в 3500 и 10000 не должно оказывать влияние...
Проблема была в том, что не было тонкой регулировки - привод клапана работал без остановки, пока давление не возвращалось в зону нечувствительности. Поскольку я нашел способ решить проблему -делением на уставку,- дальше уже не экспериментировал.
Работает и работает - хорошо.
Возможно, мне нужно было реализовывать не с Кп, а с полосой пропорциональности Хр=1/Кп, вынесенной за скобки формулы в виде общего множителя - тогда физический смысл параметра Хр был бы более явным, и не требовалось масштабирование Ти. Более явный физический смысл Хр позволил бы оценить порядок этого параметра и почти сразу его определить.
Niggaдяй
20.02.2025, 21:23
Где эта база доступна для скачивания? Не могу найти нигде информацию, а если в темах нахожу вложения, они оказываются поломанными и перенаправляют на .gif файл,. а не на скачивание
kondor3000
20.02.2025, 22:15
Где эта база доступна для скачивания? Не могу найти нигде информацию, а если в темах нахожу вложения, они оказываются поломанными и перенаправляют на .gif файл,. а не на скачивание
Смотрите темы после 2014-15 года, всё что выложено ранее уже удалено, проще вопрос задать в теме для новичков.
Онлайн база, прямо в Лоджике, выберите Файл / Менеджер компонентов, там лежат все макросы и Pt1000
Добрый день!
Макрос для Pt100.
Обнаружены циклические связи(см. вложение).
Что посоветуете?
Добрый день!
Макрос для Pt100.
Обнаружены циклические связи(см. вложение).
Что посоветуете?
а. Забить
б. Заменить на линию задержки
Линию задержки на вход float ставить ?
Линию задержки на вход float ставить ?
Это зависит от алгоритма, но в большинстве случаев достаточно заменить ту линию, что выделилась жёлтым
Черепанов Сергей
24.03.2026, 11:14
Здравствуйте, подскажите новичку, где можно взять макрос таймера с уставкой и измерителя температуры? Планирую приобрести ПР100 и считывать значения таймера и измерителя на панель WEINTEK
Здравствуйте, подскажите новичку, где можно взять макрос таймера с уставкой и измерителя температуры? Планирую приобрести ПР100 и считывать значения таймера и измерителя на панель WEINTEK
Для начала заглянуть в Меню Файл -> Менеджер компонентов и посмотреть что там есть
kondor3000
24.03.2026, 13:11
Здравствуйте, подскажите новичку, где можно взять макрос таймера с уставкой и измерителя температуры? Планирую приобрести ПР100 и считывать значения таймера и измерителя на панель WEINTEK
Пишите подробней, что вам надо.
Пример таймера:
Таймер прямого и обратного отсчёта с задачей времени и памятью наработки____ https://owen.ru/forum/showthread.php?t=36900&p=461025&viewfull=1#post461025
Здравствуйте, подскажите новичку, где можно взять макрос таймера с уставкой и измерителя температуры? Планирую приобрести ПР100 и считывать значения таймера и измерителя на панель WEINTEK
А датчик температуры какой будет?
А уставка для таймера известна?
Черепанов Сергей
24.03.2026, 17:03
датчик температуры 4-20 mA , уставка для таймера устанавливается с панели
kondor3000
24.03.2026, 17:54
датчик температуры 4-20 mA , уставка для таймера устанавливается с панели
Макрос Conv4-20 или Scale из менеджера компонентов, задаёте диапазон своего датчика и получаете температуру. Можно диапазон забить прямо на аналоговом входе и обойтись без макроса.
Пример таймера, ссылка выше, только сделать задачу времени через сетевую переменную.
Черепанов Сергей
24.03.2026, 19:48
Благодарю за ответы, сейчас буду пробовать.
Черепанов Сергей
25.03.2026, 08:17
Макросы Conv4-20 и Scale из менеджера компонентов работают оба, а прямо на входе забить диапазон почему-то не получается. В настройках входа диапазон изменяется , но в симуляторе какое значение задаешь , такое и отображается.
Макрос таймера Timer 1 по обеим ссылкам проверил, все устраивает. Теперь я переменные должен заменить на сетевые , чтобы мне можно было считывать значения в панель WEINTEK , правильно я понял?
Черепанов Сергей
25.03.2026, 08:19
Еще раз всем откликнувшимся огромное спасибо, всем добра.
kondor3000
25.03.2026, 09:20
Макросы Conv4-20 и Scale из менеджера компонентов работают оба, а прямо на входе забить диапазон почему-то не получается. В настройках входа диапазон изменяется , но в симуляторе какое значение задаешь , такое и отображается.
Макрос таймера Timer 1 по обеим ссылкам проверил, все устраивает. Теперь я переменные должен заменить на сетевые , чтобы мне можно было считывать значения в панель WEINTEK , правильно я понял?
Настройка самого входа, будет работать только в живом реле, в симуляторе не будет.
Сетевые целые переменные 1 регистр (16 бит) имеют ограниченный диапазон, до 65535, если надо передать больше, то надо ставить целое 2 регистра (32 бита).
А так, да, что надо передавать то и делаете сетевыми.
Черепанов Сергей
25.03.2026, 21:25
Подскажите, пожалуйста, как добавить скачанные макросы в библиотеку компонентов. они открываются как проект.
kondor3000
25.03.2026, 21:41
Подскажите, пожалуйста, как добавить скачанные макросы в библиотеку компонентов. они открываются как проект.
Скачайте всё в локальную биб-ку, и открывайте из Менеджера, из лок. биб-ки, даже если нет интернета,
так же загрузив макросы в проект.
Если вы пишите про пример моего таймера на ST, то создаёте ФБ и копипастом переносите весь текст.
Так же можно перенести экспортом, импортом ФБ, это иногда удобнее, переносятся все вложенные функции и ФБ.
Черепанов Сергей
10.04.2026, 11:49
Доброго дня, kondor300, где можно взять макрос измерителя температуры с уставкой.? На подобии таймеров, которые вы мне скидывали. Здесь я находил измеритель но без уставки.
kondor3000
10.04.2026, 13:16
Доброго дня, kondor3000, где можно взять макрос измерителя температуры с уставкой.? На подобии таймеров, которые вы мне скидывали. Здесь я находил измеритель но без уставки.
Простейший вариант, сравнить измерение с уставкой и вывести выход. Есть сравнение на больше, меньше или равно.
Есть ещё макрос в менеджере 2PosHisReg - Двухпозиционный регулятор с гистерезисом.
keysansa
10.04.2026, 22:18
Простейший вариант, сравнить измерение с уставкой и вывести выход. Есть сравнение на больше, меньше или равно.
Есть ещё макрос в менеджере 2PosHisReg - Двухпозиционный регулятор с гистерезисом.
Без гистерезиса - совсем ерунда получится.
Сергей0308
10.04.2026, 23:08
Здесь выкладывал свой двухпозиционный регулятор с прямым назначением уставок для переключения, мне это кажется более удобным, чем уставка + гистерезис: https://owen.ru/forum/showthread.php?t=26216&page=340&p=424807&viewfull=1#post424807
Черепанов Сергей
11.04.2026, 08:20
Благодарю за советы, использовал 2PosUpReg1, пока без регулирования. При достижении заданной температуры выключается частотник.
Добрый день! Не могу сообразить как запустить АНР в макросе "Простой ПИД-регулятор с автонастройкой". На примере к входу автонастройки подключена переменная, которая записывается из "флага окончания работы автонастройки". Я так понимаю, нужно записать единицу в переменную включения автонастройки? (Понимаю, что это заведомо неверно). Подскажите, кто сталкивался пожалуйста, как это работает!
kondor3000
21.04.2026, 07:59
Добрый день! Не могу сообразить как запустить АНР в макросе "Простой ПИД-регулятор с автонастройкой". На примере к входу автонастройки подключена переменная, которая записывается из "флага окончания работы автонастройки". Я так понимаю, нужно записать единицу в переменную включения автонастройки? (Понимаю, что это заведомо неверно). Подскажите, кто сталкивался пожалуйста, как это работает!
Пример использования PID, с запуском АНР и сохранением всех настроек https://owen.ru/forum/showthread.php?t=17974&page=51#505
Спасибо за ответ. К сожалению используемого в примере макроса уже нет в менеджере компонентов. C макросом разобрался! Возможно будет интересно начинающим - переменную "xAT" (запуск автонастройки из примера) нужно делать "энергонезависимой" и "значение по умолчанию" ставить "1". Тогда АНР будет включаться при старте и отключаться после окончания автоматической настройки.
Спасибо за ответ. К сожалению используемого в примере макроса уже нет в менеджере компонентов. C макросом разобрался! Возможно будет интересно начинающим - переменную "xAT" (запуск автонастройки из примера) нужно делать "энергонезависимой" и "значение по умолчанию" ставить "1". Тогда АНР будет включаться при старте и отключаться после окончания автоматической настройки.
Если проблема была в том, что xAT, привязанная к кнопке на экране не взводилась, то надо было просто в свойствах переменной поставить "запись в конце цикла"
kondor3000
22.04.2026, 13:12
Спасибо за ответ. К сожалению используемого в примере макроса уже нет в менеджере компонентов. C макросом разобрался! Возможно будет интересно начинающим - переменную "xAT" (запуск автонастройки из примера) нужно делать "энергонезависимой" и "значение по умолчанию" ставить "1". Тогда АНР будет включаться при старте и отключаться после окончания автоматической настройки.
Этот макрос доступен в ПР200 и подобных и находится он не в менеджере, а в стандартных макросах.
Для ПР103, 205, 225 уже другой подобный макрос.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot