|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
23.04.2010, 12:50 | #1 |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Чтение данных блоками по протоколу Modbus
Имеется прибор, определённые данные у которого можно прочитать только блоком по 128 байт. В ответ на запрос другого размера получим ошибку.
Если я в карте памяти устройства определю 32 переменные типа long с периодом опроса 0 и одновременно задам команду прочитать эти данные, то контроллер выполнит один запрос или всё таки каждую переменную будет опрашивать отдельно, т.к. в карте памяти они все подсвечены как разные запросы. И если в данном варианте не будет одного запроса, то как такую задачу реализовать? Почему нет возможности получать с устройства массива данных и или хотя бы строковую переменную заданного размера? |
26.04.2010, 10:40 | #2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Чтение данных блоками по протоколу Modbus
Цитата:
1) Если строб для переменных будет исходить от одного выхода блока, то данные переменные "сошьются" в один запрос. 2) Операция чтения массива "встроена" в модбас как протокол и называется "групповой запрос". 3) Строковых переменных в модбасе несуществует. Строковых типов данных в лоджике также несуществует. Смысл вашего предложения мне крайне непонятен. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 28.04.2010 в 12:11 |
|
26.04.2010, 15:38 | #3 | |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Чтение данных блоками по протоколу Modbus
Цитата:
И ни в коем случае никого и ничто не обвиняю. Просто постепенно сталкиваюсь с разными проблемами, а на форуме не находил ответов... Вот и задаю, чтобы разобраться... А по поводу массивов и строк, это я что-то действительно загнул... Хотя удобно было бы, в моём случае, не создавать 32 входа типа long, а считать сразу 128 байт и передать далее... Но это может только мне и понадобится... |
|
27.04.2010, 09:59 | #4 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Чтение данных блоками по протоколу Modbus
Цитата:
Так стоит ли вводить новый тип данных, делать изменения в ядрах (отрезая память, свободную для загрузки программ!) и лоджике, если можно просто 32 раза ткнуть в поляну мышкой? Думаю, ответ вы знаете . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
27.04.2010, 19:13 | #5 | |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Чтение данных блоками по протоколу Modbus
Цитата:
Пока пробовал один-два блока по 32 запроса, прокатывало. А так как мне надо считать с прибора и передать дальше 16 блоков по 128 байт, и тут вылезла ошибка, что контроллер поддерживает не более 120 запросов, а у меня получилось 527... Так бы определил 16 переменных типа массив из 128 байт, ну заняло бы в памяти немного... А так придётся отказываться от использования данного прибора... А их уже закупили и установили... |
|
28.04.2010, 11:57 | #6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Чтение данных блоками по протоколу Modbus
Цитата:
Судя по всему, вы этого не сделали. В вашей задаче всего 16 запросов. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
28.04.2010, 12:06 | #7 |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Чтение данных блоками по протоколу Modbus
Спасибо, заработало как надо...
Да, я тогда просто создал карту, но ещё не выносил на поляну и не соединял... Если бы оно ещё не считалось пока не используется... Последний раз редактировалось Dron, 28.04.2010 в 12:22 |