Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Программирование задач автоматического управления объектами на различных алгоритмических языках

..pdf
Скачиваний:
2
Добавлен:
12.11.2023
Размер:
3.28 Mб
Скачать

та, только в этом случае в установочное окно Edit Instruction записывается через пробелы CTNR 0 #4, где #4 – исходное численное состояние счетчика.

Рис. 4.16. Программа совместной работы таймера и счетчика обратного счета

Наберите схему этой программы, загрузите ее в контроллер и запустите в работу. Программа должна работать по следующему принципу. При замыкании контакта 2960.00 кнопкой К1 запускается в работу таймер TIM01, который через 30 мс контактом Т0001 подает импульс на счетный вход счетчика обратного счета CNTR00. Каждый импульс, поданный с таймера, уменьшает на единицу первоначально загруженное численное состояние этого счетчика. На четвертом тактовом импульсе этот счетчик обнуляется и своим контактом С0000 включает в работу катушку с адресом 2961.00, в результате чего загорается лампа D00, а счетчик автоматически переходит в исходное числовое состояние. Последующий тактовый импульс, поданный с таймера, снова до нуля уменьшает первона-

101

чальное состояние счетчика. Этот процесс циклически продолжается до тех пор, пока таймер TIM01 создает тактовые импульсы.

При замыкании контакта 2960.01 кнопкой К2 изменений в работе программы не происходит, так как после каждого обнуления счетчик автоматически переходит в исходное численное состояние. При замыкании контакта 2960.02 кнопкой К3 счетчик сразу обнуляется без возврата в исходное численное состояние, поэтому его работа сразу прекращается.

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

Установка таймера на рабочем поле программы выполняется аналогично установке таймера TIM, только в установочном окне Edit Instruction нужно записать ТTIM 01 # 30 для одного таймера

иТTIM 00 # 30 для другого. Наберите эту программу, загрузите ее

вконтроллер и запустите в работу.

Рис. 4.17. Программа совместной работы двух таймеров при управлении мигающим режимом работы лампы

102

Программа должна работать по следующему принципу. При замыкании контакта 2960.00 кнопкой К1 запускается в работу таймер TIM01, который через 30 мс контактом Т0001 включает катушку 2961.00 и соответствующую лампу D00. Одновременно этот таймер включает в работу второй таймер TIM00, во время работы которого лампа продолжает гореть до тех пор, пока этот таймер через 30 мс контактом Т0000 не обнулит себя и таймер ТTIM01. После обнуления этих таймеров таймер ТTIM01 снова запускается в работу, при этом лампа D00 гаснет.

4.4.3. Программирование битовых операций в программном пакете CX-Programmerr

Управление состоянием портов дискретного вывода контроллера OMRON CJ1M может быть реализовано с помощью битовых операций. Суть такой операции состоит в том, что в память контроллера подается некоторое шестнадцатеричное число, каждый разряд которого может быть использован как битовая команда на включение или выключение соответствующего канала порта дискретного вывода этого контроллера.

Ввод исходного числа в память контроллера выполняется командой MOV(021) #S D, где #S – шестнадцатеричное число, посылаемое в память; D – адрес ячейки памяти.

Пример программы, в которой для управления состоянием каналов порта дискретного вывода используются битовые операции, показан на рис. 4.18.

Вэтой программе командой MOV(021) #0001 D7 в ячейку памяти

садресом D7 записывается шестнадцатеричное число (управляющее слово), от содержания которого зависит активизация определенного порта дискретного вывода контроллера. Для замыкания катушек с адресами 2961.00, 2961.01 и 2961.02 в программе применены команды TST(350), которые считывают из управляющего слова указанный в них разряд бита. Если этот бит единичный, то это команда включает в работу определенную катушку. При нулевом бите этого включения не происходит. Для этих команд в определенном разряде управляющего слова должен присутствовать единичный бит, определяющий включение заданного канала порта дискретного вывода.

103

Рис. 4.18. Программа управления состоянием портов дискретного вывода в зависимости от значения битов в управляющем слове

Так, для включения порта дискретного вывода с адресом 2960.00 в состав управляющего слова, записанного в ячейке памяти с адресом D7, заносится шестнадцатеричное число 0001 (эквивалентное двоичному числу 0000000000000001), единичный бит младшего разряда которого включает в работу эту катушку. Для выключения этой катушки достаточно обнулить этот бит командой

MOV(021) #0000 D7.

Для одновременного включения всех катушек в этой программе в ячейку оперативной памяти с указанным адресом должно быть занесено шестнадцатеричное число 0007. Если в эту ячейку записать число 0005, то в работу будут включены только две катушки с адресами 2961.00 и 2961.02.

Ввод управляющего слова 0001 в память контроллера производится при включении контакта с адресом 2960.00 командой

MOV(021) #0001 D7.

104

4.4.4. Программирование циклических операций и операций ветвления для включения в работу каналов порта дискретного вывода

Для программирования циклических операций на языке Ladder в пакете CX-Programmerr используются команды FOR(512) и NEXT(513), между которыми располагается тело цикла.

Для изменения параметров битовых операций внутри тела цикла можноиспользоватькоманды++(590) и+С(402). Перваяизэтихкоманд прибавляет единичный бит к управляющему слову, а вторая складывает содержаниеуправляющегословасцелочисленнойконстантой.

Пример циклической программы, в которой в цикле 5 раз меняется содержание управляющего слова, представлен на рис. 4.19.

Рис. 4.19. Программа циклического изменения битового содержания управляющего слова

Вэтой программе вне тела цикла командой MOV(021) #0000 D7

вячейку D7 записывается шестнадцатеричное число 0001. Содержание этой ячейки командой TST(350) используется для включения катушки с адресом 2961.00. Команда FOR(512) #5 открывает цикл,

вкотором производится пять обращений к телу цикла, после чего командой NEXT(513) этот цикл закрывается.

105

При запуске этой программы за пять циклов содержание ячейки D7 мгновенно становится равным #0006. Это объясняется большим быстродействием циклических операций в контроллере OMRON, поэтому во время исполнения такого цикла невозможно проследить за изменением состояния лампы, подключенной к катушке с адресом 2961.00. Для того чтобы проследить за состоянием лампы в зависимости от битового содержания управляющего слова, нужно растянуть во времени циклический процесс. Для этой цели цикл желательно строить на основе использования двух таймеров типа TTIM, работающих в режиме генератора тактовых импульсов. Принцип работы такого цикла показан на рис. 4.20.

В этой программе состояние ячейки памяти D7 циклически меняется командой ++(590) D7. Это происходит под управлением двух таймеров ТTIM 00 и ТTIM 01, встроенных в тело цикла FOR(512), NEXT(513), в котором командой ++(590) D7 последовательно изменяется содержание управляющего слова. Выполнение команды ++(590) D7 происходит после замыкания контакта Т0001 во время попеременной работы таймеров ТTIM 00 и ТTIM 01. Пауза в цикле возникает в момент работы таймера ТTIM 01, в это время выходной сигнал другого таймера находится в единичном состоянии. Результат циклического процесса зависит от состояния ячейки памяти D7, которое циклически меняется командой ++(590) D7.

Для того чтобы в этом цикле ячейка D7 каждый раз не принимала исходного значения, команду MOV(021) #0001 D7 нужно вынести за пределы тела цикла. Для этой цели в программу командами CJP(510) 0 и JME(005) 0 вводится условный переход, с помощью которого при кратковременном нажатии на кнопку К1 по команде CJP(510) 0 выполняется переход к команде JME(005) 0, за которой следует команда MOV(021) #0001 D7. При размыкании кнопки К1 (контакта 2960.00) начинается работа цикла FOR(512), NEXT(513).

Наберите схему этой программы, загрузите ее в контроллер и запустите в работу.

Программа, записанная на языке Ladder в пакете CXProgrammerr, построена на принципе бесконечного цикла, поэтому в этом пакете команды FOR и NEXT не имеют особого смысла, так

106

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

Рис. 4.20. Циклическая программа управления битовым состоянием управляющего слова с помощью таймеров

В этой программе циклический процесс изменения битового состояния ячейки памяти D7 организован через контроль состояния счетчика CNT 00 (прямого счета), на который тактовые импульсы

107

подаются выходным сигналом Т0001 счетчика ТTIM 01, работающего в паре с другим счетчиком ТTIM 00. Запуск в работу этого счетчика производится замыканием контакта Т0001, а контактом с адресом 2960.01 этот счетчик обнуляется.

Рис. 4.21. Программа организации цикла с помощью счетчика

идвух таймеров

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

108

мыкания контакта Т0001. Начальное состояние этого слова задается командой MOV(021) #6ААА D7, обращение к которой производится через команды условного перехода CJP(510) 0 и JME(005) 0. При замыкании контакта с адресом 2960.00 команда CJP(510) переводит алгоритм программы к команде JME(005) 0, за которой следует ко-

манда MOV(021) #6ААА D7.

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

Наберите программу согласно ее структуре, показанной на рис. 4.21. Количество циклов при ее выполнении определяется первоначальным содержанием счетчика CNT 00. При запуске этой программы лампа D02 начинает мигать 6 раз.

После остановки выполнения этого цикла последовательным включением контактов 2960.00 и 2960.01 (кнопки К1 и К2) можно возобновить его работу.

Таблица 4 . 4

Список команд, участвующих в программе запуска в работу каналов порта дискретного ввода-вывода

Обозначение

Назначение команды

Пример

п/п

команды

использования

 

1

SET

Включение битовой переменной

SET K1

2

RSET

Выключение битовой переменной

RSET K1

3

MOV(021)

Пересылка содержимого одного пара-

MOV(021) #0001 D7

 

 

метра в другой

 

4

TIM

Запуск в работу таймера

TIM 00 # 60

5

TTIM(087)

Запуск в работу таймера с входом

ТTIM(087) 01 #30

 

 

сброса

 

6

CNT

Запусквработусчетчикапрямогосчета

CNT 0 # 5

7

CNTR(012)

Запусквработусчетчикаобратногосчета

CNTR(012) 01 # 4

8

CJP(510)

Условный переход к метке

CJP(510) 0

9

JME(005)

Метка условного перехода

JME(005) 0

10

++(590)

Прибавление бита к числу

++(590) D1

11

+(400)

Сложение двух параметров

+(400) #0A01 D2

12

RRNC(575)

Сдвиг содержания параметра на 1 бит

RRNC(575) D7

 

 

вправо

 

109

Анализ рассмотренных программ запуска в работу позволяет выделить несколько основных команд, участвующих в этом процессе. Список этих команд представлен в табл. 4.4.

4.5. Программирование работы модулей дискретного ввода-вывода микроконтроллера OMRON CJ1M

Для программирования задач управления с использованием модулей дискретного ввода-вывода контроллера OMRON CJ1M необходимо знать адреса каналов этих модулей, по которым в программе можно к ним обращаться. Адреса каналов для модулей дискретного ввода-вывода приведены в табл. 4.5.

Таблица 4 . 5 Адреса каналов для модулей дискретного ввода-вывода

Номер

Адрес

Активизация

Номер

Адрес

Отражение

канала

канала

состояния

канала

канала

состояния

модуля ID4

ввода

канала

модуля OD4

вывода

канала

00

3306.00

Кнопкой К11

00

3205.00

Лампа D05

01

3306.01

Кнопкой К12

01

3205.01

Лампа D06

 

 

02

3205.02

П2.91

 

 

03

3205.03

П2.93

Задача: Составить программу, по которой кнопкой, подключенной к контакту с адресом 2960.00, включить лампу D05, подключенную к каналу модуля GRT1-OD4 с адресом 3205.00, а лампу D06, подключенную к каналу с адресом 3205.01 этого модуля, включить кнопкой, подключенной к каналу с адресом 3306.00 модуля GRT1-ID4. Структура такой программы показана на рис. 4.22

Рис. 4.22. Программа запуска каналов модулей дискретного ввода-вывода

110

Соседние файлы в папке книги