У Вас неправильно: в ОЛ младший бит с весовым коэффициентом "1", это нулевой бит, а не первый:
Младший бит.PNG
В ОЛ есть готовая функция записи бита, которая гораздо проще чем у вас, зачем всякую лабуду рисовать:
Запись бита.PNG
У вас дублируются выходы Q1-Q8 и Q10-Q17, правда с учётом ошибки это справедливо на 7/8!
Вместо элемента 8-или, лучше и проще поставить TO_BOOL из целочисленного значения:
Вместо 8или.PNG
Скажу больше, если Вам надо чтобы генератор запускался от каких-то конкретных входов(бит), ставите элемент 2И в его целочисленном варианте, а на другой вход константу с суммой весовых коэффициентов бит, от которых он должен запускаться, короче, подобно этому:
Выбор бит(входов).PNG
Ну и зачем на входах Т-триггеры для меня тоже загадка, но это конечно можно как-то объяснить "особенностями" программы!
Этот триггер хорош тем, что его легко сделать энергонезависимым, в отличии от Т-триггера на базе Д-триггера и есть значение по умолчанию:
Энергонезависимый Т-триггер.PNG
Боюсь больных ждут "тяжёлые" времена!
Извиняюсь, это ещё не всё, если Вы очень сильно хотите назначать читаемый бит, на мой взгляд это проще сделать в свойствах макроса, как-то так:
Назначение читаемого бита в свойствах макроса.PNG
Вот проект с таким макросом:
Теперь по вопросу: третьему входу должно соответствовать значение "4", "8", как у вас - четвёртому входу, что-то вы ещё там "наворочали" и достаточно читать маску входов, один регистр, остальные у вас незадействованы, в программе ничему не сопоставлены и они в принципе не нужны, разбивайте регистр на биты в ОПС или скаде!
И не говорите активен-неактивен какой-то вход, это ни о чём не говорит, у вас там Т-триггера стоят, я уже повторяюсь!