подскажите как реализовать задачу на Ld.необходимо сравнивать значение входного параметра с заданной уставкой и включать если выше.
подскажите как реализовать задачу на Ld.необходимо сравнивать значение входного параметра с заданной уставкой и включать если выше.
Ну вообще это уже не LD а FBD или CFC надо использовать.
Но в порядке исключения можно - есть возможность вставлять в цепь не просто фб а FB with En. Дальше как в FBD. В принципе блок может быть любым...
А попробовали?
Можно. Но в этом случае предыдущее выражение на цепи будет разрешением на исполнение блока...
Блок с EN - блок с разрешением на исполнение. На вход EN пришло true - блок исполняется, false - не исполняется.
А сравниваемые значения уже на 2 и 3 входа соответственно.
Не очень понял что значит правым... Выложите программку и описание что хотели сделать...
Возможно использование CoDeSys будет иметь свои особенности, но не думаю, что что-то критичное
Правым скорее означает, что блок сравнения в LD CoDeSys может быть только выходной инстукцией как -( )- или -(S)-.
В реализации LD других производителей часто встречаются инструкции сравнения как входные инструкции, т.е. возможна ,например, такая запись
-| |--|/|--[A>B]--| |------------------(S)-
Удобно, в LD CoDeSys приходится же прибегать к дополнительным промежуточным переменным
А в этих программах сколько языков программирования? Случайно не два?
В любом случае - будем считать это особенностью CoDeSys. Во всем есть свои плюсы и минусы
В каких два, в каких один, а при чем здесь количество языков?
Да, особенность не переделаешь!
Но если очень хочется такую форму записи, то можно сделать свой FB. Например, FB A>B:
FUNCTION_BLOCK FGT
var_input
EN: BOOL;
IN1: INT;
IN2: INT;
end_var
var_output
Q: BOOL;
end_var
тело на ST:
Q:=EN AND (IN1>IN2);
А в основной программе на LD для всех подобных вычислений использовать только один экземпляр этого FB