ISAGRAF
Требования предъявляемые к программируемым логическим контроллерам (ПЛК, PLC) всегда были многообразными и различными. PLC использовались людьми всевозможных видов деятельности (опытными рабочим, технологами, инженерами) и методы программирования во многом определялись требованиями их конкретных приложений. В то же время они должны были отвечать требованиям современных сложных распределенных систем управления.
Историческое развитие
В прошлом все это привело к возникновению разнообразных решений, связанных с конкретным производителем и в той или иной степени удовлетворяющим общим стандартам (DIN 19239, DIN 19237, DIN 40719 Part 6 and VDI 2880). Языки программирования релейных диаграмм - ladder diagram (LD), функциональных блоковых диаграмм - function block diagram (FBD) и список инструкций - instruction list (IL) сформировались постепенно под влиянием многих участников рынка, вместе с различными версиями языка последовательных функциональных схем - sequential function chart (SFC), таким как Grafcet, GRAPH 5 and CSF to DIN 40719 Part 6. Тем не менее элементы языка у разных производителей отличались и всегда существовали машинозависимые особенности языков, которые приходилось учитывать.
Для того, чтобы решить эту проблему, международный электротехнический комитет (МЭК, IEC) разработал стандарт IEC 61131, третью часть, третья часть которого описывает языки программирования ПЛК.
IEC 61131-3 описывает следующие языки программирования:
Графические языки:
- Последовательных функциональных схем (SFC)
- Релейных диаграмм (LD)
- Функциональных блоковых диаграмм (FBD)
Текстовые языки:
- Список инструкций (instruction list - IL)
- Структурированный текст (Structured Text - ST)
Синтаксис этих языков детально описан в стандарте IEC 61131-3, так что пользователь найдет один и тот же синтаксис во всех пакетах, поддерживающих этот стандарт. Графическое представление прикладных программ - это типичная особенность программирования PLC. В то же время текстовые языки широко используются для программирования компьютеров. Языки программирования определены в стандарте таким образом, что допускают разработку приложения на смеси этих языков, которая впоследствии собирается в единую исполняемую программу. Кроме того, стандарт открыт для использования других языков программирования.
Система ISaGRAF
Инструментальная система ISaGRAF™ (ICS Triplex ISaGRAF) относится к классу систем типа CASE (Computer Aided Software Engeneering). Она обеспечивает полную поддержку всех пяти языков стандарта IEC 61131-3 и позволяет разрабатывать программное обеспечение для интеллектуальных PLC. Система ISaGRAF получила признание многих фирм: ABB, BMW, General Motors , Green Spring, Motorola, PEP Modular Computers, Phoenix, Themis Computer и др. (всего свыше 80 компаний).
ISaGRAF включает в себя:
- систему разработки (ISaGRAF Workbench)
- систему исполнения (ISaGRAF Target)
ISaGRAF Workbench предназначен для разработки прикладных задач, исполняемых под управлением ядра ISaGRAF на системах исполнения, и устанавливается на компьютере IBM PC (или совместимом) под управлением MS Windows (начиная 3.1). Специальных требований к компьютеру не предъявляется. Система разработки компилирует проект в системо-независимый код (Target Independent Code - TIC). TIC - это псевдокод, оптимизированный специально для языка структурированного текста (ST). TIC код загружается в целевую машину для исполнения через каналы коммуникаций, обычно это RS-232, RS-485, Ethernet TCP/IP. Система исполнения либо загружается либо прожигается в ПЗУ целевой машины. Она включает в себя ядро ISaGRAF и набор модулей связи. Стандартно поставляются системы исполнения для MS-DOS и Windows NT. В НЦ "Науцилус" разработаны системы исполнения для ОС РВ QNX и LINUX, которые используются в ПЛК отечественных производителей Сикон, ТЕКОН и Trei.
Основные достоинства ISaGRAF:
- использование стандартных языков программирования (IEC 61131-3);
- графический интерфейс системы разработки;
- легкость в освоении и удобство использования;
- обеспечение качественных разработок пользовательских приложений;
- встроенные средства программирования промышленных сетей PROFIBUS и MODBUS;
- удобные и эффективные отладочные средства;
В ISaGRAF заложена методология структурного программирования, которая дает возможность пользователю описать автоматизируемый процесс в наиболее легкой и понятной форме. Интефейс с пользователем системы разработки ISaGRAF соответствует международному стандарту GUI (Graphical User Interface), включающему многооконный режим работы, полнографические редакторы, работу с мышью и т.д. Философия системо-независимого кода ISaGRAF состоит в том, чтобы добиться максимальной гибкости, никоим образом не привязываясь к какой-либо платформе. Исходные тексты ядра ISaGRAF написаны на ANSI 'C' с различными возможностями для дополнения ядра процедурами написанными пользователем. В ядре ISaGRAF использована модульная архитектура, которая обеспечивает переносимость программы практически на любую платформу. ISaGRAF позволяет производителю аппаратуры сконцентрироваться на аппаратной части системы управления, предоствив системе ISaGRAF решать вопросы связанные с программным обеспечением. В любом случае конечный пользователь будет использовать все возможности современной графической системы и писать программы на любом из пяти языков стандарта IEC 61131-3. При этом он может сфокусировать свое внимание на решении проблемы, не беспокоясь об аппаратной части системы управления.
Программирование логики в ISaGRAF ведется с использованием:
- графических языков программирования (SFC), (LD), (FBD);
- текстовых языков программирования (IL), (ST);
- дополнительных интерактивных редакторов для описания переменных, определений и конфигурации ввода/вывода.
Использование стандартных средств и языков программирования позволяет существенно снизить затраты на разработку прикладного программного обеспечения.
Язык последовательных функциональных схем (SFC) находится над всеми остальными языками и позволяет описать логику программы на уровне чередующихся функциональных блоков и условныхпереходов. Функциональные блоки представляют собой действия, которые должны быть исполнены, в том числе и параллельно, а условные переходы задают условия которые должны выполняться для перехода к следующему функциональному блоку. Инструкции для функциональных блоков и условных переходов могут быть написаны на одном из четырех других языков.
Язык релейных диаграмм (LD) используется для описания различных логических выражений. Он реализует такие элементы, как открытый и закрытый контакт, виток. Кроме того реализованы функции и функциональные блоки.
Язык функциональных блоковых диаграмм (FBD) дает возможность пользователю построить комплексную процедуру, состоящую из различных функциональных блоков библиотеки ISaGRAF.
Структурированный текст (ST) относится к классу языков высокого уровня и по мнемонике похож на PASCAL. ST используется для создания процедур сосложной логикой.
Язык инструкций (IL) относится к классу языков низкого уровня. Он позволяет создавать высокоэффективные и оптимизированные функции. Этот язык имеет смысл использовать для написания наиболее критичных мест программы.
ISaGRAF предоставляет возможность разрабатывать процедуры с использованием языка 'C'. Эти процедуры можно вызвать из любого, описанного выше языка.
Целевая задача ISaGRAF для операционной системы QNX
Целевая задача ISaGRAF для QNX, разработанная в НЦ НАУЦИЛУС, включает в себя программы:
- isaker - ядро целевой задачи;
- isatst - задача связи с системой разработки через серийный порт;
- isanet - задача связи с системой разработки через ETHERNET TCP/IP;
- isarfl - задача доступа к базе данных ISaGRAF;
Для того, чтобы повысить время реакции целевой задачи ISaGRAF, целевая задача разделена на два процесса: программа связи (isatst, isanet или isarfl) и прикладная целевая задача (isaker).
Такая архитектура позволяет запускать несколько задач связи с одной и той же целевой задачей или до 4 целевых задач с одной и той же задачей связи. Это позволяет работать через один и тот же порт с 4 целевыми задачами.
Целевая задача и задача связи не зависят друг от друга. Единственное требование состоит в том чтобы задача isaker была запущена первой, так чтобы она смогла инициализировать систему и задача связи смогла связаться с ней. Целевая задача ISaGraf не нарушает работу фоновых процессов и программ обработки прерываний.
Задача доступа к базе данных isarfl обеспечивает возможность доступа к данным ISaGRAF из SCADA систем (Phocus, Sitex, RealFlex, Wizcon, iFix и др.).
В начале работы целевой задачи ISaGRAF выполняется следующий алгоритм:
- Найти приложение на диске для того чтобы загрузить его в память. Если приложение не найдено, то перейти к п.2, если найдено, то перейти к п.4
- Ждать пока приложение не будет загружено по сети или через последовательный порт.
- Сохранить приложение на диске.
- Выполнить приложение. Если приложение закончено то перейти к п.2
На целевой машине может быть запущено несколько задач isaker, выполняющих разные программы. Каждой целевой задаче isaker ставится в соответствие номер слейва. Системонезависимый код приложения (TIC) - это двоичный код, который генерируется и загружается подсистемой разработки в одну из задач isaker в соответствии с выбранным номером слейва, и затем исполняется на целевой машине. Он может быть дополнен таблицей символов. Когда приложение загружается отладчиком подсистемы разработки в целевую машину, код приложения сохраняется на диске в файле под именем ISAx1. x - номер слейва. Если в памяти нет кода приложения, то целевая задача ждет, когда приложение будет загружено. Для того, чтобы запустить приложение при включении машины без использования отладчика, нужно скопировать эти файлы на диск целевой машины.
Целевая задача ISaGRAF работает на контроллере в соответствии с хорошо известной схемой:
Основной принцип работы системы ISaGRAF - синхронизация. Прикладная задача ISaGRAF работает строго по временным циклам, продолжительность которых задается при компиляции задачи.
Программы и процедуры прикладной задачи могут располагаться в трех секциях: Begin, Sequential, End. В начале временного цикла всегда целиком выполняется Begin, в конце вся секция End. Оставшееся в промежутке время выделяется для выполнения секции Sequential. Секции Begin и End отвечают за обновление переменных ввода-вывода. Такая схема гарантирует работу в рамках одного временного цикла только с одной копией переменных ввода/вывода.
Программное обеспечение целевой задачи строится вокруг ядра, исполняющего 5 языков стандарта IEC 61131-3 и обращающемуся к библиотеке плат ввода/вывода, функциям пользователя и системному интерфейсу.
Для связи драйвера ввода-вывода SCADA системы (например сканнера RealFlex) с ПЛК на контроллере должна быть запущена программа isarfl, которая считывает значения сканируемых переменных из базы данных ISaGRAF и передает информацию в сканнер по сети QNX. Информация в RealFlex приходит в результате периодических запросов, которые сканнер передает программе isarfl. В ответ на запрос isarfl опрашивает переменные, соответствующие точкам БД RealFlex и отправляет информацию в ПК.
Каждой переменной приложения в процессе разработки может быть поставлен в соответствие уникальный адрес. Для этого имеется специальная опция в системе разработки. После того, как программа скомпилирована и загружена в контроллер, этот адрес может быть использован для идентификации переменной при обращении к БД ISaGRAF. Программа isarfl обращается к БД ISaGRAF через разделяемую память, используя библиотеку вызовов системы ISaGRAF. С точки зрения БД RealFlex переменные ISaGRAF - это точки определенного типа, смещение которых в БД определено равным адресу переменной в БД ISaGRAF. Для любого типа контроллеров с ISaGRAF QNX можно использовать один и тот же сканнер.
Система ISaGRAF допускает интеграцию собственных модулей ввода/вывода в среду ISaGRAF.
Для ISaGRAF QNX разработаны драйверы ввода/вывода для плат различных производителей. Коммерческими продуктами, предлагаемыми компанией НАУЦИЛУС, являются нижеперечисленные библиотеки драйверов ввода-вывода ISaGRAF QNX для плат ввода-вывода, применяющихся в управляющих системах (PC и PLC) отдельных производителей:
- Биб-ка драйверов PC Advantech. Включает драйверы платы PCL731 (цифровой ввод/вывод,48 каналов);
- Библиотека драйверов для плат AD Link. Включает драйверы платы ACL-7122, aналог платы PCL-722 фирмы Advantech (цифровой ввод, 144 канала);
- Библиотека драйверов для VME модулей, включающих процессорный модуль XyCom XVME-65x и набор модулей УСО от ИТЦ "Черноголовка"
- Биб-ка драйверов ComputerBoards. Включает драйверы плат: CIO-DIO48 (цифровой ввод/вывод, 48 каналов), CIO-DAS16/Jr (аналоговый ввод, 16 каналов);
- Библиотека драйверов плат ввода-вывода QNX контроллера RTP6800 высокой надежности. Включает драйверы плат: RTP8437/37 (цифровой ввод 16 каналов), RTP7437/83 (цифровой вывод 16 каналов), RTP7455/30 (аналоговый вывод 4 канала), RTP7436/50 (аналоговый ввод, 8 каналов);
Для того чтобы пользователь мог самостоятельно подключать собственные драйверы устройств ввода/вывода к ядру ISaGRAF фирма "Науцилус" предлагает библиотеку разработки драйверов ввода/вывода. Различные драйверы идентифицируется по уникальному номеру, который определяется разработчиком драйвера. Кроме того, некоторые параметры драйвера могут быть открыты для доступа из системы разработки (такие как номер гнезда контроллера, в который установлена плата или диапазон измеряемых значений). Для того, чтобы перенести уже написанную программу с одного типа контроллера на другой, ничего не надо программировать, достаточно переопределить модули ввода/вывода при помощи специальной опции в системе разработки. Программа ISaGRAF имеет дело с абстрактными переменными ввода/вывода, никак не привязанными к конкретным устройствам ввода/вывода.
Для расширения возможностей ISaGRAF QNX в плане взаимодействия целевых задач, работающих на разных машинах, предназначен специализированный программный продукт ISaGRAF QNX Extension.
Другие программные продукты НЦ НАУЦИЛУС для поддержки системы ISaGRAF (а также 32-разядной версии ISaGRAF Pro) в различных операционных системах и для разнообразных аппаратных средств.
ISaGRAF OPC Server
Для получение данных из целевой задачи ISaGRAF для QNX в среде ОС MS Windows, предлагается программа ISaGRAF OPC Server, разработанная в НЦ НАУЦИЛУС.