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
Спасибо за ответ!