АЛМАТИНСКИЙ ИНСТИТУТ ЭНЕРГЕТИКИ И СВЯЗИ

Кафедра Инженерной кибернетики

 

 

Микропроцессорные комплексы в системах управления

 

Конспект лекций

для студентов всех форм обучения специальностей 050702 – Автоматизация и управление

 

 

Алматы 2009

СОСТАВИТЕЛЬ: А.А.Копесбаева Микропроцессорные комплексы в системах управления. Конспект лекций для студентов всех форм обучения специальностей 050702 – Автоматизация и управление - Алматы: АИЭС, 2009 -   47 с.           

Настоящий конспект лекций включают в себя 15 конспектов лекций по дисциплине «Микропроцессорные комплексы в системах управления» в рамках основных дисциплин для специализации «Автоматизация и управление».

         Конспект лекций предназначен для студентов всех форм обучения специальностей 050702 – Автоматизация и управление.

             

         Лекция 1. Задачи и роль микропроцессорных контроллеров в системе управления исполнительными механизмами

        

         Для современных локальных систем автоматического регулирования и управления основным элементом является микропроцессорный контроллер.

В традиционном представлении на систему управления воздействуют Хm  -входные воздействия от исполнительных механизмов ИМ, различные возмущающие факторы fk не учтенные в системах управления, выходные величины объекта Yn измеряются датчиками. Задача микропроцессорной системы – принять сигнал от аналоговых ДА и дискретных ДД датчиков, а затем выработать выходной сигналы на исполнительные механизмы ИМ.

Рисунок 1- Локальная микропроцессорная система

 

         Микропроцессорная система должна работать в реальном масштабе времени. Для синхронизации элементов системы все устройства снабжены таймерами. Во временном отношении сигналы с аналоговых датчиков обрабатывается дольше всего. Количество аналоговых каналов ограничено, и их выбор определяется коммутатором. Распределение выходных управляющих аналоговых сигналов выполняет коммутатор ЦАП. Быстродействие центрального процессора управления ЦПУ может быть обеспечено устройствами прерываний.  Таким образом, задачи микропроцессоров:

·   управление и регулирование;

·   сбор и обработка технологических параметров;

·   отображение и контроль данных;

·   сигнализация и защита от аварийных ситуаций;

·   диспетчеризация, архивирование и протоколирование.

Более сложные системы автоматизации решают те же задачи с большим количеством информации. Система локальной автоматизации является объектом управления для системы верхнего уровня. На современном рынке производства системами оперативного управления производственными процессами или MES системами называют системы, обеспечивающие эффективное исполнение в производственных операциях Оперативное управление обеспечивается и начинается с цехового (локального) уровня и заканчивается верхним уровнем ERP систем. Для этого была создана международная ассоциация поставщиков решений для промышленных предприятий MESA (Manufacturing Enterprise Solution Association). MESA контролирует, регулирует и разрабатывает единые протоколы для решения следующих задач:

·   распределение и контроль статуса ресурса

·   диспетчеризация производственной задачи

·   сбор данных и управление качеством

·   управление технологическим обслуживанием

·   анализ производительности

·   составление производственного расписания

·   контроль документов

·   управление трудовыми ресурсами

·   координация технических процессов и отслеживание готовой продукции.

Стандарт, по которому работает MES, - система ISA95. Он устанавливается для программных функций, физических  моделей, производственных мощностей, производственных и базисных процессов.

В соответствии с перечисленными задачами микропроцессорные контроллеры и системы можно разделить подобно тому, как разделяется АСУТП:

·   информационно-управленческие системы

·   системы сбора и обработки

·   системы защиты

·   системы тестирования и контроля

·   SCADA – системы.

 

Лекция 2. Классификация микропроцессоров

 

            Существует множество критериев классификации микропроцессорных элементов. Приведем классификацию микропроцессорных элементов с точки зрения их использования в задачах автоматизации. История развития микропроцессоров такова, что их создание  было связано с проблемами использования их в задачах автоматизации. Однако развитие микропроцессоров в направлении улучшения их характеристик в задачах управления объектами в реальном масштабе времени привело к возникновению мощных вычислительных систем – персональных компьютеров. Всемирное развитие микропроцессорной техники в задачах управления относится к 90-м годам 20 века. Это развитие связано с повсеместным применением на рынке контроллеров Гарвардской архитектуры. Свободно программируемые контроллеры (СПЛК) предназначены для автоматизации различных областей производства. Это направление получило развитие еще с 70-х годов 20 века. В настоящий момент это направление развитие является наиболее распространенным.

 

Т а б л и ц а 1 -  Классификация микроконтроллеров

 

СПЛК

Гарвардская архитектура

Фон- Неймановская архитектура

1.Блочно-модульный принцип организации элементов

2.Ориентация на распределенные системы АСУТП

3.Обработка сложных форматов данных.

4.Развитый интерфейс пользователя

5.Совместимость с широким кругом программных продуктов

6.Развитая библиотека алгоритмов

 

1. Двухшинная организация команд и данных

2. Большой набор регистров

3. Раздельное адресное пространство команд и данных

4.Конвеерный тип выполнения команд

5.Высокие скорости выполнения команд

6. Небольшой набор инструкций

7. Два способа адресации

 

1.Одношинная организация команд и данных

2Традиционный

набор регистров

3.Совместное адресное пространство команд и данных

4. Зависимость скорости выполнения команд от способа адресации и вида команды

5.Большой набор команд и способов адресации

 

 

 

         Современное состояние программно-технического комплекса микропроцессорных систем

 

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

SIMATIC IT - это модульная система, состоящая из слаженно работающих программных компонентов для решения всех необходимых MES задач, описанных в стандарте ISA95.

Он состоит из следующих основных компонентов:

SIMATIC IT Production Suite - среда графического моделирования производства и набор компонентов для реализации базовых MES функций, описанных в стандарте S95.

SIMATIC IT Historian - система управления информацией, используемая для сбора, хранения и анализа производственных данных.

SIMATIC IT Unilab - система управления лабораторной информацией.

SIMATIC IT Interspec - система управления спецификациями продукции и цепочек поставок на уровне всего предприятия

Программно-технический комплекс СПЛК включает в себя:

·   программируемые контроллеры;

·   устройство децентрализованной периферии;

·   устройства человеко-машинного интерфейса;

·   промышленные сети;

·   интегрированные системы управления непрерывными процессами;

·   системы цифрового управления специфическими объектами;

·   промышленные компьютеры;

·   программное обеспечение для всех этих единиц.

 

         Лекция 3. Временные характеристики СПЛК и инструменты программирования ПЛК

 

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

В качестве временной характеристики применяется время реакции и время опроса контроллера.

Время реакции – это время с момента изменения состояния системы до момента выработки соответствующей реакции. Время реакции оказывается зависимым от числа одновременно обрабатываемых событий.

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

 

 

Рисунок 2- Соотношения временных параметров контроллера

 

В производстве СПЛК необходимо выделить три аспекта:

·   производство СПЛК;

·   средства программирования;

·   диспетчеризация систем.

Средства программирования должны обеспечивать обмен информации с диспетчерскими системами. Это достигается использованием протокола обмена данными OPC (OLE for Process Control), который позволяет согласовать все составляющие. Кроме того, известны протоколы обмена информации между различными СПЛК. СПЛК, объединяясь в сеть, образуют промышленную сеть Fieldbus. Вот некоторые из известных типов промышленных сетей: Bitbus, Motbus, Profibus, CANopen, Device Net.

Известна и другая технология разработчиков СПЛК: разработка только программных продуктов без технической поддержки. Примерами таких программных продуктов являются программные обеспечения CodeSys-3S Smart-Software Solutions ( сайт 3S-software.com), IsagraphCS International ( сайт Isagraph.com), MultiProg Knoepper und Wiege Software (сайт kw-software.de), Open PCS Infoteam Software GmbH (сайт infoteam.de).

 

         Инструменты программирования ПЛК

 

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

Графический редактор должен обеспечить автоматическое соединение компонентов графических элементов: блоков, контактов, катушек и т.д. Автоматическую расстановку компонентов, автоматическую нумерацию цепей, автоматическое редактирование групп элементов, масштабирование изображений, отображение в виде оживших тексов и рисунков.

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

Средства управления проектом выполняют автоматический вызов и настройку компонентов проекта, управление и настройку процессов компиляции, управление библиотеками, составление документации проекта; обеспечивают средства безопасности, поиск и замену, средства тестирования, экспорт и импорт.

 

         Лекция 4. Определение свободно программируемых логических контроллеров  - СПЛК

       

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

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

       На нынешний момент лидерами производства, обслуживания и проектирования СПЛК являются:

·        Micro Logix Allen-Bradley (Rockwell Automatic) (США).

·        Schneider Electric   Twido  (Франция),

·        Siemens (Германия),

·         AВВ(Германия).

     Техническое и программное обеспечение СПЛК подчинено единым стандартом МЭК 61131-3. В этот стандарт входят стандарты, как по аппаратному, так и по программному обеспечению. Единым в этом стандарте является подход: аппаратное проектирование должно придерживаться принципов проектирования автоматизированных систем.

 

Входы и выходы  СПЛК

         Входы:                                                     Выходы:

- бинарный вход “0”                                   - катушки реле

- бинарный вход “1”                                   - световая сигнализация

- кнопка                                                        - исполнительный механизм 

- аналоговый вход                                       - исполнительные катушки  

- вольтметр, амперметр

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

 

Рисунок 3 - Входы и выходы СПЛК

 

В состав модулей СПЛК входят: центральный процессор управления (ЦПУ), интерфейсные модули ввода (ВХОДЫ) и вывода (ВЫХОДЫ). СПЛК работает следующим образом: читает состояние входных сигналов, выполняет прикладную программу пользователя и устанавливает в соответствии с алгоритмом выходные сигналы.

        Основным видом обрабатываемых СПЛК сигналов являются дискретные сигналы. СПЛК часто называют дискретным автоматом. Дискретный автомат– это любое устройство, которое под каким-либо воздействием принимает положение «включить- выключить». Например, пневматический исполнительный механизм цилиндр, электромагнитное реле, вращающийся трансформатор, шаговый двигатель. В отличие от остальных дискретных автоматов, СПЛК обладает свойством программируемости.

Основной вид входных и выходных сигналов – это бинарный сигнал. Такой вид сигналов подают конечные датчики, датчики дискретного включения по положению, кнопки, переключатели, электромагнитные реле, маломощные электродвигатели, различные виды сигнализации. При бинарных входных и выходных сигналах, СПЛК – это лишь дискретный автомат. Основная особенность СПЛК –  наличие аналоговых сигналов. Аналоговые сигналы – это сигналы о реальных физических величинах: о температуре, давлении, напряжении, силе тока, уровне жидкости. Обрабатывая аналоговые сигналы, СПЛК должен обладать возможностями персонального компьютера, то есть выполнять арифметические операции любой сложности и с высокой степенью точности, преобразовывать и корректировать любые диапазоны аналоговых сигналов. В связи с этим к аналоговым входам устанавливаются высокие требования:

1)     Высокая разрядность аналого-цифрового преобразователя

2)     Широкий диапазон изменения сигнала

3)     Высокие скорости преобразования сигналов

4)     Симметрия и дифференциация входных сигналов

5)     Низкие уровни шума на входе

6)     Исключение нелинейности на входе

7)     Наличие автоколлибровки

8)     Наличие входного фильтра

9)     Возможность изменения коэффициента усиления АЦП программным путем.      

         Программно присутствуют 2 единицы: прикладная программа и операционная система. В обязанность операционной системы входит согласование сигналов СПЛК с сигналами программатора. Операционная система должна выполнить следующий цикл работы контроллера: чтение входов, выполнение кода пользователя, установку выходов. Это периодически выполняемая процедура и есть цикл опроса контроллера, которая параметрируется. Фактически контроллер может выполнять несколько задач одновременно – это выполнение происходит в псевдопараллельном режиме. На самом деле, задачи выполняются парциально. Все это делает операционная система контроллера.

 

         Условия работы СПЛК.

 

Еще одной особенностью СПЛК является его работа в тяжелых условиях производства, поэтому необходимо предусмотреть все виды защит: термоустойчивость, виброустойчивость, противоударность, влагонепроницаемость, пылезащищенность, магнитонепроницаемость, ударостойкость.

СПЛК – это конструктивно законченное изделие, физическое исполнение которого определяется требуемой степенью защиты, начиная от контроллеров в легких пластиковых корпусах, предназначенных для монтажа в шкафу (степень защиты IP20), до герметичных устройств в литых металлических корпусах, предназначенных для работы в особо жестких условиях.

В условиях производства СПЛК должен обмениваться информациями с другими СПЛК по промышленной сети Fieldbus (рисунок 4), с устройством программирования и отладки, с информационными устройствами (датчиками), с исполнительными механизмами (ИМ), с базами данных посредством сервера баз данных ОРС, с абонентами локальной сети посредством служб автоматизированной системы управления АСУ. В этой иерархии СПЛК находится на самом нижнем уровне – на уровне исполнения технологического процесса. Многие из этих задач СПЛК должен выполнить в реальном масштабе времени. Это еще одна особенность СПЛК, в отличие от персональных компьютеров.

 

 

Рисунок 4 - СПЛК в производственном процессе

СПЛК является первым шагом при построении систем автоматизации. Это объясняется тем, что необходимость автоматизации отдельного механизма или установки всегда наиболее очевидна. Она дает быстрый экономический эффект, улучшает качество производства, позволяет избежать физически тяжелой и рутинной работы.

         Следующий за СПЛК уровень производства позволяет организовать сбор и оперативное диспетчерское управление (SCADA -  Supervisory Control And Data Acquisition). Диспетчерские системы позволяют визуализировать реальный технологических процесс, накапливают данные с реального оборудования, проводят хранение и анализ данных, определяют критические ситуации  и производят оповещение персонала по каналам связи, формируют данные для экономических характеристик производства.

         Современное производство управляется распределенными системами. В распределенных системах каждый СПЛК решает локальную задачу. Задача синхронизации управления выполняется компьютерами  среднего звена АСУ.

 

         Лекция 5. Правила программирования и конструкции языков программирования СПЛК

 

В рамках стандарта МЭК 61131-3 для программирования используется три разновидности языков программирования: язык списка операций STL, язык релейно-контакторных схем LAD, язык функциональных блоков FBD.

Программирование контроллеров фирмы Siemens производится в среде создания и управления проектами Simatic Manager. На рисунке 5 приведена иерархия языков программирования этой среды. Язык программирования С7(М7) предназначен для программирования системных функций контроллеров и не используется потребителями контроллера, а значит, этот язык не открыт для широкого круга пользователей. Все программное обеспечение Siemens базируется на языке S7 или STEP7. STEP7 - это язык программирования для любого пользователя. Программирование заключается в пошаговом описании ситуации технологического процесса. В язык STEP7 входят язык LAD – язык контактного плана, язык STL – язык список инструкций ассемблера, а также язык  FBD -  язык функциональных блок-диаграмм.

 

Рисунок 5 - Состав программного продукта контроллера Simatic.

 

Язык контактного плана LAD (рисунок 6) представляет собой последовательность из электрических сетей. Правый контакт сети (условно «плюс») уже имеется, пользователь набирает эту сеть и должен закончить катушкой или блоком. Автоматически появляется двойная шина электрической сети, условный    минус.

 

Рисунок 6 - Язык контактного плана LAD

 

        Язык STL  (рисунок 7) также может состоять из последовательности сетей, а может быть написан в одной сети. Логически каждая сеть представляет собой отдельную технологическую ситуацию, поэтому каждая сеть должна завершиться  командой, изменяющей область памяти котроллера. Изменению могут подлежать внутренние области памяти контроллера, область памяти выходов и не могут быть изменены программно области памяти входов. Это понятно, изменения в области памяти входов связаны с изменениями входной информации, то есть с изменением состояния реальных физических устройств на входах контроллера. Реальные физические устройства на выходах контроллера изменяют свое состояние с изменением от программных единиц контроллера.

 

Рисунок 7 - Язык список операций STL

 

Язык программирования FBD (рисунок 8) предназначен для инженеров системотехников, привыкших конструировать ситуации технологического процесса в виде функциональных блоков.

 

 

 

Рисунок 8 - Язык программирования FBD

        

Язык программирования LAD предназначен для инженеров по автоматизации, привыкших проектировать технологические ситуации на релейно-контакторных схемах. Наиболее экономичным с точки зрения занимаемого объема памяти и наиболее быстродействующим является программа, написанная на языке   STL. Также в настоящий момент на рынке труда больше программистов, чем инженеров наладчиков релейно-контакторных схем. Поэтому наиболее актуальным является обучение на языке STL. Все операции рассмотрим на этом языке.

Рисунок 9 - Структура команд на языке STL

 

          Метка - это не обязательный компонент операции, должна состоять не более чем из четырех символов, начинается с английской буквы или с символа “_”, а заканчивается двоеточием. Действие – это есть оператор языка, действию подлежит переменная, находящаяся по конкретному адресу: описание задания для CPU (такие задания, например, как load [загрузить], scan [считать], compare [сравнить] и т.д.). Адрес - информация, необходимая для выполнения действия (например, абсолютный адрес IW12, символьный адрес некоторой переменной ANALOGVALUE_1 или некоторой константы W#16#F001 и т. д.). Отдельные операторы не требуют задания адреса. Комментарий – не обязательный компонент, начинается с 2-х косых черт ”//”.  

         Логические операции на языке STL

Функция AND (в синтаксисе языка записывается одной буквой А) связывает два двоичных сигнала и возвращает результат логической операции RLO, равный "1", если оба эти сигнала (оба результата проверки) равны "1".

Функция OR (в синтаксисе языка записывается одной буквой О) связывает два двоичных сигнала и возвращает результат логической операции RLO, равный "1", если хоть один из этих сигналов (один из результатов проверки) равен "1".

Функция ExclusiveOR XOR (Исключающее ИЛИ, в синтаксисе языка записывается одной буквой Х) связывает два двоичных сигнала и возвращает результат RLO, равный "1", если оба эти сигнала (оба результата проверки) имеют разные значения; с другой стороны, RLO равен "0", если оба эти сигнала имеют одинаковое значение.

Язык программирования STL позволяет использование следующих двоичных

вложенных выражений (вложенных операторов):

         A( открывающая скобка с функцией AND (И);

         O( открывающая скобка с функцией OR (ИЛИ);

         X( открывающая скобка с функцией Exclusive OR (Исключающее ИЛИ);

         AN( открывающая скобка с функцией NOT-AND (НЕ-И);

         ON( открывающая скобка с функцией NOT-OR (НЕ-ИЛИ);

         XN( открывающая скобка с функцией NOT-Exclusive OR (НЕ-

         Исключающее ИЛИ);

 ) закрывающая скобка.

         Следующий рисунок демонстрирует временные диаграммы выполнения этих функций:

 

 

Рисунок 10 - Временные диаграммы логической функции И

 

 

Рисунок 11 - Временные диаграммы логической функции ИЛИ

 

 

Рисунок 12 - Временные диаграммы логической функции ИсклИЛИ

 

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

         = бит –операция передает результат логической операции RLO биту;

         S бит – по результату логической операции RLO операция устанавливает в единицу бит;

         R бит – по результату логической операции RLO операция сбрасывает в ноль бит.

Операции изменения бита не могут быть исполнены без формирования RLO. Это значит, сначала должны быть операции формирования RLO, а затем уже операции изменения бита. Имеются такие операции, которые непосредственно воздействуют на RLO. Это, например, операция установки в единицу RLO SET и операция сброса в ноль RLO CLR.

 

         Лекция 6. Операции с таймерами на языке STL

    

Таймер в СПЛК не столько устройство, сколько  область памяти в микропроцессоре.

Функции таймеров в СПЛК можно разделить на:

1)     управление по времени;

2)     обеспечение заданного времени ожидания (waiting);

3)     мониторинг (monitoring time) для измерения отрезков времени;

4) генерации импульсов.

      Обращение к области памяти используемого таймера происходит по  адресу от Т0 до Т255, в Simantic Manager есть возможность обращаться к 256 таймерам каждые из которых 16 разрядный. Реальное количество таймеров определяется типом ЦПУ.

      Обращение функции таймера на языке LAD возможно 2-мя способами:

   - с помощью катушки;

   - с помощью блока.

      Если функция таймера вызывается с помощью катушки, это выглядит следующим образом:

Рисунок 13 - Блок таймеров

Здесь указывается 2 параметра: область памяти таймера, т.е. номер таймера Т1, а также время запуска таймера 5s. Время задается в формате времени контроллера или в 16-ти разрядном формате. Формат времени контроллера означает, что счет ведется по частоте тактового генератора контроллера.

         Если функция таймера вызывается в виде блока, то есть возможность задания дополнительных параметров: адрес изменения времени в формате времени и в формате шестнадцатиразрядного числа, условия запуска, условия сброса, условия разрешения действий таймера. Этими параметрами являются входы запуска S, перезапуска R и выходы представления значения таймера в разных форматах: OUT1 и OUT2. Также в программировании мы можем использовать выходной импульс таймера для формирования независимых логических целей, например, на рисунке это изображено в виде нормально замкнутого контакта. Этот контакт равносилен условию: «если на выходе таймера нет импульса».

Согласно стандарту МЭК, СПЛК должен обладать следующими разновидностями таймеров:

 

Рисунок 14 - Разновидности таймеров

 

1)          SP таймер – таймер с управляемым импульсом. Начинает отсчет времени от переднего фронта, запускающего сигнала. Все заданное время t на выходе таймера сохраняется импульс, если входной сигнал не исчез. Если входной сигнал обнулиться раньше заданного времени, на выходе таймера импульс исчезнет также вместе с запускающим сигналом.

2)  SE таймер – таймер с расширенным импульсом. Отличается от таймера SP тем, что даже если запускающий сигнал уже обнулился на выходе таймера, импульс сохранится до конца заданного времени t.

3)  SD таймер – таймер с задержкой включения. Отчет времени начинается    

по переднему фронту запускающего сигнала, а импульс на выходе     появляется по истечению заданного времени t. Импульс на выходе таймера сохраняется, пока есть запускающий сигнал. Если запускающий сигнал закончится раньше заданного времени, то на выходе таймера импульс так и не появится.

4)  SS таймер – таймер с задержкой включения с памятью. SS таймер отличается от SD таймера тем, что при исчезновении запускающего сигнала сохраняет на выходе единичный импульс. Сбросить его можно только специальной командой.

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

Язык STL располагает рядом операций для реализации таймерных функций.

Команда запуска таймера: SР Тn, SS Тn, SE Тn, SF Тn, SD Тn.  Здесь Тn – таймер с номером n.  

Команды управления таймером: R Тn – сброс, FR Тn - разблокировка (означает новую активацию таймера),  L S5T#nS, LC C#nnn – загрузка значения таймера, A Тn,O Тn,AN Тn… – опрос состояния таймера Тn.

      

 Пример программы с таймером

A            “S1”             //если нажата кнопка “S1”

FR           Т1              //разблокировать таймер Т1

L             S5T#5s      //загрузить в аккумулятор значение времени

SS         T1              //запустить таймер с задержкой включения и запомнить

 

A            T1                     //когда таймер выдаст импульс на выходе

=            “Y1”      //включить выходной сигнал “Y1”

 

Пример программы с таймером задержки включения SD

A           I 0.7        //если на входе I0.7 появится сигнал

L            S5T#35s // загрузить в аккумулятор значение времени

SD        T4            //запустить таймер Т4 с задержкой включения

 

A            I 0.5       //если на входе I0.5 появится сигнал

R             T4         //сбросить таймер Т4

 

L             T4         //загрузить в аккумулятор значение в Т4

T            MW0     //выгрузить данные из аккумулятора в адрес MW0

LC     T4               //загрузить в аккумулятор значение в BCD из Т4     

T             QW12   //выгрузить данные из аккумулятора в адрес QW12

 

A             T4         //когда таймер выдаст импульс на выходе

=       Q    8.5        //включить выходной сигнал Q    8.5

 

  Пример с управляемым импульсом SP

 

AN       T2 //если нет выходного импульса Т2

FR         T1 //разблокировать таймер Т1

L             S5T#200ms    //загрузить в аккумулятор значение времени

SP         T1 //запустить таймер Т1 на 200 миллисекунд

 

AN       T1   //если нет выходного импульса Т1

FR         T2  //разблокировать таймер Т2

L             S5T#200ms   //загрузить в аккумулятор значение времени

SP         T2   //запустить таймер Т2 на 200 миллисекунд

 

Этот пример демонстрирует как на выходе двух таймеров Т1 и Т2 возникают бесконечные противофазные импульсы.

 

 

Задача:

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

 

Сеть 1                                           

A           D1

A            D2

AN      D3

FR        T1

L            S5T#3s

SE        T1

Сеть 2

A           T1

=       L1

Сеть 3

AN       D1

AN       D2

A       D3

NOT

L       S5T#5S

SE     T2

Сеть 4

A            T2

=       L1                


 

         Лекция 7.  Операции со счетчиками.

 

Для выполнения операций счета в СПЛК используются специальные области памяти. Обращение к этим областям памяти осуществляется посредством идентификатора счетчика Сn (n=0…255). Для контроллеров Simatic применяются 256 шестнадцатиразрядных счетчиков.  Основные операции со - счетчиком это прибавление единицы  “+1” CU Cn (Counting up) и вычитание единицы “-1” CD Cn (Counting Down).

Изначально счетчик запускается со значением в аккумуляторе S Cn. Значение в аккумулятор может быть загружено в BCD формате или в шестнадцатиразрядном  формате.

На рисунке 15 изображен формат значения счетчика в BCD коде. Здесь каждые четыре разряда шестнадцатиразрядного формата отражают один разряд десятичного числа.

 

Рисунок 16 - Формат данных области памяти счетчиков

 

Сброс счетчика: R C n  сбрасывает значение счетчика в ноль.

Для повторной активации функций счетчика можно использовать операцию разблокировки счетчика, FR Cn, что позволяет выполнить переустановку (перезапуск) счетчика.

Пример (Счетчики)

Сеть 1

A    "Enable"; // если нажата кнопка "Enable";             

FR     "Counter"; // разблокировать счетчик;

Сеть 2

A     "Count up"; // если нажата кнопка "Count up";

CU     "Counter"; // прибавить 1 к значению счетчика;

Сеть 3

A     "Count down"; // если нажата кнопка"Count down";

CD     "Counter"; // отнять 1 из значения счетчика;

Сеть 4

A     "Set"; // если нажата кнопка "Set";

L     C#020; // загрузить в аккумулятор число 20 в BCD коде;

S     "Counter"; // запустить счетчик со значением в аккумуляторе;

Сеть 5

A     "Reset"; // если нажата кнопка "Reset",

R     "Counter"; // перезапустить счетчик на начальное значение

Сеть 6

A     "Counter"; // если в счетчике ненулевое значение

=     "Counter status";// установить 1 на выход "Counter status"      

Задача. Организовать автоматическое движение и подсчет движений двух асинхронно работающих цилиндров А и В. Количество движений цилиндра выводить в таблицу переменных.

 

Т а б л и ц а 2 - Таблица символов

Символ

Адрес

Тип

Комментарии

ДН

I0.0

BOOL

Датчик начального положения цилиндра А

ДК

I0.1

BOOL

Датчик конечного положения цилиндра А

Пуск

I0.2

BOOL

Кнопка Пуск

Стоп

I0.3

BOOL

Кнопка Стоп

СА

Q0.0

BOOL

Катушка управления цилиндром А

СВ

Q0.1

BOOL

Катушка управления цилиндром В

 

Программа:


A “Пуск” //если нажата Пуск

A “ДН”  //если цилиндр А в начале

SCA”  //выдвинуть А

RCB”  //задвинуть В

 

A “ДК”  // если цилиндр А в конце

SCВ”  //выдвинуть В

RCА” //задвинуть А

CU C 1 //прибавить 1 к С 1

 

А “Стоп” //если нажата Стоп

RCB”    //задвинуть В

R  “CA”  //задвинуть А

 

LC C 1    //загрузить С1 в аккумул

T MW20 //выгрузить по адресу MW

 

         Лекция 8. Программное обеспечение контроллеров фирмы Siemens. Состав блоков

 

        Любая фирма, занимающаяся выпуском СПЛК, вынуждена заниматься разработкой комплекса программных продуктов. В этот комплекс входит:

         1) Программный продукт самого контроллера ( Simatic S7).

         2) Программный продукт программируемого мастера контроллера (Simatic DP).

         3) Программный продукт для программатора (Simatic PC).

         4) SCADA пакеты (Simatic WinCC).

         5) Программный продукт   создания человеко-машинных интерфейсов (Simatic HMI).

         6) Программный продукт расширения программных единиц (Simatic SoftWare).

         7) Программный продукт для обслуживания сетей (Simatic Network).

         8) Программный продукт, включающий в свой состав возможности перечисленных программных единиц (Simatic PCS7).

    Любая фирма по автоматизации создает и обслуживает, как правило, три вида контроллеров. Виды контролеров разделяются по уровням сложности задачи автоматизации:

1)     Простые задачи автоматизации: логические операции с несколькими переменными, до 10 входов и выходов.  На фирме Siemens  это контроллер LOGO.

2)     Средняя степень автоматизации с содержанием обработки аналоговых сигналов стандартными арифметическими операциями, наличие стандартных законов регулирования и обслуживания входов, выходов до тысяч. В Siemens  это  Simatic 200,300.

3)     Сложная степень автоматизации подразумевает возможности контроллера, соизмеримые с возможностями персонального компьютера, обработка информации любых форматов и структуры, обработка баз данных, обслуживание сетей, количество входных, выходных параметров тысячи и более. В Siemens  это Simatic 400.

Для установки программного обеспечения STEP 7 к персональному компьютеру ПК  предъявляют невысокие требования, поэтому практически на любом ПК можно установить  STEP 7. Необходимые требования для ПК:

операционная система Windows XP;

оперативная память RAM 128 МВ;

память на HDD от 200 МВ до 380 МВ в зависимости от установки, плюс 128… 256 МВ свободного пространства;

        Любая программа STEP 7 содержит организационный блок OB1 (рисунок 17), он является интерфейсом между операционной системой контроллера и программатора. Одновременно в OB1 записывается основная программа пользователя. Из OB1 вызываются подпрограммы, которые записываются в виде функциональных блоков FB, функции FC, системных функциональных блоков SFB, системных функций SFC, блоков данных DB.

Рисунок 17 - Структура прикладной программы Step7

 

Цикл работы OB1 включает в себя выполнение основной программы;  вызов и выполнение подпрограмм; чтение входов и установку выхода.

         При вызове подпрограмм используется локальный стек, глубина вложений стека для S7 300 – 8, S7 400 – 24. Это значит, что в S7 300 можно организовать одновременно не более 8 вложенных вызовов.

         Может быть организованы различные структуры программы на основе OB1: линейные программы;  программы, разбитые на части; структурированные программы (рисунок 18).

 

Рисунок 18 – Различные структуры на основе ОВ1

 

При выполнении цикла блоком OB1 входная информация записывается в область памяти входов. Эту информацию можно представить как матрицу: номер строки – номер байта, номер столбца – номер бита. Тогда обращение в определенную ячейку области памяти входов происходит через символы: I “номер байта . номер бита”:  I0.0, I0.1, …, I0.7. Область памяти выхода: Q0.0, Q0.1, …, Q0.7.

Так как в область памяти входов записывается реальная состояние входного обращения, то эта область может быть только опрошена и не может быть изменена программистом, а область памяти выхода может быть как опрошена, так и изменена. В программе, наряду с обязательным блоком OB1, присутствуют организационные блоки с другими номерами, каждый из организационных блоков предназначен для конкретного режима. Это режимы прерываний по ошибке, по изменению сигналов, по таймерам, по включению питания, режимы запуска, режимы остановки и другое. Эти организационные блоки выполняются только строго по назначению.

 

     Лекция 9. Программное обеспечение контроллеров фирмы Siemens. Адресация в программном обеспечении СПЛК

 

        Основа всех языков программирования контроллеров - это язык Ассемблер. Поэтому, как и в классическом языке Ассемблер, в языках программирования контроллеров существует три основных способа адресации внутри программа: непосредственная, прямая, косвенная.

Непосредственная адресация. При непосредственной адресации операнд кодируется непосредственно в команде; то есть за кодом операции непосредственно следует значение, с которым должна работать данная команда. Команда также может предоставить свое собственное значение в качестве операнда, например, команда SET подразумевает в качестве операнда результат логической операции RLO

Прямая адресация Команда, использующая прямую адресацию, имеет операнд, указывающий местоположение значения, которое команда будет обрабатывать. Адрес при этом состоит  из следующих двух частей: идентификатора операнда (например, “IB”  для входного байта), точного адреса внутри области памяти, указанной идентификатором операнда. Операнд прямо указывает на адрес значения.

Косвенная адресация. Команда, использующая косвенную адресацию через память, имеет операнд, указывающий местоположение значения, которое команда будет обрабатывать, и состоящий из следующих частей: идентификатора операнда (например, “IB” “для входного байта”) и указателя. Косвенная адресация языка программирования  Step7 использует один из следующих указателей:

·        слова, содержащие номер таймера (T), счетчика (С), блока данных (DB), функции (FC) или функционального блока (FB);

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

Операнд задает адрес значения или номер косвенно через указатель. Это слово или двойное слово может находиться в одной из следующих областей:

·             битовая память (М)

·             блок данных (DB)

·             экземплярный блок данных (DI)

·             локальные данные (L)

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

Изображение цифровой информации придерживается определенного правила: биты изображаются слева направо, байты - справа налево. Это правило соблюдается также при обозначении адресов реально подключаемых входных и выходных устройств. Кроме того, информация объединяется в слово (Word) по 16 бит или в двойное слово (DOUBLEWORD) по 32 бита. Причем адрес информации в 16 бит определяется номером младшего байта. Информация в 32 бита также нумеруется номером младшего байта. Для контроллеров  Simatic распределение информации в разных областях памяти подчинено единому правилу, демонстрируемому на рисунке 19.

Рисунок 19 - Распределение адресов контроллеров Simatic

 

Адресация в рамках проекта СПЛК может быть абсолютной и символьной.

Абсолютная адресация переменных зависит от размера информации:

• 1 бит Тип данных BOOL;

• 8 битов Тип данных BYTE или другой 8-битовый тип данных;

• 16 битов Тип данных WORD или другой 16-битовый тип данных;

• 32 бита Тип данных DWORD или другой 32-битовый тип данных.

 Символьная адресация (symbolic addressing) использует имена (символы) вместо абсолютных адресов. Программист сам может выбирать эти имена по их функциональному назначению. Такое имя должно начинаться с буквы английского алфавита и может содержать до 24 символов. Символьная адресация может быть глобальной (для всего проекта) и локальной. Глобальная адресация осуществляется  посредством таблицы символов. Локальная адресация назначается посредством таблицы описания переменных внутри каждого из отдельных блоков OB, FC, FB, DB.

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

Локальные данные – параметры блоков, локальные временные данные, метки  в разделе кода блока.          

      Глобальные данные заключаются в кавычки (“символ”), локальные данные имеют # символ перед идентификатором. В таблице приведены обозначения адресов различных областей памяти контроллера Simatic.

 

Т а б л и ц а  3 - Обозначения адресов

 

Области памяти

Длина переменной

Прямой адрес

Максимальный адрес

Вход

Бит               1

Байт              8

Слово         16

Дв.слово   32

I0.0

IB10

IW55

ID46

65535.7

65535

65534

65532

Выход

Бит               1

Байт              8

Слово         16

Дв.слово   32

Q0.0

QB10

QW55

QD46

65535.7

65535

65534

65532

Внутренняя память

Бит               1

Байт              8

Слово         16

Дв.слово   32

М0.0

МB10

МW55

МD46

255.7

255

254

252

Периферийный вход

Байт              8

Слово         16

Дв.слово   32

РIB10

РIW55

РID46

65535

65534

65532

Периферийный

выход

Байт              8

Слово         16

Дв.слово   32

РQB10

РQW55

РQD46

65535

65534

65532

Таймеры

Слово         16

Т23

255

Счетчики

Слово         16

С72

255

Блоки данных открытые оператором

OPN DB

Бит               1

Байт              8

Слово         16

Дв.слово   32

DBX0.0

DBB34

DBW87

DBD99

65535.7

65535

65534

65532

Блоки данных открытые оператором

OPN DI

Бит               1

Байт              8

Слово         16

Дв.слово   32

DIX0.0

DIB34

DIW87

DBD99

65535.7

65535

65534

65532

Локальные данные для блоков

Бит                1

Байт              8

Слово         16

Дв.слово   32

L20.0

LB10

LW55

LD46

65535.7

65535

65534

65532

 

         Лекция 10. Программное обеспечение контроллеров фирмы Siemens. Регистры контроллера

 

Программисту СПЛК доступны два типа регистра. Это регистр аккумулятора и регистр состояния. Контролеры Simatic располагают двумя тридцатидвухразрядными аккумуляторами и регистром состояния. Каждый из аккумуляторов разделяются еще на  два шестнадцатиразрядных аккумулятора. При записи и чтение аккумулятора информация перемещается по принципу стека: последний записанный считывается первой.

 31                       АккI                                0       31                      АккII                                  0

                              АккII                         0

Рисунок 20 - Регистры аккумулятора

 

Примеры обработки информации аккумулятора.                               

Обработка 32 разрядов:

L MD 20 //загрузка в аккумулятор АккI первый раз

L MD 24 // загрузка в аккумулятор АккI второй раз

T MD 40 //выгрузить из аккумулятора АккI по адресу MD40

 

В этом примере данные из адреса MD 24 будут перемещены по адресу MD 40

 

Обработка 16 разрядов:

L MW 20   //загрузка в аккумулятор АКК1 первый раз

L MW 22  //загрузка в аккумулятор АКК1 второй раз

L MW 24 //загрузка в аккумулятор АКК1 третий раз

L MW 26 //загрузка в аккумулятор АКК1 четвертый раз

L MW  28 //загрузка в аккумулятор АКК1 пятый раз

T MW 40 //выгрузить из аккумулятора АКК1 по адресу MW40

T MW 42 //выгрузить из аккумулятора АКК1 по адресу MW42

В этом примере по адресу MW40 запишутся данные из МW28,  по адресу MW42 запишутся данные из МW26. Данные, записанные из адреса MW 20 в аккумулятор в результате пятикратной записи в аккумулятор, просто исчезают, то есть остаются только в своем исходном месте.

          Все арифметические операции и логические операции над словами осуществляются через аккумуляторы. Следующий пример это демонстрируют:  

L MD 20  // Вычисление по следующей формуле:

SIN

T MD20  // 

L MD 20

L MD 28

+R

T MD 40

L MD 40

L MD 24

*R

 T MD 44

 

В этом примере используются алгебраические операции над числами с плавающей запятой, длиной 32 разряда.

Регистр состояния предназначен для хранения логических результатов операции и результатов операций в аккумуляторе. Регистр состояния тридцатидвухразрядный, однако, используется из них только 9 – рисунок 21.

 

 

28

27

26

25

24

23

22

21

20

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

FC

 

Рисунок 21 - Регистр состояния

Здесь: FC - бит первичного опроса, имеет активное инверсное значение.

RLO - результат логической операции.

STA - сохранение значений бита, который обрабатывается командой. Этот бит не используется командой, а используется только для тестирования программы.  

OR - бит сохранения результата логической операции И перед ИЛИ.

OV-  бит переполнения , устанавливается в единицу командами с плавающей запятой.

OS   - бит сохранения переполнения, сохраняет значения бита OV предыдущих арифметических действий. Остается установленным и после устранения ошибки. Сбрасывается, если исполняемая команда JOS или команда конца блока.

 

СС1,СС2- коды условия, которые принимают различные комбинации по результатам арифметической операции, по результатам сравнения, по результат цифровой операции. В эти биты перемещаются биты, выдвинутые операцией сдвига и циклического сдвига.

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

 

         Форматы и типы данных СПЛК

 

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

1.     Целое положительное число  без знака в прямом коде. Диапазон представления от 0 до 255.

2.     Число со знаком в дополнительном коде. Диапазон от -128 до +127.

3.     Двухразрядное двоично-десятичное число. Диапазон от 0 до 99.

4.     Логический байт данных - код логических проверок каждый бит логического байта  существует самостоятельно.

Данные в СПЛК имеют различные размеры информации и типы данных. В программном обеспечении СПЛК используются следующие группы типов данных:

         Элементарные типы данных, предоставляемые в распоряжение пакетом кодового программирования

         Составные типы данных, которые можно создавать, связывая элементарные типы данных

         Типы данных, определяемые пользователем

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

К элементарным типам относятся:

·   Битовые типы (BOOL, BYTE, WORD, DWORD, CHAR);

·  Численные типы (INT, DINT, REAL);

·  Временные типы (S5TIME, TIME, DATE, TIME_OF_DAY);

Булевы типы BOOL отражают данные, принимающие два устойчивых значения FALSE и TRUE.  Байтовые типы BYTE отражают информацию о восьми дискретных значениях как об единой информации, или о значении одного байта любой целостной информации. Слово  WORD отражают информацию о шестнадцати дискретных значениях как об единой информации, или о значении двух байт любой целостной информации. Двойное слово DWORD отражает информацию о тридцати двух дискретных значениях, как об единой информации, или о значении четырех байт любой целостной информации. Целое число INT представляется шестнадцатиразрядным значением. Двойное целое DINT, вещественное число REAL представляется тридцатидвухразрядным значением.

Элементарные типы данных

Т а б л и ц а 4 - Элементарные типы

Ключевое слово

Длина  в битах

Диапазон

Пример

BOOL

1

TRUE, FALSE

TRUE

BYNARY

1

0, 1

1

BYTE

8

0-255

B#16#A9

WORD

16

W#16#0000-FFFF

W#16#1EF5

DWORD

32

DW#16#00000000-FFFFFFFF

DW#16#ADAC1EF5

 

CHAR

8

код принятый ASII

‘DA’

S5TIME

16

0-24H59M59S999MS

S5T#3H23M34S333MS

TIME

32

0-24H59M59S999MS

T#3H23M34S333MS

TIME_OF_DAY

32

0-

 


Продолжение таблицы 4

DATE

16

01.01.1990….

D#2168-12-31

INT

16

– 32768….+32767

0-65535

324

DINT

32

-2147483648…+2147483647

 

555543

REAL

32

-1.175495•10-38 3.402823•10+38

 

7.50000e-001

 

 

В зависимости от типа данных к ним применяется одно из следующих действий:  + сложение, - вычитание, * умножение, / деление, сравнение  <,   >, ==, <>, >=, <=.

Например, сложение двух вещественных чисел с выгрузкой результата по адресу MD22:

L    MD12

L    1.5 e-001

+R

T   MD22

 

         Составные типы данных

 

         Составные типы данных составляются из элементарных типов и имеют длину превосходящую разрядность контроллера. Так, например, составной тип данных DATA_ and TIME имеет длину 64, отражает дату и время.  В дате указывается год, месяц, число. Во времени - часы, минуты и секунды, максимально 254 символа.

         Различные типы данных согласовываются между собой  с помощью операции преобразования  типов данных. Преобразования не зависят и от данных, и от типа. Необходимо выполнить математические операции  над целыми числами , а считаются и представляются  в BCD коде, тогда данные должны  пройти следующие этапы преобразования. Число вводится в BCD, преобразуется в BCD int, проходит через программу преобразований  математических операции с целыми числами, затем опять преобразуется в BCD int, и отображается в BCD.

 

         Лекция 11. Операции переходов

 

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

       Операции  переходов не должны образовать зацикливание программы, а должны образовать ветвление программы.

Операции переходов.

JU метка  - безусловного перехода;

JC метка – переход, если RLO= 1 ;

JCN метка – переход, если RLO=0;

JCB метка – переход, если RLO= 1 с сохранением RLO;

JNB метка – перехода, если RLO=0 и сохранения RLO;

JBI метка – перехода, если BR= 1;

JNBI метка – перехода, если BR= 0.

Задача. Выполнить вычисление следующей математической операции:

            X+ 0.85 Z            X <4

Y=       

            X- 0.3 Z                 X>=4

 

Решение:

Net1

           L   ‘X’                                                                                    

           L    4

            >=R

           JC  M1

Net2

           L  ‘Z’

           L   0.85

           *R

            L  ‘X’

            +R

            T   ‘Y’

            JU   MEND

Net3                                                                                                                  

            L    ‘Z’                                                                                  

M1:      L   ‘Z’

             L    0.3

             *R

             T MD20

             L ‘X’

             L MD20

              -R

             T ‘Y’

MEND: NOP 0


          Перечисленные команды характерны для традиционных контроллеров. Для контроллеров Simatic имеется специальная команда передвижения по списку. Эта команда характерна для контролера Simens. Правило выполнения команды передвижение по списку : передвижение по списку осуществляется по константе  в аккумуляторе. При этом пользователь оговаривает  максимальное значение константы. Максимальное значение константы соответствует количеству команд JU после команды JL. После команды JL имеется метка, к которой происходит переход, если константа в аккумуляторе   превзошла свой максимальный размер. Если константа в аккумуляторе  0 переход  происходит к метке, указанной в первой команде JU. Если константа 1, то к метке, указанной во второй команде JU, и так далее.

Пример  передвижения по списку.

Задача. Если значение счетчика 1, то в выходное слово прибавить 5; если - 2 , отнять 5; если - 3,  умножить на 5; если - 4, то разделить на 5.

Решение:

        


 L C1//значение счетчика

         JL max

         JU  _0

         JU  _1

         JU  _2

         JU  _3

         JU  _4

max: nop 0

         JU end

_1:    L QW0

         L 5

         +I

         T QW0

         JU end

_2:    L QW0

         L  5

         -I

         T QW0

         JU end

_3:    L QW0

         L 5

        *I

        T QW0

        JU end

_4:   L QW0

        L5

        /I

       T QW0

       JU end

_ 0:  nop 0

end : nop 0


 

         Лекция 12. Функции и функциональные блока. Специальные приемы программирования 

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

       Отличие функции в том, что параметры функции сохраняются только во время  ее выполнения и теряются после завершения её в цикле.

Обмен данными между основной программой и функцией осуществляется через интерфейс обмен функции. Для любого блока программы Step7   может быть  назначен  разный статус  переменной интерфейса: вход (INPUT), выход (OUTPUT), временные переменные (TEMP), статические переменные (STAT).

       Присвоив переменной статус временной в таблице переменных блока, мы можем использовать её внутри функции и можем вне ее. Статические переменные сохраняются внутри блока и доступны извне,  только, если  она записана в маркерном пространстве или  в блоке данных. Специальное пространство внутри блока - это локальные данные с обозначением адреса с буквы L.  Помимо хранения переменных  используется  так же стек. L stek в ОВ 1 для 300- тых контролеров имеет размер 256 байтов. Это значит, что  доступными остаются  256  вложений функции .

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

       Функциональные блоки отличаются от функции тем, что имеют возможность хранить  свои данные в экземпляре блока  данных. Этот блок данных является памятью функционального блока. Блок данных можно  создать автоматически  при вызове  функционального блока или  создать  его независимо. Вызов параметрируемых подпрограмм осуществляется по команде,  CALL имя функции.

Вызов функции осуществляется следующими командами: 

1.     Вызов функции без параметров

          CALL FC1

2.     Безусловный вызов функции без параметров

     UC FC1

3.     Вызов функции по условию , чтоRLO= 1

СС   FC1

4.     Вызов функции с параметрами

     CALL FC1

     Param     :=

                   :=

                   :=

              …

 

5.     Вызов функционального блока  без параметров и без условий

      UC FB1

6.      Вызов функционального блока без параметров по условию, что RLO=1

    СС FB1

7.     Вызов функционального блока  c параметрами

CALL FB 2, DB 3

Param     :=

                :=

                :=   

В библиотеке пакета программирования контроллера существуют стандартные функции и функциональные блоки. Одним из основных блоков используемых при автоматизации, является функция чтения аналогового сигнала. Функция чтения аналогового сигнала SCALE - функция FC105. Эта функция назначается каждому входному значению выходное значение. Сигналы функции:

IN – входная безразмерная переменная. Параметру IN присваивается фактическое значение периферийного входа PIW 272.

HI_LIM – максимальное измеряемое значение.

LO_LIM – минимальное измеряемое значение

BIPOLAR – дискретный сигнал определяет будет ли сигнал униполярным либо биполярным.

OUT – выходная переменная.

Эта функция выполняет нормирование выходного значения по следующей формуле

 

OUT=[((FLOAT(IN) – K1)/(K2-K1))*(HI_LIM-LO_LIM)]+LO_LIM;

 

Здесь К1 и К2 наименьшее и наибольшее значение цифрового кода контроллера. Сравните эту формулу с универсальной формулой нормирования:

 

Здесь нормируется фактическое значение Хфак, из измеренного значения Хизм.

Функция вывода аналогового сигнала UNSCALE – функция FC 106 реализуется следующей формулой:

 

OUT=(((IN-LO_LIM)/(HI_LIM-LO_LIM))*(K2-K1)+K1

 

         Специальные примеры программирования маскирование

 

       В качестве специального приема программирования рассмотрим примеры использования логических функций. Маскирование - это способ программирования, при котором используется наложение трафаретного слова, маски, на исходную информацию для того, чтобы изменить искомую информацию. Для маскирования применяются основные логические функции AW (побитная логическая операция И между словом) и AD (побитная логическая операция И между двойным словом). Используются для очищения. Чтобы выполнить эту операцию:

1. необходимо выбрать слово-маску;

2. выполнить логическую операцию между словом  или двоичным словом, AW или AD.

 

Логическая операция ИЛИ  OW и OD используются для установки разряда информации в единицу. Логическая операция «ИсключающееИЛИ»  XOW и XOD используются для определения равенства информации определенному значению.

Пример 1.Логическое умножение AND для очищения трех старших разрядов:

         Исходное число – 1010 1100

         Маска                  -  0001 1111

         Результат           -  0000 1100

Пример 2. Логическое сложение OR для установки четных разрядов :

         Исходное число – 1010  0000

         Маска                  -  0101 0101

         Результат           -  1111 0101

Пример 3. Логическое исключающее ИЛИ XOR для обнаружения равных:

         Исходное число – 1010  1110

         Маска                  -  1010  0101

         Результат           -  0000  1011

В последнем примере четыре старших разряда одинаковы, поэтому и в результате старшие четыре разряда нулевые.

 

         Лекция 13. Системы сбора и обработки данных

 

Целью системы сбора и обработки данных (СОД) является получение информации о состоянии объекта и рациональная организация процессов управления, контроля, и измерения с высокими качествами характеристики.

 

Рисунок 22 - Структура системы сбора и обработки данных

 

P1…Pn – обмен первичной информации

С1…Cn – сигналы, описывающие внутреннее состояние объекта

R1…Rn – сигналы внутреннего состояния объекта

Функции СОД можно описать следующими системами уравнений:

C1 =F1(Р1 ,Р2…. Рm, R1 …..Rk)

C2 =F2(Р1 ,Р2…. Рm, R1 …..Rk)

                      …..                                                              (1)

Cn =Fn(Р1 ,Р2…. Рm, R1 …..Rk)

 

 

F – функция алгоритма управления

 

P1 =f1(C1 ,C2…. Cn, R1 …..Rk)

P2 =f2(C1 ,C2…. Cn, R1 …..Rk)

                        ….                                                              (2)

Pm =fm(C1 ,C2…. Cn, R1 …..Rk)

 

f – внешнее проявление внутреннего состояния объекта, то есть функция контроля.

 

R1 =φ1(P1 ,P2…. Pm)

R2 = φ 2(P1 ,P2…. Pm)

                 ….                                                              (3)

Rk = φ k(P1 ,P2…. Pm)

 

φ – функция контроля и самотестирования СОД.

Микропроцессорная система сбора и обработки данных имеет столько каналов, сколько информации он считывает, собирает и обрабатывает. Так как информация, в основном, имеет природный характер (налоговый), то самым трудоемким процессом является канал аналого-цифрового преобразования АЦП. На рисунке 23 представлена структурная схема системы сбора и обработки с АЦП по каждому каналу информации.

 

 

Рисунок 23 - Структуры СОД

 

Обозначения на схеме:

Д – датчик;

СУ – согласующее устройство;

СН – система нормирования;

ФП – функциональный преобразователь;

АЦП – аналого-цифровой преобразователь;

ЦМ - цифровой мультиплексор;

МП – микропроцессор;

 

 

        

Структура СОД разделяются по тому, где расположен АЦП. На рисунке 23 АЦП расположен на каждом канале, это дороже, но надежней. Если АЦП стоит один общий на нескольких каналах (рисунки 24 и 25), то скорость преобразования падает. Надежность зависит от того, будет ли выборка и хранение каждого канала происходить отдельно, или это будет общая выборка. Тогда надежность системы зависит от надежности аналогового мультиплексора. Даже при высоконадежной схеме, рисунок 23, количество входов цифровых каналов ограничено значением допустимой ошибки.

 

Nц <= ∆Хiдоп / [(dXi / dt)max* tk];

 

В простейшем случае схема выглядит следующим образом:

Количество аналоговых каналов ограничивается допустимой ошибкой и временем преобразования tp, tk – период коммутации.

 

Nа <= ∆Хiдоп / [(dXi / dt)max* (tk+ tp)];

 

dXi / dt -  допустимая скорость изменения аналогового сигнала по i-каналу.

СПЛК в качестве цифрового регулятора является автономным устройством, в нем уже заложены алгоритмы управления и регулирования. Если сигнал из датчиков аналоговые, то основное время уходит на АЦП.

 

         Два принципа построения цифрового регулирования.

 

 

 

 

 

Рисунок 26 - Структуры построения  цифрового регулятора      по двум разным принципам

СВУ – специальное вычислительное устройство

ПКН – преобразователь кода напряжения

ПУ – пусковое устройство

ИМ – исполнительный механизм

ИД – измерительный датчик

Первый принцип отличается от второго разделением функции вычисления от других функций микропроцессоров. В современных микропроцессорах скорость обработки аналогового сигнала измеряется десятками микросекунд, поэтому разделять преобразование сигнала и вычисление нет надобности. В любом случае, аналоговый сигнал проходит следующие этапы:  Усилие (У), Фильтрацию (Ф), Задержку (УСЗ), АЦП.

 

 

        

 

 

Рисунок 27 - Этапы преобразования аналогового сигнала

 

         Подсистема аналогового ввода – это система организации чтения аналогового сигнала, выбора номера канала, определение знака сигнала, сам процесс АЦП, процесс дешифрирования, приема и передачи данных.

 

Рисунок 28 - Подсистема аналогового ввода

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

 

Рисунок 29 - Подсистема аналогового вывода

 

         Подсистема дискретного ввода-вывода предназначена для обмена информации между регистрами цифрового устройства, включает в себя приемники, дешифраторы, передатчики, регистраторы ввода и вывода. Эта подсистема используется для обработки сигнала  вида «включено-выключено».

 

Рисунок 29 - Подсистема цифрового ввода - вывода

 

         Лекция 14. Интерфейсы: характеристики, функциональное назначение, тип организационной связи, принцип и режимы обмена

         Интерфейс – это общий принцип организации связи между аппаратами, программами, между программами с аппаратами. В понятие интерфейс входят все правила организации связи. Для микропроцессорной системы понятие интерфейс чаще касается аппаратных связей. Поэтому в характеристики интерфейса включаются характеристик аппаратных средств:

·        тип организации связи;

·        принцип обмена информации;

·        способ обмена;

·        режим обмена;

·        количество линий связи;

·        число линий для передачи данных;

·        быстродействие;

·        тип линии связи.

Интерфейсы МП классифицируются:

·        По функциональному назначению – магистральные, внешние, системные.

·        По типу организации связи – магистральные, древовидные, радиально-магистральные.

·        По принципу обмена – с последовательным, параллельным и параллельно-последовательным.

 

Рисунок 30 - Классификация интерфейса по режиму обмена

По режиму обмена (рисунок 30) интерфейсы классифицируются на:

а) симплексный;

б) полудуплексный;

в) дуплексный;

г) мультиплексный.

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

 

По внешнему интерфейсу передаются данные, команды, сигналы управления и ответные сигналы от устройств. Вся информация кодируется надежным двоичным кодом. Пример формирования кода последовательно интерфейса представлен на рисунке 32.

 

Рисунок 32 - Коды последовательного интерфейса.

Правила формирования кода без возврата к нулю: на единицу код дает высокий уровень сигнала, на ноль - низкий. Код формируется в каждом такте.

Код без возврата к нулю с инверсией: единица не дает изменения уровня сигнала от прежнего такта; ноль изменяет уровень сигнала от прежнего такта. 

Код Манчестер2: в середине каждого такта на единицу изменяет уровень сигнала с высокого на низкий, на ноль - с низкого на высокий.

Системный интерфейс представляет собой обмен информации по внешней шине между отдельными устройствами

 

 

Рисунок 33 - Уровни системного интерфейса

         Системный интерфейс формируется из пяти уровней (рисунок 33). Физический уровень состоит из аппаратных средств (линии связи, коллектор);

уровень звена данных  составляется программой и аппаратно; транспортный, сеанс связи, уровень управления выполняются программно.

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

 

Правила формирования промышленных сетей 

         МП-устройства для обмена информации объединяются в единые промышленные сети. В сети присутствуют несколько типов контроллеров, устройства сбора информации, операторские панели, программаторы, коллекторы, периферийные устройства, станции периферийных устройств.

 

Рисунок 35 - Промышленная сеть контроллеров

Для промышленной сети фирмы Siemens применяются следующие типы интерфейсов:

·        ASI – подключение периферийных устройств;

·        PPI – одноточечный, несколько периферийных устройств;

·        MPI – многоточечный интерфейс;

·        PROFIBUS – мощная промышленная сеть.

Скорости передачи данных MPI – 187Кбод, PROFIBUS от 9,6 Кбод до 12 Мбод. От скорости передачи зависит и дальность подключения устройств. К MPI можно подключится до 3 км, а для PROFIBUS  - до 23 км.

Сеть разделяется на сегменты. Каждый сегмент содержит не более 32 абонентов. Высший адрес (нулевой) присваивается программатору или мастеру в сети (master). Сегменты соединяются друг к другу посредством повторителей RS485. Сегмент ограничен длиной кабеля в зависимости от скорости передачи информации. Сегмент содержит хотя бы одного мастера (master) и ведомого устройства (slave). Повторитель является одним из 32 абонентов сети.

 

     Лекция 15. Контролирующие и информационно-управляющие микропроцессорные системы

 

Контролирующие и информационно-управляющие ИУВС микропроцессорные системы включают следующие функции:

·        измерение информации в местах наиболее приближенных к её получению

·        микропроцессорные ИУВС позволяют легко модифицировать систему с конкретными потребностями посредством подключения к общей магистрали;

·        эффективность ИУВС определяет её программное обеспечение;

·        функции ПО порядок извлечения, передачи, хранения и вычисления информации.

Основные требования к ИУВС

·        Функциональные

·        Технические

·        По составу ИУВС

·        К конструкции и технологичности

·        К сырью и исходному материалу

·        К надежности

·        Эксплуатационные и ремонтные

·        К упаковке, транспортировке и хранению

Функциональные требования

·        Порядок и способ взаимодействия с объектом

·        Показатели эффективности ИУВС (точность, быстродействие)

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

·        Расход электроэнергии

·        Специфические эксплуатационные требования

Технические требования

·        Форма представления информации

·        Унифицированность ПО

·        Объем памяти

·        Возможности расширения памяти

·        Параметры и разновидности входных сигналов

·        Требования к устройствам вывода и ввода информации

·        Система и количество уровней прерываний

·        Безопасность ПО

·        Скорость передачи информации

·        Параметры источников питания и их надежность

Требования к конструкции и технологичности:

·        Габаритные размеры

·        Способы крепления и монтажа

·        Ограничения по массе и виду исполнения (блочный, моноблочный)

·        Ограничения по средствам защиты от климатических, механических и других факторов воздействия

·        Применение прогрессивных технологий исполнения

·        Обеспечение ЗИП и поверочных средств

Надежностные требования

·        Вероятность безотказной работы в течение некоторого времени

·        Наработка на отказ

·        Средним временем работы между отказами

·        Средним временем восстановления

·        Средним сроком службы

Эксплуатационные требования:

·        Устойчивость к комплексу климатических, механических и других факторов воздействия

·        Устойчивостью к влиянию внешних электромагнитных полей

         Система прерываний

Важным этапом приема информации в ИУВС является этап считывания и записи информации в микропроцессорах. Одним из способов организации обмена информации является организация системы прерываний. Прерывание – это непредусмотренное основной программой обращение к специальной подпрограмме прерываний.

Необходимость прерываний – несистематизированный обмен данными, защита МП и его устройств, управление пособытийное или временное, организация многопроцессорного управления.

Действия МП при прерываниях:

·        запомнить в стеке текущее состояние процессора;

·        запомнить в стеке адрес возврата;

·        перейти на подпрограмму обработки прерывания;

·        записать в счетчик команд новый адрес обработки прерывания.

Так как причин прерываний много, то подпрограмм для их обработки тоже много. Каждая имеет свой адрес – вектор прерывания. Количество векторов определят количество видов прерываний. Количество одновременно выполняемых видов прерываний ограничено глубиной стека прерываний.

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

Виды организационных блоков ОВ:

Блоки запуска  ОВ100, ОВ101 и ОВ102;

Блоки периодического выполнения программы (ОВ10-ОВ17-прерывание по времени суток; ОВ30-ОВ38 - циклическое прерывание);

Блоки, управляющие событиями выполнения программы (ОВ20-ОВ23 прерывание с задержкой времени; ОВ40-ОВ47 - аппаратное прерывание; ОВ80-ОВ87 - обработка асинхронных ошибок, ОВ121-ОВ122 - обработка синхронных ошибок). Каждый из ОВ имеет свой уровень приоритетов. Согласно этому уровню, осуществляется прерывание. Согласно видам прерывания, осуществляется конфигурация. Во вкладках прерывания МП осуществляется настройка параметрами прерывания.  Аппаратное прерывание – прерывание по изменению свойств внешней аппаратуры, например, в результате изменения свойства аналогового входа (ОВ 40). Диагностическое прерывание – прерывание по ошибке (ОВ81…ОВ87). К асинхронным ошибкам относятся ошибки программирования и доступа.

 

Список литературы 

1.     Э.Парр. Программируемые контроллеры: руководство для инженера. – М.:БИНОМ. Лаборатория знаний, 2007. – 516 с.:ил.

2.     Петров И.В. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования / Под ред. Проф. В.П. Дьяконова.-М.:СОЛОН-Пресс, 2004. – 256 с.:ил. – (Серия «Библиотека инженера»).

3.     А.А.Копесбаева Микропроцессорные средства и программно0технические комплексы. Методические указания к лабораторным работам (для студентов специальности 36.03 Автоматизация технологических процессов и слушателей ФПК) – АИЭС, Алматы 2001 год.

4.     А.А.Копесбаева, А.Б.Файзулина, А.А.Рябцев. Микропроцессорные средства и программно0технические комплексы. Методические указания к выполнению лабораторных и семенстровых работ (для студентов специальности 36.03 Автоматизация технологических процессов), Часть 2 – АИЭС, Алматы 2001 год.

5.     Кэпс Ч., Стаффорд Р. Программирование на языке ассемблера и архитектура. – Пер. с англ. – М.:Радио и связь, 1991 г.

6.     Калабеков Б.А. Цифровые устройства и микропроцессорные системы. - М.: Горячая линия – Телеком, 2000. – 336 с.

 

Содержание

1.     Лекция 1………………………………………………………..3 

2.     Лекция 2. ………………………………………………………5

3.     Лекция 3. ………………………………………………………6

4.     Лекция 4. ………………………………………………………8

5.     Лекция 5………………………………………………………12

6.     Лекция 6………………………………………………………16

7.     Лекция 7……………………………………………………….20

8.     Лекция 8……………………………………………………….21

9.     Лекция 9……………………………………………………….24

10. Лекция 10……………………………………………………....27

11. Лекция 11………………………………………………………30

12. Лекция 12………………………………………………………32

13. Лекция 13………………………………………………………35

14. Лекция 14………………………………………………………40

15. Лекция 15………………………………………………………44

16. Список литератур..…………………………………………….47