ЖУРНАЛ СТА 4/2014

данным, отображённым на элементы Holding Register , могут использоваться функции 03 и 06 (чтение), 16 (запись), 22 (запись с маской) и 23 (чтение и за- пись). В качестве начального адреса ре- гистра в сетевом запросе должен исполь- зоваться адрес, на единицу меньший за- данного в свойствах регистра в ресурсе PLCConfiguration. Для приложения конт- роллера данные, отображаемые на адре- са элементов Input Register и Holding Re- gister в образе процесса, являются выход- ными и входными соответственно. Элементы с префиксом Bitwise пред- ставляют так называемые делимые вход- ные и выходные регистры. Под дели- мостью понимается возможность сете- вого доступа к отдельным битовым по- лям внутри слова данных делимого реги- стра. Доступ к данным, отображённым на делимые регистры, со стороны кли- ентов MODBUS может осуществляться как с помощью регистровых функций чтения или записи (03, 04, 06, 16, 22, 23), так и посредством операций доступа к битовым полям (01, 02, 05, 15). Для до- ступа к любому из 16 битовых полей де- лимого регистра должен использоваться адрес, вычисленный по формуле: Адрес битового поля = (Адрес регист- ра – 1) × 16 + Номер битового поля в сло- ве (начиная с 1) Контроллеры CPM702 и CPM703 мо- гут содержать в конфигурации приложе- ния до 512 регистров разных типов и под- держивают групповые операции чтения (03, 04) до 125 регистров и записи (16) до 123 регистров за один запрос, а также чтения до 2000 битовых полей типа Discrete Input или Coil и записи до 1968 би- товых полей типа Coil . Кроме того, под- держивается весьма эффективная с точ- ки зрения утилизации сети операция чте- ния и записи 23, выполняемая за один сетевой запрос и позволяющая записать до 121 и прочитать до 125 регистров. Для отображения некоторой перемен- ной приложения на регистры и/или би- товые поля сервера MODBUS пользова- тель должен снабдить декларацию пере- менной в коде приложения директивой ссылки на адрес в образе процесса AT% , после которой следует спецификатор области образа процесса: I (для Holding - регистров) или Q (для Input -регистров), затем спецификатор шага смещения: B (байт), W (слово), D (двойное слово) или X (бит), и, наконец, смещение участ- ка образа процесса, занимаемого реги- страми/битовыми полями. Пример ото- бражения входной переменной приложе- ния типаWORDи выходной переменной типа DWORD представлен на рис. 2. Об- ратите внимание, что MODBUS-адреса двух элементов типа Input Register в кон- фигурации приложения, на которые ото- бражена переменная длиной более 2 байт, должны быть смежными, то есть MOD- BUS-адрес регистра для адреса %QB5 в образе процесса должен быть на единицу меньше адреса регистра для адреса %QB7 в образе процесса. При отображении переменных типа массив ( ARRAY ), строка ( STRING ) и струк- тура ( STRUCT ) иформировании запросов клиентов на чтение и запись этих пере- менных необходимо следить за тем, что- бы размер переменной, отображаемой на несколько входных ( Input ) регистров со смежными адресами, не превышал 250 байт, а для выходных ( Holding ) регист- ров – 246 байт. Это связано с тем, что групповой запрос чтения регистровможет содержать не более 125 2-байтовых слов данных, а групповой запрос записи – не более 123 2-байтовых слов. Кроме того, чтение и запись переменных размером свыше двух байтов должны выполняться одним сетевым запросом по наименьше- му MODBUS-адресу, на который отобра- жена переменная. При нарушении любо- го из указанных правил практически не- избежно нарушение целостности данных, передаваемых серверу или получаемых от сервера, то есть клиент или сервер в ка- кой-то момент времени может получить часть значения переменной, сформиро- ванную в один момент времени, а другую часть – в другой, что приведёт к непра- вильной работе или даже к аварийному завершению приложения. Практика применения контроллеров CPM702 и CPM703 показала, что поль- зователям не всегда удобно формировать списки регистров, задавать их адреса и следить за тем, чтобы они оставались уникальными и отличными друг от дру- га на 1, даже несмотря на наличие спе- циальных элементов пользовательского интерфейса ( Панель свойств Fastwel ) в пакете адаптации CoDeSys 2.3, позво- ляющих автоматически назначать смеж- ные адреса регистрам. Кроме того, раз- работчики приложений CoDeSys до- вольно часто декларируют переменные непосредственно в ресурсе PLC Confi- guration в виде символических ссылок на адреса образа процесса. Очевидно, что при использовании регистровой модели непосредственно в окне ресурса PLC Configuration возможно объявить пере- менную длиной не более 2 байт. В итоге для контроллеров CPM712, CPM713 и MK905-01,03\CDS в качестве основной была выбрана плоская модель отображения переменных на регистры MODBUS. В плоской модели сервер MODBUS связан с приложением CoDe- 74 СТА 4/2014 АППА РАТ НЫЕ С Р Е ДС Т В А / П РОМЫШЛ Е ННЫЕ КОН Т РОЛЛ Е РЫ www.cta.ru Рис. 2. Пример отображения переменных на регистры MODBUS для регистровой модели Рис. 3. Плоская модель отображения переменных на регистры и битовые поля MODBUS

RkJQdWJsaXNoZXIy MTQ4NjUy