ЖУРНАЛ «СТА» №1/2008
Transmission_Type присвоено значение 1, то время реакции в предельном слу- чае составит 2 × T SYNC + T transmission + T cycle1 + T cycle2 , что даст 62 мс. Однако, несмотря на ухудшение вре- мени реакции, во втором случае обеспе- чивается возможность синхронного ввода сетевых данных на всех контрол- лерах, участвующих в обмене. Modbus Общие сведения Протокол Modbus, по всей видимости, является наиболее широко распро- странённым в промышленной автомати- зации и, вероятно, самым старым из всех существующих промышленных прото- колов. Идея представить контроллер со стороны сети в виде множества регист- ров и битовых полей оказалась настоль- ко удачной, что сейчас весьма трудно найти специалиста в области АСУ ТП, не знакомого с Modbus. С нашей точки зрения, у Modbus «поверх» RS485 есть единственное достоинство – простота для понимания пользователем. Кажу- щаяся простота технической реализации на самом деле таит ряд проблем, которые весьма трудно преодолеть как при разра- ботке контроллеров, так и при создании программного обеспечения верхнего уровня, реализующего мастера сети. В контроллерах CPM702 и CPM703 реализована функциональность под- чинённых узлов Modbus over Serial Line (CPM702) и Modbus TCP (CPM703). Сервисы внешней сети обоих контрол- леров поддерживают перечисляемые далее стандартные сетевые операции протокола Modbus. 1. 01 (0x01) Read Coils – выдача за один запрос от 1 до 2000 смежных бито- вых полей, доступных для записи. 2. 02 (0x02) Read Discrete Inputs – выда- ча за один запрос от 1 до 2000 смеж- ных битовых полей, доступных для чтения. 3. 03 (0x03) Read Holding Registers – вы- дача за один запрос от 1 до 125 смежных регистров, доступных для записи. 4. 04 (0x04) Read Input Registers – выдача за один запрос от 1 до 125 смежных регистров, доступных для чтения. 5. 05 (0x05) Write Single Coil – приём значения одного битового поля, доступного для записи. Принцип адресации битовых полей описыва- ется далее. 6. 06 (0x06) Write Single Register – приём значения одного регистра, доступ- ного для записи. 7. 15 (0x0F) Write Multiple Coils – приём за один запрос значений до 2000 смежных битовых полей, доступных для записи. Принцип адресации би- товых полей описывается далее. 8. 16 (0x10) Write Multiple Registers – приём за один запрос значений до 125 смежных регистров, доступных для записи. 9. 22 (0x16) Mask Write Register – изме- нение содержимого заданного реги- стра, доступного для записи, с ис- пользованием комбинации масок И, ИЛИ с текущим содержимым ре- гистра для индивидуального сброса или установки битов регистра. 10. 23 (0x17) Read/Write Multiple Re- gisters – приём и выдача за один за- прос значений до 125 смежных ре- гистров, доступных для записи. Для взаимодействия между средой разработки CoDeSys и контроллером используется сервис инкапсулирован- ного транспорта (0x2B) с кодом типа (MEI Type), равным 128. Диапазоны регистровых адресов ком- муникационных объектов, поддержи- ваемых сервисом внешней сети контрол- леров CPM702/703, приведены в табл. 7. Максимальное количество регистров в конфигурации контроллера узла зависит от количества модулей вводавывода. Обратите внимание на то, что в соответ- ствии со спецификацией протокола зна- чение адреса регистра, вводимое в кон- фигурации контроллера и в конфигура- ции OPCсервера, на 1 больше значения адреса, передаваемого в сетевом запросе. АППА РАТ НЫ Е С Р Е Д С Т В А / П Р ОМЫШЛ Е ННЫ Е КОН Т Р ОЛЛ Е Р Ы 49 СТА 1/2008 www.cta.ru Передний фронт испытательного сигнала Сеть CAN Реакция на приём по CAN информации о перепаде испытательного сигнала Сетевой цикл передачи информации о перепаде испытательного сигнала Рис. 29. Циклограмма для оценки времени реакции Таблица 7 Диапазоны регистровых адресов коммуникационных объектов, поддерживаемых сервисом внешней сети контроллеров CPM702/703 Тип объекта Диапазон адресов Modbus Комментарий Input Register 4097…16384 Неделимый входной регистр. Обеспечивается возможность чтения нескольких регистров со смежными адресами. Holding Register 4097…16384 Неделимый выходной регистр. Обеспечивается возможность чтения или записи нескольких регистров со смежными адресами. Bitwise Input Register 1…4096 Делимый входной регистр. Обеспечивается возможность чтения нескольких регистров со смежными адресами. Позволяет считывать отдельные битовые поля путём использования запроса Read Discrete Inputs. Адрес битового поля вычисляется по следующей формуле: DiscreteInputAddress = ( RegisterAddress – 1) × 16 + n , где DiscreteInputAddress – адрес битового поля в запросе; RegisterAddress – адрес делимого входного регистра; n – номер битового поля, начиная с 1. Bitwise Holding Register 1…4096 Делимый выходной регистр. Обеспечивается возможность чтения или записи нескольких регистров со смежными адресами. Позволяет считывать отдельные битовые поля путём использования запроса Read Discrete Inputs или Read Coils. Позволяет записывать отдельные битовые поля путём использования запросов Write Single Coil и Write Multiple Coils. Адрес битового поля вычисляется по следующей формуле: CoilAddress = ( RegisterAddress – 1) × 16 + n , где CoilAddress – адрес битового поля в запросе; RegisterAddress – адрес делимого выходного регистра; n – номер битового поля, начиная с 1.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy