PDA

Просмотр полной версии : Обсуждение макросов для OWEN Logic



Страницы : 1 2 3 [4]

petera
10.10.2024, 10:20
UNIX_TIME + ПР100

Проблема: в симуляторе и фактически не совпадают значение регистра (в примере 575-й).
Ожидаемое значение: 47024
Фактическое: -17786

79297

Так -17786 со знаком есть BA86 в hex формате, что соответствует без знаковому 47024. Можешь проверить в калькуляторе

Gena72
10.10.2024, 10:29
Так -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.

Dimensy
10.10.2024, 18:28
Так -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

EFrol
13.10.2024, 11:41
Функции сможете добавить?


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 и ПР перерывы у меня бывают очень долгими по несколько месяцев, а про мониторинг форума я вообще молчу.

EFrol
13.10.2024, 15:01
Добавил, спасибо. Печально что ФБ на st нельзя помещать в макрос.

Ваш макрос:
79372

где MinN:
79373

а MaxN:
79374

и еще:
- бросьте это занятие, оно точно не для Вас!

Рогов Алексей
14.10.2024, 07:43
Здравствуйте. Не могу найти для OL макросы как в FBD на максимум минимум. Сам сделать уже всю голову сломал. Мне нужно принять до 8 входных значений с точкой и выхода максимума и минимума (в идеале конечно с возможностью вычисления разницы между ними). Может кто подсказать? Я в программировании не силён, сам электрик поступил на АСУ ТП на заочку и ковыряюсь по-маленьку, изучаю.
79366

Пузырьковая сортировка? Вам нужна? здесь много примеров

Юра54
15.10.2024, 07:41
P.S. Не могу уяснить источник проблемы (автоколебаний) - ведь сам ПИД регулятор не работает с абсолютными значениями, а только с невязкой (E=SP-PV), т.е. "смещение" в 3500 и 10000 не должно оказывать влияние...

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

FPavel
15.10.2024, 09:24
Работает и работает - хорошо.

Возможно, мне нужно было реализовывать не с Кп, а с полосой пропорциональности Хр=1/Кп, вынесенной за скобки формулы в виде общего множителя - тогда физический смысл параметра Хр был бы более явным, и не требовалось масштабирование Ти. Более явный физический смысл Хр позволил бы оценить порядок этого параметра и почти сразу его определить.

Niggaдяй
20.02.2025, 21:23
Где эта база доступна для скачивания? Не могу найти нигде информацию, а если в темах нахожу вложения, они оказываются поломанными и перенаправляют на .gif файл,. а не на скачивание

kondor3000
20.02.2025, 22:15
Где эта база доступна для скачивания? Не могу найти нигде информацию, а если в темах нахожу вложения, они оказываются поломанными и перенаправляют на .gif файл,. а не на скачивание

Смотрите темы после 2014-15 года, всё что выложено ранее уже удалено, проще вопрос задать в теме для новичков.

Онлайн база, прямо в Лоджике, выберите Файл / Менеджер компонентов, там лежат все макросы и Pt1000

Сергeй
24.02.2025, 09:09
Добрый день!
Макрос для Pt100.
Обнаружены циклические связи(см. вложение).
Что посоветуете?

1exan
24.02.2025, 09:25
Добрый день!
Макрос для Pt100.
Обнаружены циклические связи(см. вложение).
Что посоветуете?

а. Забить
б. Заменить на линию задержки

Сергeй
24.02.2025, 09:31
Линию задержки на вход float ставить ?

1exan
24.02.2025, 09:33
Линию задержки на вход float ставить ?

Это зависит от алгоритма, но в большинстве случаев достаточно заменить ту линию, что выделилась жёлтым

Сергeй
24.02.2025, 09:42
Спасибо за ответ!

Черепанов Сергей
24.03.2026, 11:14
Здравствуйте, подскажите новичку, где можно взять макрос таймера с уставкой и измерителя температуры? Планирую приобрести ПР100 и считывать значения таймера и измерителя на панель WEINTEK

Dimensy
24.03.2026, 11:20
Здравствуйте, подскажите новичку, где можно взять макрос таймера с уставкой и измерителя температуры? Планирую приобрести ПР100 и считывать значения таймера и измерителя на панель WEINTEK

Для начала заглянуть в Меню Файл -> Менеджер компонентов и посмотреть что там есть

kondor3000
24.03.2026, 13:11
Здравствуйте, подскажите новичку, где можно взять макрос таймера с уставкой и измерителя температуры? Планирую приобрести ПР100 и считывать значения таймера и измерителя на панель WEINTEK

Пишите подробней, что вам надо.
Пример таймера:
Таймер прямого и обратного отсчёта с задачей времени и памятью наработки____ https://owen.ru/forum/showthread.php?t=36900&p=461025&viewfull=1#post461025

EFrol
24.03.2026, 13:12
Здравствуйте, подскажите новичку, где можно взять макрос таймера с уставкой и измерителя температуры? Планирую приобрести ПР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, пока без регулирования. При достижении заданной температуры выключается частотник.

UWMilk
21.04.2026, 07:47
Добрый день! Не могу сообразить как запустить АНР в макросе "Простой ПИД-регулятор с автонастройкой". На примере к входу автонастройки подключена переменная, которая записывается из "флага окончания работы автонастройки". Я так понимаю, нужно записать единицу в переменную включения автонастройки? (Понимаю, что это заведомо неверно). Подскажите, кто сталкивался пожалуйста, как это работает!

kondor3000
21.04.2026, 07:59
Добрый день! Не могу сообразить как запустить АНР в макросе "Простой ПИД-регулятор с автонастройкой". На примере к входу автонастройки подключена переменная, которая записывается из "флага окончания работы автонастройки". Я так понимаю, нужно записать единицу в переменную включения автонастройки? (Понимаю, что это заведомо неверно). Подскажите, кто сталкивался пожалуйста, как это работает!

Пример использования PID, с запуском АНР и сохранением всех настроек https://owen.ru/forum/showthread.php?t=17974&page=51#505

UWMilk
22.04.2026, 11:51
Спасибо за ответ. К сожалению используемого в примере макроса уже нет в менеджере компонентов. C макросом разобрался! Возможно будет интересно начинающим - переменную "xAT" (запуск автонастройки из примера) нужно делать "энергонезависимой" и "значение по умолчанию" ставить "1". Тогда АНР будет включаться при старте и отключаться после окончания автоматической настройки.

Dimensy
22.04.2026, 13:10
Спасибо за ответ. К сожалению используемого в примере макроса уже нет в менеджере компонентов. C макросом разобрался! Возможно будет интересно начинающим - переменную "xAT" (запуск автонастройки из примера) нужно делать "энергонезависимой" и "значение по умолчанию" ставить "1". Тогда АНР будет включаться при старте и отключаться после окончания автоматической настройки.

Если проблема была в том, что xAT, привязанная к кнопке на экране не взводилась, то надо было просто в свойствах переменной поставить "запись в конце цикла"

kondor3000
22.04.2026, 13:12
Спасибо за ответ. К сожалению используемого в примере макроса уже нет в менеджере компонентов. C макросом разобрался! Возможно будет интересно начинающим - переменную "xAT" (запуск автонастройки из примера) нужно делать "энергонезависимой" и "значение по умолчанию" ставить "1". Тогда АНР будет включаться при старте и отключаться после окончания автоматической настройки.

Этот макрос доступен в ПР200 и подобных и находится он не в менеджере, а в стандартных макросах.
Для ПР103, 205, 225 уже другой подобный макрос.