Сосонкин_Системы_ЧПУ (1087166), страница 13
Текст из файла (страница 13)
Программная система, удовлетворяющая проекту IEC61131-3, содержит следующиекомпоненты: конфигурацию, ресурсы, задачи [28-30].Конфигурация относится к настройке исполнительной среды. Ресурсынеобходимы для определения глобальных переменных, конфигурации иорганизации проекта, а также для наблюдения за изменением значений переменных. Задачи определяют схему планирования ассоциированных сними программ в реальном времени. Это означает, что программы должны быть приданы задачам.Декларирование задачи включает объявление ее имени, приоритета иусловий выполнения.
К таким условиям относятся интервал времени, поистечении которого задача вновь должна быть запущена, или переднийфронт события, являющегося глобальной переменной.Каждой задаче может быть придано несколько запускаемых ею программ. Если задача выполняется в пределах текущего цикла, то и программы будут обработаны в границах этого цикла.При наличии нескольких задач их совместная работа подчиняется правилам:• реализуется та задача, для которой справедливы условия выполнения, т.е. закончилось время цикла или соблюдено условие;• если конкурируют несколько задач, то будет запущена та, котораяимеет больший приоритет;Глава 2. Общие принципы построения систем ЧПУ73• если конкурируют несколько задач с одинаковым приоритетом, тобудет выбрана та, которая требует большего времени.Представленные понятия могут иметь иной смысл в программных системах типа SoftPLC.
Так, в системе AlterSys фирмы CJ International (США)предлагаются следующие определения. Конфигурация -это программныйобъект, состоящий из одного или более ресурсов. Ресурс является наборомпрограмм и определений; он включает в себя параметры, группы переменных, программы, функции и функциональные блоки. В реальном времениресурсу сопоставлен виртуальный глобальный объект Virgo (Virtual globalobject), который служит реализацией ресурса в исполнительной среде.Другими словами, Virgo представляет собой математическое обеспечениереального времени для одного ресурса одного проекта в исполнительнойсреде.Virgo исполняет код ресурса соответственно следующей схеме: опрашивает (сканирует) входные переменные, принимает значения связанныхпеременных, выполняет программные блоки, выдает значения связанныхпеременных, обновляет выходные регистры.В случае, если были определены межресурсные связи переменных(рис.
38), принимаемые значения связанных переменных обновляются после опроса входных переменных, а выдаваемые другим ресурсам значенияпеременных посылаются перед обновлением выходных регистров.Связывание является направленной логической цепочкой между переменной ресурса-источника (производителя) и переменной целевого ресурса(потребителя). Связывание переменной VI ресурса R1 с переменной V2ресурса R2 означает, что V1 периодически копируется в V2, используя разделяемую память или сетевые механизмы обмена. Потребление связыва-РесурсисточникСвязываниеЦелевойресурс(потребитель)гВ этом цикле переменная не обновляетсяРис. 38. Межресурсные связи переменных74В.Л. Сосонкин, Г.М. Мартинов.
Системы числового программного управленияющей информации со стороны другого ресурса осуществляется в начале цикла, а производство связывающей информации для другого ресурса происходит в конце цикла. Этот механизм напоминает устройство ввода-вывода.Все входные переменные обновляются в начале каждого цикла. Это базовое поведение иногда изменяется с целью оптимизации в некоторых специфических драйверах ввода-вывода. Однако Virgo следит за тем, чтобывсе входные переменные имели атрибут «read only».Цель состоите стабильности образа входов. Переменная не изменяется в ресурсе-потребителе пока последний не пошлет новое значение. Virgoне поддерживает «read only» доступ для потребляемых переменных. Однако рекомендуется объявлять тип потребляемых переменных как «readonry» во избежание конфликтов между механизмом связывания и программными блоками.Временная синхронизация двух Virgo посредством механизма связывания показана на рис. 39.|—Другие ресурсы« - | ИсточникСвязиПотребительСканированиевходовВходы-выходыОбновлениеПроцесс<-выходовРис.
39. Временная синхронизация двух Virgo2.3.3. Структура проекта системы управленияэлектроавтоматикой (клиентская часть)Проект содержит все необходимые компоненты программы управления электроавтоматикой и сохраняется в файле стем же именем. Он содержит следующие разделы: программные блоки POUs (Program OrganizationUnits), типы данных, элементы визуализации, ресурсы и библиотеки.Блок POU является структурной единицей программы. В состав POUвходят функции, функциональные блоки и программы, которые могут бытьГлава 2.
Общие принципы построения систем ЧПУ75дополнены действиями. Каждый POU состоит из двух частей: декларациии тела. Тело представляет собой программу контроллера, написанную наодном из языков стандарта IEC 61131 -3: IL (Instruction List), ST (StructuredText), SFC (Sequential Function Chart), FBD (Functional Block Diagram), LD(Ladder Diagram). Для использования подобным образом построенныхPOUs, в проект необходимо включить стандартную библиотеку. Допустимо, когда одни POUs вызывают другие.Функция является таким POU, который, будучи обработанным, выдаетв качестве результата всего лишь один элемент данных (возможно, из нескольких таких частей, как поля и структуры). В текстовых языках функция может быть оператором в выражении, и при своем объявлении должнаполучить тип.
Это значит, что после имени функции последуют двоеточиеи тип. Функции придается результат, т.е. имя функции используется в качестве выходной переменной.Функция не имеет внутренних условий. Таким образом, при ее вызовес одними и теми же аргументами (входными параметрами), всегда получим один и тот же результат.Функциональный блок - это такой POU, который выдает во время работы один или более результатов.
В отличие от функции он не возвращаетзначения. Можно создавать репродукции, т. е. экземпляры функциональных блоков. Каждый экземпляр имеет свой собственный идентификатор(имя), а также и структуру данных, располагающую входами, выходами ивнутренними переменными. Экземпляры декларируются локально или глобально, между тем как имя функционального блока указывает на тип идентификатора. Функциональные блоки всегда вызываются через экземпляры. Только входные и выходные параметры экземпляра доступны извне,но не внутренние переменные.Декларационная часть функциональных блоков и программ может содержать декларации экземпляров.
Доступ к реализации функциональногоблока в POU, где он был продекларирован, ограничен пока декларация небудет глобальной. Имя экземпляра может быть использовано в качествевхода в функцию или функциональный блок.Доступ к входным и выходным переменным функционального блокасо стороны другого POU возможен путем создания экземпляра и специфицирования желаемой переменной на основе следующего синтаксиса:<Имя экземпляра>.<Имя переменной>Программа представляет собой POU, который во время выполнения операций возвращает несколько значений. В пределах проекта программы глобально распознаваемы.
Все значения переменных удерживаются с момента последнего цикла работы программы до начала следующего цикла. Вызов программы в рамках функции запрещен. Не существует экземпляров программы. Если75В.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управленияPOU вызывает программу и в процессе ее работы значения переменныхизменяются, эти значения удерживаются к новому вызову программы, дажеесли в этом новом цикле программа вызвана из другого POU. В этом состоит различие с вызовом функционального блока, для которого изменяются только значения в конкретном экземпляре функционального блока иимеют смысл, когда вызывается тот же экземпляр.Действия могут быть определены по отношению к функциональнымблокам и программам. Они расширяют возможности программирования имогут использовать другой язык.
Действие использует данные из тех функциональных блоков и программ, которым оно принадлежит. Действие имеетимя и использует те же входные и выходные переменные и локальные переменные, какие использует обычный экземпляр.Разработчик может включить в свой проект серию библиотек, которыепозволяют использовать POUs, типы данных и глобальные переменныетак, как если бы они были определены разработчиком.Помимо стандартных типов пользователь может определить свои собственные.
Могут быть созданы структуры, перечисленные типы и ссылки.2.3.4. Альтернативные структуры проектав клиентской частиСистема Visual IOWorks фирмы VMIC (США) предлагает объектноориентированный подход при разработке программ управления электроавтоматикой. Программа визуального программирования содержит следующие ресурсы: последовательности, диаграммы, страницы, библиотечныекомпоненты и символы (рис. 40).Программа или ее модули состоят из отдельных последовательностей,которые при управлении становятся независимыми потоками. Независимость последовательностей-потоков означает, что в пределах модуля онивыполняются самостоятельно и тем самым управляют исполнением модуля, которому принадлежат.
Любая последовательность состоит из трех секций: секции инициализации, тела и закрывающей секции, каждая из которых представлена диаграммой. Предположим, что последовательность определена или как циклическая, или как управляемая по событию.В первом случае она будет работать непрерывно с заданной скоростью, во втором же случае последовательность будет запущена, если произойдет соответствующее событие.