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

c.  Для задания начальных значений в слова памяти %MW10 …%MW14 вставьте соответствующие цепи в секцию №1.

Проверьте функционирование этой секции в режиме симулятора с помощью панели симулятора Time Management Panel. После перехода в режим RUN включите %I0.0 и наблюдайте изменение индикации текущего значения времени. Измените текущее значение времени симуляции с помощью перемещения его указателя или стрелок << >>, повторно включите %I0.0 и наблюдайте изменения.

d.  В секцию №8 введите LD-программу второго примера из справочного пособия. Для совместимости с первым примером измените во втором примере адрес %I0.0 на %I0.5, а %I0.1 на %I0.6;

e.  Для установки времени/даты используются биты системного слова %SW59. Установка системного бита %S59 = 1 разрешает изменения текущего времени и даты от %SW59. Каждый передний фронт изменения соответствующих битов %SW59 инкрементирует или декрементирует значения времени и даты. Включение %I0.5 вызывает увеличение, а включение %I0.6 – уменьшение текущего значения переменной, выбранной сигналами %I0.2 (часы), %I0.3 (минуты) или %I0.4 (секунды).

Проверьте функционирование этой секции в окне Debug ® Check PLC. Предварительно установите %M0 = 1. Для реализации сделанных изменений задайте %M0 = 0 и наблюдайте изменение индикации текущего значения времени на панели симулятора Time Management Panel.

Опробуйте установку значения времени и даты в диалоговом окне Adjust Time, доступном из окна Program ® Debug ® Check PLC или через TwidoSuite Application Launcher ® TwidoSuite Monitoring Utility. Время и дату можно установить также с помощью модулей дисплея оператора TWDXCPODC или TWDXCPODM.

  1.  В секции №9 реализуйте программу получения отметок времени включения и отключения выхода %Q0.4, а также вычисления интервала времени в секундах между этими отметками. Для этого:

a.  в первой цепи осуществите собственно управление выходом %Q0.14 от входа %I0.17;

b.  по переднему фронту %Q0.14 осуществите копирование значений дня недели, секунд, часа и минуты, месяца и дня, столетия и года в кодировке BCD из пяти системных слов, начиная с %SW49 в массив пяти слов памяти, начиная с%MW10 (%MW10:5 := %SW49:5);

c.  по заднему фронту %Q0.14 повторите копирование, но в массив пяти слов памяти, начиная с%MW15;

d.  произведите преобразование формата полученных значений из двоично-десятичного в двоичный, используя функцию BTI(), с разделением пар часа и минуты, месяца и дня в четыре отдельные слова памяти;

e.  вычислите разность лет и переведите ее в дни, считая, что в году 365 дней (високосные годы не учитываются для упрощения задачи);

f.  вычислите число дней с начала года для заднего фронта и добавьте его к разность лет в днях, затем вычислите число дней с начала года для переднего фронта и вычтите ее из полученной суммы. В результате будем иметь число дней между фронтами сигнала %Q0.4;

g.  переведите полученную сумму в часы, умножив на 24;

h.  добавьте к сумме в часах час заднего фронта и вычтите час переднего фронта;

i.  переведите полученную сумму в минуты, добавьте к сумме в минутах минуты заднего фронта и вычтите минуты переднего фронта;

j.  переведите полученную сумму в секунды, добавьте к сумме секунды заднего фронта и вычтите секунды переднего фронта.

Проверьте функционирование этой секции в режиме симулятора с помощью панели Time Management Panel. Рекомендуется выполнять отладку постепенно, контролируя описанную выше последовательность преобразований и вычислений. После перехода в режим RUN включайте %I0.17 на разные интервалы времени (секунды, минуты, дни, месяцы и годы) и наблюдайте фиксацию отметок времени переднего и заднего фронтов, а также получаемые результаты. Для задания больших интервалов изменяйте времена начала и конца симуляции, а также текущее значение времени симуляции перед каждым изменением %I0.17 с помощью перемещения указателя времени или стрелок << >> на панели Time Management Panel.

  1. Системные слова %SW54 … %SW57 содержат дату и время последней остановки контроллера, а слово %SW58 – код причины остановки. В секции №10 реализуйте программу пересылки по переднему фронту %I0.18 указанных системных слов в массив слов памяти.

Проверьте функционирование этой секции, несколько раз переведя контроллер в состояние RUN, а затем STOP.

  1. Проверьте выполнение программы на контроллере.