Просмотр полной версии : Обсуждение макросов для 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 ставить ?
Это зависит от алгоритма, но в большинстве случаев достаточно заменить ту линию, что выделилась жёлтым
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot