Вы находитесь на странице: 1из 69

Министерство общего и профессионального образования РФ

_______________

Санкт-Петербургский государственный
электротехнический университет (ЛЭТИ)
_____________________________________________________

ПРОГРАММИРОВАНИЕ ПРОМЫШЛЕННЫХ
КОНТРОЛЛЕРОВ В СИСТЕМЕ PROSYS

Методические указания
к лабораторным работам

Санкт-Петербург
1999
УДК 681. 3: 62 - 52

Программирование промышленных контроллеров в системе PROSYS:


Методические указания к лабораторным работам / Сост.: Е.Л. Крылова,
А.В. Наседкин, М.Л. Немудрук, Д.В. Падалка, М.С. Федоров; СПбГЭТУ. СПб., 1999.
66 с.

Приведены общие сведения и рекомендации по выполнению лабораторных


работ по дисциплинам ”Микропроцессорные устройства автоматических систем”,
”Технические средства систем автоматизации и управления”.
Предназначены для студентов специальности 210100 “Управление и
информатика в технических системах”.

Утверждено
редакционно-издательским советом университета
в качестве методических указаний
 СПбГЭТУ, 1999
Лабораторная работа 1
1. Цель работы
Начальное ознакомление с лабораторным стендом для изучения
программируемых логических контроллеров (ПЛК) (на примере
MIDICONTROL) фирмы B&R и приобретение навыков работы в Системе
Программирования PROSYS.
2. Описание лабораторного стенда

2.1. Комплектация лабораторного стенда


Лабораторный стенд включает в себя:
1. Персональный компьютер типа IBM PC/AT 486 c записанной на диск
Системой Программирования ПЛК PROSYS. В настоящем лабораторном
стенде PC выполняет роль программирующего устройства.
2. Блок питания на 24B для питания ПЛК.
3. Крейт ПЛК MIDICONTROL c набором модулей, необходимых для
выполнения лабораторных работ. Типы и местоположения модулей в крейте
могут меняться в зависимости от цели текущей лабораторной работы. В
минимальной конфигурации ПЛК может включать в себя только два модуля -
блок питания (БП) и центральный процессор (ЦП).
4. Кабель интерфейса, связывающий программирующее устройство с ПЛК.
5. Различные периферийные устройства, подключаемые к ПЛК (может не быть).
2.2. Описание лабораторного стенда

2.2.1. ПЛК MIDICONTROL


Используемый в настоящем цикле лабораторных работ ПЛК
MIDICONTROL имеет крейтное исполнение. Кассета модулей (крейт) MDR085-
0 имеет металлический корпус с габаритными
размерами 280x222x143, открытый
спереди и снабженный направляющими
пазами, в которые вставляются модули.
Разводка соединительных шин
производится на задней стороне кассеты,
где находятся соединительные розетки для
модулей. Эти места пронумерованы
шестнадцатеричными номерами начиная с
места, непосредственно следующего за
ЦП. Нумерация проставлена на верхней
части кассеты. Системные места для БП и
ЦП обозначаются как "NT/PS" и "CPU" соответственно.
ПЛК имеет интерфейс ONLINE для связи с инструментальной ЭВМ в
интерактивном (online) режиме работы. Режим online необходим на этапе
создания прикладного ПО и его отладки. Он позволяет контролировать ход
выполнения пользовательской программы, загруженной в ПЛК. Разъем этого

3
интерфейса помечен надписью "PG" на передней панели модуля. На
инструментальной ЭВМ под данный интерфейс задействован последовательный
порт.
Модуль ЦП CP41 (обозначен как CPU), используемый в составе
лабораторного ПЛК, построен на базе однокристального микропроцессора
Hitachi 6303, совместимом с оригинальным микропроцессором Motorola. Кроме
CP41 фирма B&R выпускает несколько других типов CPU-блоков,
отличающихся друг от друга быстродействием, органами индикации и
управления. Общим для них является использование микропроцессоров 6303
или 6309 (полностью программно совместим с 6303, кроме того, имеет
некоторые уникальные команды). Технические данные CP41 представле ны в
таблице:
Процессор Hitachi 6303
Быстродействие 250.000 операций типа регистр-регистр
в секунду
Модуль ЗУ программ пользователя объем: 16 Kбайт
тип: ЗУПВ/ЭСППЗУ ЕЕ32
Количество входов/ выходов цифровых: 192
аналоговых: 128
Количество регистров 7168
из них сохраняющихся: 7148
из них несохраняющихся: 20
Количество флажков 800
из них сохраняющихся: 300
из них несохраняющихся: 500
Время/дата программные часы
Адресуемые аппаратные таймеры 64
Программные таймеры 64
Временные циклы/импульсы 10, 100 мс, 1, 10 с
Потребляемая мощность 3.3 Вт
Диапазон рабочих температур 0 .. 60 °C
Влажность 0 .. 95 %
Структурная схема ПЛК представлена на рисунке:
В системном ПЗУ хранится
Модуль польз.
памяти программа тестирования,
Модуль ЦП выполняемая при включении
Польз. Систем- электропитания, однозадачная
ОЗУ ное ПЗУ операционная система и
отладчик. Пользователь не
Польз. ЦП Систем- имеет доступа в системное
ППЗУ ное ОЗУ
ПЗУ.
Системное ОЗУ в
основном предназначено для
Системный интерфейс временного хранения
системных переменных.
Пользователь имеет
TTY ЦАП АЦП    ограниченный доступ в эту

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

Тип мигания Функциональное состояние


Прикладная программа выполняется в ЗУПВ

ЦП в состоянии останова

Отсоединение соединительного кабеля при


программировании ППЗУ в режиме online
Ошибка при выполнении прикладной программы

Прикладная программа выполняется в ППЗУ

Объем адресуемой памяти составляет 64 Кбайта. Карта ее распределения


имеет следующий вид.

5
$0000 системные $4000 $8000 $C000
$00FF переменные
$0100 системный стек
$01FF
$0200 область LAD
$02FF
$0300 отладчик LAD
$03FF
$0400

регистры
(R 0000 — R 7167)

$1FFF
$2000 прикладная 1-битовые операционная
программа адреса (входы, система
выходы,
резервная таймеры,
область флажки)

$2FFF
$3000 P 000 — P 0FF
$30FF
$3100

резервная
область

$3FFF $7FFF $BFFF $FFFF

Предусмотрено два формата представления адресов - физическое


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

6
операционной системы и резервных областей недоступны. Общий вид адреса в
представлении предварительного выбора имеет следую щий формат:
символ цифра цифра цифра цифра
где символ - это символ предварительного выбора адреса;
последующие цифры - собственно адрес.
Для I, O, P (см. ниже) используется адресация с указанием места в кассете
модулей:
предварительный выбор адрес кассеты номер места номер канала
адреса (тип аппаратного
модуля)
По типам данных в области адресации возможны следующие варианты
предварительного выбора адреса:
Символ Описание Размер в битах
I Цифровой вход 1
O Цифровой выход 1
R Регистр 8
F Флажок 1
S Запуск таймера 1
T Таймер 1
P Периферийный модуль 8
# Непосредственный операнд 16, 8
X Индексный регистр X 16
! Указатель системного стека 16
Несколько регистров и флажков резервируются для операционной
системы. Они не должны использоваться или могут только частично
использоваться прикладными программами:
Регистры: R 0800-R 1499;
Флажки: F 800-F 999.

2.2.2. Программирующее устройство


Программирующее устройство создано на базе персонального компьютера
типа IBM PC/AT 486. Собственно программирование заключается в передаче
через последовательный порт кода программ и данных в ПЛК. Передача
осуществляется по специальному интерфейсу и поддерживается с одной
стороны аппаратной частью блока ЦП, а с другой - специальной платой
двухпортового интерфейса, устанавливаемой в компьютер. Применяемые
программно-аппаратные средства программирующего устройства позволяют
осуществлять программирование по двум последовательным каналам на два
ПЛК. В качестве среды программирования применяется Система
Программирования PROSYS, предъявляющая следующие требования к ресурсам
программирующего устройства:
 совместимость с любым из практически всех применяемых клонов IBM;
 установлена ОС MS DOS (версия 2.11 или выше) или PC DOS;
 свободное пространство на диске составляет не менее 2Мбайт;
 ОЗУ объемом 640 КБайт, из них не менее 553КБайт свободны;
 отсутствуют платы расширения, использующие COM2.

7
PROSYS является многоязыковой программной системой; при реализации
своих задач управления пользователь может использовать конкретное языковое
средство или комбинацию из предлагаемых средств по своему усмотрению.
Имеются следующие типы представления решения задач:
1. Лестничные логические диаграммы (LAD);
2. Функциональные схемы (FP);
3. Логические схемы (LP);
4. Списки операторов (STL).
Рассмотрим их более подробно, а вместе с ними и другие лингвистические
возможности.

2.2.2.1. Лестничные логические диаграммы (LAD)


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

2.2.2.2. Функциональные схемы (FP)


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

2.2.2.3. Список операторов (STL)


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

2.2.2.4. Схемы последовательности (SEQC)


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

8
2.2.2.5. Символьные имена (SYMB)
Символьные имена являются идентификаторами, которые присваиваются
входам, выходам или областям памяти. После объявления символьного имени
пользователь может использовать его наравне с адресом объекта, для которого
это имя было объявлено.

2.2.2.6. Таблицы данных (TAB)


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

2.2.2.7. Функциональные блоки (FBK)


Имеется возможность создания собственных функциональных блоков для
конкретных приложений пользователя, а также редактирования уже
существующих. На первом этапе определяется форма модуля, т.е. число и
обозначения входов/выходов. Далее создается собственно исполняющая часть
FBK на языке STL.

2.3. Описание программного обеспечения


Для программирования ПЛК применяется интегрированная среда
PROSYS. Она интегрирует в себе следующие взаимосвязанные модули:
 редактор схем последовательностей (SEQC);
 редактор лестничных логических диаграмм (LAD);
 редактор списков операторов (STL);
 редактор символьных имен (SYMB);
 редактор таблиц данных (TAB);
 редактор функциональных блоков (FBK).
Назначение модулей очевидно из описанных ранее методов
программирования.
Для запуска Системы Программирования необходимо запустить пакетный
файл PG.BAT. При запуске PROSYS на экране появится заставка и среда будет
ожидать ввод команд от пользователя. Команды могут быть введены двумя
различными способами - набором команды в строке ввода (в нее установлен
курсор) или нажатием функциональной клавиши (или комбинации) в том случае,
если за вызываемой командой закреплена такая клавиша (или комбинация).
Допустимые на настоящем уровне интерфейса функциональные клавиши
приведены в нижней части экрана в строке подсказки (строке программируемых
клавиш).
Из верхнего уровня интерфейса пользователю доступны следующие команды:
[F1 S_LIST] Вызов редактора списков операторов (STL)
[F2 SEQCHART] Вызов редактора схем последовательностей (SEQC)
[F3 LAD] Вызов редактора лестничных логических диаграмм (LAD)
[F4 FBK] Вызов редактора функциональных блоков (FBK)
[F5 DATA_TBL] Вызов редактора таблиц данных (TAB)

9
[F6 SYMBOLS] Вызов редактора символьных имен (SYMB)
[F7 LOAD] Команда загрузки
[F8 SAVE] Команда сохранения
Более подробное изучение команд каждого из редакторов будет
излагаться по мере необходимости. Остановимся подробнее на командах
загрузки, сохранения, запуска и удаления программы, а также выхода из
PROSYS.
2.3.1. Загрузка
Для активизации команды загрузки необходимо нажать клавишу [F7
LOAD]. После этого требуется определение типа подгружаемого файла. Для
этой цели определены специальные команды, указываемые в строке подсказки
после активизации команды LOAD. Ниже приведены наиболее употребительные из них:
[F1 PROG] STL-файл (расширение PRG)
[F2 SYMBOLS] SYMB-файл (расширение SYM)
[F3 DATA_TBL] TAB-файл (расширение TAB)
[F5 LAD] LAD-файл (расширение LAD)
Выбор типа подгружаемого файла осуществляется нажатием
соответствующей функциональной клавиши или набором в командной строке
соответствующей команды.
После определения типа необходимо задать имя подгружаемого файла.
Задание имени осуществляется по правилам MS-DOS. После ввода имени файла
необходимо передать команду на выполнение нажатием клавиши [Enter]. Если
не задать имя файла, то Система Программирования выведет на экран список
всех файлов заданного типа в определенном для них каталоге. Перемещение по
списку осуществляется клавишами [] и [], вход в подкаталог - клавишей [F1
NEXTDIR], выход из подкаталога - клавишей [F2 PREVDIR].
По окончании загрузки файла производится переход в соответствующий
редактор и предоставляется возможность его редактирования.
2.3.2. Сохранение
Действия по сохранению аналогичны загрузке с той лишь разницей, что
команда сохранения активизируется нажатием клавиши [F8 SAVE]. При
сохранении нового файла его имя должно указываться обязательно. При
сохранении отредактированной версии уже существующего на диске файла
достаточно только задания самой команды (SAVE) в том случае, если
пользователь находится в соответствующем редакторе (по нему PROSYS и
определяет, что конкретно должно быть сохранено).
2.3.3. Запуск программы
Запуск программы на выполнение производится из STL-редактора по
выполнению команды RUN. Эта команда не имеет функциональной клавиши и
должна вводиться в командной строке. При ее выполнении производится
загрузка программы в память ПЛК и ее запуск. В случае возникновения ошибки
передачи выводится соответствующее сообщение. В том случае, если передача
прошла успешно, то PROSYS переходит в режим STL-отладчика и программа
начинает выполняться в ПЛК. Для выхода из отладчика (но не завершения

10
работы программы в ПЛК) необходимо нажать клавишу [Esc]. При этом будет
произведен возврат в STL-редактор. Для запуска в ПЛК новой программы
требуется повторение всех вышеуказанных действий.
2.3.4. Удаление программы
Удаление программы производится вводом команды NEW в командной
строке и последующим нажатием клавиши [Enter]. Для предотвращения
случайного удаления программы в командную строку выводится следующий
запрос:
W010 ARE YOU SURE ? (y/n)
ВЫ УВЕРЕНЫ ? (ДА/НЕТ)
При вводе [Y] вся программа удаляется (удаление производится из всех
редакторов), при вводе [N] процедура удаления прерывается.

2.3.5. Выход из Системы Программирования


Для завершения работы в PROSYSе необходимо ввести команду END.
После ввода этой команды на экран будет выведена предупредительная
информация. Для подтверждения выхода из Системы Программирования
требуется активизировать команду [F8 END].

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


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

11
Лабораторная работа 2
1. Цель работы
Освоение методики программирования в терминах лестничных
логических диаграмм (LAD) на примере изучения возможностей дискретного
управления с использованием модулей цифрового ввода/вывода.

2. Общие сведения

2.1. Лестничные логические диаграммы

2.1.1. Вызов LAD-редактора


Программирование лестничных логических диаграмм (LAD) является
графическим языком программирования, который аналогичен представлению
схемы цепи.
Для вызова LAD-редактора необходимо выполнить команду [F3 LAD]
<NAME>, где <NAME> является именем создаваемой или подгружаемой с диска
LAD-диаграммы. Здесь необходимо провести четкое разделение между именем
LAD-диаграммы и именем файла, в котором эта LAD-диаграмма хранится на
диске. Имя LAD-диаграммы является меткой, по которой определяется ее вызов
в STL-коде, и оно может не совпадать с именем файла. При создании новой
LAD-диаграммы под <NAME> понимается имя LAD; команды загрузки и
сохранения всегда оперируют с именами файлов. При вызове редактора без
указания имени LAD-диаграммы, редактор выводит последнюю подгруженную
в нее LAD. Если команда была задана правильно, то на экране появится окно
LAD-редактора и изменится содержимое строки функциональных клавиш. В
середине экрана находится поле редактирования. В это поле осуществляется
псевдографический ввод LAD-диаграмм. После вызова LAD-редактора курсор
находится в нулевых строке и столбце поля редактирования. Перемещение
курсора внутри поля редактирования осуществляется с помощью клавиш
управления курсором. В правой части поля редактирования располагается
линейка нумерации строк. В каждой LAD можно помещать до 50 строк.
Основными элементами представления LAD являются пути и контакты.
Контактами называются элементы (ячейки) памяти, отображаемые средствами
LAD. Путями называются линии, соединяющие контакты. Этим путям
соответствуют 8-битовые значения. Все пути начинаются в столбце 0, где
размещаются входные элементы (команды загрузки), и заканчиваются в столбце
15, где размещаются выходные элементы (команды сохранения). Остальные
столбцы используются для формирования соединений и установки логических и
функциональных блоков.

2.1.2. Типы контактов


LAD-редактор поддерживает большое количество различных типов
контактов. Далее приводится их графическое представление, способы ввода в
LAD-диаграмму и назначение (в том случае, если оно неочевидно из названия).
Запись [PredAddr] означает клавишу символа предварительного выбора адреса.

12
2.1.2.1. Нормально разомкнутый контакт
│ I 060
01────┤_├──────

[PredAddr] <адрес> [Enter]


[F2 CONTACT] [F1] [PredAddr] <адрес> [Enter]
Осуществляет загрузку содержимого указанного адреса. (Размещение
входного элемента). Если контакт не размещается в первом или последнем
столбце, то он загружается в указанную ячейку памяти и связывается через
отношение конъюнкции с состоянием пути (числовым значением, которое имеет
путь на текущий момент).
2.1.2.2. Выходной контакт
Если контакт находится в последнем столбце, то состояние пути
сохраняется по указанному адресу. (Размещение выходного элемента). При этом
контакт имеет следующий вид:
│ O 070
01 ────( )─

[F9]+[F2 CONTACT] [PredAddr] <адрес> [Enter]

2.1.2.3. Отрицание (нормально замкнутый контакт)

│ I 060 F 100 O 070


01────┤/├────────────────────┤/├────────────────────(/)────


02

[F2 CONTACT] [F2] [PredAddr] <адрес> [Enter]


[N] [PredAddr] <адрес> [Enter]
[/] [PredAddr] <адрес> [Enter]
Загрузка содержимого указанной ячейки памяти. Контакт определен
только для 1-битных величин (I, O, F, S, T). Если контакт находится в последнем
столбце, то состояние пути отрицается и хранится в указанной ячейке памяти.
Если контакт находится в другом столбце, то содержимое указанной
ячейки памяти инвертируется и соединяется соотношением логического И с
путем.
При необходимости выполнения отрицания уже существующего контакта
следует установить курсор на контакт и нажать клавишу [N] или [/].

2.1.2.4. Генерация импульса по положительному перепаду

│ I 065 F 107
01────┤ ├────────────────────┤+├───────── ─ ─ ─


02

13

[F2 CONTACT] [F8] [F] <адрес> [Enter]
[+] [F] <адрес> [Enter]
Если состояние младшего значащего бита пути изменяется от 0 к 1, то
этот контакт дает импульс, длительность которого строго равна одному циклу
программы.
Для этой функции необходимо определить флажок, который не может
переноситься программой в другую ячейку. Если генерация по положительному
перепаду используется неоднократно, то каждый раз необходимо выделять
новый флажок.

2.1.2.5. Генерация импульса по отрицательному перепаду

│ I 063 F 102
01────┤ ├────────────────────┤-├──────── ─ ─ ─


02

[F2 CONTACT] [F9]+[F1] [F] <адрес> [Enter]


[-] [F] <адрес> [Enter]
Если состояние младшего значащего бита пути изменяется от 1 к 0, то
этот контакт дает импульс, длительность которого строго равна одному циклу
программы.
Для этой функции необходимо определить флажок, который не может
переноситься программой в другую ячейку. Если генерация по отрицательному
перепаду используется неоднократно, то каждый раз необходимо выделять
новый флажок.

2.1.2.6. Генерация импульса по положительному и отрицательному


перепаду

│ I 068 F 109
01────┤ ├────────────────────┤&├──────── ─ ─ ─


02

[F2 CONTACT] [F9]+[F2] [F] <адрес> [Enter]


[&] [F] <адрес> [Enter]
Если состояние младшего значащего бита пути изменяется (от 1 к 0 или от
0 к 1), то этот контакт дает импульс, длительность которого строго равна одному
циклу программы.
Для этой функции необходимо определить флажок, который не может
переноситься программой в другую ячейку. Если генерация по перепаду
используется неоднократно, то каждый раз необходимо выделять новый флажок.

14
2.1.2.7. Временное хранение

│ I 068 F 100
01────┤ ├────────────────────┤*├──────── ─ ─ ─


02

[F2 CONTACT] [F9]+[F3] [PredAddr] <адрес> [Enter]
[*] [PredAddr] <адрес> [Enter]
Соединения пути сохраняются по указанному адресу; состояние пути при
этом не изменяется.
В качестве параметра [PredAddr] можно вводить только F, R. Этот тип
контакта нельзя устанавливать в первый и последний столбцы.

2.1.2.8. Соотношение Исключающее ИЛИ

│ I 060 F 105
01────┤ ├────────────────────┤X├──────── ─ ─ ─


02

[F2 CONTACT] [F9]+[F4] [PredAddr] <адрес> [Enter]


[X] [PredAddr] <адрес> [Enter]
Существующий путь соединяется с помощью отношения Исключающее
ИЛИ с содержимым указанной ячейки памяти.

2.1.2.9. Временное хранение без определения адреса


│ F 106
01 ─ ─ ─ ────────┤ ├────────>MARK1 >

│ I 06E
02────┤ ├────────── ─ ─ ─

│ I 062
03>MARK1 >─────────┤ ├─────────── ─ ─ ─
│ 01

04
[F2 CONTACT] [F9]+[F7] <Marke> [Enter]
Данное соединение приводит к сохранению 1-байтного пути в ячейке
внутренней памяти ПЛК. Пользователю эта ячейка программно недоступна.
Определенный маркер может присутствовать в LAD только дважды: один раз
как источник, второй раз как приемник. Маркер может иметь максимальную
длину 6 символов.

15
2.1.2.10. Условный переход
│ F 106
12 ─ ─ ─ ────────┤ ├───────>>NEXT
│ 14
│ I 06E F 108
13────┤ ├─────────┤ ├──── ─ ─ ─ ─


14>>NEXT
│ 12
│ F 103 0 072
15────┤ ├─────────┤ ├─────────── ─ ─ ─


16
[F2 CONTACT] [F9]+[F8] <Label> [Enter]
Введение метки дает возможность реализации условного перехода.
Переход на метку осуществляется, если путь не нулевой. В приведенном выше
примере переход со строки 12 на строку 14 произойдет в том случае, если
флажок F 106 будет хранить активное значение. Если путь нулевой, то LAD
будет выполняться в прежнем порядке по увеличению номеров строк. Под
меткой указывается номер строки, с которой продолжается или прерывается
обработка LAD. В строке, куда вторично вводится метка, не должно иметься
контактов (в данном примере это строка 14). Метка имеет максимальную длину
4 символа и начинается с буквы.

2.1.2.11. Соотношение И
Соотношение И реализуется последовательным соединением контактов.
│ I 060 I 064 O 070
01────┤ ├────────────────────┤ ├────────────────────( )────


02
Входной контакт I 060 соединяется с входным элементом I 064
соотношением логического И, результат присваивается выходному элементу O
070.

2.1.2.12. Соотношение ИЛИ


Соотношение ИЛИ реализуется параллельным соединением контактов.
│ I 063 O 075
01────┤ ├───┬───────────────────────────────────────( )───
│ │
│ I 068 │
02────┤ ├───┘

Входной контакт I 063 соединяется с входным элементом I 068
соотношением логического ИЛИ, результат присваивается выходному элементу
O 075.
2.1.3. Типы путей

2.1.3.1. Горизонтальное соединение

16

01──────────────────────────


02
[F2 CONTACT] [F3]
[Space]
Попытка проведения нового пути поверх существующего приведет к
удалению пути.
2.1.3.2. Вертикальное соединение

│ I 063
01────┤ ├───┬────────
│ │
│ I 068 │
02────┤ ├───┘

[F2 CONTACT] [F4] путь слева от курсора
[V]
[F2 CONTACT] [F5] путь справа от курсора
[Ctrl] [V]
Попытка проведения нового пути поверх существующего приведет к
удалению пути.

2.1.4. Команды редактирования


Для ввода и редактирования LAD-диаграмм имеются несколько функций
редактирования. При использовании строки программируемых клавиш
совместно с [F9] в меню предлагаются следующие основные функции
редактирования (перечислены не все):
Комбинации клавиш Выполняемые функции
[F9]+[F3 DEL_CLMN] Удаление контакта или сегмента пути, на котором
[Del] расположен курсор. Курсор перемещается влево на одну
позицию.
[F9]+[F4 INS_CLMN] Рисуется элемент пути (шириной в один столбец) и
[Ins] вставляется в путь. Контакты справа от курсора сдвигаются
вправо. Для выполнения этой функции курсор должен
располагаться на контакте или непосредственно слева от
контакта.
[F9]+[F5 DEL_LINE] Удаление строки, на которой расположен курсор.
[Ctrl]+[Del]
[F9]+[F6 INS_LINE] Строка, на которой находится курсор, сдвигается вниз. В
[Ctrl]+[Ins] текущее положение курсора вставляется строка.
Если с помощью одной из описанных выше функциональных клавиш
производится обращение к контакту, то LAD-редактор ждет ввода адреса, метки
или маркера. Этот ввод можно прервать с помощью клавиши [Esc]. Вызов
контакта аннулируется и курсор снова появляется в LAD-редакторе.

17
2.1.5. Выход из LAD-редактора
Для выхода из LAD-редактора необходимо воспользоваться одной из двух
команд:
 [Esc]
Выход из LAD-редактора в командную строку. Последняя
обрабатываемая LAD транслируется в STL-представление.
 [Ctrl]+[Esc]
Выход из LAD-редактора в командную строку. Изменения с последнего
обращения к LAD не рассматриваются и LAD не транслируется.

2.2. Цифровые модули


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

2.2.1. Цифровой входной модуль E163


Настоящий модуль предназначен для приема дискретных сигналов по 16
цифровым входам. Каналы рассчитаны на номинальное входное напряжение 24B
при допустимом диапазоне от 18B до 30B и порог переключений 12B при
допустимом диапазоне от 10B до 14B. Время отклика на изменение уровня
сигнала составляет приблизительно 10мс для положительного перепада и 15мс
для отрицательного перепада. Входное сопротивление каналов составляет
приблизительно 2,2 кОм. Передача состояния входов в модуль ЦП производится
немедленно после изменения (с учетом задержки по времени отклика). Модуль
предназначен для функционирования в диапазоне температур 0…60 градусов
при влажности 0...95% без конденсации.
В модуле E163 отсутствуют входные защелки. При такой аппаратной
структуре прикладная программа считывает состояние входа прямо с
соответствующего адреса входа. Таким образом, состояние любого входа может
изменяться внутри цикла сканирования прикладной программы. При этом
необходимо четко осознавать отсутствие синхронизации между состоянием
входа и прикладной программы.

2.2.2. Цифровой выходной модуль A161


Настоящий модуль является модулем релейного типа и предназначен для
выдачи дискретных сигналов по 16 цифровым выходам. Номинальное выходное
напряжение переключения - 220B переменного (при 50/60 Гц) или 24B
постоянного тока, ток переключения - не более 2А. Время отклика на изменение
уровня сигнала составляет приблизительно 10мс. Модуль предназначен для

18
функционирования в диапазоне температур 0…60 градусов при влажности
0..95% без конденсации.

2.2.3. Адресация цифровых входов и выходов


Адреса цифровых входов и выходов формируются по единому принципу.
Различие состоит только в символе предварительного выбора адреса: для
цифровых входов это символ 'I', для цифровых выходов - 'O'. Собственно адрес
состоит из трех цифр:
┌─────────────── символ предварительного выбора адреса
│ ┌───────────── номер кассеты
│ │ ┌─────────── номер места в кассете
│ │ │ ┌───────── номер канала модуля
┌┴┬┴┬┴┬┴┐
│ │ │ │ │
└─┴─┴─┴─┘
Номер кассеты для ПЛК MIDICONTROL всегда равен 0. Значение в этом
знакоместе имеет смысл лишь для более мощной модели ПЛК
MULTICONTROL, которая позволяет создавать конфигурацию
микропроцессорной системы управления с несколькими кассетами расширения
(крейтами).
Номер места в кассете указывает на гнездо, в котором располагается
цифровой модуль, для которого формируется обращение. Для MIDICONTROL
эта величина лежит в диапазоне от 0 до 7.
Номер канала модуля определяет конкретный канал, к которому
производится обращение. Для используемых здесь цифровых модулей это
значение лежит в диапазоне от 0 до F.
Для моноблочного ПЛК COMPACT PLC дискретные входы адресуются:
I 040 - I 04F; дискретные выходы:O 050 - O05D (14 выходов).

3. Замечания практического характера по функционированию ПЛК


Назначение изучаемых ПЛК состоит в управлении техническими
объектами в сфере производства, что обуславливает особенности их
программного функционирования. Любая выполняемая в ПЛК программа
выполняется циклически. Цикл выполнения называется программным сканом.
Период выполнения программы в ПЛК (период программного скана) составляет
100 мс. По достижении этого времени контролирующая функция ЦП вызывает
сигнал сброса и сбрасывает ПЛК. Контролирующая функция ЦП, названная
контролем за временем выполнения, является очень полезным средством
обеспечения надежности работы ПЛК. Зачастую длительное выполнение
программы может говорить о том, что, например, цикл не заканчивается из-за
ошибки программирования, допущенной в редко выполняемом фрагменте,
которая не была выявлена при отладке. При этом производится сброс и все
выходы восстанавливают свои значения. Вместе с тем, при линейном
программировании время цикла в 100 мс в принципе недостижимо, а при
использовании циклических конструкций граница времени даже в 20 мс
достигается редко (имеется в виду программирование в STL-представлении).
Существует также важная особенность функционирования Системы
Программирования - при компиляции LAD-диаграммы в STL-представление

19
PROSYS не устанавливает точку входа в программу в коде STL. Для выполнения
этой установки производятся следующие действия:
 После компиляции LAD-диаграммы осуществляется вход в STL-редактор.
При входе в окне редактирования выводится скомпилированный код
программы и в самой первой строке находится команда NOP (нет операции).
 Производится переход в режим редактирования вводом в командную строку
номера редактируемой STL-строки (нулевая строка) с последующим
нажатием [Enter]. Курсор переходит в первую строку STL-кода.
 Поверх команды NOP набивается команда перехода на подпрограмму вида:

JSR <name_lad>,

где <name_lad> является именем откомпилированной LAD-диаграммы.


Ввод заканчивается нажатием [Enter]. При этом курсор переходит на
следующую строку.
 Производится вставка новой строки путем нажатия клавишной комбинации
[Ctrl]+[Ins]. В строке расположения курсора помещается новая строка со
вписанной в нее командой NOP.
 Поверх команды NOP вписывается команда завершения программы END.

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


1. Составьте LAD-диаграмму, осуществляющую передачу дискретных сигналов
с цифровых входов модуля E163 на соответствующие им по нумерации
цифровые выходы модуля A161, причем для каналов с нечетными номерами
вывод должен производиться с инверсией. Скомпилируйте ее и загрузите в
ПЛК на выполнение. Убедитесь в правильности ее функционирования.
2. Составьте LAD-диаграмму, выполняющую выдачу активного уровня сигнала
на нулевой (восьмой) выход при перепаде уровня сигнала на нулевом
(восьмом) входе, причем то, по какому перепаду (положительному или
отрицательному) будет производиться выдача сигнала, должно определяться
состоянием первого (девятого) входного канала. Реализуйте это двумя
способами - с использованием условных переходов и без их использования.
Оба способа должны быть представлены в одной LAD-диаграмме. Загрузите
ее на выполнение в ПЛК и после проверки правильности функционирования
продемонстрируйте преподавателю.

5. Содержание отчета
1. Цель работы.
2. Составленные LAD-диаграммы.
3. Выводы по работе.

20
Лабораторная работа 3
1. Цель работы
Освоение методики использования функциональных блоков (FBK) при
программировании в терминах лестничных логических диаграмм (LAD) на
примерах использования блоков обработки данных.

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

2.1. Общие сведения


Программирование функциональных схем (FP) аналогично структурному
программированию. При этом части программы представляются
прямоугольниками на экране LAD-редактора. Пользователь лишь соединяет
входы и выходы FBK связями, организовывая, таким образом, взаимодействие
между подпрограммами, коими FBK и являются. Система программирования
PROSYS предоставляет пользователю большой набор стандартных блоков для
следующих основных функций:
 обработка аналоговых сигналов;
 математические функции;
 общие процедуры обработки данных;
 коммуникация и поддержка аппаратного обеспечения B&R.
Все FBK могут включаться в LAD и комбинироваться со всеми
элементами LAD. При отсутствии в стандартных библиотеках FBK с требуемой
функцией его можно создать самому, используя подход списка операторов STL
(программирование на расширенном ассемблере).
Преимущества использования FBK вытекают из общих преимуществ
применения LAD-диаграмм.
К FBK обращаются, как к так называемому "черному ящику".
Пользователь знает из программного описания назначение FBK, а также
функции его входов и выходов и их форматы представления, иными словами -
имеет исчерпывающее описание интерфейса законченного программного
модуля, ничего не зная о его исполняемом коде.
В общем виде FBK представим следующим образом:
┌───────────────┐
│ SHORT COMMENT ├──────── поле для короткого
│2x15 CHARACTERS│ комментария
├───────────────┤
. . .... ─┤ IN_1 FBKN ├───────── имя FBK
│ │
входы FBK . . . . выходы FBK
┌──────────┐ │ │
│ . . .... │ ─┤ IN_N ON_M ├─ . . ....
└────┬─────┘ └───────────────┘

└──────── поле определения
Короткий комментарий - фрагмент текста с кратким описанием функций
FBK (две строки по 15 символов в каждой).
Имя FBK - идентификатор FBK (выводится в инверсном изображении).

21
Входы/выходы FBK - FBK может иметь максимум 48 входов и 47
выходов, каждый вход/выход может иметь имя, которое обычно кратко
описывает его назначение (6 символов).
Поле определения - каждый вход/выход приписывается к полю
определения, которое содержит информацию о форматах представления данных:

┌ 1..8 число подставляемых байтов


┌──────────┤ L,T,N символы для подстановки с меткой
│ └ A символ для подстановки с адресом
│ ┌───────────── адрес, метка или имя таблицы
│ ┌──┴─┐
. . ....
│ └─┬┘
│ └──────────── часть адреса
└──────────────── предварительная выборка адреса

2.2. Вызов FBK из LAD


Перед вызовом FBK из LAD необходимо поместить курсор на строку, в
которую необходимо ввести функциональный блок. Если курсор находится в
столбце 0, то FBK не загружается и не размещается.
Нажатие клавиши [F4 FBK] вызывает открытие обзорного меню для
вызова FBK. Это меню позволяет просмотреть FBK, которые уже загружались в
прикладную программу. Перемещение по списку осуществляется клавишами
[], [], [PgDn], [PgUp]. Выбор и загрузка FBK производится нажатием [Enter]. В
нижней части экрана расположены строки ввода, сообщений и
программируемых клавиш.
Строка ввода позволяет осуществить загрузку FBK без применения
клавиш перемещения. Для этого необходимо ввести с клавиатуры имя
требуемого FBK и завершить ввод нажатием [Enter].
Строка сообщения служит для организации обратного диалога с
пользователем. В нее выводятся сообщения об ошибках и сообщения о
необходимости ввода исходных параметров.
Строка программируемых клавиш является строкой подсказки для
указания наиболее важных функций, вызываемых с помощью клавиш [F1]-[F5].
[F1 FBK_STD]
Загрузка стандартного FBK из библиотеки стандартных функциональных
блоков. При этом на экран будет выведен список стандартных FBK,
поставляемых B&R.
[F2 FBK_USER]
Загрузка FBK из библиотеки пользователя. На экран будет выведен
список FBK, созданных пользователем.
При нажатии любой из двух вышеуказанных клавиш функции
программируемых клавиш изменятся:
[F1 NEXTDIR]
Вход в следующий каталог и вывод его содержимого.
[F2 PREVDIR]
Вход в предыдущий каталог и вывод его содержимого.
[F3 DEFLDIR]

22
Определение текущего каталога как стандартного каталога или каталога
пользователя в зависимости от того, какой из каталогов использовался ранее.
[Esc]
Повторный вывод обзорного меню FBK, т.е. возврат на предыдущий
уровень.
[F4 LOAD_FBK]
Включение в LAD выбранного FBK. FBK отображается в инверсном
видеорежиме в LAD-редакторе. Если введенный FBK использует собственные
ячейки памяти, то их необходимо ввести. Собственные ячейки памяти являются
регистрами или флажками, которые используются программой для FBK
(например, для хранения результатов).
[F5 DISP_FBK]
Вывод на экран справочной информации по выбранному FBK. Клавиша
[Esc] осуществляет возврат в обзорное меню FBK.
[Esc]
Возврат в LAD-редактор.
Все стандартные FBK разбиты на группы в соответствии с их
функциональным назначением. Каждой группе отведен отдельный подкаталог в
каталоге стандартных блоков. В частности:
COMM — поддержка коммуникационных портов
HARDWARE — драйверы устройств
PANEL — панели интерфейса оператора
POS — поддержка позиционирования
SYSTEM — системные функции
UTILITY — сервисные модули
В связи с использованием FBK часто возникает необходимость
использования адресных контактов и меток. Адресный контакт используется для
передачи в функциональный блок адреса любого байта памяти и отображается
следующим образом:

│ R1000
06 [ADR ├──────────


Ввод адресного контакта в LAD-диаграмме может быть осуществлен
следующими способами:
[F2 CONTACT] [F9]+[F5 ADR] <адрес> [Enter]
[F2 CONTACT] [F9]+[F5 ADR] [F3 SYM_INP] <SYM> [Enter]
[Shift]+[F6] <адрес> [Enter]
Метка используется для передачи в FBK начального адреса таблиц. Любая
метка не может содержать больше, чем четыре символа, причем первый символ
должен быть буквой. Метка отображается следующим образом:

│ TAB1
15 [AL ├─────────


Ввод метки выполняется следующим образом:
23
[F2 CONTACT] [F9]+[F6 AL] <имя> [Enter]
[Shift]+[F7] <имя> [Enter]

2.3. Пример применения FBK


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

BTOR упаковка битов в регистр (подкаталог UTILITY)


┌────────────────┐
│ PACK BITS INTO │
│ DATA REGISTERS │
├────────────────┤
1 ──┤ ENABLE BTOR │
│ │
1 ──┤ 8BITS │
│ │
[ADR] 2 ──┤ SOURCE │
│ │
[ADR] 2 ──┤ DEST │
└────────────────┘
Вход/выход Описание Рекомендуемы
е типы
адресов
ENABLE Если ENABLE=1, то FBK будет выполняться. Если R, F, #
ENABLE=0, то таблица регистров, начальный адрес
которой указан DEST, не изменится.
8BITS Определяет число битов, пакуемых в регистры: R, F, #
8BITS=0 - 16 битов в 2-байтовый регистр; 8BITS=1 - 8
битов в 1-байтовый регистр.
SOURCE Начальный адрес 1-битовых переменных, пакуемых в [ADR]F,
регистры. [ADR]I,
[ADR]O
DEST Адрес хранения упакованной битовой информации. В [ADR]R
зависимости от входа 8BITS будет использован либо
1-байтовый (8BITS=1), либо 2-байтовый (8BITS=0)
регистр.

RTOB распаковка регистра в биты (подкаталог UTILITY)


┌──────────────────┐
│ UNPACK DATA │
│ REGISTERS TO BIT │
├──────────────────┤
1 ──┤ ENABLE RTOB │
│ │
1 ──┤ 8BITS │
│ │
[ADR] 2 ──┤ SOURCE │
│ │
[ADR] 2 ──┤ DEST │
└──────────────────┘

24
Вход/выход Описание Рекомендуем
ые типы
адресов
ENABLE Если ENABLE=1, то FBK будет выполняться. Если R, F, #
ENABLE=0, то массив, определенный начальным
адресом DEST, не изменится.
8BITS Определяет число распаковываемых битов: R, F, #
8BITS=0 - 2-байтовый регистр в 16 битов;
8BITS=1 - 1-байтовый регистр в 8 битов.
SOURCE Начальный адрес хранения распаковываемой [ADR] R
информации. Значение входа 8BITS определяет
длину регистра:1 или 2 байта.
DEST Начальный адрес 1-битовых переменных, в [ADR] F,
которые производится распаковка. [ADR] I
[ADR] O

Следует сделать несколько замечаний о входе ENABLE. Он присутствует


во всех стандартных FBK и выполняет одну и ту же функцию:
разрешение/запрещение выполнения FBK в данном программном цикле. В связи
с этим существуют следующие основные способы его применения:

1. Уменьшение времени цикла программы. Когда нет необходимости в


выполнении какого-либо FBK в каждом программном цикле, целесообразно
использовать ENABLE для управляемого отключения функционального
блока.

2. Создание модулей начальной (стартовой) инициализации. Для этой цели


используется так называемый флажок первого сканирования (T D64). Он
автоматически устанавливается операционной системой равным 1 в начале
первого цикла программы и сбрасывается в 0 при его завершении. После этого
он сохраняет нулевое значение непрерывно до перезагрузки ПЛК. Таким
образом, флажок первого сканирования может быть подан на ENABLE тех
FBK, которые необходимо выполнить только один раз, в ходе первого цикла
программы.

Необходимо также иметь в виду, что стандартные FBK используют


регистры R 0863 - R 0889 в качестве памяти временного хранения. Из этого
вытекают ограничения на использование этих регистров в пользовательских
программах - их можно использовать лишь для временного хранения данных,
причем во время хранения не должно совершаться ни одного обращения к FBK.

Приведенных выше сведений достаточно для составления LAD-


диаграммы:

25
00 ┌────────────────┐
│ │ PACK BITS INTO │
│ │ DATA REGISTERS │
│ #00001 ├────────────────┤
01──┤ ├─────────┤ ENABLE BTOR │
│ │ │
│ │ │
│ #00000 │ │
02──┤ ├─────────┤ 8BITS │
│ │ │
│ │ │
│ I 060 │ │
03 [ADR ├─────┤ SOURCE │
│ │ │
│ │ │
│ R 2000 │ │
04 [ADR ├─────┤ DEST │
│ └────────────────┘


05 ┌──────────────────┐
│ │ UNPACK DATA │
│ │ REGISTERS TO BIT │
│ #00001 ├──────────────────┤
06───┤ ├────────┤ ENABLE RTOB │
│ │ │
│ │ │
│ #00001 │ │
07───┤ ├────────┤ 8BITS │
│ │ │
│ │ │
│ R 2000 │ │
08 [ADR ├─────┤ SOURCE │
│ │ │
│ │ │
│ O 070 │ │
09 [ADR ├─────┤ DEST │
│ └──────────────────┘

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

BCDU Преобразование двоичных данных в двоично-десятичный формат


(подкаталог UTILITY)

┌────────────────┐
│ CONVERT BINARY │
│ TO BCD │
├────────────────┤
1 ──┤ ENABLE BCDU │
│ │
1 ──┤ #DIG ERROR ├── 1
│ │
1 ──┤ LENGTH OVFL ├── 1
│ │
[ADR] 2 ──┤ SOURCE #POI ├── 1
│ │
[ADR] 2 ──┤ DEST │
└────────────────┘

26
Вход/выход Описание Рекоменду
емые типы
адресов
ENABLE Если ENABLE=1, то FBK будет выполняться. R, F, #
#DIG Указывает число ДКД разрядов (от 1 до 4) #
LENGTH Определяет число преобразуемых двоичных значений (от 1 #
до 16)
SOURCE Начальный адрес таблицы регистров, содержащей [ADR] R
преобразуемые двоичные значения. Длина таблицы зависит
от #DIG и LENGTH
DEST Начальный адрес таблицы регистров, хранящих [ADR] R
преобразованные в ДКД формат числа.
ERROR Выход равен 1, если один из входов неверно определен или R, F
не подсоединен.
OVFL Указывает, что одно из значений в таблице источника R, F
содержит двоичное значение, выходящее за пределы
допустимого диапазона.
#DIG Макс. Значение
1 9
2 99
3 999
4 9999
#POI При возникновении переполнения на этом выходе R
указывается номер соответствующего двоичного значения.
Если переполнение имеет место для нескольких двоичных
значений, то на этом выходе указывается номер последнего
преобразованного двоичного значения, которое привело к
переполнению

LD## Загрузка константы в регистр (подкаталог UTILITY)


┌────────────────┐
│ LOAD REGISTER │
│ WITH CONSTANT │
├────────────────┤
1 ──┤ ENABLE LD## │
│ │
1 ──┤ 8BITS │
│ │
1 ──┤ LENGTH │
│ │
2 ──┤ VALUE │
│ │
[ADR] 2 ──┤ DEST │
└────────────────┘

27
Вход/выход Описание Рекомендуе
мые типы
адресов
ENABLE Если ENABLE=1, то FBK будет выполняться. Если R, F, I
ENABLE=0, то массив с начальным адресом DEST не
изменится
8BITS Указывает формат массива: #, R
8BITS=0 - 2-байтовый формат
8BITS=1 - 1-байтовый формат
LENGTH Определяет число записей в массиве (от 1 до 32). #
VALUE Значение, которое необходимо записать в массив. #, R
DEST Начальный адрес таблицы регистров. Конечный адрес [ADR] R
зависит от LENGTH и 8BITS

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


1. Наберите приведенный выше пример LAD-диаграммы и запустите его на
ПЛК. Конкретные адреса цифровых входов и выходов определите в
соответствии с расположением цифровых модулей в крейте. Убедитесь в
правильности функционирования программы.
2. Составьте LAD-диаграмму преобразования двоичного 8-разрядного числа в
двоично-десятичный формат представления. Ввод осуществляется с
тумблеров симулятора на цифровых входах модуля E163, а вывод - на
цифровые выходы модуля E161. Запустите ее на выполнение и убедитесь в
правильности функционирования.
3. Откорректируйте диаграмму таким образом, чтобы преобразование числа
осуществлялось управляющим цифровым сигналом с одного из свободных
каналов цифрового входа. Убедитесь в правильности функционирования.
4. Добавьте в диаграмму фрагмент, осуществляющий при первом запуске
программы подачу активного уровня сигнала на все цифровые выходы.
Запустите на ПЛК полученную программу и убедитесь в ее
работоспособности. Продемонстрируйте ее выполнение преподавателю.

4. Требования к отчету
1. Цель работы.
2. Созданные LAD-диаграммы с комментариями по их функционированию.
3. Выводы по работе.

28
Лабораторная работа 4
1. Цель работы
Освоение методики применения логических схем (LP) в процессе
создания LAD-диаграмм и создания таблиц данных.
2. Справочные данные

2.1. Общие сведения

2.1.1. Логические схемы


Программирование логических схем можно рассматривать как подход,
расширяющий возможности LAD. В реализации, предлагаемой B&R, имеются
три основных типа логических соединений в виде блоков с некоторым
количеством входов и единственным выходом, подобных логическим вентилям,
используемым в цифровой технике. Это соединения типов И (AND), ИЛИ (OR),
ИСКЛЮЧАЮЩЕЕ ИЛИ (EXOR).
2.1.2. Таблицы данных
Таблицы данных - это блоки постоянных данных, к которым возможен
доступ из прикладных программ. Вход в эти таблицы осуществляется с
использованием удобного редактора таблиц. Внутри таблицы (которую можно
рассматривать и как символьную строку) допустимо произвольное смешивание
десятичного, шестнадцатеричного, двоичного и ASCII форматов представления
чисел. Таблицы являются компонентами прикладной программы и хранятся в
энергонезависимой памяти прикладных программ ПЛК.
2.2. Практическое применение

2.2.1. Вызов LB из LAD


Перед вызовом логического блока (LB) курсор в LAD-редакторе должен
быть помещен в строку (столбец), в которую необходимо ввести логический
блок.
Для вызова логического блока необходимо перейти в LAD-редакторе в
режим ввода и редактирования логических блоков, активизируемый нажатием
функциональной клавиши [F3 LOGIC_BK]. В этом режиме для задания LB
определены три функциональные клавиши: [F1 AND], [F2 OR] и [F3 EXOR]. Их
назначения очевидны из названий. Для возврата в основной режим LAD-
редактора используется клавиша [Esc].
По умолчанию вводимый в LAD-диаграмму логический блок имеет два
входа (выход всегда единственен). Для редактирования логического блока
необходимо войти в него. Вход в блок осуществляется нажатиями клавиш
перемещения совместно с клавишей [Alt]. Внутри логического блока курсор
перемещается по элементам блока с помощью клавиш перемещения. Для выхода
из блока необходимо вывести за его пределы курсор. При входе в блок
становятся доступными следующие команды:

29
Комбинация клавиш Назначение
[F1 DEL_BLK] Удаление выбранного блока.
[Alt]+[Del]
[F2 NEGATE] Инвертирование входа/выхода, на котором расположен
[N] курсор.
[/]
[F3 CONNECT] Удаление или установка входа.
[Space]
[F4] Если курсор находится в логическом блоке, то
[V] непосредственно слева от блока формируется
вертикальное соединение к следующему пути.
[F5] Если курсор находится на стороне входов LB, то
[Ctrl]+[V] непосредственно справа от блока формируется
вертикальное соединение к следующему пути.
[F9]+[F3 BLK_LFT] Выбранный LB сдвигается влево на один столбец.
[Del]
[F9]+[F4 BLK_RT] Выбранный LB сдвигается вправо на один столбец.
[Ins]
[F9]+[F5 INS_LINE] Выбранный LB расширяется на одну строку. Для
[Ctrl]+[Ins] выполнения этой функции курсор должен находиться на
входной странице.
[F9]+[F6 DEL_LINE] Выбранный LB уменьшается на одну строку. Для
[Ctrl]+[Del] выполнения этой функции курсор должен находиться на
стороне входов LB.
2.2.2. Создание и использование таблиц

2.2.2.1. Вызов редактора TAB


TAB-редактор вызывается, как и LAD-редактор, из верхнего уровня
PROSYS. Вызов осуществляется в следующей форме:
[F5 TAB] <TNAME> [Enter],
где <TNAME> задает имя создаваемой таблицы. Оно может иметь
максимальную длину 4 символа; первый символ должен быть буквой.
Курсор помещается в строку ввода редактора TAB путем ввода [Enter].
Если курсор находится в строке ввода, то для возврата в командную строку
необходимо воспользоваться клавишей [Esc].
Строка ввода имеет следующий вид:

   
│ └┬┘ │ └──────────────┬───────────────────────┘
│ │ │ │
│ │ │ └──────── строка редактирования
│ │ └───────────────────────── маркер комментария
│ └──────────────────────────── номер строки
└──────────────────────────────── режим ввода

30
 Режим ввода.
Если в этой позиции находится символ ">", то TAB-редактор работает в
режиме вставки. В этом режиме нажатие [Enter] приведет к вставке новой
строки. Если включен режим замены (символ ""), то аналогичное нажатие
приведет к переходу на следующую строку.
Включение режима вставки: [Ctrl]+[Ins]
[Alt]+[Ins]
Включение режима замены: [], [], [PgUp], [PgDn]
 Маркер комментария
Если в данной позиции находится символ "*", то строка отмечается как
строка комментария. Пустые TAB-строки отмечаются этим маркером
автоматически. Комментарии могут быть введены после данных (для этого
необходимо нажать "*").
Как и в LAD-редакторе, в TAB-редакторе присутствуют командная
строка, строка сообщений и строка программируемых клавиш, назначение
которых аналогично. В строке программируемых клавиш представлены
следующие основные функции TAB-редактора (в режиме ввода):

[F1 S_LIST]

Переход из TAB-редактора в STL-редактор. При нажатии Система


Программирования запрашивает номер строки или метку, к которой
осуществляется переход.

[F2 SYMBOLS]

Переход из TAB-редактора в SYMB-редактор. При нажатии Система


Программирования запрашивает адрес, к которому осуществляется переход.

[F3 LAD]

Переход из TAB-редактора в LAD-редактор. При нажатии Система


Программирования запрашивает имя диаграммы, к которой осуществляется
переход.

[F4 UNDO]

TAB-редактор имеет память с дисциплиной LIFO (первый вошел - последний


вышел), в которой хранятся последние 10 удаленных строк или символов.
Данная функция вызывает их ввод в командную строку начиная с позиции
курсора. При этом последний введенный символ вставляется первым.

[F7 RECALL]

31
При изменении строки TAB командой UNDO для возврата к исходной строке
можно использовать данную команду при условии, что изменение не завершено,
путем нажатия [Enter].

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

Клавиши Функция Режим


[] Перемещение TAB на строку вверх Замена
[] Перемещение TAB на строку вниз Замена
[PgUp] Перемещение TAB на страницу вверх Замена
[PgDn] Перемещение TAB на страницу вниз Замена
[Ctrl]+[PgUp] Перемещение в начало TAB Замена
[Ctrl]+[PgDn] Перемещение в конец TAB Замена
[Ctrl]+[] или [] Перемещение строки ввода на строку Замена
вверх или вниз
[Ctrl]+[] или [] Перемещение строки ввода на страницу Замена
вверх или вниз
[Ctrl]+[Esc] Перемещение строки ввода к центру Замена
экрана
[Ctrl]+[Ins] Вставка строки Вставка
[Alt]+[Ins] Вставка строки комментария Вставка
[Ctrl]+[Del] Удаление строки Замена
[Tab] Перемещение курсора на одну позицию
табуляции вправо
[Shift]+[Tab] Перемещение курсора на одну позицию
табуляции влево
Для задания табличных значений определены следующие форматы
представления данных:
 Десятичный. Задает от одного до трех байт данных в зависимости от того, в
какой из приводимых ниже диапазонов укладывается вводимое число:
0 .. 255 1 байт
256 .. 65535 2 байта
65536 .. 3 байта
16777215
Отрицательные числа недопустимы.
 Шестнадцатеричный. Задает от одного до трех байт данных в зависимости от
того, в какой из приводимых ниже диапазонов укладывается вводимое число:
$00 .. $FF 1 байт
$0100 .. $FFFF 2 байта
$010000 .. $FFFFFF 3 байта
 Двоичный. Задает от одного до трех байт данных в зависимости от того, в
какой из приводимых ниже диапазонов укладывается вводимое число:
%0 %11111111 1 байт
%100000000 %1111111111111111 2 байта
%10000000000000000 .. %111111111111111111111111 3 байта
 ASCII. Имеет формат: '<последовательность символов>'

32
В строку ввода TAB-редактора может быть введено несколько величин, одна
величина или не введено ни одной. При вводе можно смешивать величины в
разных форматах. Если в строке присутствует несколько величин, то они
разделяются запятой.

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

1. Составьте LAD-диаграмму, моделирующую работу триггера. Ввод


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

a 1
c

& 1
b
Запустите ее на выполнение и убедитесь в правильности функционирования.

2. В соответствии с приведенной ниже таблицей составьте LAD-диаграмму


вычисления логической функции, аргументы которой передаются с тумблеров
симулятора на цифровых входах модуля E163, а значение результата - на
цифровые выходы модуля E161. Вычисление функции должно производится
следующими двумя способами:
 непосредственным вычислением с применением LB;
 табличным способом, при котором формируется таблица логических значений
функции; для получения результата из аргументов формируется адрес
смещения в таблице; значение по этому адресу и является результатом.
Например, таблица истинности для логической функции Y = f (X1, X2):

N Х1 Х2 Y
0 0 0 1
1 0 1 0
2 1 0 1
3 1 1 0
В таблицу через запятые или пробелы должны быть введены следующие
значения: 1, 0, 1, 0.

N соответствует значению смещения.

33
Для реализации этого метода необходимо воспользоваться следующим
FBK:

STBL Считывание значения из таблицы по адресному смещению


┌────────────────┐
│ SEARCHING │
│ELEMENT IN TABLE│
├────────────────┤
1 ──┤ ENABLE STBL │
│ │
1 ──┤ 8BITS │
│ │
1 ──┤ NUMBER VALUE ├── 2
│ │
[AL] 2 ──┤ TABLE │
└────────────────┘

Вход/выход Описание Рекомендуем


ые типы
адресов
ENABLE Если ENABLE=1, то FBK будет выполняться. R, F, #
8BITS Указывает формат элементов таблицы: R, #
8BITS=0 - 2-байтовый формат
8BITS=1 - 1-байтовый формат
NUMBER Смещение в таблице R, #
TABLE Начальный адрес таблицы данных [AL] R
VALUE Получаемое числовое значение (формат R
зависит от 8BITS)
Данный FBK не является стандартным и размещен в каталоге
пользовательских функциональных блоков.

Вариант Функция
1. I0 and ( I1 or not( I2 ) ) xor I3
2. I0 and I1 and ( I2 xor I3 )
3. ( I0 xor I1 ) or not( I2 xor I3 )
4. not(I0 and ( I1 xor I2 ) or I3 )
5. I0 xor ( not ( I1 ) and ( I2 or I3 )
6. I0 or I1 and not( I2 xor not( I3 )

Все логические функции имеют три аргумента и одно результирующее


значение. Оба алгоритма реализуются одновременно, ввод и вывод для
реализуемых методов осуществляется по разным каналам (например, под
непосредственное вычисление задействуются старшие 8 каналов, а под
табличное - младшие 8 каналов).

34
3. Запустите на ПЛК полученную программу и убедитесь в правильности ее
функционирования. Продемонстрируйте ее выполнение преподавателю.

4. Требования к отчету
1. Цель работы.
2. Созданные LAD-диаграммы с комментариями по их функционированию.
3. Выводы по работе.

35
Лабораторная работа 5
1. Цель работы
Изучение возможностей тестирования состояния LAD-диаграмм как
важного инструмента разработки программ и обнаружения ошибок.
2. Справочные данные

2.1. Описание процедуры тестирования состояния LAD


Тестирование состояния LAD является эффективным средством
наблюдения за работой ПЛК в неавтономном (on line) режиме, позволяющим
отображать состояние контактов и ячеек внутренней памяти. В этом режиме
контакты и соединения LAD, находящиеся в состоянии логической 1,
отображаются в инверсном видеорежиме и двойными линиями соответственно, а
в функциональных блоках отображаются активные значения входов и выходов.
Вызов процедуры тестирования осуществляется из LAD-редактора
нажатием клавиши [F1 RUN]. По этой команде производится трансляция и
загрузка в ПЛК программы без осуществления его сброса, и в строке
программируемых клавиш появляется меню тестирования состояния LAD. При
этом тестируемая программа уже должна быть запущена в ПЛК обычным
образом, т.е. после каждого изменения LAD-диаграммы необходимо выполнить
повторную загрузку кода в ПЛК из STL-редактора (командой RUN) и только
после этого, при необходимости, выполнять вход в LAD-отладчик (из LAD-
редактора нажатием F1).
Все команды меню можно разделить на две группы: команды выбора
режима вывода и команды выбора формата вывода активных значений.
Команды выбора режима вывода
[F1 MODE_ALL]
Все контакты представляются в инверсном видеорежиме, все пути
представляются двойными линиями (при ненулевых значениях на них).
Активные значения в FBK отображаются как числа (при этом можно выбрать
формат вывода).
[F2 MODE_FBK]
Отображаются только активные значения, которые используются в FBK.
Логические состояния контактов и путей не выводятся. При использовании
этого представления не требуется времени на графические иллюстрации. Этот
тип вывода целесообразно применять в случаях, когда необходимо показать
быстро изменяющиеся значения в FBK.
[F3 MODE_CON]
Отображаются только логические состояния контактов. Активные
значения и состояния путей не рассматриваются.
Команды выбора формата вывода активных значений
[F4 UNSIGNED]
Вывод активных значений в десятичном формате без знака.
[F5 DECIMAL]

36
Вывод активных значений в десятичном формате со знаком.
[F6 HEX]
Вывод активных значений в шестнадцатеричном формате.
[F7 BINARY]
Вывод активных значений в двоичном формате. В двоичном формате
можно вывести значение с максимальной длиной 1 байт. Если требуется вывести
на экран более одного байта необходимо пользоваться шестнадцатеричным
форматом представления.
Диапазоны представления чисел для разных режимов вывода приведены в
следующей таблице:
F1 MODE_ALL F2 MODE_FBK
Min Max Min Max
UNSIGNED 0 9 999 999 0 16 777 215
(=$FFFFFF)
DECIMAL -999 999 9 999 999 -9 999 999 16 777 215
(=$FFFFFF)
HEX $0 $ FFFFFF $0 $ FFFFFF
BINARY % 00 0000 % 11 1111 % 0000 0000 % 1111 1111
Переполнение >>>>>>> >>>>>>>>
Для вывода на экран и изменения содержимого произвольных ячеек
памяти используется команда [F8 LM_EDIT]. При активизации этой команды в
верхней части экрана появляются следующие поля:
 Поле вывода символьных имен
В этом поле выводится символьное имя, присвоенное адресу, на котором
находится курсор (если данному адресу присвоено имя).
 Поле состояния
Данное поле имеет следующую структуру:

┌────────────────────── предварительный выбор


│ адреса
│ ┌───────────────── адрес
│ │ ┌────────── число байтов
│ ┌──┴──┐ │ ┌──────── формат вывода
┌─┬─┬─┬─┬─┐ ┌─┬─┐ ┐
│ │ │ │ │ │ │ │ │ ├───── адресное поле
└─┴─┴─┴─┴─┘ └─┴─┘ ┘
┌─┬─┬─┬─┬─┬─┬─┬─┐ ┐
│ │ │ │ │ │ │ │ │ ├───── поле вывода
└─┴─┴─┴─┴─┴─┴─┴─┘ ┘
┌─┬─┬─┬─┬─┬─┬─┬─┐ ┐
│ │ │ │ │ │ │ │ │ ├───── поле ввода
└─┴─┴─┴─┴─┴─┴─┴─┘ ┘
Перемещение между полями осуществляется клавишами [], [].
Клавиши []/[] служат для просмотра следующей/предыдущей ячейки памяти.
С помощью [Alt]+[] можно установить курсор в поле ввода.
С помощью [Ctrl]+[] курсор можно установить в поле выбора адреса.
Чтобы ввести новое значение ячейки памяти, необходимо переместить курсор в
поле ввода и ввести необходимое значение. Ввод завершается нажатием [Enter].

37
После этого выводится запрос о необходимости асинхронной передачи данных в
контроллер:
W235 TRANSFER ASYNCHRON!!! CONTINUE (Y/N)?
(Асинхронная передача!!! Продолжить (да/нет)?)
[Y] - значение передается в соответствующую ячейку памяти;
[N] - отказ от передачи.

Поле информации о модуле

Отображается следующая информация:


1. имя программы и дата создания;
2. серия и тип модуля;
3. выполнение программы в ОЗУ/ПЗУ;
4. дополнительная информация.
В режиме LM_EDIT пользователю становятся доступными команды задания
формата выводимых значений в поле состояния. Они задаются нажатиями
следующих функциональных клавиш:

[F1 DECIMAL]
Содержимое ячейки памяти представляется в десятичном формате.
[F2 HEX]
Содержимое ячейки памяти представляется в шестнадцатеричном
формате.
[F3 BINARY]
Содержимое ячейки памяти представляется в двоичном формате.
[F4 ASCII]
Содержимое ячейки памяти представляется в формате ASCII.
[F5 BIT]
Выводится только младший значащий бит максимум 8-ми ячеек памяти.
Этот формат отображения используется более эффективно в сочетании с 1-
битовыми ячейками памяти.
Для выхода из режима применяются следующие команды:
[F7 EXIT0]
Выход из режима LM_EDIT c сохранением на экране полей состояния и
информации о модуле.
[F8 EXIT]
Выход из режима LM_EDIT без сохранения полей.
[Esc]
Выход из процедуры тестирования состояния LAD в LAD-редактор.

2.2. Описание FBK, используемых в лабораторной работе

38
DIVA Деление 2-байтового значения на 1-байтовое (подкаталог UTILITY)

┌────────────────┐
│ DIVISION │
│ 2/1 BYTE │
├────────────────┤
1 ──┤ ENABLE DIVA │
│ │
2 ──┤ OP1 ERROR ├── 1
│ │
1 ──┤ OP2 ACTIVE├── 1
│ │
1 ──┤ SIGNED RESULT├── 2
└────────────────┘
Вход/выход Описание Рекомендуемые
типы адресов
ENABLE Если ENABLE=1, то FBK будет выполняться. R, F, #
Если ENABLE=0, то все выходы FBK будут равны
нулю.
OP1 Делимое (от 0 до 65535 при SIGNED=0 и от -32768 R, #
до 32767 при SIGNED=1)
OP2 Делитель (от 0 до 255 при SIGNED=0 и от -127 до R, #
127 при SIGNED=1).
SIGNED Формат делимых чисел: #
SIGNED=0 - положительные числа;
SIGNED=1 - представление двоичного дополнения.
ERROR Становится равным 1 при делении на 0. R, F
ACTIVE Равен 1, если значение RESULT правильно. R, F
RESULT Результат деления. Значение правильно только при R
ACTIVE=1
3. Задание на выполнение лабораторной работы
 Составьте LAD-диаграмму деления 2-байтового значения на 1-байтовое с
вводом/выводом на цифровых модулях. Представление чисел - двоичное.
Ввод чисел осуществляется побайтно при помощи подачи управляющих
цифровых сигналов. Используйте цифровые входы в соответствии со
следующей таблицей:
Номер входа Назначение
0…7 вводимые байты чисел
8,9 не задействованы
A ввод мл. байта делимого
B ввод ст. байта делимого
C ввод байта делителя
D вывод результата
E сброс ошибки
F не задействован

39
Переход уровня управляющих сигналов инициирует соответствующую
функцию. В качестве вводимого байта берется состояние входов 0...7. При
делении на 0 все операции блокируются, и функционирование
восстанавливается лишь при подаче фронта на канал E.
 Загрузите LAD-диаграмму в ПЛК и перейдите в режим тестирования
состояния LAD.
 Проверьте правильность ее функционирования на ПЛК. В случае
обнаружения ошибок в функционировании программы проведите ее отладку,
привлекая для этой цели средства тестирования состояния LAD. Убедитесь в
корректной работе программы.
 Выполните в режиме тестирования следующие действия:
Активизируйте режим отображения активных состояний контактов (путей) и
вывода числовых значений входов/выходов FBK. Установите
шестнадцатеричный формат вывода чисел.
Активизируйте поля состояния. Задайте в них ячейки памяти, через которые
программа производит обмен данными.
Продемонстрируйте преподавателю работу программы двумя способами:
 переключением тумблеров симулятора на цифровых входах с регистрацией
получаемых значений на светодиодах блока цифрового вывода и на LAD-
диаграмме в режиме тестирования;
 изменением значений в полях состояния в программной среде с регистрацией
результатов как в предыдущем пункте.
4. Требования к отчету
1. Цель работы.
2. Созданные LAD-диаграммы с комментариями по их функционированию.
3. Выводы по работе.

40
Лабораторная работа 6
1. Цель работы
Изучение программно-аппаратной поддержки приема, обработки и
выдачи ПЛК аналоговых сигналов при реализации систем управления.
2. Общие сведения

2.1. Модули аналогового ввода/вывода


Аналоговые входные модули преобразуют сигналы обратной связи (ток,
напряжение или температуру) в цифровые значения, которые могут
обрабатываться ПЛК. Аналоговые выходные модули преобразуют численные
величины в токи и напряжения. Модули ввода/вывода аналоговых сигналов в
различных ПЛК несколько отличаются друг от друга.
В лабораторном стенде с ПЛК MIDICONTROL используются:
аналоговый входной модуль PE82 и аналоговый выходной модуль PA81.
Оба предназначены для использования в температурном диапазоне от 0 до 60
градусов, при влажности воздуха от 0 до 95 % (без конденсации).
Аналоговый входной модуль PE82 имеет 8 входных аналоговых
электрически не изолированных каналов с разрешением 10 бит и временем
преобразования 100 мкс/канал. Каналы имеют номинальные рабочие диапазоны
измерения: по напряжению - 0..10 B, по току - 0..20 мA. (Каким является
конкретный модуль: для тока или напряжения, можно определить по маркировке
на фронтальной стороне модуля). Предельно допустимые значения по
напряжению - 22 B, по току - 70 мA. Выход за пределы номинального диапазона
приводит к свечению красного светодиодного индикатора, указывающего
состояние модуля. Если горит один из индикаторов состояния, то результаты
преобразования неправильны. По тому, какой из индикаторов горит, можно
определить канал, на котором преобразование неверно, и переход через какую из
границ диапазона (верхнюю или нижнюю) вызвал эту ошибку. Эти условия
могут быть обнаружены и программным обеспечением.
Аналоговый выходной модуль PA81 имеет 8 выходных аналоговых
электрически не изолированных каналов. Каналы имеют номинальные рабочие
диапазоны измерения: по напряжению - -10..10 B, по току - 0..20 мА. Разрешение
каналов: для тока - 11 бит, для напряжения - 10 бит (и один знаковый).
В лабораторном стенде с ПЛК MINICONTROL:
для ввода и вывода аналоговых сигналов используется один модуль PEA6.
Он имеет 4 аналоговых входа (разрешение 10 бит) и 2 аналоговых выхода
(разрешение 8 бит). Измеряемый и выдаваемый сигнал – напряжение 0 – 10В (в
данном конкретном исполнении модуля). Возможно также исполнение, где
измеряемый и выдаваемый сигнал - ток - -0..20 мА. Предельно допустимые
значения по напряжению - 13 B, по току - 70 мA.
В лабораторном стенде с ПЛК COMPACT PLC:
имеется два аналоговых входа (разрешение - 16 бит). Каналы имеют
номинальные рабочие диапазоны измерения: по напряжению - -2,5..+2,5 В;
-10..+10 B, по току - 0..20 мA, а также можно запрограммировать их на
41
измерение температуры с кремниевого датчика KTY10 (диапазон измерения -
-50С - +150С, разрешающая способность - 0,01С). Фильтр выбирается
программно:10 Гц, 50 Гц, 250 Гц, 1 кГц. Время преобразования: 302 мс (10 Гц),
62 мс (50 Гц), 16,2 мс (250 Гц), 4.1 мс (1 кГц). Разрешающая способность для
режима 0-20мА: 14 бит (10 Гц и 50 Гц), 12 бит (250 Гц), 8 бит (1 кГц). Для
измерения тока должен использоваться внутренний шунт (124 Ом).
2.2. Стандартное программное обеспечение
Для реализации функций приема и выдачи аналоговых сигналов в
стандартной библиотеке FBK имеются два блока, реализующих соответственно
прием аналоговых сигналов в модуль PE82 и их выдачу модулем PA81 (для
MIDICONTROL).
Для программного обеспечения модуля PE82 используется блок AINB.
Этот функциональный блок генерирует цифровой эквивалент аналогового
сигнала, зарегистрированного данным модулем. Аналоговый сигнал (0..10 B или
0..20 мA) преобразуется в цифровое значение, лежащее в диапазоне от 0 до 1000
(разрешение 10 бит). Результаты преобразования хранятся как 2-байтовые
значения в таблице регистров, соединенной с входом DEST функционального
блока. За один скан программы производится преобразование одного канала,
при этом для преобразования аналоговых сигналов одного модуля может
использоваться только один блок AINB.
┌────────────────┐
│ ANALOG 10 BIT │
│ PE82/PE42/PRTA │
├────────────────┤
1 ───┤ ENABLE AINB │
│ │
1 ───┤ LENGTH ERROR ├─── 1
│ │
1 ───┤ SLOT BUSY ├─── 1
│ │
1 ───┤ CHAN │
│ │
[ADR] 2 ───┤ DEST POINTR ├─── 1
└────────────────┘

Вход/выход Описание Рекомендуе


мые типы
адресов
ENABLE Если ENABLE=1, то FBK будет выполняться. Если R, F, #
ENABLE=0, то преобразование прекращается и
значения, записанные в таблицу DEST, более не
обновляются.
LENGTH Число каналов, сигнал с которых должен быть #
преобразован в цифровую форму (от 1 до 8).
SLOT Номер слота в крейте, в который установлен PE82 (от 0 #
до 7).
CHAN Номер канала, сигнал с которого будет первым #
подвергнут преобразованию в цифровую форму. При

42
Вход/выход Описание Рекомендуе
мые типы
адресов
этом сумма CHAN и LENGTH не должна превышать 8.
DEST Начальный адрес таблицы регистров для хранения [ADR]R
преобразованных значений. В зависимости от значения
LENGTH блок генерирует таблицу длиной от 2 до 16
байт. Хранимые в них числа лежат в диапазоне от 0 до
1000, что соответствует аналоговому сигналу 0..10 B или
0..20 мA. Если в регистровой паре находится число в
диапазоне 1001..1023, то это указывает на превышение
входным сигналом максимального заданного значения.
ERROR Выход, указывающий на неправильное определение R, F
одного из входов FBK. Если ERROR=1, то регистры
DEST не обновляются текущим значением аналогового
сигнала, а хранят последнее значение, считанное до
перехода ERROR в 1.
BUSY Флаг занятости АЦП. Принимает высокое значение, R, F
если производится преобразование.
POINTR Содержит номер канала АЦП, для которого в настоящее R
время производится преобразование. Преобразованное
значение будет записано в соответствующую пару
регистров таблицы в ходе следующего выполнения FBK.

В качестве примера применения рассмотрим следующую ситуацию.


Аналоговый входной модуль занимает в крейте слот 3. С объекта управления на
каналы 2..5 поступают аналоговые сигналы реакции объекта. Необходимо
произвести прием и цифровое преобразование сигналов; опрос каналов должен
начинаться со второго. Результат должен храниться в таблице регистров,
начиная с R 0200. Фрагмент LAD-диаграммы будет иметь вид:
│ ┌────────────────┐
01 │ ANALOG 10 BIT │
│ │ PE82/PE42/PRTA │
│ #00001 ├────────────────┤
02──┤ ├────────────────────┤ ENABLE AINB │
│ 1│ │
│ #00004 │ │
03──┤ ├────────────────────┤ LENGTH ERROR ├───
│ 1│ │1
│ #00003 │ │
04──┤ ├────────────────────┤ SLOT BUSY ├───
│ 1│ │1
│ #00002 │ │
05──┤ ├────────────────────┤ CHAN │
│ 1│ │
│ R0200 │ │
06 [ADR ├─────┤ DEST POINTR ├───
│ 2└────────────────┘1

07

43
Преобразованные данные можно считать из следующих регистров:

Регистровая пара Номер канала


R 0200 .. R 0201 канал 2
R 0202 .. R 0203 канал 3
R 0204 .. R 0205 канал 4
R 0206 .. R 0207 канал 5

Для программного обеспечения модуля PA81 используется блок AOTB.


Данный функциональный блок используется для записи цифрового эквивалента
аналогового выходного сигнала в выходные каналы модуля. Цифровые значения
считываются из таблицы регистров SOURCE. Значения в этой таблице должны
приводиться в представлении двоичного дополнения. В зависимости от типа
используемого аналогового выходного модуля, значения из диапазона
-1000..+1000 соответствуют аналоговому выходному сигналу -10..+10 B, а
значения из диапазона 0..1000 соответствуют аналоговому выходному сигналу
0..20 мA. Для преобразования цифровых значений в сигналы и передачи в
модуль может использоваться только один блок AOTB:
┌────────────────┐
│ ANALOG OUTPUT │
│ PA81 & PA42 │
├────────────────┤
1 ───┤ ENABLE AOTB │
│ │
1 ───┤ LENGTH ERROR ├─── 1
│ │
1 ───┤ SLOT CLMP ├─── 1
│ │
1 ───┤ CHAN │
│ │
[ADR] 2 ───┤ SOURCE │
└────────────────┘

Вход/Выход Описание Рекомендуемы


е типы
адресов
ENABLE До тех пор пока на этом входе активный уровень R, F, #
сигнала, FBK осуществляет преобразование. Если
ENABLE обнуляется, то преобразование прекращается
и последние выходные значения токов или напряжений
далее не изменяются.
LENGTH Число каналов, сигнал на которые будут выводиться #
аналоговые эквиваленты цифровых значений
(от 1 до 8).
SLOT Номер слота в крейте, в который установлен PA81 (от 0 #
до 7).
CHAN Номер канала, который будет первым обновляться #
FBK. При этом сумма CHAN и LENGTH не должна
превышать 8.
44
SOURCE Адрес источника преобразуемых данных. Для каждого [ADR]R
аналогового выхода требуется два регистра. В
зависимости от числа преобразуемых каналов может
потребоваться от 2 до 16 регистров. Для сигналов
напряжения данные должны быть представлены в
формате двоичного дополнения.
ERROR Активный уровень сигнала на этом выходе говорит о R, F
неправильном соединении одного или более входов
блока. При этом на аналоговых выходах сохраняются
значения, существовавшие на них непосредственно
перед возникновением ошибки.
CLMP Для этого выхода устанавливается активный уровень, R, F
если выводимые величины выходят за пределы
допустимых диапазонов (для напряжения -1000..1000,
для тока 0..1000).

В качестве примера применения рассмотрим следующую ситуацию.


Аналоговый выходной модуль занимает в крейте слот 4. На объект управления
передаются управляющие воздействия через каналы 1..6; начиная с первого.
Числовые значения воздействий на объект хранятся в таблице регистров начиная
с R 0300. Фрагмент LAD-диаграммы будет иметь вид:
│ ┌────────────────┐
01 │ ANALOG OUTPUT │
│ │ PA81 & PA42 │
│ #00001 ├────────────────┤
02──┤ ├─────────────────┤ ENABLE AOTB │
│ 1│ │
│ #00006 │ │
03──┤ ├─────────────────┤ LENGTH ERROR ├───
│ 1│ │1
│ #00004 │ │
04──┤ ├─────────────────┤ SLOT CLMP ├───
│ 1│ │1
│ #00001 │ │
05──┤ ├─────────────────┤ CHAN │
│ 1│ │
│ R0300 │ │
06 [ADR ├────────┤ SOURCE │
│ 2└────────────────┘

07
Выходные численные значения берутся из следующих регистров:

Регистровая пара Номер канала


R 0300 .. R 0301 канал 1
R 0302 .. R 0303 канал 2
R 0304 .. R 0305 канал 3
R 0306 .. R 0307 канал 4
R 0308 .. R 0309 канал 5
R 0310 .. R 0311 канал 6

45
Для MINICONTROL:
Для программного обеспечения модуля PEA6 используется
функциональный блок AINA (аналоговые входы) и AOTA (аналоговые выходы):

┌────────────────┐
│ ANALOG INPUT │
│ PEA. 10 BIT │
├────────────────┤
1 ───┤ ENABLE AINA │
│ │
1 ───┤ LENGTH ERROR ├─── 1
│ │
1 ───┤ SLOT BUSY ├─── 1
│ │
1 ───┤ CHAN TIME ├─── 1R
│ │
[ADR] 2 ───┤ DEST POINTR ├─── 1
└────────────────┘

Вход/выход Описание Рекомендуе


мые типы
адресов
ENABLE Если ENABLE=1, то FBK будет выполняться. Если R, F, #
ENABLE=0, то преобразование прекращается и
значения, записанные в таблицу DEST, более не
обновляются.
LENGTH Число каналов, сигнал с которых должен быть #
преобразован в цифровую форму (от 1 до 4).
SLOT Номер слота в крейте, в который установлен PEA6 (0 #
или 1).
CHAN Номер канала, сигнал с которого будет первым #
подвергнут преобразованию в цифровую форму. При
этом сумма CHAN и LENGTH не должна превышать 4.
DEST Начальный адрес таблицы регистров для хранения [ADR]R
преобразованных значений. В зависимости от значения
LENGTH блок генерирует таблицу длиной от 2 до 8
байт. Хранимые в них числа лежат в диапазоне от 0 до
1000, что соответствует аналоговому сигналу 0..10 B или
0..20 мA. Если в регистровой паре находится число в
диапазоне 1001..1023, то это указывает на превышение
входным сигналом максимального заданного значения.
ERROR Выход, указывающий на неправильное определение R, F
одного из входов FBK. Если ERROR=1, то регистры
DEST не обновляются текущим значением аналогового
сигнала, а хранят последнее значение, считанное до
перехода ERROR в 1.
TIME Контролер времени преобразования. Если R
преобразование одного канала не завершено за
определенное время, то преобразование прекращается и
начинается преобразование следующего канала.

46
Вход/выход Описание Рекомендуе
мые типы
адресов
BUSY Флаг занятости АЦП. Принимает высокое значение, R, F
если производится преобразование.
POINTR Содержит номер канала АЦП, для которого в настоящее R
время производится преобразование. Преобразованное
значение будет записано в соответствующую пару
регистров таблицы в ходе следующего выполнения FBK.

┌────────────────┐
│ ANALOG OUTPUT │
│ PEA. │
├────────────────┤
1 ───┤ ENABLE AOTB │
│ │
1 ───┤ LENGTH ERROR ├─── 1
│ │
1 ───┤ SLOT CLMP ├─── 1
│ │
1 ───┤ CHAN │
│ │
[ADR] 2 ───┤ SOURCE │
└────────────────┘

Вход/Выход Описание Рекомендуем


ые типы
адресов
ENABLE До тех пор пока на этом входе активный уровень R, F, #
сигнала, FBK осуществляет преобразование. Если
ENABLE обнуляется, то преобразование прекращается
и последние выходные значения токов или напряжений
далее не изменяются.
LENGTH Число каналов, сигнал на которые будут выводиться #
аналоговые эквиваленты цифровых значений (1-2).
SLOT Номер слота в крейте, в который установлен PA81 (0 #
или 1).
CHAN Номер канала, который будет первым обновляться #
FBK. Диапазон допустимых значений 0-1. При этом
сумма CHAN и LENGTH не должна превышать 2.
SOURCE Адрес источника преобразуемых данных. Для каждого [ADR]R
аналогового выхода требуется два регистра. В
зависимости от числа преобразуемых каналов может
потребоваться от 2 до 16 регистров. Для сигналов
напряжения данные должны быть представлены в
формате двоичного дополнения.
ERROR Активный уровень сигнала на этом выходе говорит о R, F
неправильном соединении одного или более входов
блока. При этом на аналоговых выходах сохраняются
значения, существовавшие на них непосредственно
перед возникновением ошибки.

47
CLMP Для этого выхода устанавливается активный уровень, R, F
если выводимые величины выходят за пределы
допустимых диапазонов (0-1023).

Для COMPACT PLC:

Функциональный блок используется для инициализации аналоговых


входов. Преобразованные значения, а также сигнальные биты превышения
диапазона и неверности сигнала посылаются на выходы.
┌────────────────┐
│ ANALOG INPUT │
│ COMPACT PLC │
├────────────────┤
1 ───┤ ENABLE AINJ │
│ │
1 ───┤ MODE ALARM ├─── 1
│ │
1 ───┤ FILTER INPUT1 ├─── 2
│ │
1 ───┤ RATE INPUT2 ├─── 2
└────────────────┘
Вход/выход Описание Рекомендуем
ые типы
адресов
ENABLE Если ENABLE=1, то FBK будет выполняться. R, F, #
MODE Установка режима канала. R, #
FILTER Определяет фильтр для обоих каналов. R, #
RATE Определяет частоту преобразования канала 1 (0-255). R, #
ALARM Указывает на неправильность сигнала или выход за R
пределы диапазона в канале.
INPUT0 Содержит преобразованное значение канала 0. R
INPUT1 Содержит преобразованное значение канала 1. R

MODE:

Mod c1 Mod c0
7 3 0
Mod c0 – режим канала 0, биты 0-2;
Mod c1 – режим канала 1; биты 4-6.
Режим Сигнал
0 10 В
1 2,5 В
2 0-20 мА
3 KTY10 (Температура в С)
4 KTY10 (Температура в F)

FILTER:

Фильтр Частота Время преобразования

48
0 10 Гц 302 мс
1 50 Гц 62 мс
2 250 Гц 16,2 мс
3 1000 Гц 4,1 мс
RATE:

0 – Канал 1 не преобразуется;
1 – Проводится 1 преобразование канала 1 на одно преобразование канала 0;
2 – Проводятся 2 преобразования канала 1 на одно преобразование канала 0;

255 - Проводятся 255 преобразований канала 1 на одно преобразование канала 0.

ALARM:

O1 D1 O0 D0
7 0
D0 – Неверный сигнал в канале 0;
O0 – Превышение в канале 0;
D1 – Неверный сигнал в канале 1;
O1 – Превышение в канале 1.

INPUT0:

Диапазон значений:
Сигнал Значение
10 В -32768 - +32767
2,5 В -32768 - +32767
0 – 20 мА 0 – 32767
-50,00 - +150,00 С -5000 - +15000
-58,00 - -+302,00 F -5800 - -+30200

INPUT1:
Диапазон значений: тот же самый.

Этот функциональный блок используется, чтобы инициализировать


аналоговые выходы. Цифровые значения, которые нужно преобразовать,
подаются на функциональный блок через входы OUT 0 и OUT 1.
┌────────────────┐
│ ANALOG OUTPUT │
│ COMPACT PLC │
├────────────────┤
1 ───┤ ENABLE AINJ │
│ │
1 ───┤ MODE │
│ │
2 ───┤ OUT 0 │
│ │
2 ───┤ OUT 1 │
└────────────────┘

49
Вход/выход Описание Рекомендуем
ые типы
адресов
ENABLE Если ENABLE=1, то FBK будет выполняться. R, F, #
MODE Установка режима канала. R, #
OUT 0 Содержит значения, преобразуемые из канала 0. R, #
OUT 1 Содержит значения, преобразуемые из канала 1. R, #

MODE:

Канал Бит
0 0
1 4

Режим Сигнал
0 10 В
1 0-20 мА
3. Задание на выполнение лабораторной работы
1. Составьте LAD-диаграмму ввода дискретного значения через цифровой
входной модуль и передачи его на один из аналоговых каналов модуля
вывода. Подключите к запрограммированному аналоговому каналу цифровой
вольтметр для регистрации значений. Загрузите программу на выполнение и
продемонстрируйте правильность ее работы преподавателю.
2. Составьте LAD-диаграмму ввода аналогового сигнала по одному из каналов
модуля ввода аналоговых сигналов и вывода его в дискретном виде на каналы
модуля цифрового вывода. Запустите программу на ПЛК, проверьте
корректность ее выполнения, покажите преподавателю.
4. Требования к отчету
4. Цель работы.
5. Созданные LAD-диаграммы с комментариями по их функционированию.
6. Выводы по работе.

50
Лабораторная работа 7
1. Цель работы
Изучение времязадающих функций ПЛК применительно к задачам
управления техническими системами.
2. Справочные данные

2.1. Общие сведения


Операционная система ПЛК предоставляет пользователю богатые
возможности по реализации разнообразных временных задержек, уставок,
отсчетов в реальном времени и т.п. К временным функциям ЦП ПЛК относятся:
 программные таймеры;
 временные циклы;
 временные импульсы;
 программные часы;
 часы реального времени.
2.1.1. Программные таймеры
ЦП имеет 64 программных таймера, работающих в режиме задержки
включения. Каждый программный таймер использует две битовых ячейки:
S Dxx
Запускает программный таймер. Запись 1 в данный флажок приводит к
запуску таймера xx (где xx = 0…63). Считываемое из него значение позволяет
определить, запущен ли некоторый программный таймер.
T Dxx
Устанавливается в 1 при истечении времени для соответствующего
программного таймера. Автоматически сбрасывается при очистке запускающего
флажка S Dxx. Данный флажок можно только считывать.
Кроме того, для определения времени задержки включения существует
специальная команда определения времени:
Txx n"nn
Она задает длительность временного интервала программного таймера в
секундах или в сотых долях секунды. Эта команда всегда должна выполняться
один раз в каждом цикле программы; обычно она помещается в начало
прикладной программы. Если определение времени не выполняется, то
функционирование программного таймера не гарантируется. Если оно
выполняется в цикле программы более одного раза, то установка времени будет
неправильной. В LAD-диаграммах не существует способа задания этой
величины, поэтому инициализацию таймеров необходимо производить
средствами STL-ассемблера.
Определение времени Txx является программным прерыванием,
занимающим 0,5мс. Это необходимо иметь в виду при определении времени
сканирования программы. Каждый программный таймер занимает регистр в
диапазоне от R 0800 до R 0863, который служит для предварительного задания
интервала, и регистр в диапазоне от R 0900 до R 0963, используемый как
счетчик.
51
Временная последовательность функционирования флажков программных
таймеров имеет следующий вид:

SDxx

0
t
1

TDxx

t
txx
tres

После того, как программный таймер запускается в результате записи 1 в


запускающий флажок S Dxx и по прошествии временного интервала,
установленного txx при определении времени в Txx, флажок таймера T Dxx
также устанавливается равным 1. После сброса запускающего флажка S Dxx при
следующем сканировании программы флажок таймера T Dxx восстанавливается.
Это может произойти после одного сканирования программы.
2.1.2. Временные циклы
Временные циклы генерируются операционной системой по четырем
различным временным базам и представляются следующей диаграммой:
Адрес t1,с t2,с Временная диаграмма
T D80 10-2 10-2 1
T D81 4·10-2 6·10-2
T D82 0,4 0,6
t
t1 t2
T D83 4 6

2.1.3. Временные импульсы


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

Адрес t1,с Временная диаграмма


T D90 10-2
T D91 0,1

52
Адрес t1,с Временная диаграмма
T D92 1
T D93 10
2.1.4. Программные часы
Программные часы есть в MINICONTROL и MIDICONTROL. Время
генерируется операционной системой. Содержимое регистров программных
часов сохраняется при отключении электропитания, однако, сами часы при этом
останавливаются. После того, как ПЛК будет включен вновь, показания часов
необходимо откорректировать. Все значения в двоично-десятичном коде.
Назначение регистров следующее:
R 0980 1/100 секунд ($00 — $99);
R 0981 секунды ($00 — $59);
R 0982 минуты ($00 — $59);
R 0983 часы ($00 — $23);
R 0984 день (000 — 255, увеличивается в 00:00:00).
Программные часы управляются через флажок S D85. После того, как
содержимое этого адреса устанавливается равным 1, программные часы
запускаются. S D85 автоматически очищается при включении электропитания.
Для установки программных часов необходимо:
1. выключить часы (очистить S D85);
1. загрузить время в регистры R 0980 — R 0984;
2. включить часы (установить S D85).
2.1.4. Часы реального времени
Часы реального времени есть в COMPACT PLC.
Время генерируется специальной микросхемой. Даже при выключении
ПЛК часы продолжают работать (от батареи).
R 0980 1/100 секунд ($00 — $99);
R 0981 секунды ($00 — $59);
R 0982 минуты ($00 — $59);
R 0983 часы ($00 — $23);
R 0984 день ($01 — $31);
R 0985 месяц ($01 — $12);
R 0986 год ($00 — $99);
R 0987 день недели (0 — 6)
Часы реального времени управляются через два флага:
 S D85 - часы включены/выключены (1=включены);
 S D86 - установка часов включена/выключена (0=установка часов
включена).
Чтобы установить часы реального времени (часы должны быть при этом
включены, т.е. S D85=1), необходимо:
1. включить установку часов (S D86=0);
2. загрузить в R 0980-R 0987 соответствующие значения;
3. S D86 автоматически установится в 1 в конце следующего
программного цикла.

53
2.2. FBK, реализующие времязадающие функции
Для реализации функций включения и выключения объектов управления
через заданные промежутки времени в стандартной библиотеке UTILITY есть
блоки TOFF и TOND.
┌────────────────┐ ┌────────────────┐
│ OFF DELAY TIMER│ │ ON DELAY TIMER │
│ │ │ │
├────────────────┤ ├────────────────┤
1 ──┤ ACTIVE TOFF │ 1 ──┤ ACTIVE TOND │
│ │ │ │
1 ──┤ TICK OUTPUT├── 1 1 ──┤ TICK OUTPUT├── 1
│ │ │ │
2 ──┤ PRESET ELAPSE├── 2 2 ──┤ PRESET ELAPSE├── 2
│ │ │ │
└────────────────┘ └────────────────┘
Функциональный блок TOFF используется для задержки операции
выключения. Если ACTIVE=1, то в ELAPSE загружается PRESET (значение
лежит в интервале 1..65535), а OUTPUT устанавливается равным 1. Когда
ACTIVE перейдет в низкое состояние, ELAPSE начнет уменьшаться согласно
временным импульсам TICK. После того, как ELAPSE обнулится, на выходе
OUTPUT устанавливается нуль.
Функциональный блок TOND используется для реализации операции
включения после заранее заданного времени задержки. Если ACTIVE=0, то в
ELAPSE загружается PRESET и OUTPUT сбрасывается в 0. Когда ACTIVE=1,
ELAPSE будет уменьшаться с каждым импульсом, пришедшим на вход TICK.
После того, как ELAPSE обнулится, на выходе OUTPUT устанавливается
единица. Состояние OUTPUT остается высоким до тех пор, пока ACTIVE=1.

Вход/выход Рекомендуемые типы адресов


ACTIVE R, F, I, O, S, T
TICK T D9x, R, F
PRESET R, #
OUTPUT R, F, O, S
ELAPSE R

На вход TICK рекомендуется подавать временные импульсы с разными


временными базами из флажков T D90 … T D93.
2.3. Дополнительные сведения
Для реализации задания понадобятся следующие ранее не рассмотренные
контакты:
2.3.1. Фиксация бита (Условная установка).
│ O 040
01 ─ ─ ─ ─(L)


[F2 CONTACT] [F6]<PredAddr><адрес>[Enter]
[L] <PredAddr><адрес>[Enter]
В указанную ячейку памяти загружается 1, если значение младшего бита
пути равно 1. Использование (L) рекомендуется только в сочетании с (U). Этот
54
контакт применяется в последнем столбце LAD в сочетании с адресами
однобитовых величин (F, O, S).
2.3.2. Дефиксация бита (Условный сброс).
│ O 040
01 ─ ─ ─ ─(U)


[F2 CONTACT] [F7]<PredAddr><адрес>[Enter]
[U] <PredAddr><адрес>[Enter]
В указанную ячейку памяти загружается 0, если значение младшего бита
пути равно 1. Ограничения те же самые, что и для фиксации бита.
Необходимо также вспомнить:

2.3.3. Генерация импульса по положительному перепаду

│ I 065 F 107
01────┤ ├────────────────────┤+├───────── ─ ─ ─


02

[F2 CONTACT] [F8] [F] <адрес> [Enter]


[+] [F] <адрес> [Enter]
Если состояние младшего значащего бита пути изменяется от 0 к 1, то
этот контакт дает импульс, длительность которого строго равна одному циклу
программы.
Для этой функции необходимо определить флажок, который не может
переноситься программой в другую ячейку. Если генерация по положительному
перепаду используется неоднократно, то каждый раз необходимо выделять
новый флажок.

2.3.4. Генерация импульса по отрицательному перепаду

│ I 063 F 102
01────┤ ├────────────────────┤-├──────── ─ ─ ─


02

[F2 CONTACT] [F9]+[F1] [F] <адрес> [Enter]


[-] [F] <адрес> [Enter]
Если состояние младшего значащего бита пути изменяется от 1 к 0, то
этот контакт дает импульс, длительность которого строго равна одному циклу
программы.
Для этой функции необходимо определить флажок, который не может
переноситься программой в другую ячейку. Если генерация по отрицательному
перепаду используется неоднократно, то каждый раз необходимо выделять
новый флажок.

55
2.3. Примеры применения
Рассмотрим возможности применения временных функций ПЛК
относительно задач управления. Допустим, что после замыкания переключателя
(I 042) должен быть запущен двигатель (подачей управляющего цифрового
сигнала O 078) с задержкой в 6,4 секунды. Выключение двигателя
осуществляется другим переключателем (I 043).
│ I 042 F 100 S D10
00──┤ ├──────────┤+├───────────────────────────(L)──
│ ДВ. СТАРТ ФРОНТ ДВ. ЗАДЕРЖКА

│ I 043 S D10
01──┤ ├────────────────────────────────────────(U)──
│ ДВ. СТОП ДВ. ЗАДЕРЖКА

│ T D10 O 078
02──┤ ├────────────────────────────────────────( )──
│ ДВ. ВКЛЮЧЕН ДВИГАТЕЛЬ

Перед вызовом данной LAD (для определенности назовем ее LAD_TIME)


в STL-программе необходимо установить временную задержку. Это реализуется
следующим фрагментом:
T10 6"40 задержка в 6,4 сек. для таймера 10
JSR LAD_TIME вызов LAD
END

Эта же задача с применением FBK может быть решена в следующем виде:

│ ┌────────────────┐
│ │ ON DELAY TIMER │
│ │ │
│ I 042 ├────────────────┤
00──┤ ├─────────────┤ ACTIVE TOND │
│ ДВ.СТАРТ │ │
│ │ │
│ T D91 │ │ F 100
02──┤ ├─────────────┤ TICK OUTPUT ├───────────────────(L)──
│ ИМПУЛЬСЫ │ │ ДВ.ЗАДЕРЖКА
│ │ │
│ #00064 │ │
03──┤ ├─────────────┤ PRESET ELAPSE ├── 2
│ СЧЕТЧИК │ │
│ └────────────────┘

│ I 043 F 100
04──┤ ├──────────────────────────────────────────────────(U)──
│ДВ.СТОП
ДВ.ЗАДЕРЖКА

│ F 100 O 078
05──┤ ├─────────────────────────────────────────────────( )──
│ДВ.ВКЛЮЧЕН ДВИГАТЕЛЬ

56
3. Задание на выполнение лабораторной работы
1. Составьте LAD-диаграмму управления двигателем. Управление должно
производиться двумя переключателями: “старт” и “стоп”. При включении
переключателя “старт” (по положительному фронту), должен запускаться
двигатель с задержкой 2,5 секунды. При включении переключателя “стоп” (по
положительному фронту), двигатель должен быть остановлен с задержкой 1,5
секунды. Для задания временных задержек используйте программные
таймеры.
2. Загрузите созданную программу в ПЛК и убедитесь в правильности ее
функционирования. Продемонстрируйте ее работу преподавателю.
3. Составьте LAD-диаграмму для управления программными часами и часами
реального времени. Определите один из цифровых входов, как вход,
инициирующий перепадом значения установку часов некоторым временем
(например, возьмите текущую дату и время), а три других цифровых входа -
для управления выводом на выходные дискретные каналы содержимого
любого из 5 временных регистров. Загрузите созданную программу в ПЛК и
убедитесь в ее правильности. Продемонстрируйте ее работоспособность
преподавателю.
4. Требования к отчету
1. Цель работы.
2. Созданные LAD-диаграммы с комментариями по их функционированию.
3. Выводы по работе.

57
Лабораторная работа 8
1. Цель работы
Ознакомление с принципами асинхронной последовательной передачи
данных в распределенных системах управления на примере связи двух ПЛК
через модули интерфейса RS232/TTY.
2. Справочные данные
Последовательный интерфейс: данные передаются бит за битом и
формируются в слова данных приемником. Ввиду низкой стоимости кабеля и
широко распространенной стандартизации последовательные интерфейсы лучше
подходят для организации связи между системами ПЛК, чем параллельные
интерфейсы. Наиболее важными типами здесь являются: RS232, TTY, RS422,
RS485.
2.1. Описание модуля интерфейса MDPIF1-0 (MIDICONTROL)
Настоящий модуль предназначен для асинхронного последовательного
обмена ПЛК с другими устройствами (включая другой ПЛК). Модуль аппаратно
поддерживает интерфейсы RS232 и TTY. Конфигурация выводов и их
соединение приведены в таблицах.
Технические данные модуля интерфейса MDPIF1-0

Интерфейсы RS232/TTY
Соединение соединитель DSHELL c 25 выводами (розетка)
Протяженность максимально до 10 метров
Линии квитирования RTS, DTR, DSR, DCD
Бодовая скорость 50…19200, устанавливается программно
Формат данных 5…8 битов данных, проверка ошибок по
четности/нечетности устанавливается
программно
Потребляемая мощность
при +8 B 1,4 Вт
при +15 B 0,5 Вт
при +30 B 0,6 Вт
Рабочая температура от 0 до 60°C
Влажность от 0 до 95% без конденсации

Конфигурация выводов MDPIF1-0

Вывод Тип интерфейса Функция


2 RS232 RXD
3 RS232 TXD
5 RS232 RTS
6 RS232 DTR
7 GND
8 RS232 DCD

58
Вывод Тип интерфейса Функция
9 TTY RXD
10 TTY TXD RET
11 +8 В
12 TTY RXD RET
13 TTY TXD
20 RS232 DSR
23 -30 В
24 +12 В
25 +15 В

Соединения выводов MDPIF1-0

MDPIF1-0
RS232

TXD RXD

RXD TXD

DTR DSR

DSR DTR

GND GND

TTY

TXD RXD

TXD Ret RXD Ret

RXD TXD
X
RXD Ret TXDRet

Примечание: Если используется интерфейс TTY, то не должны использоваться


линии квитирования (RTS, DTR, RST, DCD).
В соответствии с соглашениями интерфейса RS232 для связи необходимы
по меньшей мере три линии (передатчик, приемник и заземление). Могут
использоваться дополнительные линии для синхронизации работы передатчика
и приемника (линии квитирования). Протяженность интерфейса RS232 в
промышленных условиях довольно мала (примерно до 10 метров). Из-за
используемых в RS232 уровней сигналов линии связи восприимчивы к шуму.
В интерфейсе TTY связь осуществляется через индуцированный ток
(20мА), поэтому данный интерфейс известен как токовый интерфейс.
Электрическая изоляция интерфейсов TTY допускает значительные расстояния
(до 200 метров в промышленных приложениях). Для интерфейса TTY требуются
три линии.
Во многих случаях асинхронной связи передающая станция посылает
данные быстрее, чем принимающая может их обработать. Это диктует
необходимость синхронизации приемопередачи данных (квитирование).
Различают два варианта квитирования: аппаратное и программное.

59
 Аппаратное квитирование
Для аппаратного квитирования требуется дополнительная линия, по
которой приемник сообщает передатчику, что он готов к приему следующей
посылки. Для двунаправленной передачи требуются две линии квитирования.
Преимуществом данного вида синхронизации перед программным
квитированием (см. ниже) является простота обработки сигналов квитирования
программным обеспечением. Основной недостаток заключается в более высокой
стоимости приемопередающего кабеля, что вызвано увеличением числа линий.
 Программное квитирование
В этом методе синхронизация передатчика и приемника осуществляется с
помощью управляющих символов, передаваемых по линиям данных. Наиболее
известным является протокол XON/XOFF (старт-сигнал/стоп-сигнал). Приемник
посылает определенный стоп-сигнал (XOFF) передатчику, когда приемник не
готов к дальнейшему приему данных. Как только достигается готовность
приемника, передатчику посылается старт-сигнал (XON). Имеются и другие
методы программной синхронизации. Их преимуществом является низкая
стоимость проводки, а недостатком  большие затраты на программное
обеспечение.
Структура посылки
Символы, передаваемые с помощью последовательного интерфейса,
автоматически расщепляются на биты. При инициализации пользователь
определяет, сколько битов данных (от 5 до 8) могут содержать посылаемые
символы. Восьмибитовая посылка имеет структуру, приведенную на рисунке.

START B0 B1 B2 B3 B4 B5 B6 B7 PAR STOP

Стартовый бит (START) передается для указания начала посылки для


приемника. За ним следуют биты данных (B0..B7). Для реализации простого
контроля используется контроль по четности, который может быть активирован
при инициализации. Бит четности (Bn) генерируется в дополнении к битам
данных и следует непосредственно за ним. Этот бит генерируется модулем
интерфейса автоматически для того, чтобы сумма битов данных передавалась
или как четная, или как нечетная.
Проверка на четность Проверка на нечетность
Бит четности равен 1, если сумма всех Бит четности равен 1, если сумма
битов данных является нечетной всех битов данных является четной
Бит четности равен 0, если сумма всех Бит четности равен 0, если сумма
битов данных является четной всех битов данных является нечетной
После получения символа приемник проверяет четность в соответствии с
выбранным режимом четности (четный или нечетный). Например, если
установлен режим нечетности, а проверка выявила четность (с учетом бита
четности), то по крайней мере один бит слова данных был инвертирован. В этом
случае генерируется сигнал ошибки.

60
Стоп-бит (STOP) передается для завершения последовательности битов.
При инициализации пользователь определяет длину этого стоп-бита. Она может
быть равна длине бита данных (один стоп-бит, наиболее распространенный
случай), в 1,5 раза больше длины бита данных (1,5 стоп-бита), в два раза больше
длины бита данных (два стоп-бита).

Возможные сообщения об ошибках


Биты состояния ошибки в регистре состояния могут указывать на три
ошибочных условия:
 ошибка четности (смотри выше);
 ошибка кадровой синхронизации;
 ошибка превышения темпа.
 Ошибка кадровой синхронизации
Ошибка кадровой синхронизации имеет место, когда приемник
интерфейса не обнаруживает стоп-бита в конце символа (например, когда
сильные помехи на линии влияют на стоп-бит).
 Ошибка превышения темпа
Если полученный символ не читается из регистра данных до получения
следующего символа, то генерируется ошибка превышения темпа. Пришедший
следующим символ будет не верен.
2.2. Описание интерфейса TTY на модуле ЦПУ MINICONTROL
В интерфейсе TTY связь осуществляется через индуцированный ток
(20мА), поэтому данный интерфейс известен как токовый интерфейс.
Электрическая изоляция интерфейсов TTY допускает значительные расстояния
(до 200 метров в промышленных приложениях). Для интерфейса TTY требуются
три линии.

Конфигурация выводов интерфейса TTY


Вывод Функция
1 TXD
2 TXD RET
3 RXD
4 RXD RET
2.3. Описание интерфейса IF1 (RS232) моноблочного ПЛК COMPACT PLC
Технические данные
Интерфейс RS232
Гальваническая изоляция Нет
Соединение 9-выводной D-соединитель
(вилочный)
Максимальное расстояние 15 м, экранированный кабель
Линии квитирования DSR, RTS
Скорость пересылки данных 300…19200 Бод
Формат данных:
-информационные разряды 5…8
-контроль по четности Да/нет/четн./нечетн.

61
-конфигурация Программная
Питание для панели Сompact MMI P120
иMMI P121 +5 В/500 мА
Конфигурация выводов интерфейса RS232
Вывод Функция
1
2 RXD
3 TXD
4 +5 В/500 мА
5 GND
6
7 RTS
8 DSR
9
2.4. Программные операции
Программные операции с последовательным интерфейсом реализуются с
использованием следующих регистров:
 программный регистр;
 командный регистр;
 регистр состояния;
 регистр данных.
Адреса регистров
Регистр MIDICONTROL MINICONTROL COMPACT PLC
Программный P 0x4 P 103 P 103
регистр
Командный P 0x5 P 102 P 102
регистр
Регистр состояния P 0x6 P 101 P 101
Регистр данных P 0x7 P 100 P 100
x ... номер слота, в который установлен PIF-модуль
Инициализация
При инициализации программный и командный регистры загружаются
определенными, заранее выбранными числами. Это определяет скорость обмена
информацией, формат данных, четность и т.д. Инициализация выполняется
только один раз сразу после включения или перезагрузки. Для изменения
состояния линий квитирования RTS и DTR командный регистр может быть
изменен в любое время.
Бит MIDICONTROL MINICONTROL COMPACT PLC
Программный регистр
7 SB - число стоп-битов
0 … 1 стоп-бит
1 … если DB=5 и нет четности, то 1,5 стоп-бита
если DB=8 и четность, то 1 стоп-бит
иначе 2 стоп-бита
5и6 DB - число битов данных
00 ... 8 битов данных

62
Бит MIDICONTROL MINICONTROL COMPACT PLC
Программный регистр
01 ... 7 битов данных
10 ... 6 битов данных
11 ... 5 битов данных
4 0 или 1 1 1
0…3 BAUD - бодовая скорость BAUD - бодовая скорость
0001 ... 50 0110 ... 300
0010 ... 75 0111 ... 600
0011 ... 109,92 1000 ... 1200
0100 ... 134,58 1001 ... 1800
0101 ... 150 1010 ... 2400
0110 ... 300 1011 ... 3600
0111 ... 600 1100 ... 4800
1000 ... 1200 1101 ... 7200
1001 ... 1800 1110 ... 9600
1010 ... 2400 1111 ... 19200
1011 ... 3600
1100 ... 4800
1101 ... 7200
1110 ... 9600
1111 ... 19200
Командный регистр
7и6 PAR - четность
00 ... проверка нечетности
01 ... проверка четности
10 ... бит четности устанавливается при передаче
11 ... бит четности сбрасывается при передаче
5 P - четность on/off
0 ... нет теста на четность, бит четности не генерируется
1 ... активизируется тест на четность
4 E - режим эхо
0 ... режим эхо отключен
1 ... режим эхо подключен (RT должно быть равно 0)
3 RT - линия RTS* 1 RT - линия RTS
0 ... RTS “высокий”, не 0 ... RTS “высокий”, не
готова к приему готова к приему (-12 В)
1 ... RTS “низкий”, готова 1 ... RTS “низкий”,
к приему готова к приему (+12 В)
2 0 0
1 0 или 1 1
0 DT - линия DTR* 1
0 ... DTR “высокий”, не
готова к приему
1 ... DTR “низкий”, готова
к приему

*Линия RTS может переключаться в любой момент из состояния “низкий”


в состояние “высокий” (от 1 к 0). Переключение линии квитирования приводит к
немедленному закрытию интерфейса передатчика, а также интерфейса
приемника после приема текущего символа. Для избежания потери данных
линия DTR должна переключаться только после полной передачи символа
(смотри бит 4 в регистре состояния).
Пример инициализации

63
Инициализировать последовательный интерфейс PIF1 в слоте 2
MIDICONTROL, бодовая скорость 9600, 8 бит данных, 1 стоп-бит, проверка
четности отключена, RTS и DTR в состоянии “низкий” (готовы к приему).
LDAA # % 00011110 9600 бод, 8 бит данных, 1 стоп-бит
LDAB# % 00001011 отключены проверка четности и эхо-режим
STD P 024 программный и командный регистры
Регистр состояния
Регистр состояния обеспечивает информацию о состоянии
последовательного интерфейса и любых ошибках, которые могут произойти.
Перед каждой командой передачи или приема следует определять состояние
этого регистра.

Бит MIDICONTROL MINICONTROL COMPACT PLC


Регистр состояния
6 DS - состояние линии DSR 0 или 1
0 ... DSR=0 (станция-
партнер готова)
1 ... DSR=1 (станция-
партнер не готова)
5 DC - состояние линии DCD 0 или 1
0 ... DCD=0
1 ... DCD=1
4 TR - передатчик готов
0 ... передатчик передает символ
1 ... регистр передатчика пуст, передатчик готов передавать символ
3 RF - получение символа
0 ... символ не получен
1 ... символ получен
2 OV - ошибка превышения темпа
0 ... нет ошибки
1 ... ошибка, приемник не был готов до приема нового символа
1 FE - ошибка кадровой синхронизации
0 ... нет ошибки
1 ... ошибка: стоп-бит не обнаружен
0 PE - ошибка четности
0 ... нет ошибки
1 ... ошибка в тесте на четность

Регистр данных
Регистр данных выполняет две функции:
 полученные символы читаются из регистра данных;
 символы для передачи записываются в регистр данных.
Регистр данных
Биты 0…7 DATA данные для приема и передачи

Передача символа
До записи передаваемого символа в регистр данных должна быть
проверена готовность передатчика (бит 4 в регистре состояния должен быть
равным 1). При использовании аппаратного квитирования для синхронизации
передатчика и приемника, должен быть проверен бит DSR в регистре состояния
для определения готовности принимающей станции.

64
без аппаратного квитирования
LDAB STATUS регистр состояния
BITB # % 00010000 передатчик готов?
BEQ NO ветвление, если передатчик не готов
LDAA PACKET символ для вывода
STAA DATA регистр данных
с аппаратным квитированием
LDAB STATUS регистр состояния
BITB # % 01000000 приемная станция готова (линия DSR)?
BNE NO ветвление, если приемник не готов
BITB # % 00010000 передатчик готов?
BEQ NO ветвление, если передатчик не готов
LDAA PACKET символ для вывода
STAA DATA регистр данных
Прием символа
Оценка бита 3 в регистре состояния определяет, получен ли символ. Если
этот бит есть 1, то символ был получен. Биты 0…2 регистра состояния
указывают, есть ли в принятой посылке ошибка (ошибки четности, превышения
темпа или кадровой синхронизации). Если установлен один из указанных
ошибочных битов, полученный символ содержит ошибку. Однако необходимо
прочитать регистр данных в случае ошибки, поскольку это может помочь при
определении природы возникновения ошибки.
LDAB STATUS регистр состояния
BITB # % 00001000 символ получен?
BEQ NO ветвление, если не получен
LDAA DATA регистр данных
BITB # % 00000111 ошибка передачи?
BNE FAIL переход на процедуру оценки ошибки
… передачи полученного символа
FAIL … процедура оценки ошибки передачи
полученного символа
3. Задание на выполнение лабораторной работы
1. Соедините два ПЛК шлейфом асинхронного последовательного канала.
Составьте две LAD-диаграммы для осуществления односторонней передачи
данных между ними. ПЛК-передатчик, получая данные через цифровые
входы, упаковывает их в байты и пересылает ПЛК-приемнику, который
осуществляет распаковку полученной информации и передает ее на свои
цифровые выходы. Обратите внимание на поддерживаемый шлейфом
интерфейс (RS232 или TTY) и возможность аппаратного квитирования.
2. Усовершенствуйте LAD-диаграммы для реализации двустороннего обмена
данными между ПЛК. Данные должны пересылаться байтовыми блоками.
Сигналом для начала отправления должен являться факт приема посылки.
3. Загрузите созданные программы в ПЛК и убедитесь в правильности их
функционирования. Продемонстрируйте ее работу преподавателю.

65
4. Требования к отчету
4. Цель работы.
5. Созданные LAD-диаграммы с комментариями по их функционированию.
6. Выводы по работе.

66
СОДЕРЖАНИЕ

Лабораторная работа 1.............................................................................……………3

Лабораторная работа 2....……………………………………………………….......12

Лабораторная работа 3.............................…...................……………………………21

Лабораторная работа 4...............................…………………………………..……..29

Лабораторная работа 5...........................................................……………………….35

Лабораторная работа 6...................................................…………………………….40

Лабораторная работа 7...........................…………………………………………….50

Лабораторная работа 8...........................................................................…………….57

67
Редактор
Лицензия ЛР N 020617 от 10.08.92
__________________________________________________________________
Подписано в печать Формат 60х84 1/16. Бумага тип.N2.
Печать офсетная Усл. печ. л. 1,86. Уч. -изд.л. 2,0.
Тираж 125 экз. Заказ
Издательско-полиграфический центр СПбГЭТУ
__________________________________________________________________
197376, С.-Петербург, ул. Проф. Попова, 5

68