ЖУРНАЛ «СТА» №3/2007

тания, что существенно усложняет реализацию монитора питания. Наконец, данная система должна срабатывать только при выключении питания (скорость нарастания на- пряжения при включении питания должна быть максималь- ной) и сохранять работоспособность в диапазоне от –40 до +85°С, что делает систему питания еще сложней. Таким образом, было принято решение в первых версиях контроллеров отказаться от реализации механизма VAR RETAIN на системном уровне в надежде, что конкретные по- требности пользователей позволят нам выбрать наиболее под- ходящий для большинства применений вариант реализации. Причины, по которым пока не поддерживаются неизме- няемые (VAR PERSISTENT) переменные, будут озвучены далее при описании механизмов взаимодействия среды ис- полнения контроллера со средой разработки CoDeSys. Модель окружения Модель окружения программы представляется так назы- ваемым образом процесса , который состоит из двух областей памяти с непересекающимися адресами. Первая область об- раза процесса, называемая областью входных данных , предна- значена для хранения и обновления значений входных дан- ных прикладной программы в процессе приёма информации от устройств вводавывода и сетевых интерфейсов. Вторая область называется областью выходных данных и предназна- чена для хранения и обновления значений выходных данных программы в процессе выдачи информации устройствам вводавывода и в сетевые интерфейсы. Размеры областей входных и выходных данных среды исполнения CoDeSys для Fastwel I/O составляют по 12800 байт каждая. Для ввода данных из окружения в программе могут быть определены так называемые непосредственно представляе- мые входные переменные, ссылающиеся на адреса в области входных данных. На- пример: VAR_INPUT aim720_voltageInput1 AT %IW5: WORD; END_VAR В данном примере декларирована входная переменная с именем aim720_voltageInput1 типа WORD, кото- рая ссылается на 6е слово в области входных данных, как показано на рис. 15. Для вывода данных в окружение в про- грамме могут быть определены так назы- ваемые непосредственно представляемые выходные переменные, ссылающиеся на адреса в области входных данных. На- пример: VAR_OUTPUT dim713_relay1 AT %QX2.8: BOOL; dim713_relays AT %QB5: BYTE; END_VAR В данном примере декларированы вы- ходные переменные dim713_relay1 типа BOOL и dim713_relays типа BYTE, кото- рые ссылаются на 8й бит 3го слова и 6й байт в области выходных данных, как по- казано на рис. 16. Следует взять на замет- ку, что при наличии нескольких выход- ных переменных, ссылающихся на один и тот же адрес в области выходных данных в большой про- грамме, довольно легко не заметить ошибочное «лишнее» присвоение по выходному адресу неправильного, с точки зрения прикладного алгоритма, значения. К счастью, ком- пилятор CoDeSys умеет обнаруживать множественные ссылки на один и тот же адрес в области выходных данных программы и предупреждать об этом разработчика. Адреса каналов вводавывода и полей коммуникацион- ных объектов внешней сети создаются автоматически сре- дой разработки при добавлении описаний модулей и комму- никационных объектов в конфигурацию контроллера в сек- ции PLC Configuration, как показано на рис. 17. Следует отметить, что вовсе не обязательно явно объяв- лять в программах входные и выходные непосредственно представляемые переменные, ссылающиеся на адреса кана- лов модулей вводавывода и поля данных коммуникацион- ных объектов внешней сети, поскольку в CoDeSys (и в МЭК 611313) имеется возможность использования адресов окру- жения в качестве правой части и операндов выражений: someVariable := DWORD_TO_REAL(%IB27) * Koeff; %QX2.8 := NOT toggleBit; Однако это не очень хорошая идея, поскольку если по ка- който причине изменится структура образа процесса про- граммы, например при изменении типа какогонибудь мо- дуля вводавывода в конфигурации контроллера, придётся вносить в программу очень много изменений. А значит, в программе неизбежно появятся ошибки, о которых компи- лятор известит программиста далеко не всегда. Кроме того, мы пока отключили поддержку задания имён непосредственно представляемых переменных в дереве PLC Configuration. Это обусловлено следующими соображения- 70 СТА 3/2007 АППА РАТ НЫ Е С Р Е Д С Т В А / П Р ОМЫШЛ Е ННЫ Е КОН Т Р ОЛЛ Е Р Ы www.cta.ru Рис. 15. Адресация области входных данных и связывание с входной переменной Рис. 16. Адресация области выходных данных и связывание с выходной переменной

RkJQdWJsaXNoZXIy MTQ4NjUy