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

ния или после загрузки приложения в контроллер, но до запуска самого при- ложения. Рекомендуемый в документа- ции способ установки обработчика си- стемного события иллюстрирует рис. 12. В рассматриваемом примере можно выполнить все необходимые действия непосредственно в функции SysEventDispatcher , но если потребуется сделать что-то большее, чем просто ко- пирование, могут понадобиться вре- менные переменные внутри SysEventDispatcher , а их в ней деклари- ровать нельзя из-за особого соглашения о вызовах функций обработки систем- ных событий. Поэтому из функции SysEventDispatcher лучше вызвать специ- фический обработчик события OnInitHandler , как показано на рис. 12. Функция OnInitHandler копирует содер- жимое уставок из RETAIN -переменной stSetpoints , расположенной в сегменте энергонезависимых переменных, в пе- ременную mbSetpoints , отображенную на Holding -регистры. Более изящный спо- соб обработки события состоит в ис- пользовании вместо отдельной функ- ции OnInitHandler специального дей- ствия (Action), которым дополняется программа, содержащая уставки и/или управляющая значениями уставок. В CoDeSys 2.3 действия во многом анало- гичны методам классов в объектно- ориентированных языках программи- рования и позволяют оперировать внут- ренними переменными программных единиц типа программа (PROGRAM) или функциональный блок (FUNCTIONAL BLOCK) из других программных единиц. Наконец, в приложение нужно доба- вить код обновления уставок в RETAIN - переменных из Holding -регистров во время исполнения, как показано на рис. 13. В данном случае программа PLC_PRG первой же инструкцией копи- рует значения уставок, полученных по MODBUS, в RETAIN -переменную stSetpoints . В приложении для реальной «боевой» системы копирование можно делать только после проверки коррект- ности значений, полученных по MODBUS, а результат проверки может быть передан SCADA-системе через от- дельный Input -регистр. Реализация сервера MODBUS в коде приложения Описание особенностей применения встроенного сервера протокола MOD- BUS контроллеров FASTWEL I/O будет неполным, если не упомянуть о систем- ной библиотеке FastwelModbusServer.lib. Данная библиотека предназначена для конфигурирования и запуска сервера MODBUS, входящего в состав системно- го программного обеспечения всех конт- роллеров FASTWEL I/O, из кода прило- жения CoDeSys 2.3, загруженного в конт- роллер. По существу FastwelModbusSer- ver.lib позволяет превратить любой конт- роллер FASTWEL I/O в подчинённый узел сети MODBUS RTU или ASCII, да- же если у контроллера нет лишних ком- муникационных портов. Это стало воз- можным благодаря существенному улуч- шениюинтеграции интерфейсных моду- лей NIM741 и NIM742 в систему испол- нения контроллеров FASTWEL I/O: на- чиная с лета 2013 г., данные модули мо- гут использоваться как полноправные коммуникационные порты. Изначально FastwelModbusServer.lib была предназначена только для работы с сервисным портом контроллеров FASTWEL I/O, расположенным на пе- редней панели под пластиковой крыш- кой, а для контроллера CPM712 – и со штатным портом интерфейса RS-485, если в конфигурации приложения для него установлена опция Not Used (не ис- пользуется). Однако, как только порты на базе модулей NIM741/ NIM742 стали равноправными со встроенными ком- муникационными портами, функции библиотеки FastwelModbusServer.lib ав- томатически распространились и на данные модули, что открыло для поль- зователей новые возможности. Во-первых, если в системе в качестве основной магистральной сети, объеди- няющей множество территориально распределённых объектов, должен ис- пользоваться MODBUS, необязательно приобретать контроллер со встроенным интерфейсом подчинённого узла MOD- BUS, такой как CPM702 или CPM712. В таком случае можно применить конт- роллер любого типа, в том числе с ин- терфейсом Ethernet или PROFIBUS DP, а сервер MODBUS реализовать на базе библиотеки FastwelModbusServer.lib. Ос- новной же сетевой интерфейс контрол- лера может служить для организации «быстрой» локальной сети на самом объекте, как в случае контроллера CPM713, который одновременно яв- ляется и клиентом (мастером) и серве- ром (подчинённым) MODBUS TCP. Некоторые из возможных ролей конт- 86 СТА 4/2014 АППА РАТ НЫЕ С Р Е ДС Т В А / П РОМЫШЛ Е ННЫЕ КОН Т РОЛЛ Е РЫ www.cta.ru Рис. 12. Установка обработчика системного события OnInit для записи начального или ранее сохранённого значения RETAIN -переменной в переменную, отображённую на Holding -регистры MODBUS

RkJQdWJsaXNoZXIy MTQ4NjUy