ЖУРНАЛ СТА 4/2014
тически выровнять на одно слово все пе- ременные, отображаемые на регистры MODBUS, для обеспечения неразрыв- ности (целостности) значений перемен- ных длиной более двух байтов. Следует отметить, что каналы типа BOOL в CoDeSys 2.3 на самом деле никогда фак- тически не создаются, и отображение пе- ременной типа BOOL , фактическая дли- на которой составляет 1 байт, на битовое поле в образе процесса в реальности при- водит к генерации кода, извлекающего значение бита по адресу %IX* , которое затем копируется в младший бит пере- менной типа BOOL , ссылающейся на ад- рес %IX* . В результате код приложения становится менее эффективным как с точки зрения скорости выполнения, так и с точки зрения размера занимаемой па- мяти в сегменте кода. Сетевой доступ к переменным прило- жения, отображённымна область памяти секции Inputs в конфигурации сервера MODBUS, может осуществляться по- средством любых запросов чтения и за- писи Holding -регистров и битовых полей типа Coil , причём это относится к любому элементу, добавленному в секцию Inputs . Адрес MODBUS и количество объектов, которые должныиспользоваться в запро- се чтения и/или записи, отображается на вкладке Modbus Access Properties в окне PLC Configuration , если щёлкнуть на сек- ции Inputs или на любом добавленном в неё элементе в дереве PLC Configuration . При этом для каждого элемента на вкладке отображаются как начальный адрес регистра (столбец Holding Register ) и количество регистров (столбец Num of Regs ), так и начальный адрес битового поля типа Coil и количество битовых по- лей в запросе. Однако обратите внима- ние, что отображаемые адреса регистров и битовых полей на 1 больше значений адресов, которые должны фактически передаваться в сетевых запросах клиен- тов. Так сделано по причине того, что в спецификации прикладного уровня про- токолаMODBUS нумерация регистров и битовых полей как объектов прикладно- го уровня протокола начинается с 1, а их адреса в сетевых запросах – с 0. Кроме того, во многих клиентских приложе- ниях при конфигурировании традицион- но принято нумеровать регистры и бито- вые поля с 1. Всё, что было сказано по поводу сек- ции Inputs , справедливо для секции Outputs , с той лишь разницей, что сек- ция Outputs служит для передачи данных от контроллера (вернее, от приложе- ния, исполняющегося на контроллере) в адрес клиентов MODBUS в ответ на запросы чтения Input -регистров и бито- вых полей типа Discrete Input . Такимобразом, при отображениипере- менных приложения на регистры и бито- вые поля MODBUS в контроллерах CPM712 и CPM713 не требуется явно за- давать адреса регистров, следить за их уникальностьюи смежностью, еслипред- полагается читать и/или записывать мно- жество значений переменных в одном се- тевом запросе. Однако как для плоской, так и для регистровой модели отображе- ния переменных на регистры характерна особенность, о которой уже говорилось ранее: максимальный размер перемен- ной, которую предполагается читать по MODBUS запросами 03 (Read Holding Registers), 04 (Read Input Registers) или 23 (Read/Write Multiple Registers), не дол- женпревышать 250 байт, а максимальный размер переменной, чьё значение требу- ется изменять по MODBUS запросом 16 (Write Multiple Registers), не должен пре- вышать 246 байт (для запроса 23 – не бо- лее 242 байт), иначе будет невозможно обеспечить неразрывность значений пе- ременных при транспортировке от клиен- тов серверу и от сервера клиентам. Сервер MODBUS контроллеров CPM-712 иCPM713 обеспечивает доступ АППА РАТ НЫЕ С Р Е ДС Т В А / П РОМЫШЛ Е ННЫЕ КОН Т РОЛЛ Е РЫ 77 СТА 4/2014 www.cta.ru
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy