Вообще то целочисленный регистр может быть 4 байтным. В него можно упаковать два обычных двухбайтовых. Потом распаковать. Делал так, работает. Экономия в два раза.
Вообще то целочисленный регистр может быть 4 байтным. В него можно упаковать два обычных двухбайтовых. Потом распаковать. Делал так, работает. Экономия в два раза.
Насколько понял у вас передаются булевы сигналы(все упакованы в регистры по 16 бит) и значения счётчиков(не совсем понятно для чего, это не принципиально), короче может можно уменьшить диапазон счётчиков в 2 раза, тогда одним регистром сможете передавать в 2 раза больше значений счётчиков(вам, насколько понимаю будет достаточно), а ПЛК при переполнении счётчика добавит его диапазон к значению счётчика, надеюсь смысл понятен и я ранее выкладывал проекты как упаковывать несколько значений в одну переменную(регистр)!
Упаковка-распаковка_6_2.PNG
Упаковка-распаковка_6_2.owl
И ещё можно и последовательно одним регистром несколько переменных передавать, 1-2 бита использовать для метки(служебной информации).
Передача одним регистром_4.owl
В одной из тем форума я предлагал передавать последовательно 128 переменных(16 бит), тогда и одного регистра вам хватит, если сильно не спешите(задержка увеличится)! Один байт использовать для передачи данных, второй - служебной информации, чтобы потом из двух байтов обратно переменные собирать!
И ещё возможный вариант решения заключается в том, что может не все счётчики одновременно работают(изменяют своё значение), тогда можно передавать значения счётчиков, которые меняются, для этого меньше регистров потребуется, возможно это немного усложнит программу, хотя не факт, у меня встречались случаи при добавления функций в программу, программа в целом упрощалась!
Последний раз редактировалось Сергей0308; 18.02.2022 в 23:32.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.