Вообще то целочисленный регистр может быть 4 байтным. В него можно упаковать два обычных двухбайтовых. Потом распаковать. Делал так, работает. Экономия в два раза.
Вид для печати
Вообще то целочисленный регистр может быть 4 байтным. В него можно упаковать два обычных двухбайтовых. Потом распаковать. Делал так, работает. Экономия в два раза.
Насколько понял у вас передаются булевы сигналы(все упакованы в регистры по 16 бит) и значения счётчиков(не совсем понятно для чего, это не принципиально), короче может можно уменьшить диапазон счётчиков в 2 раза, тогда одним регистром сможете передавать в 2 раза больше значений счётчиков(вам, насколько понимаю будет достаточно), а ПЛК при переполнении счётчика добавит его диапазон к значению счётчика, надеюсь смысл понятен и я ранее выкладывал проекты как упаковывать несколько значений в одну переменную(регистр)!
Вложение 59405
Вложение 59406
И ещё можно и последовательно одним регистром несколько переменных передавать, 1-2 бита использовать для метки(служебной информации).
Вложение 59408
В одной из тем форума я предлагал передавать последовательно 128 переменных(16 бит), тогда и одного регистра вам хватит, если сильно не спешите(задержка увеличится)! Один байт использовать для передачи данных, второй - служебной информации, чтобы потом из двух байтов обратно переменные собирать!
И ещё возможный вариант решения заключается в том, что может не все счётчики одновременно работают(изменяют своё значение), тогда можно передавать значения счётчиков, которые меняются, для этого меньше регистров потребуется, возможно это немного усложнит программу, хотя не факт, у меня встречались случаи при добавления функций в программу, программа в целом упрощалась!