Показать сообщение отдельно
Старый 14.12.2018, 13:14   #6
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Циклический опрос по RS485 одинаковых устройств

Цитата:
Сообщение от Arsie Посмотреть сообщение
При таком количестве переменных гораздо удобнее на порту сделать 9 устройств с ручным опросом и щёлкать их между собой.
А что с расходом памяти?
Насколько я помню, у пикселя ОЗУ всего 256 байт, при этом данные приборы - далеко не единственное, что обрабатывается (там еще 2 навороченных приборчика есть - 24 real и 2 long с каждого читается и частично используется в вычислениях), плюс две ГГУ (12 real, 4 long, 22 int читается и частично используется в вычислениях, 2 real и 3 int записываются по необходимости). В идеале надо бы, чтобы все вычитанные и несколько рассчитанных величин транслировались на верхний уровень через Modbus/TCP (и если с изначально планировавшимся SMH2 это не было проблемой, то с Пикселем, имеющим очень мало ОЗУ - я как-то опасаюсь: не пришлось бы сокращать число транслируемых регистров Modbus)



Цитата:
Сообщение от Arsie Посмотреть сообщение
Заодно избавляет от мультиплексирования данных
Так. Регистры - нарисованы условно, чисто для наглядности. По факту они нарисованы вместо макроса вычислений (расчет среднеквадратичных параметров, маскирование, конвертации типов и т.п.) и в текущем варианте отжирает 110-130мс на SMH2 - тогда как в силу некоторх причин тик больше 200мс весьма нежелателен. Чтобы иметь цикл покороче, сам макрос имеет мультиплексированные входы и в каждом тике запускается только в одном экземпляре (т.е. все 9 приборов обсчитываются за 9 тиков). REM: макрос не выкладываю, т.к. пытаюсь упростить и подрезать не особо нужные функции, ускорив его работу и уменьшив использование памяти
Так что уход от мультиплексирования не дает ровно ничего, скорее даже немного усложнит задачу (потому что мультиплексировать придется не 1 адрес, а 4 вычитанные переменных).


Цитата:
Сообщение от Arsie Посмотреть сообщение
Вам словесного описания достаточно или нарисовать пояснение?
Да догадался как, не первый раз лоджик вижу.


Добавлено через 5 минут

Цитата:
Сообщение от LordN Посмотреть сообщение
да. а на весь это зоопарк сверху битовая маска вызова по внешнему общему "тику"
Так тот же мультиплексор+демультиплексор её работы и выполняют. Только проще.


Цитата:
Сообщение от LordN Посмотреть сообщение
да и хер с ней. не ответила - посчитали, обработали, выдали сообщение, далее запретили её вызов или вообще все поставили в глубокий аларм и иди разбирайся..
Именно так. Не ответил - и хер с ним, среди результатов обработки есть флаг "данные устарели" (а сохранятся последние обработанные).
Вопрос лишь в том, как определить, что прибор не вычитался. Ступор-с...
ailcat вне форума   Ответить с цитированием