Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
7. Краткая характеристика языков программирования МЭК 61131. Основные отличия языков МЭК-61131 от языков программирования общего назначения.
Английский |
Русский |
|
||
Аббр. |
Обозначение |
Аббр. |
Обозначение |
Описание |
IL |
Instruction List |
IL |
Список инструкций |
Текстовый язык. Аппаратно-независимый низкоуровневый ассемблероподобный язык. |
LD |
Ladder Diagram |
РКС |
Релейно-Контактные Схемы |
Графический язык. Представляет собой программную реализацию электрических схем на базе электромагнитных реле. |
FBD |
Function Block Diagram |
FBD |
Функциональные блоковые диаграммы |
Графический язык. Функциональный блок (ФБ) выражает некую подпрограмму. Каждый ФБ имеет входы (слева) и выходы (справа). Программа создается путем соединения множества ФБ. |
SFC |
Sequential Function Chart |
SFC |
Последовательностные функциональные диаграммы |
Графический высокоуровневый язык. Создан на базе математического аппарата сетей Петри. Описывает последовательность состояний и условий переходов. |
ST |
Structured Text |
ST |
Структурированный текст |
Текстовый Паскалеподобный язык программирования |
IL (Instruction List) язык программирования стандарта IEC61131-3. Предназначен для программирования промышленных контроллеров. По синтаксису напоминает ассемблер.
Пример: Линейное преобразование Y(x)=A*x+B
LD x
MUL A
ADD B
ST Y
В последние годы практически вышел из употребления. Из третьей редакции стандарта IEC61131-3 (2012 г.) язык IL полностью исключен.
Ladder Diagram (англ. LD, англ. LAD, рус. РКС) язык релейной (лестничной) логики.
Применяются также названия:
Пример логического выражения на LD
Предназначен для программирования промышленных контроллеров (ПЛК). Синтаксис языка удобен для замены логических схем, выполненных на релейной технике. Ориентирован на инженеров по автоматизации, работающих на промышленных предприятиях. Обеспечивает наглядный интерфейс логики работы контроллера, облегчающий не только задачи собственно программирования и ввода в эксплуатацию, но и быстрый поиск неполадок в подключаемом к контроллеру оборудовании.
Программа на языке релейной логики имеет наглядный и интуитивно понятный инженерам-электрикам графический интерфейс, представляющий логические операции, как электрическую цепь с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в этой цепи соответствует результату логической операции (истина если ток течет; ложь если ток не течет).
Основными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки. Пара контактов отождествляется с логической переменной, а состояние этой пары со значением переменной.
Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях.
Конкретные версии языка реализуются обычно в рамках программных продуктов, для работы с определенными типами ПЛК. Часто такие реализации содержат команды, расширяющие множество стандартных команд языка, что вызвано желанием производителя полнее учесть желания заказчика, но в итоге приводят к несовместимости программ, созданных для контроллеров различных типов.
FBD (англ. Function Block Diagram) графический язык программирования стандарта МЭК 61131-3. Предназначен для программирования программируемых логических контроллеров (ПЛК). Программа образуется из списка цепей, выполняемых последовательно сверху вниз. Цепи могут иметь метки. Инструкция перехода на метку позволяет изменять последовательность выполнения цепей для программирования условий и циклов.
При программировании используются наборы библиотечных блоков и собственные блоки, также написанные на FBD или других языках МЭК 61131-3. Блок (элемент) это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггеры, таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.).
Каждая отдельная цепь представляет собой выражение, составленное графически из отдельных элементов. К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Результат вычисления цепи записывается во внутреннюю переменную либо подается на выход ПЛК.
Пример цепи FBD: A поделить на B , умножить на 2 и записать в переменную result
┌───────┐
│ │ ┌───────┐
A───────┤ │ │ * │
│ / ├────────┤ ├───result
│ │ │ │
B ──────┤ │ 2 ──┤ │
│ │ └───────┘
└───────┘
При необходимости управления вызовом блоков в них добавляются специальные входы EN (enable) и выходы ENO. Логический ноль на входе EN запрещает вызов блока. Выход ENO используется для индикации ошибки в блоке и позволяет прекратить вычисление остатка цепи.
Язык FBD прост в изучении, нагляден и удобен для прикладных специалистов, не имеющих специальной подготовки в области информатики. Жесткая последовательность выполнения приводит к простой внутренней структуре команд, которая транслируется в быстрый и надежный код.
Существует много практических реализаций языка FBD с определенными расширениями или ограничениями.
Одним из вариантов FBD является язык программирования CFC (Continuous Function Chart). Он позволяет произвольно задавать порядок выполнения блоков. Диаграммы CFC дают программисту большую свободу действий, но платой за это является несколько большая вероятность допустить ошибку и более объемный код.
Sequential Function Chart-(последовательные функциональные схемы) язык программирования стандарта IEC61131-3. Предназначен. для программирования промышленных контроллеров. Широко используется в SCADA/HMI пакетах.
Пример: Поддержание уровня жидкости в сосуде с непрерывно вытекающей жидкостью
╔════════╗
║ ║
║ START ║ Начальное состояние
╚═══╤════╝
│
─┼─level_low Уровень меньше (условие перехода - логическая переменная)
│
┌───┴────┐ ┌───┬────────────┐
│ Motor ├──┤ N │motor_on │ Состояние активно пока не сработает условие уровень больше. Действие с модификатором N - пока
│ On │ └───┴────────────┘ активно
└───┬────┘
─┼─level_high Уровень больше (условие перехода - логическая переменная)
┌───┴────┐ ┌───┬────────────┐
│ Motor ├──┤ P │motor_off │ Состояние активно пока не сработает условие уровень больше.Действие с модификатором P -
│ Off │ └───┴────────────┘ однократное срабатывание
└───┬────┘
│
↓
START Переход на начальное состояние
Основными элементами языка являются:
При программировании контроллеров семейства SIMATIC, используются две версии этого языка, разработанных в компании Siemens. Язык Graph 7 является дополнением к пакету STEP 7 и реализуем как для контроллеров SIMATIC S7-300, так и SIMATIC S7-400. Вторая версия этого языка под названием SFC, применяется только в рамках интегрированной среды разработки программ контроллеров и систем человеко-машинного интерфейса SIMATIC PCS 7.
Structured Text (ST) язык программирования стандарта IEC61131-3. Предназначен для программирования промышленных контроллеров и операторских станций. Широко используется в SCADA/HMI/SoftLogic пакетах. По структуре ближе всего к языку программирования Паскаль. Удобен для написания больших программ и работы с аналоговыми сигналами и числами с плавающей точкой.
Основой ST-программы служат выражения. Выражения состоят из операндов (констант и переменных) и операторов
Операторы являются «командами» языка программирования ST. Они должны заканчиваться точкой с запятой. Одна строка может содержать несколько операторов (отделяемых точками с запятой).
Результат вычисления выражения присваивается переменной при помощи оператора присваивания :=. Каждое выражение обязательно заканчивается точкой с запятой "; ".
Выражение состоит из переменных, констант и функций, разделенных операторами, например:
Varl := 1+Var2 / ABS(Var2) ;
Стандартные операторы в выражениях языка ST имеют символьное представление, например математические действия: +, -, *, /, операции сравнения и т. д.
Имена, используемые в исходном коде (идентификаторы переменных, константы, ключевые слова) разделены неактивными разделителями (пробелами, символами окончания строки и табуляции) или активными разделителями, которые имеют заранее определенное значение (например, символ-разделитель " > " означает сравнение больше чем, а символ " + " операцию сложения и т. д.).
Неактивные разделители могут быть свободно введены между активными разделителями, константами и идентификаторами. В отличие от неформатных языков, таких как IL, конец строки может быть введен в любом месте программы.
Для улучшения читаемости программ нужно использовать неактивные разделители в соответствии со следующими правилами: не более одного оператора в строке; табуляцию для сдвига сложных операторов; комментарии .
В текст могут быть введены комментарии, которые должны начинаться символами (* и заканчиваться ими же *).
Несколько выражений можно записать в одну строку. Однако хорошим стилем считается за-пись одного выражения в строке. Длинные выражения можно перенести на следующую строку. Перенос строки равноценен пассивному разделителю.
Выражение может включать другое выражение, заключенное в скобки. Выражение, заклю-ченное в скобки, вычисляется в первую очередь:
bAlarm :=bylnpl > bylnp2 'AND' bylnpl+ bylnp2 о О 'OR' bAlarm2 ;
Тип всех операндов выражения должен быть одинаковым. Для изменения типов использовать функции преобразования типов: BOO, ANA, REAL, TMR и MSG. Для того чтобы отделить и от части выражения и явно определить приоритетность операций используются скобки.
Когда в сложном выражении нет скобок, приоритетность ST-операторов задана неявно.
Например:
2 + 3*6 равно 2+18=20 - оператор * имеет высший приоритет
(2+3) * 6 равно 5*6=30 - приоритет задается скобками
Максимальное количество вложенных скобок 8.
Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК, три графических и два текстовых. Первоначально стандарт назывался IEC 1131-3 и был опубликован в 1993 г. но в 1997 г. МЭК (IEC) перешел на новую систему обозначений и в названии стандарта добавилась цифра "6". Продвижением стандарта занимается организация PLCopen (http://www.plcopen.org).
Основной целью стандарта было повышение скорости и качества разработки программ для ПЛК (см. раздел "Развитие программных средств автоматизации"), а также создание языков программирования, ориентированных на технологов, обеспечение соответствия ПЛК идеологии открытых систем, исключение этапа дополнительного обучения при смене типа ПЛК.
Системы программирования, основанные на МЭК 61131-3, характеризуются следующими показателями:
Языки МЭК 61131-3 появились не как теоретическая разработка, а как результат анализа множества языков, уже используемых на практике и предлагаемых рынку производителями ПЛК. Стандарт устанавливает пять языков программирования со следующими названиями:
Графическими языками являются SFC, FBD, LD. Языки IL и ST являются текстовыми.
В стандарт были введены несколько языков (а не один) для того, чтобы каждый пользователь мог применить наиболее понятный ему язык. Программисты чаще выбирают язык IL (похожий на ассемблер) или ST, похожий на язык высокого уровня Паскаль; специалисты, имеющие опыт работы с релейной логикой, выбирают язык LD, специалисты по системам автоматического управления (САУ) и схемотехники выбирают привычный для них язык FBD.
Выбор одного из пяти языков определятся не только предпочтениями пользователя, но и смыслом решаемой задачи. Если исходная задача формулируется в терминах последовательной обработки и передачи сигналов, то для нее проще и нагляднее использовать язык FBD. Если задача описывается как последовательность срабатываний некоторых ключей и реле, то для нее нагляднее всего будет язык LD. Для задач, которые изначально формулируются в виде сложного разветвленного алгоритма, удобнее будет язык ST.
Языки МЭК 61131-3 базируются на следующих принципах [Lewis]:
Любой ПЛК работает в циклическом режиме. Цикл начинается со сбора данных с модулей ввода, затем исполняется программа ПЛК и оканчивается цикл выводом данных в устройства вывода. Поэтому величина контроллерного цикла зависит от времени исполнения программы и быстродействия процессорного модуля.
8. Использование сервера консолидации технологических данных при построении интегрированных АСУ. Архитектура и возможности современного сервера консолидации на примере WideTrack.
Консолидация
В случае консолидации данные извлекаются из источников, и помещаются в Хранилище данных. Процесс заполнения Хранилища состоит из трех фаз извлечение, преобразование, загрузка (Extract, Transformation, Loading ETL). Во многих случаях именно ETL понимают под термином «интеграция данных». Еще одна распространенная технология консолидации данных управление содержанием корпорации (enterprise content management, сокр. ECM). Большинство решений ECM направлены на консолидацию и управление неструктурированными данными, такими как документы, отчеты и web-страницы.
Консолидация однонаправленный процесс, то есть данные из нескольких источников сливаются в Хранилище, но не распространяются из него обратно в распределенную систему. Часто консолидированные данные служат основой для приложений бизнес-аналитики (Business Intelligence, BI), OLAP-приложений.
При использовании этого метода обычно существует некоторая задержка между моментом обновления информации в первичных системах и временем, когда данные изменения появляются в конечном месте хранения. Конечные места хранения данных, содержащие данные с большими временами отставания (например, более одного дня), создаются с помощью пакетных приложений интеграции данных, которые извлекают данные из первичных систем с определенными, заранее заданными интервалами. Конечные места хранения данных с небольшим отставанием обновляются с помощью оперативных приложений интеграции данных, которые постоянно отслеживают и передают изменения данных из первичных систем в конечные места хранения.
Построение современных интегрированных автоматизированных систем управления (ИАСУ) энергетических предприятий связано с решением задач сбора, хранения, обработки и передачи информации с нижних уровней ИАСУ (АСУТП, АИИСКУЭ, АСКУТ, АСКУГ, АСУЭТО и др.) на средний (MES, EAM) и верхний уровни (ERP). Разнородность систем, форматов и протоколов требуют наличия специальных средств сбора, обработки и хранения данных.
Данные с нижнего уровня должны консолидироваться в одном месте, подвергаться анализу, хранению и преобразованию в информацию для MES и ERP систем. Именно для этих целей и был разработан новый программный продукт - сервер технологических данных WideTrack.
Обеспечивая приём и передачу данных с подсистем нижнего уровня, WideTrack позволяет отделить вопросы обмена, хранения, обработки и консолидации данных с разнородных источников (SCADA, OPC, XML, реляционных БД) от решения высокоуровневых проблем управления предприятием, делая архитектуру системы простой и наглядной.
Сервер консолидации технологических данных WideTrack - это сервер хранения и обработки данных, обеспечивающий единый портал для доступа ко всей технологической информации и позволяющий интегрировать эту информацию с бухгалтерской, финансовой, экономической и кадровой для повышения эффективности работы предприятия. WideTrack позволяет организовать гибкую среду обработки информации для крупных и территориально рассредоточенных организаций.
В общей пирамиде современных решений для задач построения интегрированных АСУ, WideTrack представляет собой основной компонент консолидации данных, необходимый для создания целостной информационной среды предприятия.
В основу архитектуры WideTrack положены:
WideTrack обладает широчайшими возможностями по наращиванию и изменению своего функционала и легко интегрируется как в создаваемые так и в уже существующие системы.
В случае территориально - распределённой структуры предприятия или наличия нескольких отдельных информационных центров, WideTrack позволяет организовать иерархическую структуру, которая обеспечит централизованное управление
Основные функции WideTrack:
Основными возможностями WideTrack являются:
WideTrack верхнего уровня собирает информацию от нескольких источников (WideTrack, SCADA, OPC, реляционных баз данных (РБД) и т.д.) для передачи её в ERP, MES и другие приемники, а также обеспечивает запись управляющей и служебной информации обратно в источники данных. Связь между серверами одного уровня может использоваться, например, для создания систем с резервированием.
Архитектура WideTrack:
Характеристики:
Использование WideTrack совместно с другими решениями являются хорошим выбором в реализации задач сбора, хранения, обработки, отображения и передачи информации общекорпоративного уровня. Единая многокомпонентная открытая среда на основе:
9. Стандарт ОРС. Использование ОРС для взаимодействия с техническими устройствами при разработке программного обеспечения. ОРС-сервер как объект DCOM.
ОРС сервер
Стандарт ОРС разработан международной организацией OPC Foundation, членами которой являются более 400 фирм, работающих в области средств автоматизации и измерительной техники. Основателями организации являются фирмы Fisher-Rosemount, Rockwell Software, Opto 22, Intellution и Intuitive Technology. Первая версия ОРС стандарта была выпущена в 1998 г. [OLE]. В совет директоров OPC Foundation в 2008 году входили представители Siemens AG, Emerson Process Management, Yokogawa, Honeywell, Rockwell Automation, ICONICS.
9.2.1. Обзор стандарта ОРС
Главной целью стандарта ОРС явилось обеспечение возможности совместной работы (интероперабельности) средств автоматизации, функционирующих на разных аппаратных платформах, в разных промышленных сетях и производимых разными фирмами. До разработки ОРС стандарта SCADA пакет нужно было адаптировать к каждому новому оборудованию индивидуально. Существовали длинные списки "поддерживаемого оборудования", очень сложной была техническая поддержка. При модификации оборудования нужно было вносить изменения во все драйверы, каждый из которых поддерживал протокол обмена только с одной клиентской программой. Число таких драйверов доходило до сотен.
После появления стандарта ОРС практически все SCADA-пакеты были перепроектированы как ОРС-клиенты, а каждый производитель аппаратного обеспечения стал снабжать свои контроллеры, модули ввода-вывода, интеллектуальные датчики и исполнительные устройства стандартным ОРС сервером. Благодаря появлению стандартизации интерфейса стало возможным подключение любого физического устройства к любой SCADA, если они оба соответствовали стандарту ОРС. Разработчики получили возможность проектировать только один драйвер для всех SCADA-пакетов, а пользователи получили возможность выбора оборудования и программ без прежних ограничений на их совместимость.
Стандарт ОРС относится только к интерфейсам, которые ОРС сервер предоставляет клиентским программам. Метод же взаимодействия сервера с аппаратурой (например, с модулями ввода-вывода), стандартом не предусмотрен и его реализация возлагается полностью на разработчика аппаратуры. Поэтому стандарт ОРС может быть использован не только для взаимодействия SCADA с "железом", но и для обмен данными с любым источником данных, например, с базой данных или с GPS приемником.
ОРС сервер как средство взаимодействия с техническим устройством может быть использован при разработке заказных программ на C++, Visual Basic, VBA и т. п. В этих задачах ОРС сервер используется как Microsoft DCOM объект, от которого он отличается только стандартизацией обозначений и специфическими терминами из области промышленной автоматизации. Применение ОРС сервера при разработке заказных программ позволяет скрыть от разработчика всю сложность общения с аппаратурой, представляя простой и удобный метод доступа к аппаратуре через интерфейсы СОМ-объекта.
Стандарт ОРС состоит из нескольких частей:
Из перечисленных спецификаций в России широко используются только две: ОРС DA и реже - OPC HDA.