В системе в качестве памяти программ используется энергонезависимая память емкостью 8 K слов. Адреса: 0 - 177778
ПЛК содержат программно доступные битовые и байтовые области, как указано в Таблице 2.1
В качестве памяти ввода-вывода в системе используется ЗУ емкостью 2 Кбит, а в качестве памяти данных ЗУ емкостью 16 Кбайт.
Данные, записанные в памяти ввода-вывода, не сохраняются при выключении электропитания и при включении выключателя сброса.
Информация, записанная в памяти данных, сохраняется при выключении электропитания, так же как память программы.
| Наименование | Адрес начала | Размер | Примечание |
|---|---|---|---|
| Внешний ввод-вывод | 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 Кбайт |
В системе в качестве прикладной команды используется команда функции. Использование команд функции позволяет реализовать на традиционной релейной схеме операции сложения, вычитания, сравнения, передачи данных и др.
Система команд ПЛК использует 16-битную архитектуру совместимую с ПЛК "TOYOPUC", "УПУ-ТП".
Длина команды и каждого из параметров - по 2 байта.
Адрес ввода-вывода (параметр C, см. примечание 2 к таблице) совмещен с кодом команды.
| Код10 | Мнемоника *1) | Параметры *2) | Длина10 | Комментарий |
|---|---|---|---|---|
| 0 | NOP | 2 | Нет операций | |
| 1 | TNA | C | 2 | AND(И) |
| 2 | TFA | C | 2 | NOT AND(И) |
| 3 | TNO | C | 2 | OR(ИЛИ) |
| 4 | TFO | C | 2 | NOT OR(ИЛИ) |
| 5 | TNE | C | 2 | OR в конце цепи |
| 6 | TFE | C | 2 | NOT OR в конце цепи |
| 7 | SKP | 2 | Пропуск следующей команды | |
| 8 | SON | C | 2 | Включение катушки |
| 9 | SOF | C | 2 | Выключение катушки |
| 10 | YON | C | 2 | Включение катушки по условию |
| 11 | FON | CFSDR | 10 | Прикладная команда |
| 12 | TIM | CN | 4 | Таймер |
| 13 | CTR | CN | 4 | Счетчик |
| 15 | HLT | 2 | Стоп | |
| 16 | JMY | L | 2 | Условный переход |
| 20 | JMN | L | 2 | Переход по неудовлетворению условия |
| 24 | JMP | L | 2 | Безусловный переход |
Примечания:
*1) Колоризация мнемоник:
| Команды | Комментарий |
|---|---|
| TNO,TFO,TNE,TFE | зеленый, вычисления логические OR |
| TNA,TFA | синий, вычисления логические AND |
| SON, SOF, YON, FON, TIM, CTR | коричневый, установка битов вывода |
| SKP, HLT, JMY, JMN, JMP | красный, переходы |
*2) Параметры:
Выполнение программы в ПЛК заключается в последовательном выполнении команд, расположенных в памяти команд начиная c адреса 00000. Последовательность выполнения может меняться лишь при выполнении команд перехода.
Программа завершается концевым фрагментом, который включает в себя инструкцию перехода к адресу 00000.
Однократное выполнение программы от адреса 00000 до концевого фрагмента называется сканом.
Алгоритм работы ПЛК состоит из последовательности действий:
Функционально программа состоит из последовательности цепей.
Цепь - это последовательность логических команд и ветвлений, завершаемых одной из команд установки битов (катушка, счетчик,таймер, функция).
Цепи условно пронумерованы в порядке по возрастания адресов.
На уровне редактирования программ вводится дополнительное понятие - функциональный блок.
Блок состоит из одной или более цепей, выполняющих общую функцию.
Блок может быть включен в программу на этапе сборки проекта. При включении блока все цепи
включаются в состав программы.
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 - выбор дискретности таймера.
| 037738 | 037748 | Период |
|---|---|---|
| 0 | 0 | 0.01c |
| 0 | 1 | 0.1c *после старта РКС |
| 1 | 0 | 1c |
| 1 | 1 | 10c |
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) |
В исходных текстах преимущественно используются символические имена соответствующие контактам ввода-вывода и внутренним областям памяти контроллера. Распределение адресов символьных имен происходит автоматически либо вручную, в соответствии с настройками, при сборке проекта.
При написании и отладке программы Фрегат2005 рекомендуется использовать символические имена элементов вместо их адресов, что позволяет сохранять и повторно использовать функциональные блоки в разных проектах.
Автоматическая система распределения адресов настраивается субмодулем «Таблица символов» на различные варианты аппаратной конфигурации.
Программа Фрегат-2005 может быть использована без изменения исходных текстов при изменении аппаратной конфигурации ПЛК.
Логический контроллер NetPlc - это программная реализация специализированного ПЛК для персонального компьютера.
Основные задачи:
Указанные возможности позволяют реализовать на базе PC автоматизированное рабочее место оператора (SCADA) для управления сетью контроллеров Рис. 1.5.1.
NetPlc выполнен на основе архитектуры памяти и логической системы команд CPU-165, что упрощает его использование специалистами знакомыми с CPU-165. Для отладки NetPlc используются те же средства Фрегат2005, что и для CPU-165.
Программа для NetPlc разрабатывается в редакторе Lad. Для выбора типа контроллера добавлена опция «платформа» в настройках проекта.
Логическая группа команд NET PLC , включая таймеры и счетчики, соответствует системе команд CPU-165.
Функциональные команды отличаются от прототипа. В данную группу включены команды обмена с сетью ПЛК, регистрации событий и обработки данных.
Термином STL (STatement list) в данном документе обозначается программирование в мнемонических инструкциях ПЛК.
Перечень инструкций приведен в разделе "Программная модель ПЛК"
Каждая инструкция располагается в отдельной строке редактора. Инструкция содержит поля: метка, мнемоника, параметры. Цепь может содержать строку комментария.
Текст мнемоники инструкции окрашивается в соответствии с ее типом.
При вводе параметров ссылающихся на области памяти или ввода-вывода используются символические имена.
Для ввода мнемоники и символических параметров используются выпадающие списки. Численные параметры вводятся в текстовых окнах.
Графический язык LAD был предложен для переноса существующих ранее релейно-контактных схем автоматики в ПЛК с минимальными изменениями.
Он позволяет пpедставить объект упpавления как последовательность цепей.
Программа LAD состоит из одной или более цепей. Цепи вычисляются последовательно, от первой до последней.
Цепь может включать множество (ноль и более) контактов включенных параллельно или последовательно, и одной выходной катушки (таймера, счетчика, функции), см примеры цепей на Рис. 2.2.1, 2.2.2, 2.2.3.
Вычисление логической функции проводится слева направо и сверху вниз.
Левый край цепи всегда принимает значение ИСТИНА (соответствует шине питания в релейной схеме).
Состояние контактов:
Способ включения контактов в цепи определяет логическое условие:
Значения контактов могут быть:
Логическая функция: (!a)*b*c = d, где:
Пpоцесс выполнения цепи РКС сводится к последовательной пpовеpке логических условий включения контактов и включения или выключения выходной катушки.
В простейшем случае, когда в цепи нет контактов, происходит включение выходной катушки.
Логическая функция: ((!a)+b+c) = d, где:
В качестве контактов пpинимается любой бит из множества адpесов ввода-вывода. Пpи этом:
Логическая функция: ((!a)*b+c) = d, где:
Поддержка данной системы программирования будет включена в следующие версии Фрегат2005.
Описываемая в данном руководстве подсистема SCADA-HMI находится в стадии разработки и не рекомендуется для самостоятельного применения в ответственных узлах систем управления. По вопросам применения SCADA-HMI обращайтесь к специалистам ООО Автоматика плюс.
SCADA
- программный комплекс для визуализации и диспетчеризации технологических процессов
HMI
- интерфейс человек-машина, часть системы SCADA. Экранные формы,
отображающие результаты работы системы управления и обеспечивающие ввод управляющих сигналов.
Аппаратные значения
- значения измеряемых параметров в представлении ПЛК.
Аппаратные значения могут представлять дискретные сигналы которые представлены в ПЛК одним битом, или аналоговые сигналы, представленные двумя байтами.
Физические значения
- значения, получаемые при обработке аппаратных значений в
элементами в системе HMI/Scada.
Физические значения представляются в соответствии с типом измеряемых величин. Для аналоговых сигналов используется представление в виде числе с плавающей точкой двойной точности. Способ преобразования аппаратных значений в физические и обратно для аналоговых сигналов определяется через минимальное/максимальное значение для обоих значений. Для представления дискретных сигналов используется булевые величины.
Логический контроллер NetPlc
- программная реализация
контроллера на основе архитектуры памяти и логической системы команд CPU-165,
предназначенная для сбора данных с одного или нескольки ПЛК и выполнения программ
обработки принятых данных, регистрации данных и событий.
Логическая группа команд NetPlc , включая таймеры и счетчики, соответствует системе команд CPU-165.
Функциональные команды отличаются от прототипа. В данную группу включены команды обмена с сетью ПЛК, обработки и записи событий и данных в регистратор.
Программа для NetPlc разрабатывается в редакторе Lad Фрегат. Для выбора типа контроллера добавлена опция «платформа» в настройках проекта. Для отладки NetPlc используются те же возможности Фрегат2005, что и для CPU-165.
Для установлении связи с NetPlc необходимо задавать параметр NODE больше 255. При этом настройки номера COM порта и тип ПЛК не действует.
При успешном соединении с NetPlc в окне «Модуля связи» отображается сообщение “NetPlc”.
Среда исполнения организуется модулем "ФрегатСервер":
Первые три задачи выполняются программно в NetPlc. Для поддержки данного режима работы необходимо включить настройку
и разместить в каталоге ФрегатСервер файл соответствующей программы управления NetPlc.
Формы HMI обеспечивают обработку и визуализацию данных.
Элементы управления форм HMI проводят вычисление физических значений измеряемых сигналов выбирая их из памяти NetPlc и выводят данные для визуализации на экран или печать. Каждый элемент управления обрабатывает один или несколько цифровых или аналоговых сигналов.
Загрузка и исполнение форм HMI начинает действовать при включении настройки сервера HMILoad="путь к каталогу форм". Вид и содержание работы формы задается при создании форм в дизайнере интерфейса в модуле «ФрегатБаза».
Доставка данных из контроллеров в память NetPlc выполняется функциональными командами NODE, NWRITE, NREAD. Расписание доставки задается с помощью программирования таймеров, счетчиков или функциональной команды NSYNC.
Обработка аппаратных значений сигналов выполняется командами:
Элементы HMI используют связанные ячейки в памяти NetPlc. Таким образом, связанные ячейки доступны и программе NetPlc и элементам HMI.
Свойства элементов доступны в окне дизайнера в правой части экрана. Общие свойства для большинства элементов:
Ряд свойств доступны при открытии свойства Uobject
Установка элементов на форме HMI производится из главного меню:
Синхронизация - автогенератор
Вырабатывает серию сигналов синхронизации длительностью в один отсчет с управляемым периодом и фазой. Два возможных значения для пары (период, фаза) задаются свойствами:
Входное значение типа «бит» берется из адреса InAddr и управляет установкой пары значений (Period0,Phase0) или (Period1,Phase1).
Выходное значение типа «бит» помещается в память NetPlc с адресом заданным в свойстве OutAddr.
При выполнении элемента выходное значение 1 формируется через каждые (Period) тактов на (Phase) такте. В остальные такты выходное значение равно 0. Для подсчета используется счетчик сканов NetPlc, период сканов задан в настройках сервера. Временные диаграммы работы автогенератора приведены на Рис 2.4.3.
В данном примере использовались значения пар (период, фаза): (5,0) и (10,1). Входной сигнал для элемента - бит NetPlc по адресу 020008, управляет выбором периода и фазы. Выходное значение помещается в память NetPlc по адресу 020018.
Графики формируются элементами «График».
Элемент: Синхронизация - таймер
Использует входное значение Ainput для разрешения работы. В остальном действует аналогично элементу "Автогенератор".
Элемент: Дискретный - базовый
Основные свойства:
Элемент: Дискретный - цветная метка
Дополняет свойства "базового дискретного" элемента цветами фона и текста в состояниях 0 и 1.
Элемент: Дискретный - управляемое разрешение
Дополняет свойства элемента "цветная метка" битом разрешения индикации из указанной ячейки NetPlc.
Элемент: Дискретный - анимация
Дополняет свойства элемента "управляемое разрешение" индексами изображений. При значении 1 в связанной ячейке индекс изображения меняется в заданных пределах, обеспечивая анимационное изображение.
Элемент: Аналоговый - базовый
Основные свойства
Элемент: Аналоговый выход
Позволяет вводить значения физических величин в память NetPlc с преобразованием в аппаратную.
Элемент: Статический - картинка
Статическое изображение задается свойством Uobject-Image
Элемент: Статический - текст
Задает текстовое статическое сообщение. Параметры шрифта задаются в свойстве UObject-Font
Элемент: График
Элемент график накапливает и выводит на экран состояния битовой переменной из областей памяти или ввода-вывода NetPlc.
Свойства:
Элемент: Журнал сообщений
Журнал сообщений в режиме просмотра данных обеспечивает выбор сохраненных файлов за указанную дату, и необходимую фильтрацию для отображения графиков и журналов событий по группам.
Элемент: Дата и время
Обеспечивает индикацию текущего времени в формате ЧЧ.ММ.СС и интервала времени с момента включения.
Регистратор
Регистратор сообщений и данных обеспечивает запись данных и событий в файл.
Данные в регистратор записываются:
Реализован режим накопления данных в течение суток, после чего данные записываются в файл с именем «DD_MM_YYYY.datatable», где:
Цепь:
Контакты:
| Dinput | входной сигнал; |
| N | программируемая задержка отключения задается параметром таймера ; |
| Delay | катушка настройки таймера; |
| Dout | выходной сигнал. |
Описание работы цепи:
Выходной сигнал Dout переключается в «1» одновременно со включением входного сигнала Dinput . При отключении Dinput- переход из «1» в «0» - начинается отсчет задержки выключения на таймере. По окончании задержки Dout переходит в «0». Цепь не чувствительна к быстрым переключениям входного сигнала («дребезг») - если они происходят за время, меньшее задержки на отключение, выходной сигнал остается в «1».
Временная диаграмма:
Цепь:
Контакты:
| Sig | входной сигнал; |
| Form | катушка настройки таймера на заданную длительность; |
| Form[1] | катушка окончания счета таймера; |
| N | параметр таймера равный текущее время формирователя; |
| Formout | выходной сигнал. |
Описание работы цепи:
Выходной сигнал Formout переключается в «1» одновременно со включением входного сигнала Sig . Одновременно начинается отсчет задержки выключения на таймере. По окончании задержки Formout переходит в «0». При отключении Sig - переход из «1» в «0» переключения выходного сигнала не происходит.
Временная диаграмма:
Цепь:
Контакты:
| Set | входной сигнал установки триггера; |
| Reset | входной сигнал сброс триггера. |
| Ctr | катушка настройки счетчика; |
| Ctr[1] | выход триггера; |
| N | параметр счетчика; |
Описание работы цепи:
Сигнал установки триггера Set поступает на катушку настройки счетчика Ctr.
При Set=1 текущее значение счетчика устанавливается в 1, сигнал окончания счета ">",
образующий выход RS-триггера, также в 1. RS-триггер "установлен".
Сигнал Reset поступает на катушку сброса текущего счетчика в 0. При Reset=1 текущее значение
счетчика равно 0 и выход окончания ">" также в 0. RS-триггер "сброшен".
Для корректной работы RS-триггера требуется чтобы активным был только один из входов: Set или Reset.
Временная диаграмма:
Цепь:
Контакты:
| 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 на два.
Временная диаграмма: