
- •Установка скорости передачи и сетевого адреса для s7–200
- •Параметры связи по умолчанию
- •3 . Нормально замкнутый контакт замкнут (включен), когда управляющий бит равен 0.
- •Положительный, отрицательный фронт
- •Пример 1. Циклическое включение двигателя
- •Приоритет прерываний и постановка их в очередь
- •Команды для реле управления очередностью
Пример 1. Циклическое включение двигателя
На выход Q0.0 контроллера включен двигатель. При запуске программы контроллера, двигатель должен 5 секунд включаться, а затем на 5 секунд отключаться. Этот процесс должен повторяться циклически, до остановки выполнения программы контроллера.
Комментарии. 1. При первом цикле контроллера бит SM0.1 = 1, в этот момент и включаем Q0.0.
2. Как только включается Q0.0, так сразу таймер Т37 начинает отсчитывать время.
3. Через 5 сек таймер Т37 устанавливается, в этот момент и выключаем Q0.0.
4. Если Q0.0 отключен, то отсчитывает время таймер Т38.
5. Через 5 сек таймер Т38 устанавливается, в этот момент и включаем Q0.0.
Пример 2. Автоматическое включение вперед и назад.
Теперь двигатель должен 15 секунд вращаться вперед, 15 секунд останавливаться, затем 15 секунд вращаться назад, 15 секунд останавливаться. Этот процесс должен продолжаться до остановки выполнения программы.
Вращение вперед происходит через выход Q0.0, вращение назад – через Q0.1.
Вращение вперед
Вращение назад
Пример 3. Мягкий запуск АД двигателя
Как известно, при запуске асинхронного двигателя ток Iпуска двигателя 5-8 раз больше чем ток Iном. Если процесс запуска двигателя затяжной, то большие токи могут перегреть обмотку двигателя и двигатель сгорит.
Для ограничения Iпуска, при запуске вначале включают двигатель через токоограничивающий резистор R, а через 5 секунд обмотки двигателя включают напрямую.
При нажатии кнопки ВКЛ на входе I0.0 включается пускатель Q0.0, который включает двигатель через токоограничивающий резистор R. Через 5 сек включается пускатель Q0.1, который включает двигатель в обход токоограничивающего резистора.
Кнопка ВЫКЛ на I0.1 отключает двигатель. На вход I0.2 подключен автомат защиты двигателя, который срабатывает при перегрузке двигателя и отключает его.
I0.0 – нормально разомкнут;
I0.1 и I0.2 – нормально замкнутые контакты.
Команды работы с байтами, словами и двойными словами
Пересылка байта
Команда Переслать байт пересылает входной байт (IN) в выходной байт (OUT). Входной байт командой пересылки не изменяется. Пересылка байта будет выполнена, если вход EN равен лог. 1. Например,
Если блок выполняет свою функцию без ошибок, то выход ENO (Enable Out) передает поток сигнала следующему элементу. Если при исполнении блока обнаруживается ошибка, то поток сигнала завершается на блоке, в котором произошла ошибка.
В конце заметим, что имеются аналогичные команды пересылки слова (MOV_W), двойного слова (MOV_DW), вещественного числа (MOV_R).
Аккумуляторы
Аккумуляторы – это элементы памяти чтения/записи, которые могут использоваться как память. Например, вы можете использовать аккумуляторы для хранения промежуточных результатов расчетов.
S7–200 имеет в своем распоряжении четыре 32–битовых аккумулятора (AC0, AC1, AC2 и AC3). К данным в аккумуляторах можно обратиться в формате байта, слова или двойного слова.
Длина данных, к которым производится обращение, зависит от команды, которая используется для обращения к аккумулятору.
- обращение байту аккумулятора
- обращение слову аккумулятора
Арифметические команды
Операции сложения
К
оманды
сложения целых чисел (+I) и вычитания
целых чисел (-I) складывают или
вычитают два 16–битовых целых числа и
дают 16–битовый результат.
У
множение
целых чисел
Команда умножения целых чисел перемножает два 16–битовых целых числа и как результат дает 32– битовое число.
Д
еление
целых чисел с остатком
Команда деления целых чисел с остатком делит два 16–битовых целых числа и дает 32–битовый результат, состоящий из 16–битового остатка (старшее слово) и 16–битового частного (младшее слово).
В конце заметим, что имеются также команды сложения, вычитания, умножения и деления двойных целых чисел и вещественных чисел.
Команды сравнения байтов
Команда Сравнить байты используется для сравнения двух величин: IN1 и IN2. Возможны следующие сравнения: IN1 = IN2, IN1 >= IN2, IN1 <= IN2, IN1 > IN2, IN1 < IN2 и IN1 <> IN2. Байты сравниваются без знака. Имеется также команды сравнения целых чисел, двойных слов и вещественных чисел.
П
ример
- сравнение аккумулятора АС0 числом 255
В LAD контакт включен, когда сравнение истинно. В STL, если сравнение истинно, то эти команды загружают лог. 1 в вершину стека или выполняют логическое сопряжение значения лог. 1 со значением в вершине стека в соответствии с таблицей истинности для И или ИЛИ.
Счетчики (C0 – C255)
S7–200 имеет в своем распоряжении три вида счетчиков:
- прямой счетчик;
- обратный счетчик и
- реверсивный счетчик.
Как и в случае с таймером, со счетчиком связаны две переменные:
- Текущее значение: это 16–битовое целое со знаком хранит счетное значение, накопленное счетчиком.
- Бит счетчика: этот бит устанавливается или сбрасывается, когда текущее значение становится равным предустановленному значению. Предустановленное значение вводится как часть команды счетчика.
Пример
Счетчик С3 считает количества импульсов на входе I0.0. Когда текущее значение С3 больше или равно предустановленному значению PV, бит счетчика С3 устанавливается.
Происходит ли обращение к биту счетчика или к текущему значению, зависит от используемой команды:
- команды с операндами в битовом формате обращаются к биту счетчика,
- команды с операндами в формате слова обращаются к текущему значению.
Например,
- Текущее значение счетчика С3 записывается в VW200
- Обнуление бита счетчика С3, и в том числе текущего значения счетчика.
Реверсивный и обратный счетчик
1
.
Реверсивный счетчик увеличивает
значение счетчика при появлении
нарастающих фронтов сигнала на входе
CU (Count Up) и уменьшает
значение счетчика при появлении
нарастающих фронтов сигнала на входе
CD (Count Down). Когда текущее
значение С45 больше или равно
предустановленному значению PV, бит
счетчика C45 устанавливается. Счетчик
сбрасывается, когда включается вход
сброса R.
2. Обратный счетчик уменьшает значение счетчика от предустановленного значения при появлении нарастающих фронтов сигнала на входе CD (Count Down). Когда текущее значение равно нулю, бит счетчика (Cxxx) включается. Счетчик сбрасывает свой бит (Cxxx) и загружает текущее значение предустановленным значением (PV), когда включается вход загрузки (LD). Обратный счет прекращается при достижении нуля.
Скоростные счетчики: (HC0 – HC5)
Рассмотренные выше счетчик не могут считать импульсов, которые по длине короче время цикла контроллера, так как они считывают состояние импульса один раз за время цикла контроллера.
Скоростные счетчики считают импульсы аппаратно, т.е. на входах имеются 32-х разрядные микросхемы счетчиков. Каждый счетчик привязан на некоторый вход:
Для обращения к счетному значению скоростного счетчика введите его адрес, указав область памяти (HC) и номер счетчика (например, HC0).
Пример.
Команды управления программой
Команды формирования программного цикла For-Next
// Т Е Л О Ц И К Л Ч Е С К О Й Ч А С Т И
Команда FOR выполняет команды, расположенные между операторами FOR и NEXT. Вы должны задать значение индекса или счетчик цикла INDX, начальное значение INIT и конечное значение FINAL. Команда NEXT отмечает конец цикла FOR. Каждая команда FOR требует наличия команды NEXT.
После каждого исполнения команд между FOR и NEXT значение INDX увеличивается на единицу, а результат сравнивается с конечным значением. Если INDX больше конечного значения, то цикл завершается. Если начальное значение больше конечного, то цикл не выполняется.
Например, если значение INIT равно 1, значение FINAL равно 10, то команды между FOR и NEXT исполняются 10 раз, причем значение INDX каждый раз увеличивается на единицу: 1, 2, 3, ...10.
Допускается изменение счетчика внутри циклической части. Тогда количество итераций циклической части уменьшается.
Вы можете вкладывать циклы FOR - NEXT друг в друга (помещать цикл FOR-NEXT внутри другого цикла FOR-NEXT). Глубина вложения не может превышать восьми.
Условное завершение
Команда условного завершения END завершает текущий цикл в зависимости от результата предшествующей логической операции. Например,
Вы можете использовать команду условного завершения в главной программе, но ее нельзя использовать в подпрограммах и программах обработки прерываний.
К
оманды
перехода
Команда перехода на метку JMP осуществляет переход к указанной метке N внутри программы. Команда LBL отмечает положение цели перехода N.
Команду перехода на метку можно использовать в основной программе, в подпрограммах и в программах обработки прерываний. Вы не можете перейти из главной программы на метку в подпрограмме или в программе обработки прерывания. Аналогично, вы не можете перейти из подпрограммы или программы обработки прерывания на метку вне этой подпрограммы или программы обработки прерывания.
Команды организации прерываний
Виды прерываний, поддерживаемых S7–200
S7–200 поддерживает следующие виды программ обработки прерываний:
- Прерывания по вводу/выводу: S7–200 генерирует события для различных изменений состояния различных входов-выходов.
- Прерывания, управляемые временем: S7–200 генерирует события, которые позволяют вашей программе реагировать через определенные интервалы времени.
- Прерывания коммуникационных портов: S7–200 генерирует события, которые позволяют вашей программе управлять коммуникационным портом.
В следующей таблице перечислены различные типы прерывающих событий.
Принцип действия команд назначения и отсоединения прерываний
Прежде чем программа обработки прерывания может быть вызвана, должно быть установлена связь между прерывающим событием и подпрограммой, который вы хотите выполнить, когда это событие происходит.
Для организации этой связи следует выполнить команды назначения прерывания - ATCH. Эта команда связывает прерывающее событие EVNT с номером подпрограммы обработки прерываний. Например, при замыкании контакта I0.0 происходит событие 0. Этому событию назначается прерывание INT_0.
О
дной
подпрограмме обработки прерываний
можно поставить в соответствие несколько
прерывающих событий, но одно событие
не может быть одновременно поставлено
в соответствие нескольким подпрограммам
обработки прерываний.
К
оманда
отсоединения прерывания (DTCH)
разрывает связь прерывающего события
EVNT со всеми программами обработки
прерываний и блокирует прерывающее
событие. Например, при разомкнутом
контакте I0.0 от
события 0 отсоединяются все программы
обработки прерываний.
Команда разблокирования прерываний ENI разблокирует обработку всех назначенных прерывающих событий. Когда вы переходите в режим RUN, прерывания первоначально заблокированы. Поэтому прерывания следует разблокировать командой ENI.
Команда блокирования прерываний DISI блокирует обработку всех прерывающих событий. Выполнение команды блокирования прерываний запрещает обработку прерываний, однако активные прерывающие события и далее будут ставиться в очередь.
Примеры:
Когда вы назначаете прерывающее событие программе обработки прерываний, это прерывание автоматически разблокируется. Если вы заблокировали все прерывания с помощью команды блокирования прерываний, то каждое возникновение прерывающего события ставится в очередь, пока прерывания не будут снова разблокированы с помощью команды разблокирования прерываний или не произойдет переполнение очереди прерываний.