Не положили, внутри ФБ, в именах не проходят никакие скобки. Массивы работают.
Тут пишут про внешние переменные. Но скобки в именах это точно дичь.
Кто мешает вместо rPressure_[bar] или rPressure_{bar} , написать rPressure_bar
Вид для печати
Пока позволяла среда Owen Logic - именовал, как считал нужным.
Скорее всего, изначально пользовался без скобок, а потом или подглядел или случайно скопировал единицы измерения со скобками.
На этих скобках не строилась стратегия работ. Просто была милая неповторимая возможность... уцелевшая в сетевых переменных...
Возвращаясь к реально насущному вопросу - как ведёт себя новый ПИД для КЗР на краях диапазона оцениваемого положения регулирующего органа (на 0% и на 100%)?
Выдаёт непрерывный сигнал или игнорирует положение и продолжает регулирование?
Т.е. это стоящее обновление или пока лучше обходиться самодельным макросом?
Добрый день.
В режиме управления дискретным КЗР алгоритм не учитывает рассчитанное значение выхода Pwr. То есть, выходным сигналом, фактически, является приращение в + или в -. Из ближайших аналогов в нашем ассортименте приборов - у ТРМ32 подобный способ регулирования.
Выход Pwr в данном режиме предназначен исключительно для удобства отображения.
В последней версии ST перестало работать правильно. В версии 2.10.367 правильно Вложение 85636 в версии Owen Logic2.11.368 не правильно Вложение 85637
функция 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
тут алиса утверждает что кот можно доработать предлагает такой
вдруг её вариант будет работать во всех версияхКод: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
Зато эмуляции внутри этой же функции - норм.
За сам факт возможности эмуляции ST-функций - респект.
Но напихали модных/стильных/молодежных дебильных квадратиков с значениями прям в коде как в КДС3. Вот накой они нужны если показывают значение в конце цикла?
И каждая 20 раз упоминаемая в коде переменная засирает всё своими квадратиками с одним и тем же дерьмом как голубь.
Текущего в объявлениях достаточно. А любителям писать километровые пергаменты сделали бы отделяемые окно объяв и кода. Или вообще отдельное окно с свободно редактируемой табличкой. где можно указать что показывать
Был этот голубиный помет в 367? (я пропустил этот момент) Есть довольные этим?
Не. Косяк от матерых прогеров.Цитата:
вдруг её вариант будет работать во всех версиях
Просто - попробуйте 2 получить
Это жеВложение 85639Код:function index: udint;
var_input
u1,u2: udint;
end_var
index := 1;
IF u2 < u1 THEN
index := 2;
END_IF;
end_function
Они - знали. Заранее сняли
Да, в последней версии эмуляция работает криво
Вложение 85640