Скачиваний:
19
Добавлен:
01.05.2014
Размер:
383.49 Кб
Скачать

Лабораторная работа №3

Цель работы.

Ознакомиться с организацией подпрограмм в STL.

Справочные данные

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

NAME …. Дается уникальное имя не более 4-х символов

….

RTS Возврат из подпрограммы.

Вызываются подпрограммы из тела программы так:

JSR NAME

Общая структура программы:

JSR INIT Вызов подпрограммы инициализации

(выполняется один раз, в первом программном цикле)

JSR PP1 Вызов подпрограммы PP1

JSR PP2 Вызов подпрограммы PP2

...

END

____________________________________________________________

INIT LDAA R 0899 (TD 64)

BEQ CON

...

CON RTS

____________________________________________________________

PP1 ...

RTS

____________________________________________________________

PP2 ...

RTS

Подпрограмма инициализации, флаг первого сканирования

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

Другой, нестандартный способ, заключается в использовании одного из сбрасываемых регистров R 0000 - R 0019 (или флажков F 000 - F 499), который необходимо установить в отличное от 0 значение в подпрограмме инициализации и контролировать его значение в ее начале.

Некоторые полезные команды

SK0

Пропустить следующую инструкцию, если результат предыдущей операции 0

SK1

Пропустить следующую инструкцию, если результат предыдущей операции не 0

Команды условного сброса и установки (только для O, S, F)

PRS

1Þ(M), if a0=1

Записать 1 в ячейку памяти, если младший бит аккумулятора А равен 1

RST

0Þ(M), if a0=1

Записать 0 в ячейку памяти, если младший бит аккумулятора А равен 1

Команды безусловного сброса и установки

CLR

0Þ(M)

Записать 0 в ячейку памяти

CLRA

0ÞA

Записать 0 в аккумулятор А

CLRB

0ÞB

Записать 0 в аккумулятор В

SET

1Þ(M)

Записать 1 в ячейку памяти

CLC

0ÞC

Записать 0 во флаг переноса C

SEC

1ÞC

Записать 1 во флаг переноса С

Все эти команды удобно использовать, например, с однобитовыми адресами, (дискретные входы/выходы и флажки).

Например.

JSR INIT Выполнить п/п инициализации

LDAA I 040 Загрузить вход 040

SK1 и не выполнять подпрограмму POD1

JSR POD1 в случае активного состояния

входа.

LDAA F 010 Загрузить флаг 010

SK0 Выполнить подпрограмму, если

JSR POD2 флаг равен 1

END

INIT …

RTS

POD1 RST O 050 Установить выход 050

RTS

POD2 CLR F 010 Сбросить флаг 010

RTS

Задания на выполнение лабораторной работы

по выбору:

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

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

Разработать блок-схему алгоритма управления системой.

Оформить процесс прибавления/убавления жидкости и процесс управления отдельными процедурами.

R2000, R2001 - текущий уровень.

Значения уставок принять:

R2002 – уставка для включения нагревателя. (=250)

R2003, R2004 – верхний уровень.(=2000).

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

Содержание отчета

  1. Цель работы.

  2. Таблица зависимости значений выходных сигналов от входных.

  3. Блок-схема алгоритма управления.

  4. Текст программы с комментариями.

  5. Выводы.