Category Archives: Siemens PLC

КОПЛ-включение асинхронного двигателя в Step7

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

Нажатие кнопки ВКЛ на входе E0.0 включает плавный пуск двигателя, а кнопка ВЫКЛ на E0.1 отключает двигатель. На вход E0.2 подключен автомат защиты двигателя, который срабатывает при перегрузке двигателя и отключает его.

Схема включения

 

Структура программы

Описание программы

Меркер блокировки M1.0 устаналивается при одновременном нажатии кнопок ВКЛ (нормально разомкнута) и ВЫКЛ (нормально замкнута) на входах E0.0 и E0.1 и сбрасывается только после того, как обе кнопки окажутся в исходном положении. Переключатель двигателя подключенный на выход A0.0 сработает после того как будет нажата кнопка ВКЛ и при этом не сработала ни блокировка (M1.0) ни автомат защиты двигателя (E0.2-нормально замкнуто) или кнопка ВЫКЛ (E0.1). Логическая операция ИЛИ с A0.0 реализует самоподхват переключателя. Двигатель запускается теперь с минимальным числом оборотов, так как сопротивление запуска еще не перемкнуто. Если включается переключатель двигателя и выход A0.1 для перемыкателя еще не установлен, то запускается таймер T37. По прошествии установленного времени 5 сек устанавливается выход A0.1 перемыкателя, пока включен переключатель двигателя, т.е. пока установлен A0.0.

Размер программы составляет 28 слов.

Листинг

Основная программа

// TITEL = КОПЛ-включение

// E0.0 Кнопка вкл.

// E0.1 Кнопка выкл. Нормально замкнута

// E0.2 Защита двигателя Нормально замкнута

// A0.0 Защита двигателя

// A0.1 Перемыкатель

// T37 Таймер для переключения (5 сек)

 

БЛОКИРОВКА

LDN E0.1 // Кнопка Выкл нажата

U E0.0 // Кнопка Вкл нажата

S M10.0 ,1 // Вспомогательный меркер для блокировки

LD E0.1 // Кнопка Выкл не нажата

UN E0.0 // Кнопка Вкл не нажата

R M10.0 ,1 // Блокировка снята

 

ЗАПУСК ДВИГАТЕЛЯ

LD E0.0 // Кнопка Вкл нажата

O A0.0 // Самоподхват переключателя двигателя

LD E0.1 // Кнопка Выкл не нажата

U E0.2 // Защита двигателя OK

UN M1.0 // Меркер блокировки

ULD

= A0.0 // Защита двигателя

ЗАПУСК ТАЙМЕРА T37

LD A0.0 // Двигатель в движении

UN A0.1 // Перемыкатель

TON T37,50 // Запуск T37

 

ВКЛЮЧЕНИЕ ПЕРЕМЫКАТЕЛЯ

LD T37 // T37 завершил работу

O A0.1 // Самоподхват перемыкателя

LD A0.0 // Двигатель в движении

ULD

= A0.1 // Перемыкатель

MEND // Конец

 

 

P.S. Устал я чего — то все это расписывать. Возьму фотоаппарат нащелкаю фоток любимого контроллера и буду их ретушировать. А бесплатные программы для фотографий найти совсем несложно.

Управление фазным ротором в Step7

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

Кнопка ВКЛ на входе E0.0 осуществляет плавный пуск двигателя, а кнопка ВЫКЛ на E0.1 отключает двигатель. На вход E0.2 подключен автомат защиты двигателя, который срабатывает при перегрузке двигателя и отключает его.

Схема включения

Структура программы

Описание программы

Если нажата кнопка ВКЛ на входе E0.0 и не активны переключатели ротора или уже выполнен самоподхват автомата защиты двигателя (A0.0 = 1), то устанавливается промежуточный меркер M2.0. Этот промежуточный меркер используется для установки меркера защиты двигателя A0.0, в случае если не разомкнут ВЫКЛючатель или автомат защиты двигателя. Блокировка в этот момент должна отсутствовать. Меркер блокировки M10.0 устаналивается при одновременном нажатии кнопок ВКЛ и ВЫКЛ и сбрасывается только после того, как обе кнопки окажутся в исходном положении.

После того как установлен выход защиты двигателя A0.0, запускается первый таймер T37. По прошествии 2 сек. устанавливается выход A0.1 для первого переключателя ротора. Затем запускается второй таймер T38 и по прошествии 2 сек. Устанавливается выход A0.2 для второго переключателя ротора. Этот шаг повторяется для таймеров T39 и T40, которые со своей стороны включают переключатели ротора 3 и 4 установкой соответствующих выходов A0.3 и A0.4, так что двигатель в конце концов работает с номинальным числом оборотов. Двигатель будет отключен, если на входах E0.1 или E0.2 исчезает напряжение, т.е. если разомкнута кнопка ВЫКЛ или автомат защиты двигателя. Размер программы составляет 77 слов.

Листинг

Основная программа

// TITEL = ФАЗНЫЙ РОТОР

// E0.0 Кнопка вкл.

// E0.1 Кнопка выкл. Нормально замкнута

// E0.2 Защита двигателя Нормально замкнута

// A0.0 Защита двигателя

// A0.1 Переключатель ротора 1

// A0.2 Переключатель ротора 2

// A0.3 Переключатель ротора 3

// A0.4 Переключатель ротора 4

// T37 Таймер 1я ступень

// T38 Таймер 2я ступень

// T39 Таймер 3я ступень

// T40 Таймер 4я ступень

// БЛОКИРОВКА

LDN E0.1 // Кнопка Выкл нажата

U E0.0 // Кнопка Вкл нажата

S M10.0 ,1 // Вспомогательный меркер для блокировки

LD E0.1 // Кнопка Выкл не нажата

UN E0.0 // Кнопка Вкл не нажата

R M10.0 ,1 // Блокировка снята

ЗАПУСК ДВИГАТЕЛЯ

LD E0.0 // Кнопка Вкл нажата

UN A0.1 // Нет переключателя ротора 1

UN A0.2 // Нет переключателя ротора 2

UN A0.3 // Нет переключателя ротора 3

UN A0.4 // Нет переключателя ротора 4

LD A0.0

OLD

= M2.0 // Промежуточный меркер

LD M2.0 // Промежуточный меркер

U E0.1 // Кнопка Выкл не нажата

U E0.2 // Защита двигателя OK

UN M10.0 // Блокировка

= A0.0 // Двигатель в движении

ЗАПУСК ТАЙМЕРА T37

LD A0.0 // Двигатель в движении

UN A0.1 // Нет переключателя ротора 1

UN A0.2 // Нет переключателя ротора 2

UN A0.3 // Нет переключателя ротора 3

UN A0.4 // Нет переключателя ротора 4

TON T37,20 // Запуск T37 с 2 сек

ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ РОТОРА 1

LD T37 // T37 завершил работу

O A0.1 // Самоподхват переключателя ротора 1

LD A0.0 // Двигатель в движении

UN A0.2 // Нет переключателя ротора 2

UN A0.3 // Нет переключателя ротора 3

UN A0.4 // Нет переключателя ротора 4

ULD

= A0.1 // Переключатель ротора 1

ЗАПУСК ТАЙМЕРА T38

LD A0.0 // Двигатель в движении

UN A0.2 // Нет переключателя ротора 2

UN A0.3 // Нет переключателя ротора 3

UN A0.4 // Нет переключателя ротора 4

U A0.1 // Переключатель ротора 1

TON T38,20 // Запуск T 38 с 2 сек

ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ РОТОРА 2

LD T38 // T38 завершил работу

O A0.2 // Самоподхват переключателя ротора 2

LD A0.0 // Двигатель в движении

UN A0.3 // Нет переключателя ротора 3

UN A0.4 // Нет переключателя ротора 4

ULD

= A0.2 // Переключатель ротора 2

// ЗАПУСК ТАЙМЕРА T39

LD A0.0 // Двигатель в движении

U A0.2 // Переключатель ротора 2

UN A0.3 // Нет переключателя ротора 3

UN A0.4 // Нет переключателя ротора 4

TON T39,20 // Запуск T 39 с 2 сек

ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ РОТОРА 3

LD T39 // T39 завершил работу

O A0.3 // Самоподхват переключателя ротора 3

LD A0.0 // Двигатель в движении

UN A0.4 // Нет переключателя ротора 4

ULD

= A0.3 // Переключатель ротора 3

 

ЗАПУСК ТАЙМЕРА T40

LD A0.0 // Двигатель в движении

U A0.3 // Переключатель ротора 3

UN A0.4 // Нет переключателя ротора 4

TON T40,20 // Запуск T 40 с 2 сек

 

ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ РОТОРА 4

LD T40 // T40 завершил работу

O A0.4 // Самоподхват переключателя ротора 4

LD A0.0 // Двигатель в движении

ULD

= A0.4 // Переключатель ротора 4

MEND // Конец

 

    Запуск звезда-треугольник с ответным сообщением

    Данный пример управляет запуском звезда-треугольник асинхронного двигателя. Если, например, переключатель звезды дефектен, то это будет опознано с ответным сообщением и SIMATIC S7-200 не переключится через время задержки 5 сек в режим треугольника, исключая тем самым возможность поломки. Двигатель запускается после нажатия кнопки ВКЛ на входе E0.0 в режиме звезды. По прошествии установленного времени двигатель переключается в режим треугольник.  Возможное сообщение об ошибке индицируется посредством лампы на выходе A0.3.

    Схема включения

    Описание программы

    Двигатель запускается после нажатия кнопки ВКЛ на входе E0.0 в режиме звезды. По прошествии установленного времени 5 сек двигатель переключается в режим треугольник, если отсутствует сообщение об ошибке переключателей. Сообщение об ошибке индицируется лампой на выходе A0.3. Кнопкой квитирования на входе E0.6 можно сбросить сообщение об ошибке, в случае если ошибка устранена. Ответные сообщения переключателей подаются на входы с E0.3 по E0.5. Если нажата кнопка ВЫКЛ или сработал автомат защиты двигателя, находящиеся на входах E0.1 и E0.2, двигатель отключается. Если кнопки ВЫКЛ и ВКЛ нажаты одновременно, двигатель остается выключенным.

    Части программы ”Включение переключателя звезда”, ”Запуск таймера переключения” и ”Включение переключателя сети” дополнены условием, что отсутствует сообщение об ошибке (A0.3), что позволит установить меркер для переключателя звезды (A0.1) и переключателя сети (A0.0) и запустить таймер переключения (T37).

    Появилась новая часть программы ”Сообщение об ошибке”. В принципе обработка сообщения действует таким образом, что сравнивается состояние выходноых сигналов со входами, на которые подано действительное состояние переключателей. Состояние этих выходов сравнивается с состоянием входа E0.3 для переключателя сети, E0.4 для переключателя звезды и E0.5 для переключателя треугольника. При отклонении будет включен таймер T38 с временем задержки 2 сек, соответствующим максимальному времени переключения автоматов.

    Если по прошествии данного времени состояния все еще различаются, устанавливыается выход ошибки A0.3. Кнопкой квитирования на входе E0.6 он может быть снова сброшен.

    Размер программы составляет 70 слов.

    Листинг

    Основная программа

    // TITEL = ЗАПУСК ЗВЕЗДА-ТРЕУГОЛЬНИК С ОТВЕТНЫМ СООБЩЕНИЕМ

    // E0.0 Кнопка вкл.

    // E0.1 Кнопка выкл. Нормально замкнута

    // E0.2 Защита двигателя Нормально замкнута // E0.3

    // E0.4 RM. Переключатель звезды

    // E0.5 RM. Переключатель треугольника

    // E0.6 Кнопка квитирования

    // A0.0 Переключатель сети

    // A0.1 Переключатель звезды

    // A0.2 Переключатель треугольника

    // A0.3 Лампа ошибки

    // T37 Таймер переключения 5 сек

    // T38 Таймер сообщения об ошибке 2 сек

     

    БЛОКИРОВКА

    ВКЛЮЧЕНИЕ

     

    ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ ЗВЕЗДЫ

     

    ЗАПУСК ТАЙМЕРА ПЕРЕКЛЮЧЕНИЯ

     

    ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ СЕТИ

     

    ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ ТРЕУГОЛЬНИКА

     

    LD A0.0 // Переключатель сети

    UN E0.3 // RM. Переключатель сети

    LDN A0.0 // Нет переключателя сети

    U E0.3 // RM. Переключатель сети

    OLD

    LD A0.1 // Переключатель звезды

    UN E0.4 // Нет RM. Переключателя звезды

    OLD

    LDN A0.1 // Нет переключателя звезды

    U E0.4 // RM. Переключатель звезды

    OLD

    LD A0.2 // Переключатель треугольника

    UN E0.5 // Нет RM. Переключателя треугольника

    OLD

    LDN A0.2 // Нет переключателя треугольника

    U E0.5 // RM. Переключатель треугольника

    OLD

    TON T38,20 // Таймер задержки для сообщения об ошибке (2 сек)

     

      Запуск звезда-треугольник Step7

      Краткое описание

      Данный пример управляет запуском звезда-треугольник асинхронного двигателя. Двигатель запускается после нажатия кнопки ВКЛ на входе E0.0 в режиме звезды. По прошествии установленного времени 5сек двигатель переключается в режим треугольник.

      Если нажата кнопка ВЫКЛ или сработал автомат защиты двигателя, находящиеся на входах E0.1 и E0.2, двигатель выключается. Если одновременно нажаты кнопки ВЫКЛ и ВКЛ, то двигатель остается выключенным.

      Схема включения

      Структура программы

      Описание программы

      В начале цикла программа проверяет, должен ли быть установлен вспомогательный меркер M10.0 для блокировки. Это будет сделано, если Кнопки ВЫКЛ (E0.1) и ВКЛ (E0.0) нажаты одновременно. Блокировка будет снята только, если обе кнопки снова находятся в исходном состоянии. Блокировка служит для защиты от неверных условий.

      Для процесса включения имеется вспомогательный меркер M11.0. Он будет установлен при включении, т.е. если кнопка на входе E0.0 замкнута и переключатель сети еще не сработал. Он будет также установлен, если двигатель находится в режиме звезды, т.е. переключатель сети (A0.0) и переключатель звезды (A0.1) активны. Установка вспомогательного меркера M11.0 происходит впрочем только тогда, если не разомкнуты автомат защиты двигателя (E0.2) или кнопка ВЫКЛ (E0.1), а переключатель треугольника (A0.2) неактивен.

      Выход A0.1 переключателя звезды будет установлен, если установлен вспомогательный меркер запуска M11.0, отсутствует блокировка (M10.0) и время переключения (5 сек таймера T37) еще не закончилось.

      Время переключения запускается в момент установки вспомогательного меркера запуска M11.0, в случае если отсутствует блокировка. Временной базис таймера T37 — 100 мсек, т.е. при загрузке значения 50 время переключения составит 5 сек.

      Выход A0.0 переключателя сети устанавливается, если или кнопка ВКЛ на E0.0, выход A0.1 переключателя звезды или переключатель сети уже активны и нет команды ВЫКЛ от кнопки на E0.1 или сработала защита двигателя на E0.2 и отсутствует блокировка.

      Переключатель треугольника, т.е. выход A0.2, устанавливается при активном переключателе сети и уже неактивном переключателе звезды.

      Размер программы составляет 40 слов.

      Листинг

      Основная программа

      // TITEL = ЗАПУСК ЗВЕЗДА-ТРЕУГОЛЬНИК БЕЗ ОТВЕТНОГО СООБЩЕНИЯ

      // E0.0 Кнопка вкл.

      // E0.1 Кнопка выкл. Нормально замкнута

      // E0.2 Защита двигателя Нормально замкнута

      // A0.0 Переключатель сети

      // A0.1 Переключатель звезды

      // A0.2 Переключатель треугольника

      // T37 Таймер переключения 5 сек

      // БЛОКИРОВКА

      LDN E0.1 // Кнопка Выкл нажата

      U E0.0 // Кнопка Вкл нажата

      S M10.0 ,1 // Вспомогательный меркер для блокировки

      LD E0.1 // Кнопка Выкл не нажата

      UN E0.0 // Кнопка Вкл не нажата

      R M10.0 ,1 // Блокировка снята

       

      // ВКЛЮЧЕНИЕ

      LD E0.0 // Кнопка Вкл нажата

      UN A0.0 // Нет переключателя сети

      LD A0.0 // Переключатель сети

      U A0.1 // Переключатель звезды

      OLD

      LD E0.2 // Защита двигателя OK

      U E0.1 // Кнопка ВЫКЛ не нажата

      UN A0.2 // Нет переключателя треугольника

      ULD

      = M11.0 // Вспомогательный меркер

       

      // ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ ЗВЕЗДЫ

      LD M11.0 // Вспомогательный меркер

      UN M10.0 // Нет блокировки

      UN T37 // Время переключения не закончилось

      = A0.1 // Переключатель звезды

       

      // ЗАПУСК ТАЙМЕРА ПЕРЕКЛЮЧЕНИЯ

      LDN M10.0 // Нет блокировки

      U M11.0 // Вспомогательный меркер

      TON T37,50 // Запуск таймера переключения (5 сек)

       

      // ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ СЕТИ

      LD E0.1 // Кнопка ВЫКЛ не нажата

      U E0.2 // Защита двигателя OK

      UN M10.0 // Нет блокировки

      LD E0.0 // Кнопка Вкл нажата

      U A0.1 // Переключатель звезды

      O A0.0 // Переключатель сети

      ULD

      = A0.0 // Переключатель сети

       

      // ВКЛЮЧЕНИЕ ПЕРЕКЛЮЧАТЕЛЯ ТРЕУГОЛЬНИКА

      LD A0.0 // Переключатель сети

      UN A0.1 // Переключатель звезды

      = A0.2 // Переключатель треугольника

      MEND // Конец основной программы

       

       

      P.S. Кадастровый паспорт земельного участка — это ничто иное, как выписка  из государственного кадастра недвижимости, которая содержит все  необходимые сведения об объекте недвижимости, требующиеся для  государственной регистрации прав объекта недвижимости.

       

        Реверсивный переключатель для полюсно-переключаемых асинхронных двигателей с выбором направления вращения (часть 2)

        Подпрограммы

        SBR 1 // Начало подпрограммы

        //****************VERRIEGELUNG****************************

        LD E0.0 // Медленное движение вправо

        O E0.1 // Или быстрое движение вправо

        O E0.2 // Или медленное движение влево

        O E0.3 // Или быстрое движение влево

        UN E0.4 // И нажата кнопка ВЫКЛ

        LD E0.1 // Или…

        O E0.2

        O E0.3

        U E0.0

        OLD

        LD E0.2 // Или…

        O E0.3

        U E0.1

        OLD

        LD E0.2 // Или…

        U E0.3

        OLD

        LD M1.1 // Или идет время ожидания

        OLD

        S M1.0,1 // То установить меркер блокировки

         

        ДЕБЛОКИРОВКА

        LD E0.4 // Если ни одна кнопка не нажата…

        UN E0.0

        UN E0.1

        UN E0.2

        UN E0.3

        UN M1.1

        R M1.0,1 // То блокировку снять

         

        РАЗРЕШЕНИЕ МЕДЛЕННОГО ВРАЩЕНИЯ ВПРАВО

         

        LDN E0.1 // Нет команды быстро

        LD E0.4 // Нет команды выкл

        U E0.5 // Не сработал автомат защиты двигателя

        UN A0.2 // Бит состояния медленное вращение влево не установлен

        UN A0.3 // Бит состояния быстрое вращение влево не установлен

        = M2.0 // Деблокировка медленного вращения вправо

         

        // РАЗРЕШЕНИЕ БЫСТРОГО ВРАЩЕНИЯ ВПРАВО

        LDN E0.0 // Нет команды медленно

        LD E0.4 // Нет команды выкл

        U E0.5 // Не сработал автомат защиты двигателя

        UN A0.2 // Бит состояния медленное вращение влево не установлен

        UN A0.3 // Бит состояния быстрое вращение влево не установлен

        = M2.1 // Деблокировка быстрого вращения вправо

         

        РАЗРЕШЕНИЕ МЕДЛЕННОГО ВРАЩЕНИЯ ВЛЕВО

        LDN E0.3 // Нет команды быстро

        LD E0.4 // Нет команды выкл

        U E0.5 // Не сработал автомат защиты двигателя

        UN A0.0 // Бит состояния медленное вращение вправо не установлен

        UN A0.1 // Бит состояния быстрое вращение вправо не установлен

        = M2.2 // Деблокировка медленного вращения влево

         

        РАЗРЕШЕНИЕ БЫСТРОГО ВРАЩЕНИЯ ВЛЕВО

        LDN E0.2 // Нет команды медленно

        LD E0.4 // Нет команды выкл

        U E0.5 // Не сработал автомат защиты двигателя

        UN A0.0 // Бит состояния медленное вращение вправо не установлен

        UN A0.1 // Бит состояния быстрое вращение вправо не установлен

        = M2.3 // Деблокировка быстрого вращения влево

        LD E0.0 // Команда вправо медленно

        O A0.0 // Или состояние вправо медленно

        UN M1.0 // И нет блокировки

        U M2.0 // Разрешение вправо медленно

        = A0.0 // Бит состояния Вправо медленно

        LD E0.1 // Команда вправо быстро

        O A0.1 // Или состояние вправо быстро

        UN M1.0 // И нет блокировки

        U M2.1 // Разрешение вправо быстро

        = A0.1 // Бит состояния Вправо быстро

        LD E0.2 // Команда влево медленно

        O A0.2 // Или состояние влево медленно

        UN M1.0 // И нет блокировки

        U M2.2 // Разрешение влево медленно

        = A0.2 // Бит состояния Влево медленно

        LD E0.3 // Команда влево быстро

        O A0.3 // Или состояние влево быстро

        UN M1.0 // И нет блокировки

        U M2.3 // Разрешение влево быстро

        = A0.3 // Бит состояния Влево быстро

        LD A0.4 // Определение фронта при выключении

        EU

        S M1.1,1 // Установка вспомогательного меркера для выключения

        LD M1.1

        MOVW 500,VW20 // Загрузка времени ожидания для перезапуска

        TON T33,VW20 // Пуск таймера ожидания для перезапуска

        U T33

        R M1.1,1 // Сброс всп. меркера по прошествии времени ожидания

         

        RET // Конец подпрограммы

          Реверсивный переключатель для полюсно-переключаемых асинхронных двигателей с выбором направления вращения (часть 1)

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

           

          Схема включения

          Описание программы

          Данная программа служит для управления асинхронным двигателем с двумя раздельными обмотками для различных оборотов и двумя возможными направлениями движения. Она является дополнением к контакторной схеме из примера Nо. 10. В этой программе можно дополнительно выбирать между меньшим и большим числом оборотов для каждого направления вращения.

          Включение двигателя производится кнопками на входах E0.0 для включения медленного вращения вправо, E0.1 для включения быстрого вращения вправо, E0.2 для включения медленного вращения влево и E0.3 для включения быстрого вращения влево. После включения возможно в любой момент времени произвести переключение между быстрым и медленным вращением в любом направлении. При переключении направления вращения необходимо сначала нажать кнопку ВЫКЛ. Двигателю необходимо примерно 5 сек для торможения и запуска в противоположном направлении. Время ожидания индицируется миганием лампочки на выходе A0.5. Переключатель на E0.4 служит для выключения двигателя. На вход E0.5 подключен автомат защиты двигателя, который размыкается при перегрузке двигателя и производит отключение двигателя. При отключенном двигателе горит сигнальная лампа на выходе A0.4.

          В начале цикла програмы вызывается подпрограмма ‘SBR 1’, чьей задачей является оценка сигналов на входах. Для того чтобы исключить ошибку сначала проверяется, не нажато ли два или более переключателя одновременно или закончено ли время ожидания при переключении. В этих случаях меркер блокировки M1.0 устанавливается в ‘1’, исключая тем самым деблокировку автомата защиты двигателя. Блокировка позволяет избежать неконтролируемого движения двигателя или движения в неверном направлении. Блокировка будет снята, т.е. M1.0 установится в логический ‘0’, только если все кнопки снова находятся в ненажатом положении или окончено время ожидания.

          Деблокировка двигателя для режима работы производится только если ВЫКЛючатель (нормально замкнутый) на E0.4 не нажат, автомат защиты двигателя (нормально замкнутый) на E0.5, контролирующий перегрузку двигателя, не разомкнут и двигатель не вращается в противоположном направлении (бит состояния противоположного направления не установлен). Деблокировка снимается также, если подана команда на изменение числа оборотов. Тем самым гарантируется, что два переключателя, для быстрого и медленного движения в одном направлении, не смогут быть активированы одновременно. Например, выход A0.2, который отвечает за медленное вращение влево, будет сброшен, если нажатием кнопки на E0.3 подана команда быстрого вращения влево.

          Самоподхват включенного режима работы, т.е. установка соответствующих битов состояния A0.0, A0.1 A0.2 или A0.3, возможен, если произошла деблокировка желаемого режима работы и не активна общая блокировка. Определение фронта в конце подпрограммы служит для запуска времени ожидания после выключния двигателя, с тем чтобы двигатель имел время на торможение.

          При выходе из подпрограммы биты состояния копируются на выходы с A0.0 по A0.3. Эти выходы управляют автоматами двигателя, в то время как выходы A0.4 и A0.5 служат для индикации состояния ‘ВЫКЛ’ или ‘Идет время ожидания’.

          Размер программы составляет 125 слов.

          Листинг

          Основная программа

           

          // TITEL = Полюсно-переключаемый асинхронный двигатель с двумя направлениями вращения

          //************ ВХОДЫ ****************************

          // E0.0 Медленное вращение вправо

          // E0.1 Быстрое вращение вправо

          // E0.2 Медленное вращение влево

          // E0.3 Быстрое вращение влево

          // E0.4 Кнопка ВЫКЛ (нормально замкнутый)

          // E0.5 Автомат защиты двигателя (нормально замкнутый)

          //**************** ВЫХОДЫ ***********************

          // A0.0 Переключатель медленного вращения вправо

          // A0.1 Переключатель быстрого вращения вправо

          // A0.2 Переключатель медленного вращения влево

          // A0.3 Переключатель быстрого вращения влево

          // A0.4 Сигнальная лампа ВЫКЛ

          // A0.5 Сигнальная лампа Время ожидания

           

           

            S7-200 Примеры. Реверсивный переключатель для асинхронного двигателя

            Краткое описание

            Данный пример программы служит для управления асинхронным двигателем с двумя направлениями вращения.

            Двигатель может быть запущен на движение влево нажатием кнопки на входе E0.0 или вправо нажатием кнопки на E0.1, при условии, что защитный выключатель на входе E0.3 и основной выключатель на E0.2 не нажаты. Переключить направление вращение можно только после нажатия основного выключателя и окончания времени ожидания 5 с, при этом может происходить торможение и запуск двигателя. Если обе кнопки на включение нажаты одновременно, то двигатель будет блокирован.

             

            Описание программы включая листинг

            Сначала программа проверяет, должна ли быть включена блокировка установкой вспомогательного меркера M2.0. Это как раз тот случай когда обе кнопки, на входах E0.0 и E0.1 нажаты одновременно или если время ожидания еще не вышло. Только если обе кнопки снова находятся в отжатом состоянии и кончилось время ожидания, т.е вспомогательный меркер M2.3 сброшен, будет сброшен и блокирующий меркер M2.0.

            Разрешение на вращение влево осуществляется установкой соответствующего бита деблокировки M2.1, если ни защитный выключатель двигателя на входе E0.3 или кнопка ВЫКЛ на E0.2 (оба нормально закрытые) не нажаты, ни бит состояния для вращения вправо M1.1 не установлен. Бит состояния для вращения влево это M1.0. Деблокировка вращения вправо происходит аналогично.

            Двигатель включается, если нажата одна кнопка включения и ни бит блокировки ни бит состояния другого направления не установлены. Пуск двигателя происходит установкой соответствующего выхода и относящегося к нему бита состояния, обеспечивающего самоподхват. На выходе A0.0 срабатывает контактор левого вращения, а на выходе A0.1 правого. Кроме того, загорается сигнальная лампа режима. Сигнальная лампа движения влево подключена на A0.4, движения вправо на A0.3, а лампа состояния ВЫКЛ на A0.2.

            Если двигатель выключается, то по положительному фронту ‘ED’ устанавливается вспомогательный меркер M2.3 (процесс выключения). Если последний установлен, то запускается таймер ожидания для повторного пуска со временем работы 5 с (500*10 мс). По завершении этого времени меркер M2.3 процесса выключения сбрасывается. Во время работы таймера ожидания на выходе A0.5 мигает сигнальная лампа. В случае, если бит состояния не установлен, то на выходе A0.2 горит сигнальная лампа состояния ‘ВЫКЛ’.

            Размер программы составляет 61 слово.

             

            // TITEL = Контакторное переключение

            // Блокировка

            LD E0.1 // Команда вправо

            U E0.0 // и команда влево

            O M2.3 // или время ожидания не кончилось

            S M2.0,1 // устанавливается блокировка

            LDN E0.0 // Нет команды влево

            UN E0.1 // нет команды вправо

            UN M2.3 // время ожидания кончилось

            R M2.0, 1 // блокировка сбрасывается

            Деблокировка движения влево

            LD E0.2 // Нет команды выключения

            U E0.3 // не сработал защитный выключатель

            UN M1.1 // бит состояния движения вправо не установлен

            = M2.1

            // Деблокировка движения вправо

            LD E0.2 // Нет команды выключения

            U E0.3 // не сработал защитный выключатель

            UN M1.0 // бит состояния движения влево не установлен

            = M2.2

            // Движение влево

            LD E0.0 // Команда влево

            O M1.0 // или состояние левого движения

            UN M2.0 // и нет блокировки

            U M2.1 // разрешение на движение влево

            = M1.0 // бит состояния движения влево

            = A0.0 // выход контактора

            = A0.4 // выход сигнальной лампы движения влево

            // Движение вправо

            LD E0.1 // Команда вправо

            O M1.1 // или состояние правого движения

            UN M2.0 // и нет блокировки

            U M2.2 // разрешение на движение вправо

            = M1.1 // бит состояния движения вправо

            = A0.1 // выход контактора

            = A0.3 // выход сигнальной лампы движения вправо

            // Определение фронта процесса выключения

            LDN M1.0 // бит состояния движения влево

            UN M1.1 // бит состояния движения вправо

            = A0.2 // выход сигнальной лампы состояния ВЫКЛ

             

             

            LD A0.2 // При выключении

            ED

            S M2.3,1 // Устанавливается вспомогательный меркер для

            // процесса выключения

            LD M2.3

            MOVW 500,VW20 // Загрузка времени ожидания для перезапуска

            TON T33,VW20 // Пуск таймера ожидания для перезапуска

            U T33

            R M2.3, 1 // Сброс вспомогательного меркера после времени ожидания

            // Индикация состояния ВЫКЛ, Время ожидания

            LD M2.3 // Вспомогательный меркер времени ожидания

            // процесса выключения

            U SM0.5 // Мигание 1 с

            = A0.5 // Выход сигнальная лампа время ожидания

             

            MEND // Конец основной программы

            Различные возможности установки битов или байтов в S-200

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

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

            Рисунок  SEQ Рисунок * ARABIC 1 Структура программы

            Описание программы вкл. листинг

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

            Используются команды:

            FILL Устанавливает один или несколько битов

            FOR… NEXT Цикл FOR…NEXT R Сбрасывает один или несколько битов

            Размер программы составляет 55 слов.

            Основная программа

            // TITEL=FORNEXT

            // Основная программа содержит вызовы подпрограмм 0, 1 и 2.

            LD SM0.0 // Всегда в единице

            CALL 0 // Вызов подпрограммы 0

            // (FILL)

            CALL 1 // Вызов подпрограммы 1

            // (FOR…NEXT)

            CALL 2 // Вызов подпрограммы 2

            // (Reset)

            MEND // Конец основной программы

            Подпрограммы

            // Подпрограмма 0 копирует значение слова VW200 в слово VW204 и в 6 последующих слов памяти (до VW216), если установлен вход E0.0.

            SBR 0 // Подпрограмма 0

            LD E0.0 // Чтение входа E0.0

            MOVW 16#ABC3,VW200 Запись 16-рич.значения

            // ABC3 в VW200

            FILL VW200,VW204,7 Копирование значения слова VW200 в слово VW204 и шесть последующих слов памяти (до VW216)

            RET // Конец подпрограммы 0

            Подпрограмма 1 копирует следующие друг за другом числа в переменную область памяти, если установлен вход E0.1. Число выполняемых циклов определяется номерами первого (в VW10) и последнего цикла (в VW0). Текущее значение выполненных циклов находится в слове памяти VW20. Первое число, с которого надо начинать счет, загружается в аккумулятор AC0. Первый адрес, под которым надо запоминать значение,заносится в аккумулятор AC1, действующий в качестве указателя. Затем начинается выполнение циклов. К начальному значению AC0 за один цикл прибавляется 4, указатель AC1 увеличивается на следующее слово памяти, пока не будет обработан последний цикл.

            SBR 1 // Подпрограмма 1

            LD E0.1 // Чтение входа E0.1

            MOVW 10,VW0 // Номер последнего цикла в VW0

            MOVW 0,VW10// Номер первого цикла в VW10

            MOVW 0,VW20// Текущий номер цикла в VW20 (счетчик)

            MOVW 50,AC0// Начальное значение счета в аккумулятор 0

            MOVD &VB100,AC1// аккумулятор 1 (указатель памяти) указывает на байт памяти VB100

            FOR VW20,VW10,VW0 / Начало цикла

            MOVW AC0,*AC1// Сохранить текущее значение счетчика по текущ. адресам памяти

            INCD AC1 // Инкрементировать указатель памяти на 1 байт

            INCD AC1 // Инкрементировать указатель памяти на 1 байт

            +I 4,AC0 // Прибавить 4 к текущ. значению счетчика

            NEXT // Конец цикла

            RET // Конец подпрограммы 1

            // Подпрограмма 2 сбрасывает биты памяти с V100.0 до V121.7 и с V204.0 до 217.7, если установлен вход E0.2.

            SBR 2 // Подпрограмма 2

            LD E0.2 // Установка входа E0.2

            R V100.0,176// Сброс битов с V100.0 до 121.7

            R V204.0,112// Сброс битов с V204.0 до 217.7

            RET // Конец подпрограммы 2

            S7-200 Примеры. Обработка фронтов входных сигналов

            Этот пример показывает, как можно определить смену сигнала с помощью функции определения фронта S7-200. При этом различаются положительные и отрицательные фронты, причем под положительным фронтом понимается смена сигнала с ‘0’ на ‘1’, а под отрицательным – смена сигнала с ‘1’ на ‘0’. Логическая ‘1’ означает, что на вход подано напряжение, а под ‘0’ понимается отсутствие напряжения на входе.

            Программа запоминает число положительных фронтов на входе E0.0 и отрицательных на входе E0.1 в слове меркеров. Можно дополнить программу опросом запомненных значений, проверяя при этом все ли фронты опознаны.

            Структура программы

             

             

            Описание программы вкл. листинг

            Программа опрашивает вход E0.0 и и проверяет затем с помощью команды EU (Edge Up), произошла ли положительная смена сигнала, то есть смена с ‘0’ на ‘1’. Если да, то значение меркерного слова MW1 повышается на 1. Отрицательный фронт входа E0.1 будет сосчитан посредством команды ED (Edge Down) iв меркерном слове MW3. Если число сосчитанных фронтов достигает 127, то соответствующий меркер сбрасывается в ноль. Не забывайте, что младший байт слова меркеров MW1 это байт M2, а старший байт это байт M1. В слове меркеров MW3 соответственн младший бит M4, а старший M3.

            Размер программы составляет 27 слов.

             

            Основная программа

            LD SM0.1 // Только в первом цикле в единицу

            MOVD 0, MD1// Установка двойного слова MD1 в ноль

            LD E0.0 // Положительный фронт

            EU

            +I 1,MW1// При смене фронта: слово меркеров MW1 увеличивается на 1

            LDW= 127,MW1// После 127 смен фронта (=свободно задаваемое значение)

            MOVW 0,MW1// Слово меркеров MW1 сбрасывается в 0

            LD E0.1 // Отрицательный фронт

            ED

            +I 1,MW3// При смене фронта: слово меркеров MW3 увеличивается на 1

            LDW= 127,MW3// После 127 смен фронта (=свободно задаваемое значение)

            MOVW 0,MW3// Слово меркеров MW3 сбрасывается в 0

            MEND // Конец программы

             

             

            Управление часами реального времени SIMATIC S7-214

             

            Краткое описание

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

            • Байт 0: Столетие (00 — 99)
            • Байт 1: Месяц (1 — 12)
            • Байт 2: День (1 — 31)
            • Байт 3: Часы (00 — 24)
            • Байт 4: Минуты (00 — 59)
            • Byte 5: Секунды (00 — 59)
            • Byte 6: не занято
            • Byte 7: День недели (1-7 = Вс-Сб)

            Данные хранятся в коде BCD (при чтении) или должны заноситься в коде BCD (при записи). При нажатии кнопки на E0.0 в часы реального времени будет занесена предустановленная дата. Кнопка на E0.1 служит для индикации текущего значения секунд, которое копируется на выходной байт AB0. Кодирование при этом производится на выбор в формате BCD (E0.1 = ‘1’) или двоичном (E0.1 = ‘0’).

            Описание программы вкл. листинг

            При нажатии кнопки на входе E0.0 будет вызвана подпрограмма 0. Эта подпрограмма заполняет 8 байтов VB100 до VB107 соответствующими значениями для даты и времени. Заключительная команда ‘TODW’ сохраняет установки для часов реального времени. Часы реального времени считываются в каждом цикле. Эти данные заносятся в 8 байтов с VB400 по VB407 в формате BCD (4 бита представляют цифру от 0 до 9). Если установлен вход E0.1, то это значение копируется непосредственно на выходной байт.

            Если вход E0.1 не установлен, то слово данных VW404 копируется в слово VW204, а затем старший байт VB204, который содержит значение минут, стирается. Это мероприятие необходимо, так как конвертирование значения секунд из формата BCD в двоичный может быть произведено только пословно. Теперь двоичнокодированное значение секунд передается на выходной байт AB0.

            Размер программы составляет 46 слов.

            Основная программа

            // TITEL = Часы реального времени

            LD E0.0 // Кнопка записи реального времени

            EU

            CALL 0 // Вызов подпрограммы 0

            LD SM0.0 // Начало стека

            TODR VB400 // Чтение данных реального времени и запись в 8- байтовый буфер

            LD E0.1 //Кнопка индикации секунд в формате BCD

            MOVB VB405, AB0 // Копирование текущего значения секунд в выходной байт

            LDN E0.1

            MOVW VW404, VW204 //Копирование слова

            MOVB 0, VB204 //Стирание старш. байта (минуты)

            BCDI VW204 // Преобразование BCD => Двоич.

            MOVB VB205, AB0 // Копирование текущего значения секунд в выходной байт

            MEND

             

            Подпрограмма

            SBR 0 // Установка даты и времени

            LD SM0.0

            MOVB 16#95, VB100 // год: 95

            MOVB 16#02, VB101 // месяц: февраль

            MOVB 16#14, VB102 // день: 14

            MOVB 16#12, VB103 // часы: 12

            MOVB 16#0, VB104 // минуты: 00

            MOVB 16#0, VB105 // секунды: 00

            MOVB 16#0, VB106 // не занято

            MOVB 16#3, VB107 // день недели: вторник

            TODW VB100 // записать время

            RET // Конец подпрограммы