Использование расширенных функциональных блоков. Составление и отладка программ с использованием функциональных блоков очередей и стеков, барабанных контроллеров, блоков расписания, функций установки и отметок времени, страница 2

·  пересылка данных с выхода %R0 в слово %MW2 := %R0.O по переднему фронту сигнала %I0.22 при условии, что в очереди есть данные (%R0.E = 0);

·  пересылка данных из слова %MW1 на вход %R0 (%R0.I := %MW1) по переднему фронту сигнала %I0.21 при условии, что в очереди есть свободное место (%R0.F = 0); одновременно увеличение значения %MW1 := %MW1 + 5;

·   

В режиме симулятора проверьте функционирование очереди. Предварительно добавьте в секцию №1 начальную установку %MW1 := 10 и %MW2 := 999.

3.  В секции №3 реализуйте следующие функции:

·  управление стеком LIFO на базе регистра %R1 – сброс по сигналу входа %I0.20, запись данных по сигналу %M0, чтение данных по переднему фронту сигнала %I0.22;

·  пересылка данных с выхода %R1 в слово %MW4 := %R1.O по переднему фронту сигнала %I0.22 при условии, что в стеке есть данные (%R1.E = 0);

·  пересылка данных из слова %MW3 на вход %R1 (%R1.I := %MW3) по сигналу %I0.21 при условии, что в стеке есть свободное место (%R0.F = 0); одновременно увеличение значения %MW3 := %MW3 + 10 и установка значения %M0 = 1;

4.  В секции №4 реализуйте стек двойных слов в зоне памяти от %MD20 до %MD40. Для этого создайте следующие цепи:

·  по сигналу %S13 инициализация слова %MD42 := 0 - резервирование памяти под стек;

·  по переднему фронту сигнала %I0.21 запись по индексной адресации значения входного слова стека %MD6 в память стека (%MD20[%MW18] := %MD6). Двойное слово %MD20 – это основание (дно) стека, слово %MW18 – указатель стека, содержащий номер последнего использованного или первого свободного слова (относительно дна стека). Одновременно увеличение указателя стека %MW18 := %MW18 + 2 и изменение значения входного слова %MD6 := %MD6 + 250;

·  по переднему фронту сигнала %I0.22 чтение по индексной адресации значения вершины стека в выходное слово стека %MD8 (%MD8 := %MD20[%MW18]). Одновременно уменьшение указателя стека %MW18 := %MW18 -2.

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

  1. В секции №5 реализуйте следующие цепи:

a.  управление функциональным блоком %DR0, сброс в исходное состояние сигналом %I0.20, переход к следующему состоянию контроллера по сигналу %I0.1 или по коротким импульсам таймера %TM0.Q;

b.  принудительная установка текущего состояния контроллера %DR0.S := 5 по сигналу %I0.23;

c.  генератор коротких импульсов на таймере %TM0 с TB = 100 ms, %TM0.P = 5.

Назначение управляемых выходов и задание значений на каждом шаге производится в окне Configure ® Configure the data ® Function blocks: %DR. Задайте состояние выходов контроллера, имитирующее смешанную коммутацию 4-фазного шагового двигателя (см. рисунок).

Проверьте функционирование данной секции программы.

  1. Функциональный блок расписания

a.  Назначение управляемых выходов и задание значений каждого расписания производится в окне Configure ® Configure the data ® Advanced object: %SCH. Задайте для Real Time Clock 6 управляемый выход %Q0.15, интервал действия расписания (с 1 марта по 31 декабря), время начала и конца интервала включенного состояния выхода (с 12:00 до 16:30) и выберите нужные дни недели (см. рисунок);

b.  В секции №6 активируйте блок расписания №6 сигналом входа %I0.21, присвоив биту %SW114:X6 значение 1;

Проверьте функционирование блока расписания с помощью панели симулятора Time Management Panel. Задайте время начала и конца интервала симуляции, отличающиеся более чем на год. После перехода в режим RUN изменяйте текущее значение времени симуляции и наблюдайте изменение состояния выхода %Q0.15.

Модифицируйте программу так, чтобы выход %Q0.15 включался дважды в день с перерывом в два часа.

  1. В секции №7 реализуйте программную установку заданных значений времени и даты в дополнительный модуль часов реального времени TWDXCPRTC. Для этого:

a.  В окне описания аппаратных средств Describe добавьте в состав контроллера RTC cartridge;

b.  В секцию №7 введите LD-программу первого примера из справочного пособия Для установки времени/даты требуется %S50=1, чтобы отключить внутренние часы (RTU) и переслать в них значения %SW49 ... %SW53. В первой цепи производится сброс %S50 для запуска часов в следующем цикле сканирования программы;