Вложений: 2
Универсальный диспетчер для Modbus.lib
Добрый день, уважаемые коллеги!
Для тех кого по каким-либо причинам не устраивает штатный конфигуратор компания ОВЕН предлагает библиотеку Modbus.lib для организации опроса по одноименному протоколу. Помимо самой библиотеки в разделе "Примеры программ и полезности" доступно много примеров работы с данной библиотекой, как с оборудованием ОВЕН, так и с оборудованием сторонних производителей. Вместе с тем (на мой взгляд!) все предложенные примеры обладают одним общим недостатком - они показывают как опросить одно (или несколько) устройство. Поэтому их организация (примеров) "в лоб" выглядит естественной. Под организацией "в лоб" я понимаю, то что процесс открытия порта, опрос и запись регистров выполнены в одном программном блоке (как правило в PLC_PRG). Попытка использовать данные примеры "как есть" для большого числа опрашиваемых модулей, приведет к разрастанию листинга. Что неудобно.
Предлагаю вашему вниманию надстройку над библиотекой Modbus.lib - свою собственную библиотеку GCModbus.lib. В данной библиотеке каждый модуль сети имеет отдельную сущность, а диспетчеризацией доступа к сети (порту) занимается универсальный диспетчер одномастерной сети.
В варианте библиотеки, который я выкладываю на форуме, реализованы следующие модули ОВЕН:
1. МВ110-32ДН;
2. МВ110-8А;
3. МВ110-8АС;
4. МУ110-32Р;
5. Индикатор СМИ2.
Внимание! Данные модули можно использовать как готовые ФБ, они полностью работоспособны и используются в реальных проектах. Вместе с тем, я хочу подчеркнуть, что основная цель размещения библиотеки - это попытка поделиться опытом. И не желательно использовать библиотеку не разобравшись в деталях реализации (код библиотеки открыт).
Библиотека обладает рядом достоинств:
1. Программирование модуля для нового устройства сети максимально унифицировано;
2. Диспетчер уметь работать с любым модулем сети RS-485;
3. Модули имеют настраиваемый период опроса;
4. Неисправные модули автоматически исключаются из опроса;
5. Отремонтированный модуль автоматически включается в опрос;
6. Предусмотрена возможность повторных попыток опроса, в случае неудачного первичного опроса;
7. Предусмотрена диагностика отсутствия опроса модуля (модуль не получает доступа к сети в течении заданного времени);
8. Предусмотрена возможность работы до 247 модулей одновременно (максимальное количество узлов сети Modbus);
9. В модули встроена статистика времени опроса и времени между опросами.
Библиотека выкладывается в виде проекта (расширение *.pro).
Ранее библиотека была размещена в разделе "Примеры программ и полезности" (спасибо Николаеву Андрею), но там, мне кажется, "ее никто не брал и не берет".
Подробное описание библиотеки дано в документе "Библиотека GCModbus.lib для контроллеров ОВЕН.pdf".
Постараюсь ответить на вопросы, если они появятся, также буду благодарен за критику (не путать с критиканством!).