Переменными с квадратными скобками в имени они окончательно болт на массивы положили. Так что ничего хорошего в этом нет.
Переменными с квадратными скобками в имени они окончательно болт на массивы положили. Так что ничего хорошего в этом нет.
Последний раз редактировалось kondor3000; 07.09.2025 в 09:38.
Пока позволяла среда Owen Logic - именовал, как считал нужным.
Скорее всего, изначально пользовался без скобок, а потом или подглядел или случайно скопировал единицы измерения со скобками.
На этих скобках не строилась стратегия работ. Просто была милая неповторимая возможность... уцелевшая в сетевых переменных...
Возвращаясь к реально насущному вопросу - как ведёт себя новый ПИД для КЗР на краях диапазона оцениваемого положения регулирующего органа (на 0% и на 100%)?
Выдаёт непрерывный сигнал или игнорирует положение и продолжает регулирование?
Т.е. это стоящее обновление или пока лучше обходиться самодельным макросом?
Добрый день.
В режиме управления дискретным КЗР алгоритм не учитывает рассчитанное значение выхода Pwr. То есть, выходным сигналом, фактически, является приращение в + или в -. Из ближайших аналогов в нашем ассортименте приборов - у ТРМ32 подобный способ регулирования.
Выход Pwr в данном режиме предназначен исключительно для удобства отображения.
Инженер по продукту | ПР и Owen Logic
email: k.korolev@owen.ru
В последней версии ST перестало работать правильно. В версии 2.10.367 правильно 1 367 версия.jpg в версии Owen Logic2.11.368 не правильно 1 Версия 368.jpg
функция Min5 должна выдавать 4, а в последней версии выдаёт 2, четвёртая наработка самая маленькая 212410, у остальных одинаковая 222410Код:function Min5: udint; //имя функции и тип данных выхода var_input //объявление входных переменных I1,I2,I3,I4, I5 : udint; //входная переменная с типом данных udint end_var var //объявление локальных переменных end_var if I1<=I2 and I1<=I3 and I1<=I4 and I1<=I5 then Min5:=1; elsif I2<=I1 and I2<=I3 and I2<=I4 and I2<=I5 then Min5:=2; elsif I3<=I1 and I3<=I2 and I3<=I4 and I3<=I5 then Min5:=3; elsif I4<=I1 and I4<=I2 and I4<=I3 and I4<=I5 then Min5:=4; elsif I5<=I1 and I5<=I2 and I5<=I3 and I5<=I4 then Min5:=5; end_if end_function
Последний раз редактировалось kondor3000; 08.09.2025 в 11:14.
тут алиса утверждает что кот можно доработать предлагает такой
вдруг её вариант будет работать во всех версияхКод:function Min5: udint; var_input I1, I2, I3, I4, I5: udint; end_var var min_value: udint; min_index: udint := 1; begin min_value := I1; IF I2 < min_value THEN min_value := I2; min_index := 2; END_IF; IF I3 < min_value THEN min_value := I3; min_index := 3; END_IF; IF I4 < min_value THEN min_value := I4; min_index := 4; END_IF; IF I5 < min_value THEN min_value := I5; min_index := 5; END_IF; Min5 := min_index; end_function
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Зато эмуляции внутри этой же функции - норм.
За сам факт возможности эмуляции ST-функций - респект.
Но напихали модных/стильных/молодежных дебильных квадратиков с значениями прям в коде как в КДС3. Вот накой они нужны если показывают значение в конце цикла?
И каждая 20 раз упоминаемая в коде переменная засирает всё своими квадратиками с одним и тем же дерьмом как голубь.
Текущего в объявлениях достаточно. А любителям писать километровые пергаменты сделали бы отделяемые окно объяв и кода. Или вообще отдельное окно с свободно редактируемой табличкой. где можно указать что показывать
Был этот голубиный помет в 367? (я пропустил этот момент) Есть довольные этим?
Не. Косяк от матерых прогеров.вдруг её вариант будет работать во всех версиях
Последний раз редактировалось Валенок; 08.09.2025 в 13:01.
Просто - попробуйте 2 получить
Это жене дно.pngКод:function index: udint; var_input u1,u2: udint; end_var index := 1; IF u2 < u1 THEN index := 2; END_IF; end_function
Они - знали. Заранее сняли
Последний раз редактировалось Валенок; 08.09.2025 в 13:14.
Да, в последней версии эмуляция работает криво
Безымянный.png