PDA

Просмотр полной версии : Функциональный блок для МЭ110-224.1М



rustam_m
03.03.2013, 21:32
Доброго времени суток!

Задался целью считать измерения с модуля МЭ110-224.1М. Программу создаю в CFC. Так понимаю, что нет ещё специальных функциональных блоков для опроса модулей МЭ110? Если не прав, дайте ссылочку, друзья.
Поскольку не нашёл спец. блоков решил опросить с помощью MB_RD_HOLD_REGS библиотеки SysCom, однако не пойму как считывать массив принятых регистров... Может кто подскажет?

rustam_m
03.03.2013, 21:45
* MB_RD_HOLD_REGS - блок библиотеки ModBus (OWEN)

capzap
03.03.2013, 22:29
можно было не уточнять, в версии 2.3 такое же имя.
В режиме онлайн Вы наблюдаете что в массив приходят данные, а считать их просто, достаточно много примеров как из четырех байт получить реал, как из двух получить либо слово либо инт

rustam_m
03.03.2013, 23:13
Спасибо, за отклик.

Как разделать массив - дело третье. Мне не понятно как выдернуть из выше упомянутого блока этот массив. Пробовал сделать свой блок, в котором из принимаемого массива вычленял нужные байты. Соответственно ему сделал два входа - собственно сам массив и индекс, один выход - получаемый байт. Результат - не хочет КДС соединять выход MB_RG_HOLD_REGS с входом моего блока.

capzap
04.03.2013, 00:09
а там разве массив, может быть указатель на массив.
Желательно бы скрин увидеть Вашей схемы, проще было бы разобраться

rustam_m
04.03.2013, 02:28
в описании на ФБ пишут, что массив...

capzap
04.03.2013, 07:01
видите в блоке входную переменную buffer, там надо ждать результаты, их готовность и количество берется из выходов и соответственно при отсутствии ошибок

rustam_m
04.03.2013, 09:21
ок, положим пришли данные. как считать? - вот в чём вопрос. Вход/выход buffer не могу привязать ко входу другого обработчика, который считывал бы массив и разложил по регистрам как надо :( Или я, чайник, не до понимаю чего-то.....

Солнечный заяц
04.03.2013, 11:04
Попробуйте блок UniRead из библиотеки ModulsOwenLib, он работает значительно проще. Нужно только установить адрес переменной, в которую будут записываться данные.

capzap
04.03.2013, 11:44
ок, положим пришли данные. как считать? - вот в чём вопрос. Вход/выход buffer не могу привязать ко входу другого обработчика, который считывал бы массив и разложил по регистрам как надо :( Или я, чайник, не до понимаю чего-то.....

Никакой связи вести не надо просто на вход следущего блока снова подаете массив. Ощущение что Вы не смотрели ни один из примеров по работе с библиотекой, там даже на графическом языке иллюстрации по моему

rustam_m
10.03.2013, 20:07
Вроде разобрался... Спасибо.