- •1. Системы плк b&r
- •2. Аппаратное обеспечение лабораторных работ
- •3. Структурная схема плк
- •4. Модуль центрального процессора
- •4.1. Технические данные
- •4.2. Светодиодный индикатор состояния цп
- •4.3. Функции тестирования и обработки ошибок
- •4.5. Математические подпрограммы
- •5. Основные понятия
- •6. Техника программирования
- •6.1. Структура программы на stl
- •6.2. Особенности программирования плк
- •6.2.1. Цикл программы
- •6.2.2. Подпрограмма инициализации, флаг первого сканирования
- •6.2.3. Временные функции
- •6.2.4. Формирование фронта сигнала
- •6.2.5. Последовательности шагов
- •7. Лестничные логические диаграммы
- •7.1. Компоненты для поддержки lad
- •7.2. Основные понятия lad
- •7.3. Этапы работы с lad
- •7.3.1. Запуск Системы Программирования prosys
- •7.3.2. Создание lad с помощью редактора
- •7.3.3. Компиляция созданной lad в stl-представление
- •7.3.4. Загрузка полученного кода в плк
- •7.3.5. Отладка lad
- •7.4. Основы программирования в терминах lad
- •7.4.1. Наиболее часто встречающиеся ошибки
- •197376, С.-Петербург, ул. Проф. Попова, 5
6. Техника программирования
6.1. Структура программы на stl
Программа, написанная с использованием языка ассемблера, может быть разделена на две части. Первая - основная, в которой производятся вызовы пользовательских и стандартных подпрограмм, а также может осуществляться обращение к таблицам данных, подпрограммам инициализации и могут быть использованы любые команды из списка операторов (STL). Эта часть программы должна оканчиваться командой END. Во второй производится описание всех стандартных и пользовательских подпрограмм. Следует отметить, что в качестве подпрограммы могут выступать лестничные логические диаграммы (LAD), функциональные схемы (FD иFBK), схемы последовательности (SEQC) и подпрограммы на ассемблере, которые должны начинаться со строки, помеченной меткой, представляющей собой любую комбинацию из четырех латинских букв и цифр, причем первая - буква, и заканчиваться командой выхода из подпрограммы - RTS. Отметим, что все перечисленные структуры, вызываемые из основной части программы на этапе программирования в STL, являются подпрограммами на языке ассемблер, поэтому в дальнейшем мы не будем делать различия между ними. Обращение к подпрограммам и другим структурам, описанным во второй части программы, осуществляется по метке при помощи команды JSR (см. пример):
0000 JSR INIT инициализация
0001 JSR AINP читать аналоговую величину
0002 JSR LIN линеаризация
0003 JSR AOUT вывод аналоговой величины
0004 END завершение основной части
0005 INIT LDAA T D64 подпрограмма инициализации
0006 BNE EINI
... тело подпрограммы
000X EINI RTS выход из подпрограммы
000X AINP ... чтение аналогового входа
... тело подпрограммы
000X RTS выход из подпрограммы
000X AOUT ... запись аналоговой величины
... тело подпрограммы
000X RTS выход из подпрограммы
6.2. Особенности программирования плк
В первую очередь, имеются некоторые особенности программирования ПЛК, функций безопасности и вспомогательных средств, которые значительно облегчают программирование.
6.2.1. Цикл программы
Большая часть программы ПЛК постоянно выполняется в цикле. Как только процессор закончил цикл (он распознает это по команде END), он начинает обработку снова со строки 0. Максимальное время, которое необходимо процессору для выполнения программы (начиная со строки 0 до следующего выполнения END) 100 мс. Если программа выполняется дольше, потому что, например, цикл не заканчивается из-за ошибки программирования, то контролирующая функция ЦП (наблюдение за ВРЕМЕНЕМ ВЫПОЛНЕНИЯ) останавливает ПЛК и вызывает сигнал сброса.
6.2.2. Подпрограмма инициализации, флаг первого сканирования
Подпрограмма инициализации - это такая подпрограмма, которая исполняется только один раз - в первом программном цикле после сброса (после включения ПЛК). Достигнуть того, чтобы подпрограмма исполнялась однократно, можно несколькими способами. Стандартный способ заключается в использовании системного флага первого сканирования, который автоматически устанавливается операционной системой в 1 для первого программного цикла, а затем сбрасывается в 0 при последующих исполнениях. В качестве первого скана можно использовать R 0899 или TD64. Другой, нестандартный способ, заключается в использовании одного из сбрасываемых регистров R 0000 - R 0019 (или флажков F 000 - F 499), который необходимо установить в отличное от 0 значение в подпрограмме инициализации и контролировать его значение в ее начале.