VANCHO
Junior Member / Новичок
Участник № / Member № 879
отправлено / posted
При разработке проекта в SCADA Trace Mode v.5 у нас возникли следующие проблемы: 1. Длина группового запроса на считывание данных по сети Modbus (функция 03 или 04) ограничена 65 регистрами. В разрабатываемом нами проекте необходимо считывать зону одним пакетом размером в 125 регистров. Считывание всегда должно начинаться с первого слова зоны (любой другой адрес вызывает исключительный ответ “неправильный адрес”). Таким образом мы не можем разбить групповой запрос на несколько частей. Исходя из каких соображений длинна пакета на считывание данных по сети Modbus была ограничена 65 регистрами? Существует ли возможность увеличить ее? 2. Описание протокола Modbus предусматривает возможность широковещательной посылки данных по адресу 0. Однако SCADA Trace Mode рассматривает устройство с адресом 0 как обычное SLAVE устройство. Нам необходимо предусмотреть возможность синхронизации интеллектуальных устройств, подключенных к сети Modbus, путем широковещательной посылки системного времени (точность до 50 мс). Каким образом можно решить данную проблему в SCADA Trace Mode?
Сообщения / Posts 11 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Ограничение размера кадра в Трейс Моуд мотивировано необходимостью сокращения выделяемых буферов памяти и снижения вероятности появления ошибок обмена. По стандарту допустимо обращение к любому регистру имеющегося адресного пространства с запросом любой длины в пределах заданного стандартом максимального размера кадра.
2. Широковещательная посылка в Трейс Моуд действительно в настоящее время не реализована. В текущей реализации протокола послать такую команду можно, но отсутствие ответа приведет к задержке транзакций за счет таймаутов на ожидание ответа, к выставлению признака недостоверности, к повторным посылкам команды. Можно на программном уровне обеспечить однократную посылку команды путем отключения/выключения канала, осуществляющего эту посылку.
Если Вы должны жестко соблюдать описанные Вами требования по размеру кадра, Вам придется писать свой драйвер.
Сообщения / Posts 17320 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Titanic
Junior Member / Новичок
Участник № / Member № 1191
отправлено / posted
Добрый день. 1 Попробовал разработать свой драйвер, используя подтип КОНТР1. В SCADA Trace Mode это оказалось достаточно просто. Однако, в TMHelp нигде не нашел описание переменных следующих структур: 1.1 Удаленный адрес канала – IA, массив unsigned short int i[3]; 1.2 Назначение переменных структур FOUR_BYTE, TWO_BYTE; 1.3 Назначение следующих переменных структуры RSDATA: 1.3.1 p.V.c[0], p.V.c[1], p.V.c[2], p.V.c[3]; 1.3.2 p.V.i[1]; 1.3.3 p.F.fmt[2]; 1.3.4 p.F.ind[1]; Если это не резервные переменные, то прошу сообщить их назначение. 1.4 Непонятно почему p.V.d (число секунд с 1 января 1970 года) имеет тип int, а не unsigned int. Если старший бит используется под знак, то 31-го разряда не хватит чтобы закодировать 40 лет. 2 Существуют ли способы формирования атрибута «Время» канала на уровне редактора базы каналов. И, если да, то какие? 3 Возможно ли управление вносимой в отчет тревог меткой времени? Заранее благодарен.
Сообщения / Posts 6 | Из / From: Россия
| IP / IP: IP адрес / IP address |