Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Общие сведения о программной модели контроллера
Программная модель контроллера определяет порядок выполнения прикладной программы, систему типов данных, представляющих состояние программы и внешнего окружения, а также способы взаимодействия прикладной программы с устройствами ввода/вывода и внешней сетью, которые также определяются моделью окружения программы.
Единицы организации программы Приложение для контроллера, разрабатываемое пользователем в программной среде должно состоять хотя бы из одной программы и может содержать, как правило, до 3-х циклических и до 16-ти ациклических задач, а также функций обработки системных событий. Циклической задачей называется множество программ, запускаемых на исполнение с заданным периодом под управлением отдельного потока исполнения операционной системы контроллера. Помимо периода запуска, каждая циклическая задача имеет приоритет, согласно которому планировщик операционной системы выбирает, какому потоку исполнения операционной системы выделить процессорное время в тот или иной момент времени. Ациклической задачей называется множество программ, запускаемых на исполнение на контексте высокоприоритетного потока исполнения операционной системы в момент перехода некоторой булевой переменной (источника события), определенной в приложении пользователя, из состояния FALSE в состояние TRUE. Помимо переменной – источника события, каждая ациклическая задача имеет приоритет и порядковый номер, согласно которым среда исполнения выбирает очередность запуска ациклических задач. Таким образом, задачи являются системными ресурсами контроллера, позволяющими распределить процессорное время между программами, входящими в состав приложения. Обработчиком системного события называется функция, вызываема средой исполнения при возникновении некоторого системного события. К системным событиям относятся моменты запуска и остановки приложения, окончание подготовки приложения к запуску, начало загрузки нового приложения, момент перед заменой текущего приложения на вновь загруженное, сброс контроллера из программной среды и другие. Прикладной алгоритм, реализуемый пользователем в приложении, представляется множеством программ, которые в свою очередь, могут содержать множество вызовов других программ, функций и экземпляров функциональных блоков, реализованных на языках ST, CFC, SFC, LD, FBD, IL стандарта IEC 61131-3 (МЭК 61131-3). Программная единица при вызове получает входные данные, обрабатывает их, в том числе с учетом своего внутреннего состояния, и передает результаты в виде выходных данных другим программным единицам или во внешнее окружение. Входные данные программы, функционального блока и функции представляются так называемыми входными переменными, которые объявляются в секции VAR_INPUT области переменных редактора программ. Выходные данные программы, функционального блока и функции представляются так называемыми выходными переменными, которые объявляются в секции VAR_OUTPUT области переменных редактора программ. Внутреннее состояние программной единицы представляется так называемыми внутренними переменными, которые объявляются в секции VAR области переменных редактора программ. Важно понимать основные отличия между программой, функциональным блоком и функцией: · Программа и экземпляр функционального блока, в отличие от функции, сохраняют свое состояние между вызовами. Иными словами, внутренние переменные программы и экземпляра функционального блока сохраняют свои значения после очередного вызова и до следующего. Время жизни входных, выходных и внутренних (локальных) переменных функции ограничено интервалом между вызовом и возвратом результата вызова. · Программа отличается от функционального блока тем, что в приложении может присутствовать единственный экземпляр программы, с некоторым именем, в то время как функциональный блок с некоторым именем может использоваться для декларации и последующего вызова множества переменных, тип которых совпадает с именем функционального блока.
Модель окружения Окружением приложения, разрабатываемого пользователем для программируемого контроллера, являются каналы устройств и модулей ввода-вывода, поля передачи данных входящих и исходящих коммуникационных объектов внешней сети, диагностическая информация от различных подсистем контроллера и другие сущности, которые не могут быть представлены явно в понятиях программной модели. Моделью окружения приложения можно считать совокупность способов описания связи кода прикладной программы с данными устройств ввода-вывода и сети, а также механизмы среды исполнения контроллера, реализующие обмен данными между программными единицами приложения и устройствами ввода-вывода и сетью. Глобальная область памяти, выделяемая адаптивной средой исполнения на основе соответствующей информации в загруженном приложении пользователя, разделена на следующие основные сегменты: сегмент входных данных, сегмент выходных данных и сегмент внутренних переменных и экземпляров функциональных блоков (экземпляр – объект-переменная некоторого типа, каковым является функциональный блок). Переменные VAR_INPUT, ссылающиеся на адреса во входной области образа процесса, размещаются компилятором во входном сегменте данных, а аналогичные переменные VAR_OUTPUT – в выходном сегменте. Каждый входной порт задачи содержит смещение одиночной входной переменной или группы входных переменных, занимающих во входном сегменте непрерывный участок памяти, во входном сегменте приложения, а также длину переменной или группы переменных. То же самое касается каждого выходного порта по отношению к выходному сегменту приложения. Образ процесса буквально является парой буферов, размеры которых в точности совпадают с размерами входного и выходного сегментов приложения. Указанные буфера ассоциируются с каналами ввода и вывода при создании или повторном конфигурировании последних. Во время функционирования приложения перед вызовом корневой программной единицы каждой пользовательской задачи выполняется последовательное чтение всех ее входных портов, в результате чего данные из участков входной области процесса копируются в соответствующие участки входного сегмента приложения. Во время чтения портов некоторой пользовательской задачи запись в канал ввода через связанные с ним выходные порты других источников данных запрещена. По завершении исполнения корневой программной единицы некоторой каждой пользовательской задачи выполняется последовательная запись во все ее выходные порты, в результате чего значения ее выходных переменных, находящихся в выходном сегменте приложения, копируются в соответствующие участки выходной части образа процесса. Во время записи в выходные порты некоторой пользовательской задачи чтение канала вывода другими подсистемами запрещено. Кажущаяся сложность описанного механизма обусловлена тем, что пользовательские задачи запускаются с разными частотами асинхронно относительно друг друга и относительно сервисов ввода-вывода и внешней сети. Указанный механизм позволяет реализовать требование когерентности входных данных каждой пользовательской задачи, установленное стандартом IEC 61131-3 (МЭК 61131-3).
Языки программирования На сегодняшний день все большая ответственность за качество работы автоматизированных систем управления возлагается на прикладное программное обеспечение ПЛК. В то же время, языки программирования МЭК 611131-3 ориентированы не столько на профессиональных программистов, сколько на специалистов в прикладной области. Сами языки МЭК содержат ряд свойств, позволяющих сводить вероятность ошибок к минимуму. Это строгий контроль типов, специальные программные скобки, отказ от указателей, неявного преобразования типов и языковых конструкций, имеющих побочные эффекты. Высококачественные системы прикладного МЭК программирования помимо традиционных отладочных средств имеют не мало специфических инструментов. Некоторые рекомендации специалистов по отладке ПО не применимы для ПЛК физически. В данном пособии мы постараемся кратко рассмотреть как общие, так и специальные приемы создания надежного программного обеспечения для ПЛК, способы тестирования и поиска ошибок. Для программирования алгоритмов управления технологическими процессами в современных SCADA системах поддержаны все 5 языков международного стандарта IEC 61131-3. Среди них есть и визуальные языки - Techno FBD, Techno LD, Techno SFC и процедурные - Techno ST, Techno IL. Такой широкий диапазон средств программирования позволяет специалисту любого профиля выбрать для себя наиболее подходящий инструмент реализации любых задач АСУ ТП и АСУП. Все языки программирования снабжены мощными средствами отладки. В данном пособии будет подробно рассматриваться SCADA система TRACE MODE® 6 как, возможно, наиболее удобное для знакомства и восприятия.
Краткое описание языков TRACE MODE® 6 предоставляет широкий набор средств программирования задач АСУТП и бизнес-приложений (АСУП), ориентированный на специалистов разной квалификации и профессиональной подготовки. В систему TRACE MODE® 6 включены 5 языков программирования – Techno SFC, Techno LD, Techno FBD, Techno ST, и Techno IL. Данные языки являются расширением языков международного стандарта IEC 61131-3 (МЭК 6-1131/3).
Данный стандарт разрабатывается с 1993 года Международной Электротехнической Комиссией (International Electrotechnical Commission) и давно признан как в Европе и в США, так и во всем мире ведущими производителями средств автоматизации. Языки программирования стандарта МЭК 6-1131/3 включают в себя 3 визуальных языка (FBD, SFC, LD), ориентированных на инженеров и бизнес-аналитиков и 2 текстовых (ST, IL), ориентированных на программистов. С помощью данных языков одинаково комфортно программируются и контроллеры, и алгоритмы человеко-машинного интерфейса (HMI) и задачи EAM и MES. Языки МЭК 6-1131/3 сочетают в себе достаточную функциональность, простоту и предохраняют пользователя от большинства ошибок, которые нередко возникают при использовании обычных языков программирования. Реализация МЭК 6-1131/3 в интегрированной SCADA/SOFLOGIC/MES/EAM/HRM системе TRACE MODE® 6 не только полностью удовлетворяет требованиям стандарта, но и предоставляет пользователю дополнительный сервис в виде расширенного набора библиотек функциональных блоков, реализующих типовые алгоритмы управления. Для всех 5 языков существует единый механизмсвязи с базой данных реального времени. Каждая программа обладает набором аргументов, исходные данные передаются в программу через входные аргументы, а результаты вычислений возвращаются в выходных аргументах. Аргументы связываются с атрибутами каналов, т.е. с реальными входами и выходами контроллеров и УСО, ячейками корпоративных баз данных, либо с внутренними переменными. Таким образом, одна и та же программа может вызываться несколько раз за цикл для обработки разных потоков данных. Программирование и отладка программ на языках МЭК 6-1131/3 производится в интегрированной среде разработки, включающей в себя несколько различных редакторов. Программы на языках Techno FBD, Techno LD и Techno SFC создаются и отлаживаются в специальных визуальных редакторах, а Techno ST и Techno IL представляют собой более традиционные языки, программирование на которых осуществляется в текстовом редакторе. Несмотря на различия, программы на разных языках стандарта МЭК 6-1131/3 могут взаимодействовать между собой. Например, программа на Techno FBD может вызывать функциональный блок, написанный на языке Techno ST, а внутри этого блока может вызываться подпрограмма на Techno LD и т.д. Такая гибкость в выборе средств описания алгоритмов позволяет эффективно работать над одной задачей и программисту, и технологу, и инженеру-наладчику и бизнес-консультанту, когда каждый из них выполняет свою часть работы удобным ему способом. Программы и некоторые их компоненты (функции, шаги и переходы SFC и т.п.) могут быть разработаны на любом из встроенных языков в соответствующем редакторе, при этом языки для программы и ее компонентов выбираются независимо. Для создания и редактирования свойств аргументов, переменных, функций и структурных типов программы, а также для использования в программе функций из внешних библиотек в интегрированную среду разработки проекта встроены специальные табличные редакторы. Основным языком программирования TRACE MODE 6 является Техно ST. Программы, разработанные на языках Техно LD, Техно SFC и Техно FBD, перед компиляцией транслируются в Техно ST. IL -программы перед компиляцией частично транслируются в ST, частично – в ассемблер. Отсюда следует, например, что ключевые слова Техно ST являются таковыми и для всех других языков. Популярное:
|
Последнее изменение этой страницы: 2017-03-11; Просмотров: 976; Нарушение авторского права страницы