Sirko 0 21 февраля, 2011 Опубликовано 21 февраля, 2011 (изменено) · Жалоба Добрый день. Прошу совета, кто и как реализовывал следующую задачу: Имеется ведомое устройство, которое опрашивается по протоколу ModBus. Соответственно, в памяти этого устройства имеются данные, которыми приходится делиться. В моем случае это структура данных разного типа от char до float. Обычно на персоналке в качестве мастера пользуюсь собственными програмульками, тут вопросы не возникают. А если использовать какой-нибудь сторонний софт, возникают сложности. Хотелось бы выделить фрагмент памяти доступный извне и все остальное возложить на плечи мастера, но... По стандарту протокол обменивается двухбайтными данными, соответственно, все переменные в памяти должны быть кратны двум байтам, либо во время обмена делать проверку и при необходимости преобразовывать их. И собственно вопрос, каким софтом контролировать и править данные? В настоящее время использую Modbus OPS Server v2.7, но как-то не соображу где указать, что "это" - знаковое, а "это" - беззнаковое, а как быть с переменными CHAR - вообще не представляю. Хотелось бы реализовать слейв более менее стандартный и с малой кровью. Изменено 21 февраля, 2011 пользователем Sirko Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirYU 0 22 февраля, 2011 Опубликовано 22 февраля, 2011 · Жалоба ModbusPoll Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 22 февраля, 2011 Опубликовано 22 февраля, 2011 · Жалоба как быть с переменными CHAR - вообще не представляю.Выход есть - расширить её до 16-ти битного слова (делать remap). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 18 22 февраля, 2011 Опубликовано 22 февраля, 2011 · Жалоба Так эта... Вопрос-то в чём? Что подцепить снаружи или как реализовать внутри? Что-то я не совсем понял... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 22 23 февраля, 2011 Опубликовано 23 февраля, 2011 · Жалоба Универсальных инструментов, которым вы задаете свою структуру данных,а они ее отображают - нет. И это проблема scada систем. Как только надо иметь дело со структурой данных - все - надо использовать свой драйвер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sirko 0 23 февраля, 2011 Опубликовано 23 февраля, 2011 · Жалоба Так эта... Вопрос-то в чём? Что подцепить снаружи или как реализовать внутри? Скорее теперешний мой вопрос мой вопрос, где вот эта середина, которая золотая. Но на самом деле я услышал, что хотел. Универсальных инструментов, которым вы задаете свою структуру данных,а они ее отображают - нет. Вернее услышал я то, что услышать не хотел, но что поделать :rolleyes: Спасибо за помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 23 февраля, 2011 Опубликовано 23 февраля, 2011 · Жалоба Выход есть - расширить её до 16-ти битного слова (делать remap). +1 и вовсе не обязательно, что данные один-в-один отображаются на память. Могут быть вычисления на лету, например. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimoza 0 25 февраля, 2011 Опубликовано 25 февраля, 2011 · Жалоба Из пригодившихся мне утилит были такие: http://www.focus-sw.com/fieldtalk/modpoll.html http://www.chipkin.com/cas-modbus-scanner Но насчет настраиваемого представления данных... в итоге коллега на питоне за полдня настрочил требуемое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться