на картинке нарисуйте что хотите получить, какое значение подается во входную переменную "черного ящика" и какое значение получает выходная переменная
а то реально не понять что Вам нужно, вот и выходит что поставить пак или унпак и т.п.
Вид для печати
Я в курсе двоичной математики. BOOL у меня взаимоисключающие и от них, по факту, мне нужны только значения TRUE. Пишу пример того, что надо:
in1BOOL; (Режим поджига и разогрева котла) Вычислен в программе с помощью ФБ WINDOW по порогу температур от 0 до 65 градусов.
in2 BOOL; (Режим 1 ступени котла) Вычислен в программе по порогу температур от 65 до 70 градусов.
И так далее 9 режимов горения в каждом из которых in(x) принимает состояние TRUE.
На выходе при активации каждого отдельно взятого режима должно появляться значение WORD от 0 (режим поджига) до 8 (максимальный режим). Это значение на входе ФБ MUX у меня задаёт ступени для исполнительных механизмов. То есть мне нужна одна переменная принимающая значение порядкового номера режима по сигналу BOOL. Получается, что були взаимоисключающие.
PS: Может быть, я пошел сложным, онанистическим путём, но программа уже готова и переписывать весь код нет времени.
Вот в очередной раз убеждаешься, что простое сделать сложнее всего. Вот, нарисовал на бумаге. Я не знаю как ещё объяснить.
Вложение 38551
Я бы с удовольствием так сделал и режимы бы выбирались отдельными кнопками, но там в алгоритме нужно предусмотреть модулируемый режим и автоматический переход на режим больше или меньше в зависимости от показаний контролируемых параметров. По-этому и использовал для задания режима вход ФБ MUX.
а если mode1 и mode9 будут ture то все равно на выходе 8 ?
математика тут конечно как у собаки 5 нога...
Валенок, ну почему же, вполне взаимоисключающее, типа старший буль всегда в приоритете... только все рано не пойму, при чем тут математика ? ее тут нет, просто обычные условия.
Напишите свой блок в ST как на бумаге и используйте себе на здоровье в CFC....