Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СПКД123 / СПДК / Задачи АСУТП / Программирование контроллеров

.doc
Скачиваний:
191
Добавлен:
04.03.2016
Размер:
129.54 Кб
Скачать

Программирование контроллеров

Содержание лекции:

  • Группы языков программирования контроллеров

  • «Сигнал»: введение понятия

  • Запись алгоритма ПИД–регулирования в виде функциональных блоков

  • Текстовая запись программ контроллера 

  • Особенности ввода/вывода при программировании контроллеров

  • Типовые программы контроллера линейного КП

  1. Группы языков программирования контроллеров

В зависимости от аппаратной архитектуры и операционной системы контроллера предлагается два способа разработки программ. Первый – популярный для PC-совместимых контроллеров (использующих в качестве ЦПУ процессор Intel x86, принятую системную архитектуру и одну из распространенных операционных систем реального времени (ОС РВ), напр. QNX, OS-9, VxWorks): производитель предоставляет специальную библиотеку и рекомендует писать обычные программы на языке Си (или другом языке программирования общего назначения), используя специализированные функции контроллера через вызовы библиотечных функций. Второй способ – разработать собственную среду разработки и выполнения программ, выполняющуюся «поверх» некоторой ОС РВ или заменяющую ее. При этом производитель контроллеров вводит некоторый новый (или реализует существующий) язык, содержащий основные операторы, библиотеку функций. Применение таких специализированных языков, адаптированных для программирования задач контроллера, более эффективно, чем использование универсальных языков программирования, в т.ч. позволяет разрабатывать программу технологу – специалисту по производству, а не математику-программисту.  Для обеспечения общей базы разработок подобных языков введен международный стандарт IEC 61131-3, определяющий пять групп языков программирования контроллеров:

  1. LD (Ladder Diagram). Язык релейно-контактной логики, позволяет, используя графические представления контактов, реле записать программу последовательной логики, блокиратора, переключателя.

  2. FBD (Functional Block Diagram). Графический язык программирования, предоставляющий библиотеку графических схемотехнических символов для записи программы управления, регулирования, в т.ч. непрерывного технологического процесса. 

  3. SFC (Sequential Function Chart). Графический язык, позволяющий составить программу последовательных (параллельных, циклически выполняемых) операций в виде блок-схемы. 

  4. ST (Structured Text). Язык структурированного текста – высокоуровневый текстовый язык, содержащий все конструкции (операторы) современного языка программирования, но вводящий специальные расширения реального времени.

  5. IL (Instruction List). Набор инструкций – язык программирования контроллера низкого уровня (ассемблер).

Аналогично тому, как в настоящее время большинство программистов в своей работе используют интегрированные среды разработки (IDE, такие как Microsoft Visual Studio, Borland C++ Builder/Delphi и проч.), а не простой текстовый редактор для набора кода и компилятор командной строки; так же и при программировании контроллеров и использовании любого из типов языков программирования контроллеров обычно используется специальная среда поддержки программирования. Наиболее известный универсальный инструмент разработки программ контроллеров на всех вышеописанных типах языков – система ISaGRAF (производитель – CJ International, Франция). Функции среды разработки:

  • Поддержка ведения базы данных (списка сигналов) контроллера;

  • Поддержка программирования: списка программ, совместного использования памяти и процессорного времени, предоставление средств составления (записи) программ;

  • Настройка списка задействованных плат ввода/вывода и их параметров;

  • Настройка последовательных портов и сетевых интерфейсов контроллера;

  • Установка системных параметров ПО и настройка ограничения доступа.

  • Необходимым инструментом программиста является отладчик. В среде программирования контроллера к отладчику предъявляются следующие требования:

  • Отображение списка всех используемых переменных (сигналов), функциональных блоков и т.д. и их взаимосвязей; проверка отсутствия зацикливания ссылок.

  • Наличие окна просмотра текущих значений переменных во время выполнения программы и в точках останова; возможность пошагового выполнения программы.

  • Возможность эмуляции поступления входных аналоговых и дискретных данных.

  1. «Сигнал»: введение понятия

База данных контроллера обычно представляет собой линейно организованную область памяти, в которой хранится множество групп данных, часто называемых сигналами. Контроллер может содержать скалярные, векторные, табличные сигналы различных типов данных: дискретные, аналоговые, логические, строковые.  Каждый сигнал, помимо собственно значения, содержит также множество атрибутов. В таблице приведен их типовой набор:

Атрибут

Описание

1

Name

Уникальное имя сигнала в контроллере

2

Type

Тип сигнала (скалярный, векторный, табличный)

3

DataType

Тип данного

4

Value

Значение

5

Timestamp

Метка времени – время последнего изменения значения сигнала

6

Quality

Признак достоверности

7

Deadband

Зона нечувствительности (порог учета изменения значения сигнала)

8

Inhibit

Флаг защиты значения сигнала от записи (изменений)

9

Units

Текстовая строка для задания единиц измерения

10

Comment

Текстовая строка – комментарий для описания назначения сигнала

11

Limits

Уставки (для аналоговых сигналов) 

12

Limits Deadband

Зоны нечувствительности для каждой из уставок

13

PRBX

Флаг того, что сигнал учитывается при опросе измененных данных

15

SRBX

Флаг того, что при изменении новое значение сигнала спонтанно передается контроллеру верхнего уровня (серверу ДП АСУТП)

Значения сигналов вводятся от датчиков ТИ и ТС или являются производными (расчетными). Помимо определяемых разработчиком, в контроллере обычно присутствует набор предопределенных системных сигналов, значения которых можно использовать в программах, но нельзя изменять, например значение текущего времени, состояние портов ввода/вывода, сигналы диагностики отдельных плат контроллера и т.п. Объединенное множество (список) сигналов определяет область хранения данных контроллера, разделяемую между всеми программами, к которой также предоставляется интерфейс для доступа по некоторому протоколу передачи данных для внешних систем.

  1. ^ Запись алгоритма ПИД–регулирования в виде функциональных блоков

В теории САУ вводятся законы управления, которые реализуются соответствующими регуляторами (пропорциональный (П–регулятор), интегральный (И–регулятор), пропорционально–интегральный, пропорционально–интегрально–дифференцирующий (ПИД–регулятор)). Алгоритмы работы таких регуляторов включены в библиотеку средства разработки; используя стандартные модули из этой библиотеки, можно визуально создать программу. Входные данные для нее – сигналы, хранящиеся в БД контроллера. На рис. 4.1 приведен пример программы, составленной из функциональных блоков.   Рис. 4.1. Запись в виде функциональных блоков алгоритма регулирования непрерывного ТП. На рисунке приведена программа управления краном-регулятором. На входе крана мы имеем нестационарный процесс, на выходе требуется обеспечить некоторое постоянное давление в трубопроводе. Точки ввода (измерения) давления и признака его превышения верхней границы диапазона датчика находятся за краном-регулятором. В модуле AI входной аналоговый сигнал преобразуется в цифровой, опираясь на нулевое значение и диапазон измерения. На основании этого значения и логического параметра превышения верхней границы измерения вычисляется уставка регулятора. Текущее значение давления, значения уставки, пропорционального, интегрального, дифференциального коэффициентов являются входными сигналами для модуля ПИД-регулятора. Выходной сигнал регулятора преобразуется в аналоговый токовый выходной сигнал и, усиливаясь реле управления, изменяет степень открытия крана. 

  1. ^ Текстовая запись программ контроллера

Для программиста наиболее простой и удобный для использования способ программирования контроллеров – запись программ в виде структурированного текста.  Ниже рассмотрено программирование на языке ACCOL-II для контроллеров Bristol Babcock –высокоуровневом модульным технологическим языком программирования. ACCOL-II реализует следующие арифметические операции: вычислительные (+, -, *, /, возведение в степень); сравнения (>, <, =, >=, <=); округления до целого, взятия модуля; вычисления логарифма, экспоненты, квадратного корня, синуса, косинуса, тангенса; операции И, ИЛИ, исключающее ИЛИ, НЕТ; изменение знака; конкатенация строк.

1   2   3   4   5   6   7   8   9   ...   14

хорошо

   1