Сигналы:
Входы:
I0.1(left) – Толкатель в крайнем левом положении I0.2(right) – Толкатель в крайнем правом положении
Выходы:
q0.1(pushed) – Выдвинуть толкатель q0.2(door4) – Поднять заслонку 4 q0.3(door6) – Поднять заслонку 6 q0.4(gutter3) – Зажечь индикатор попадания в рукав 3 q0.5(gutter5) – Зажечь индикатор попадания в рукав 5 q0.6(gutter7) – Зажечь индикатор попадания в рукав 7
Данные в памяти:
MW20 – номер шага циклограммы. MW22 – результат измерения [0–255] MW23 – значение датчика на просвет в 3 рукаве [0–255] MW24 – значение датчика на просвет в 5 рукаве [0–255] MW25 – значение датчика на просвет в 7 рукаве [0–255]
Дополнительные переменные:
Stable – состояние весов. Результат логического выражения . Измерение производится раз в 0,1 секунды.
Принцип работы:
К толкателю поступают шары. Для того чтобы началась оценка параметра шара толкатель должен быть задвинут (левое положение). Как только толкатель задвинут мы находимся в состоянии ожидания поступления шара. При поступлении шара мы ожидаем, когда весы окажутся в состоянии равновесия, то есть, когда . После чего, в зависимости от того, в каком диапазоне оказался параметр шара, мы поднимаем заслонки и выталкиваем шар посредствам выдвижения толкателя (правое положение). То есть то, что в промежутке (0; 99], отправляется в рукав 7. То, что в промежутке [100; 199] — в рукав 5, а все остальное [200; 255] — в рукав 3. В каждом из рукавов стоит датчик на просвет. Когда дверца закрыта, то освещенность чуть больше 0, а когда открыта, но шара еще нет, освещенность близка к 255. Для того чтобы определить попадание шара в рукав и зажечь соответствующий индикатор, будем проверять, что освещенность находится в диапазоне [50; 200]. После чего вновь ждем, когда толкатель будет задвинут и оказываемся в состоянии ожидания поступлении шаров.
Подан шар со значением в диапазоне от 200 до 255
| Действие тестировщика
| Реакция контроллера
| Примечание
| Рестарт PLC
| MW20 (Step) = 1, MW22 (value) = 0, MW23(E3) = 0, MW24(E5) = 0, MW25(E7) = 255
| Все входы и выходы в нуле.
| I0.1(left) := 1
| MW20 (Step) = 2, q0.1(pushed) = 0, q0.4(gutter3) = 0, q0.5(gutter5) = 0, q0.6(gutter7) = 0
| Толкатель находится в крайнем левом положении. Ожидаем поступления шара
| MW22 (value) := [200;255], stable := 0
| Нет
| Шар поступил. Весы ещё не успокоились. Ждем, когда дельта между 0,1 секундными интервалами времени не будет превышать 1 (stable == 1).
| stable := 1
| MW20 (Step) = 3, q0.2(door4) = 1, MW23(E3) = 255,
| Весы успокоились. Поступил шар, который должен попасть в рукав 3. Для этого поднимаем дверцу 4
| i0.1(left) := 0, i0.2(right) := 1
| MW20 (Step) = 4, q0.1(pushed) = 1, MW22 (value) = 0
| Толкатель выдвинут вправо, произошло выталкивание шара.
| MW23 (E3) := [50; 200]
| MW20 (Step) = 1, q0.4(gutter3) = 1, 0 q0.2(door4) = 0, MW23(E3) := 0
| Значение датчика на просвет оказалось в промежутке от 50 до 200. Значит, что шар упал в желоб. Загорается индикатор, соответствующий данному желобу.
|
Подан шар со значением в диапазоне от 100 до 200
| Действие тестировщика
| Реакция контроллера
| Примечание
| Рестарт PLC
| MW20 (Step) = 1, MW22 (value) = 0, MW23(E3) = 0, MW24(E5) = 0, MW25(E7) = 255
| Все входы и выходы в нуле.
| I0.1(left) := 1
| MW20 (Step) = 2, q0.1(pushed) = 0
| Толкатель находится в крайнем левом положении. Ожидаем поступления шара
| MW22 (value) := [100;200), stable := 0
| Нет
| Шар поступил. Весы ещё не успокоились. Ждем, когда дельта между 0,1 секундными интервалами времени не будет превышать 1 (stable == 1).
| stable := 1
| MW20 (Step) = 3, q0.3(door6) = 1, MW24(E5) = 255,
| Весы успокоились. Поступил шар, который должен попасть в рукав 5. Для этого поднимаем дверцу 6
| i0.1(left) := 0, i0.2(right) := 1
| MW20 (Step) = 4, q0.1(pushed) = 1, MW22 (value) = 0
| Толкатель выдвинут вправо, произошло выталкивание шара.
| MW24 (E5) := [50; 200]
| MW20 (Step) = 1, q0.5(gutter5) = 1, 0 q0.3(door6) = 0, MW24(E5) := 0
| Значение датчика на просвет оказалось в промежутке от 50 до 200. Значит, что шар упал в желоб. Загорается индикатор, соответствующий данному желобу.
|
Подан шар со значением в диапазоне от 0 до 100
| Действие тестировщика
| Реакция контроллера
| Примечание
| Рестарт PLC
| MW20 (Step) = 1, MW22 (value) = 0, MW23(E3) = 0, MW24(E5) = 0, MW25(E7) = 255
| Все входы и выходы в нуле.
| I0.1(left) := 1
| MW20 (Step) = 2, q0.1(pushed) = 0
| Толкатель находится в крайнем левом положении. Ожидаем поступления шара
| MW22 (value) := (0;100), stable := 0
| Нет
| Шар поступил. Весы ещё не успокоились. Ждем, когда дельта между 0,1 секундными интервалами времени не будет превышать 1 (stable == 1).
| stable := 1
| MW20 (Step) = 3
| Весы успокоились. Поступил шар, который должен попасть в рукав 5. Для этого поднимаем дверцу 6
| i0.1(left) := 0, i0.2(right) := 1
| MW20 (Step) = 4, q0.1(pushed) = 1, MW22 (value) = 0
| Толкатель выдвинут вправо, произошло выталкивание шара.
| MW25 (E7) := [50; 200]
| MW20 (Step) = 1, q0.6(gutter7) = 1, 0 MW25(E7) := 255
| Значение датчика на просвет оказалось в промежутке от 50 до 200. Значит, что шар упал в желоб. Загорается индикатор, соответствующий данному желобу.
| |