Нехватает сетевых регистров на ПР200 в режиме слейв. Можно ли их тоже по битам разбить целочисленные? с 512 по 575 нехватает переменных. Очень много датчиков у меня в проекте и включателей.
Нехватает сетевых регистров на ПР200 в режиме слейв. Можно ли их тоже по битам разбить целочисленные? с 512 по 575 нехватает переменных. Очень много датчиков у меня в проекте и включателей.
Вам наверно для начала их собрать надо в один регистр, впрочем в ОЛ имеются обе функции, делайте что хотите!
И это позволит передать более тысячи дискретных сигналов, короче, проблема в чём?
Упаковка-распаковка.PNG
Упаковка-распаковка.owl
Последний раз редактировалось Сергей0308; 17.12.2019 в 19:55.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Мне аналоговые сигналы нужны. Дискретные разобрался друг. Вот аналоговые если можно то вообще было бы здорово.
Если переменные флоат - преобразуйте в инт, сразу в два раза больше переменных поместятся!
И в принципе, если быстродействие не критично можно одним регистром до 128 интовых переменных передавать одним регистром, например один байт использовать для передачи данных, а другой для "синхронизации", передавать служебные значения в диапазоне 0-255, чтобы потом инт собрать из двух байтов, я ещё достаточно давно в одной из тем это предлагал!
И если булевы переменных соберёте в один регистр и передадите - они в 16 раз меньше места займут!
Последний раз редактировалось Сергей0308; 17.12.2019 в 21:40.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Скорость обновления обычно нужно побольше, это все хотят в динамичных системах. Превысить штатный объем буфера обмена слейва (128 байт!) можно только в ущерб скорости. Мой личный рекорд - снимать с ПР200 300 байт информации в секунду (панелью СП3хх) за счёт её мультиплексирования. При том что надо еще оставить часть буфера на 200 разных команд (булевых) обратно, это только кодами. Если Мастер может читать пакетами, то развить кажущийся эффективный объем такими ухищрениями можно, удвоить его можно относительно просто.
Обещали в перспективе удвоить объем буфера, это убрало бы в основном эту проблему. 128 байт это очень мало бывает когда ПР200 работает как терминал.
Афтор не указывает чем он читает, поэтому трудно советовать. Способы Сергея это при порегистровом чтении, совсем беда. Мультиплексировать массивы гораздо эффективнее.
Последний раз редактировалось Серёга Букашкин; 17.12.2019 в 21:16.
Очень много -- это сколько? И каковы диапазоны этих чисел? Понятно, что одним регистром можно передать 16ти-разрядное целое число. Но ежели эти числа не больше 255, то можно и две штуки в один регистр запихтерить.
Последний раз редактировалось Сергей0308; 17.12.2019 в 21:17.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
могу еще идею подкинуть. Если кто то еще помнит что cмcки можно отправлять на латинице длиннее в два раза чем на кириллице, это потому что они могут себе позволить не использовать один разряд для символа, таким образом ужимают инфу
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Вы только про сжатие инфы. Я же о уровне когда это все эти способы уже исчерпаны (пустых мест в регистрах нет) и буфера всё равно не хватает. К тому же инфа часто предназначена для чтения с панелей, не имеющих вообще или скромные возможности обратной распаковки, поэтому сильно круто упаковывать обычно нельзя.
Последний раз редактировалось Серёга Букашкин; 17.12.2019 в 22:24.
Если можно пример можете скинуть. а то боюсь долго буду разбираться в итоге не разберусь.) Просто 2 целых например датчика температуры разобрать.