1. Программная модель ПЛК CPU-165(166)

1.1. Память

1.1.1. Память программ

В системе в качестве памяти программ используется энергонезависимая память емкостью 8 K слов. Адреса: 0 - 177778

1.1.2. Память данных

ПЛК содержат программно доступные битовые и байтовые области, как указано в Таблице 2.1

В качестве памяти ввода-вывода в системе используется ЗУ емкостью 2 Кбит, а в качестве памяти данных ЗУ емкостью 16 Кбайт.

Данные, записанные в памяти ввода-вывода, не сохраняются при выключении электропитания и при включении выключателя сброса.

Информация, записанная в памяти данных, сохраняется при выключении электропитания, так же как память программы.

Таблица 2.1 Адресное пространство ПЛК
Наименование Адрес начала Размер Примечание
Внешний ввод-вывод 00000 1 Кбит Битовая адресация.
Внутренний (фиктивный) ввод-вывод 02000 1 Кбит
Банк данных 0 04000 2 Кбайт Байтовая адресация.
Банк данных 1 14000 2 Кбайт
Банк данных 2 24000 2 Кбайт
Банк данных 3 34000 2 Кбайт
Банк данных 4 44000 2 Кбайт
Банк данных 5 54000 2 Кбайт
Банк данных 6 64000 2 Кбайт
Банк данных 7 74000 2 Кбайт

В системе в качестве прикладной команды используется команда функции. Использование команд функции позволяет реализовать на традиционной релейной схеме операции сложения, вычитания, сравнения, передачи данных и др.

1.2. Система команд

Система команд ПЛК использует 16-битную архитектуру совместимую с ПЛК "TOYOPUC", "УПУ-ТП". Длина команды и каждого из параметров - по 2 байта.
Адрес ввода-вывода (параметр C, см. примечание 2 к таблице) совмещен с кодом команды.

Таблица 2.2 Система команд ПЛК
Код10Мнемоника *1)Параметры *2)Длина10Комментарий
0NOP2Нет операций
1TNAC2AND(И)
2TFAC2NOT AND(И)
3TNOC2OR(ИЛИ)
4TFOC2NOT OR(ИЛИ)
5TNEC2OR в конце цепи
6TFEC2NOT OR в конце цепи
7SKP2Пропуск следующей команды
8SONC2Включение катушки
9SOFC2Выключение катушки
10YONC2Включение катушки по условию
11FONCFSDR10Прикладная команда
12TIMCN4Таймер
13CTRCN4Счетчик
15HLT2Стоп
16JMYL2Условный переход
20JMNL2Переход по неудовлетворению условия
24JMPL2Безусловный переход

Примечания:

*1) Колоризация мнемоник:

КомандыКомментарий
TNO,TFO,TNE,TFEзеленый, вычисления логические OR
TNA,TFAсиний, вычисления логические AND
SON, SOF, YON, FON, TIM, CTRкоричневый, установка битов вывода
SKP, HLT, JMY, JMN, JMPкрасный, переходы

*2) Параметры:

1.3. Структура и выполнение программы в ПЛК

Выполнение программы в ПЛК заключается в последовательном выполнении команд, расположенных в памяти команд начиная c адреса 00000. Последовательность выполнения может меняться лишь при выполнении команд перехода.

Программа завершается концевым фрагментом, который включает в себя инструкцию перехода к адресу 00000.

Однократное выполнение программы от адреса 00000 до концевого фрагмента называется сканом.

Алгоритм работы ПЛК состоит из последовательности действий:

  1. чтение ввода-вывода;
  2. однократное выполнение программы от адреса 00000 до концевого фрагмента (скан);
  3. запись ввода-вывода;

Функционально программа состоит из последовательности цепей.

Цепь - это последовательность логических команд и ветвлений, завершаемых одной из команд установки битов (катушка, счетчик,таймер, функция).

Цепи условно пронумерованы в порядке по возрастания адресов.

На уровне редактирования программ вводится дополнительное понятие - функциональный блок.

Блок состоит из одной или более цепей, выполняющих общую функцию.

Блок может быть включен в программу на этапе сборки проекта. При включении блока все цепи включаются в состав программы.

1.4. Специальные адреса ввода-вывода и памяти

1. Адреса ввода-вывода с 030008 по 034778 включительно - энергонезависимые.

2. Байт ввода-вывода 037508 является аппаратным генератором частоты.

Аппаратный генератор частот:
Имя Адрес8 Период
АГЧ0_1 3750 0,1с
АГЧ0_2 3751 0,2с
АГЧ0_4 3752 0,4с
АГЧ0_8 3753 0,8с
АГЧ1_6 3754 1,6с
АГЧ3_2 3755 3,2с
АГЧ6_4 3756 6,4с
АГЧ12_8 3757 12,8с

Частоты АГЧ можно использовать для организации выполнения периодических процессов.

3. Бит 037608 обеспечивает выполнение функций в каждом скане.

4. Бит 037708 - 0 - нормальная работа, 1 - аварийный останов с кодом ошибки 11 (индикатор ошибки мигает 11 раз). Устанавливается пользователем для аварийного останова РКС - программы.

5. Бит 037718 и 037728 - ошибки в функциональных командах. Устанавливаются функциональными командами и анализируются пользователем.

6. Биты 037738 и 037748 - выбор дискретности таймера.
037738037748Период
000.01c
010.1c *после старта РКС
101c
1110c

7. Бит 037758 - управление выходом реле готовности: 1- включен, 0 - выключен. Устанавливается пользователем для управления реле готовности. 

8. Бит 037768 - управление сигналом OUTENABLE: 1- выходы модулей разрешены, 0 - запрещены. Устанавливается пользователем для управления сигналом OUTENABLE. 

9. Бит 037778 - разряд батареи: 1 - разряжена, 0 - норма. Устанавливается автоматически в зависимости от состояния батареи и анализируется пользователем. 

10. Вся память данных и программ - энергонезависима, поэтому техпроцесс можно возобновить после сбоя по питанию. 

11. Список абонентов сети “ProfiBus РLUS” выведен в память данных (32 байта начиная с адреса 777408 . 00 - абонент отсутствует , FF - присутствует ) 

12. Поддержка часов реального времени (RTC).
Восемь байт с 777008 по 777078 включительно зарезервированы под данные часов реального времени, которые представлены в ВСD - коде.
Байтзначение
777008управление:
0- отсчет времени,
не 0- установка времени
777018секунды (0-59)
777028минуты(0-59)
777038часы (0-23)
777048день (1-31)
777058месяц (1-12)
777068год (0-99)
777078день недели (0-6)
Для установки времени выполняется последовательность действий:

  1. в байт управления 777008 записывается 1;
  2. в байты 777018-777078 - новое время (в ВСD - коде);
  3. в байт управления 777008 - 0.

1.5. Символические имена

В исходных текстах преимущественно используются символические имена соответствующие контактам ввода-вывода и внутренним областям памяти контроллера. Распределение адресов символьных имен происходит автоматически либо вручную, в соответствии с настройками, при сборке проекта.

При написании и отладке программы Фрегат2005 рекомендуется использовать символические имена элементов вместо их адресов, что позволяет сохранять и повторно использовать функциональные блоки в разных проектах.

Автоматическая система распределения адресов настраивается субмодулем «Таблица символов» на различные варианты аппаратной конфигурации.

Программа Фрегат-2005 может быть использована без изменения исходных текстов при изменении аппаратной конфигурации ПЛК.

1.5. NetPlc

Логический контроллер NetPlc - это программная реализация специализированного ПЛК для персонального компьютера.

Основные задачи:

  1. обмен данными с сетью ПЛК по заданному расписанию;
  2. выполнения программ обработки принятых данных;
  3. регистрация данных и событий в базе данных;
  4. реакции на аварийные сигналы;
  5. взаимодействие с формами визуализации (HMI).

NetPlc
Рис. 1.5.1 Схема сети ПЛК с NetPlc.

Указанные возможности позволяют реализовать на базе PC автоматизированное рабочее место оператора (SCADA) для управления сетью контроллеров Рис. 1.5.1.

NetPlc выполнен на основе архитектуры памяти и логической системы команд CPU-165, что упрощает его использование специалистами знакомыми с CPU-165. Для отладки NetPlc используются те же средства Фрегат2005, что и для CPU-165.

Программа для NetPlc разрабатывается в редакторе Lad. Для выбора типа контроллера добавлена опция «платформа» в настройках проекта.

Логическая группа команд NET PLC , включая таймеры и счетчики, соответствует системе команд CPU-165.

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

2. Поддерживаемые системы программирования

2.1. STL - список инструкций

Термином STL (STatement list) в данном документе обозначается программирование в мнемонических инструкциях ПЛК.

Перечень инструкций приведен в разделе "Программная модель ПЛК"

Каждая инструкция располагается в отдельной строке редактора. Инструкция содержит поля: метка, мнемоника, параметры. Цепь может содержать строку комментария.

Текст мнемоники инструкции окрашивается в соответствии с ее типом.

Вид редактора STL

При вводе параметров ссылающихся на области памяти или ввода-вывода используются символические имена.

Для ввода мнемоники и символических параметров используются выпадающие списки. Численные параметры вводятся в текстовых окнах.

2.2. LAD(РКС) - релейно-контактная схема

Графический язык LAD был предложен для переноса существующих ранее релейно-контактных схем автоматики в ПЛК с минимальными изменениями.

Он позволяет пpедставить объект упpавления как последовательность цепей.

Программа LAD состоит из одной или более цепей. Цепи вычисляются последовательно, от первой до последней.

Цепь может включать множество (ноль и более) контактов включенных параллельно или последовательно, и одной выходной катушки (таймера, счетчика, функции), см примеры цепей на Рис. 2.2.1, 2.2.2, 2.2.3.

Вычисление логической функции проводится слева направо и сверху вниз.

Левый край цепи всегда принимает значение ИСТИНА (соответствует шине питания в релейной схеме).

Состояние контактов:

Способ включения контактов в цепи определяет логическое условие:

Значения контактов могут быть:

LAD пример цепи AND
Рис. 2.2.1 Пример цепи с последовательными соединениями контактов.

Логическая функция: (!a)*b*c = d, где:

  1. ! инверсия (НЕ),
  2. * логическое умножение (И),
  3. + логическое сложение (ИЛИ),
  4. = присвоение результата.

Пpоцесс выполнения цепи РКС сводится к последовательной пpовеpке логических условий включения контактов и включения или выключения выходной катушки.

В простейшем случае, когда в цепи нет контактов, происходит включение выходной катушки.

LAD пример цепи AND
Рис. 2.2.2 LAD пример цепи с параллельными соединениями

Логическая функция: ((!a)+b+c) = d, где:

  1. ! инверсия (НЕ),
  2. * логическое умножение (И),
  3. + логическое сложение (ИЛИ),
  4. = присвоение результата.

В качестве контактов пpинимается любой бит из множества адpесов ввода-вывода. Пpи этом:

LAD пример смешанной цепи
Рис. 2.2.3 LAD пример смешанной цепи

Логическая функция: ((!a)*b+c) = d, где:

  1. ! инверсия (НЕ),
  2. * логическое умножение (И),
  3. + логическое сложение (ИЛИ),
  4. = присвоение результата.

2.3. FBD - функциональная схема

Поддержка данной системы программирования будет включена в следующие версии Фрегат2005.

2.4. Программирование HMI/SCADA

Описываемая в данном руководстве подсистема SCADA-HMI находится в стадии разработки и не рекомендуется для самостоятельного применения в ответственных узлах систем управления. По вопросам применения SCADA-HMI обращайтесь к специалистам ООО Автоматика плюс.

2.4.1 Основные понятия

SCADA
- программный комплекс для визуализации и диспетчеризации технологических процессов

HMI
- интерфейс человек-машина, часть системы SCADA. Экранные формы, отображающие результаты работы системы управления и обеспечивающие ввод управляющих сигналов.

Аппаратные значения
- значения измеряемых параметров в представлении ПЛК.

Аппаратные значения могут представлять дискретные сигналы которые представлены в ПЛК одним битом, или аналоговые сигналы, представленные двумя байтами.

Физические значения
- значения, получаемые при обработке аппаратных значений в элементами в системе HMI/Scada.

Установка связи с NetPlc
Рис. 2.4.1 Установка связи с NetPlc
  1. node = 256,
  2. устройство = симулятор,
  3. При успешном соединении в окне подключения текст "NetPlc".

Физические значения представляются в соответствии с типом измеряемых величин. Для аналоговых сигналов используется представление в виде числе с плавающей точкой двойной точности. Способ преобразования аппаратных значений в физические и обратно для аналоговых сигналов определяется через минимальное/максимальное значение для обоих значений. Для представления дискретных сигналов используется булевые величины.

Логический контроллер NetPlc
- программная реализация контроллера на основе архитектуры памяти и логической системы команд CPU-165, предназначенная для сбора данных с одного или нескольки ПЛК и выполнения программ обработки принятых данных, регистрации данных и событий.

Логическая группа команд NetPlc , включая таймеры и счетчики, соответствует системе команд CPU-165.

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

Программа для NetPlc разрабатывается в редакторе Lad Фрегат. Для выбора типа контроллера добавлена опция «платформа» в настройках проекта. Для отладки NetPlc используются те же возможности Фрегат2005, что и для CPU-165.

Для установлении связи с NetPlc необходимо задавать параметр NODE больше 255. При этом настройки номера COM порта и тип ПЛК не действует.

При успешном соединении с NetPlc в окне «Модуля связи» отображается сообщение “NetPlc”.

2.4.2 Среда исполнения SCADA задач

Среда исполнения организуется модулем "ФрегатСервер":

  1. доставка данных от контроллеров по заданному расписанию;
  2. запуск программ обработки данных, выявление и индикация аварий;
  3. регистрация данных и сообщений в системе для последующего анализа;
  4. визуализация форм HMI в режиме реального времени

Первые три задачи выполняются программно в NetPlc. Для поддержки данного режима работы необходимо включить настройку

и разместить в каталоге ФрегатСервер файл соответствующей программы управления NetPlc.

Формы HMI обеспечивают обработку и визуализацию данных.

Элементы управления форм HMI проводят вычисление физических значений измеряемых сигналов выбирая их из памяти NetPlc и выводят данные для визуализации на экран или печать. Каждый элемент управления обрабатывает один или несколько цифровых или аналоговых сигналов.

Загрузка и исполнение форм HMI начинает действовать при включении настройки сервера HMILoad="путь к каталогу форм". Вид и содержание работы формы задается при создании форм в дизайнере интерфейса в модуле «ФрегатБаза».

Среда исполнения SCADA
Рис. 2.4.2 Среда исполнения SCADA

  1. доставка данных,
  2. обработка данных,
  3. регистрация данных,
  4. визуализация форм HMI.

Доставка данных из контроллеров в память NetPlc выполняется функциональными командами NODE, NWRITE, NREAD. Расписание доставки задается с помощью программирования таймеров, счетчиков или функциональной команды NSYNC.

Обработка аппаратных значений сигналов выполняется командами:

2.4.3 Элементы управления форм HMI

Элементы HMI используют связанные ячейки в памяти NetPlc. Таким образом, связанные ячейки доступны и программе NetPlc и элементам HMI.

Свойства элементов доступны в окне дизайнера в правой части экрана. Общие свойства для большинства элементов:

Ряд свойств доступны при открытии свойства Uobject

Установка элементов на форме HMI производится из главного меню:

Синхронизация - автогенератор

Элемент: Синхронизация - автогенератор
Рис. 2.4.4 Элемент Синхронизация - автогенератор

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

Входное значение типа «бит» берется из адреса InAddr и управляет установкой пары значений (Period0,Phase0) или (Period1,Phase1).

Выходное значение типа «бит» помещается в память NetPlc с адресом заданным в свойстве OutAddr.

При выполнении элемента выходное значение 1 формируется через каждые (Period) тактов на (Phase) такте. В остальные такты выходное значение равно 0. Для подсчета используется счетчик сканов NetPlc, период сканов задан в настройках сервера. Временные диаграммы работы автогенератора приведены на Рис 2.4.3.

Элемент Синхронизация - автогенератор
Рис. 2.4.3 Элемент Синхронизация - автогенератор

В данном примере использовались значения пар (период, фаза): (5,0) и (10,1). Входной сигнал для элемента - бит NetPlc по адресу 020008, управляет выбором периода и фазы. Выходное значение помещается в память NetPlc по адресу 020018.

Графики формируются элементами «График».

Элемент: Синхронизация - таймер

Использует входное значение Ainput для разрешения работы. В остальном действует аналогично элементу "Автогенератор".

Элемент: Дискретный - базовый

Основные свойства:

Элемент: Дискретный - цветная метка

Дополняет свойства "базового дискретного" элемента цветами фона и текста в состояниях 0 и 1.

Элемент: Дискретный - управляемое разрешение

Дополняет свойства элемента "цветная метка" битом разрешения индикации из указанной ячейки NetPlc.

Элемент: Дискретный - анимация

Дополняет свойства элемента "управляемое разрешение" индексами изображений. При значении 1 в связанной ячейке индекс изображения меняется в заданных пределах, обеспечивая анимационное изображение.

Элемент: Аналоговый - базовый

Основные свойства

Аналоговые элементы
Рис. 2.4.5 Аналоговые элементы

  1. цифровой,
  2. горизонтальная шкала,
  3. круговая шкала,
  4. график
  5. полукруговая шкала,
  6. аналоговый выход.

Элемент: Аналоговый выход

Позволяет вводить значения физических величин в память NetPlc с преобразованием в аппаратную.

Элемент: Статический - картинка

Статическое изображение задается свойством Uobject-Image

Элемент: Статический - текст

Задает текстовое статическое сообщение. Параметры шрифта задаются в свойстве UObject-Font

Элемент: График

Элемент график накапливает и выводит на экран состояния битовой переменной из областей памяти или ввода-вывода NetPlc.

Свойства:

Элемент: Журнал сообщений

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

Элемент: Дата и время

Обеспечивает индикацию текущего времени в формате ЧЧ.ММ.СС и интервала времени с момента включения.

Регистратор

Регистратор сообщений и данных обеспечивает запись данных и событий в файл.

Данные в регистратор записываются:

Реализован режим накопления данных в течение суток, после чего данные записываются в файл с именем «DD_MM_YYYY.datatable», где:

3. Примеры программирования на РКС.

3.1. Задержка на выключение

Цепь:

Контакты:
Dinputвходной сигнал;
N программируемая задержка отключения задается параметром таймера ;
Delayкатушка настройки таймера;
Doutвыходной сигнал.

Описание работы цепи:

Выходной сигнал Dout переключается в «1» одновременно со включением входного сигнала Dinput . При отключении Dinput- переход из «1» в «0» - начинается отсчет задержки выключения на таймере. По окончании задержки Dout переходит в «0». Цепь не чувствительна к быстрым переключениям входного сигнала («дребезг») - если они происходят за время, меньшее задержки на отключение, выходной сигнал остается в «1».

Временная диаграмма:

3.2. Формирование длительности выходного сигнала

Цепь:

Контакты:
Sigвходной сигнал;
Formкатушка настройки таймера на заданную длительность;
Form[1]катушка окончания счета таймера;
Nпараметр таймера равный текущее время формирователя;
Formoutвыходной сигнал.

Описание работы цепи:

Выходной сигнал Formout переключается в «1» одновременно со включением входного сигнала Sig . Одновременно начинается отсчет задержки выключения на таймере. По окончании задержки Formout переходит в «0». При отключении Sig - переход из «1» в «0» переключения выходного сигнала не происходит.

Временная диаграмма:

3.3. RS-триггер

Цепь:

Контакты:
Setвходной сигнал установки триггера;
Resetвходной сигнал сброс триггера.
Ctrкатушка настройки счетчика;
Ctr[1]выход триггера;
Nпараметр счетчика;

Описание работы цепи:

Сигнал установки триггера Set поступает на катушку настройки счетчика Ctr. При Set=1 текущее значение счетчика устанавливается в 1, сигнал окончания счета ">", образующий выход RS-триггера, также в 1. RS-триггер "установлен".
Сигнал Reset поступает на катушку сброса текущего счетчика в 0. При Reset=1 текущее значение счетчика равно 0 и выход окончания ">" также в 0. RS-триггер "сброшен".
Для корректной работы RS-триггера требуется чтобы активным был только один из входов: Set или Reset.

Временная диаграмма:

3.4. T-триггер

Цепь:

Контакты:
TTCсчетный вход T-триггера;
TAкатушка настройки счетчика TA;
TA[1]входной сигнал сброс первого счетчика.
TA[2]выход окончания счета; выход T-триггера;
N=1параметр первого счетчика;
TBкатушка настройки счетчика TB;
TB[1]входной сигнал сброс счетчика.
TB[2]выход окончания счета;
N=2параметр второго счетчика;

Описание работы цепи:

Счетчик TA считает до первого такта, затем устанавливает сигнал ">", который является выходом T-триггера, в 1.
Счетчик TB считает до двух тактов, затем подает сигнал сброса TB[2] на вход TA[1] счетчика TA.
Сигнал сброса TB[2] появляется один раз за два периода входного сигнала TTC и активен лишь в течение одного скана, затем он автоматически снимается. Но в момент активности TB[2] счетчик TA сброшен и не считает.
Таким образом выход счетчика TA[2] работает в режиме деления входной частоты TTC на два.

Временная диаграмма: