СПКД123 / СПДК / Задачи АСУТП / Программирование контроллеров
.doc
Программирование контроллеров Содержание лекции:
В зависимости от аппаратной архитектуры и операционной системы контроллера предлагается два способа разработки программ. Первый – популярный для PC-совместимых контроллеров (использующих в качестве ЦПУ процессор Intel x86, принятую системную архитектуру и одну из распространенных операционных систем реального времени (ОС РВ), напр. QNX, OS-9, VxWorks): производитель предоставляет специальную библиотеку и рекомендует писать обычные программы на языке Си (или другом языке программирования общего назначения), используя специализированные функции контроллера через вызовы библиотечных функций. Второй способ – разработать собственную среду разработки и выполнения программ, выполняющуюся «поверх» некоторой ОС РВ или заменяющую ее. При этом производитель контроллеров вводит некоторый новый (или реализует существующий) язык, содержащий основные операторы, библиотеку функций. Применение таких специализированных языков, адаптированных для программирования задач контроллера, более эффективно, чем использование универсальных языков программирования, в т.ч. позволяет разрабатывать программу технологу – специалисту по производству, а не математику-программисту. Для обеспечения общей базы разработок подобных языков введен международный стандарт IEC 61131-3, определяющий пять групп языков программирования контроллеров:
Аналогично тому, как в настоящее время большинство программистов в своей работе используют интегрированные среды разработки (IDE, такие как Microsoft Visual Studio, Borland C++ Builder/Delphi и проч.), а не простой текстовый редактор для набора кода и компилятор командной строки; так же и при программировании контроллеров и использовании любого из типов языков программирования контроллеров обычно используется специальная среда поддержки программирования. Наиболее известный универсальный инструмент разработки программ контроллеров на всех вышеописанных типах языков – система ISaGRAF (производитель – CJ International, Франция). Функции среды разработки:
База данных контроллера обычно представляет собой линейно организованную область памяти, в которой хранится множество групп данных, часто называемых сигналами. Контроллер может содержать скалярные, векторные, табличные сигналы различных типов данных: дискретные, аналоговые, логические, строковые. Каждый сигнал, помимо собственно значения, содержит также множество атрибутов. В таблице приведен их типовой набор:
Значения сигналов вводятся от датчиков ТИ и ТС или являются производными (расчетными). Помимо определяемых разработчиком, в контроллере обычно присутствует набор предопределенных системных сигналов, значения которых можно использовать в программах, но нельзя изменять, например значение текущего времени, состояние портов ввода/вывода, сигналы диагностики отдельных плат контроллера и т.п. Объединенное множество (список) сигналов определяет область хранения данных контроллера, разделяемую между всеми программами, к которой также предоставляется интерфейс для доступа по некоторому протоколу передачи данных для внешних систем.
В теории САУ вводятся законы управления, которые реализуются соответствующими регуляторами (пропорциональный (П–регулятор), интегральный (И–регулятор), пропорционально–интегральный, пропорционально–интегрально–дифференцирующий (ПИД–регулятор)). Алгоритмы работы таких регуляторов включены в библиотеку средства разработки; используя стандартные модули из этой библиотеки, можно визуально создать программу. Входные данные для нее – сигналы, хранящиеся в БД контроллера. На рис. 4.1 приведен пример программы, составленной из функциональных блоков. Рис. 4.1. Запись в виде функциональных блоков алгоритма регулирования непрерывного ТП. На рисунке приведена программа управления краном-регулятором. На входе крана мы имеем нестационарный процесс, на выходе требуется обеспечить некоторое постоянное давление в трубопроводе. Точки ввода (измерения) давления и признака его превышения верхней границы диапазона датчика находятся за краном-регулятором. В модуле AI входной аналоговый сигнал преобразуется в цифровой, опираясь на нулевое значение и диапазон измерения. На основании этого значения и логического параметра превышения верхней границы измерения вычисляется уставка регулятора. Текущее значение давления, значения уставки, пропорционального, интегрального, дифференциального коэффициентов являются входными сигналами для модуля ПИД-регулятора. Выходной сигнал регулятора преобразуется в аналоговый токовый выходной сигнал и, усиливаясь реле управления, изменяет степень открытия крана.
Для программиста наиболее простой и удобный для использования способ программирования контроллеров – запись программ в виде структурированного текста. Ниже рассмотрено программирование на языке ACCOL-II для контроллеров Bristol Babcock –высокоуровневом модульным технологическим языком программирования. ACCOL-II реализует следующие арифметические операции: вычислительные (+, -, *, /, возведение в степень); сравнения (>, <, =, >=, <=); округления до целого, взятия модуля; вычисления логарифма, экспоненты, квадратного корня, синуса, косинуса, тангенса; операции И, ИЛИ, исключающее ИЛИ, НЕТ; изменение знака; конкатенация строк. |
1 2 3 4 5 6 7 8 9 ... 14
хорошо
1