СТА 4/2010

93 СТА 4/2010 www.cta.ru В ЗАПИСНУЮ КНИЖК У ИНЖЕ Н Е РА оптоволоконные линии, радиоканалы и другие физические среды для передачи сигналов. Прикладной уровень Modbus основан на запросах с по мощью кодов функций . Код функции указывает ведомому устройству, какую операцию оно должно выполнить. При использовании протокола прикладного уровня с различными протоколами транспортного и канального уровня сохраняется неизменным основной блок Modbus сообщения, включающий код функции и данные (этот блок называется PDU – protocol data unit – элемент дан ных протокола). К блоку PDU могут добавляться дополни тельные поля при использовании его в различных про мышленных сетях, и тогда он называется ADU – application data unit – элемент данных приложения. Коды функций Стандартом Modbus предусмотрены три категории кодов функций: установленные стандартом, задаваемые пользо вателем и зарезервированные. Коды функций являются числами в диапазоне от 1 до 127, причём коды в диапазоне от 65 до 72 и от 100 до 110 отно сятся к задаваемым пользователем функциям. Коды в диа пазоне от 128 до 255 зарезервированы для пересылки кодов ошибок в ответном сообщении. Код 0 не используется. Коды ошибок используются ведомым устройством, что бы определить, какое действие предпринять для их обра ботки. Значения кодов и их смысл описаны в стандарте на Modbus RTU [3]. Поле данных (рис. 1) в сообщении, посланном от веду щего устройства ведомому, содержит дополнительную ин формацию, которую ведомое устройство использует, чтобы выполнить функцию, указанную в поле «Код функции». Поле данных может содержать значения состояний диск ретных входов/выходов, адреса регистров, из которых надо считывать (записывать) данные, количество байтов дан ных, ссылки на переменные, количество переменных, код подфункций и т.п. Если ведомое устройство нормально выполнило приня тую от ведущего функцию, то в ответе поле «Код функции» содержит ту же информацию, что и в запросе. В противном случае ведомый выдаёт код ошибки. В случае ошибки код функции в ответе равен коду функции в запросе, увеличен ному на 128. Содержание поля данных В сообщении ведущего устройства ведомому поле дан ных содержит дополнительную информацию, необходи мую для выполнения указанной функции. Например, если код функции указывает, что необходимо считать данные из группы регистров устройства ввода (код функции 03 hex), то поле данных содержит адрес начального регистра и ко личество регистров. Если ведущее устройство посылает команду записи данных в группу регистров (код функции 10 hex), то поле данных должно содержать адрес начально го регистра, количество регистров, количество байтов дан ных и данные для записи в регистр. Конкретное содержание поля данных устанавливается стандартом для каждой функции отдельно. В некоторых сообщениях поле данных может иметь ну левую длину. © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy