Цитата:
Описание временнОй диаграммы работы. Это простой нормальный цикл без аварий и дополнительных задержек на ожидание разрешения разгрузки и ожидания днища.
Верхний график — вес продукта в грузоприемном ковше.
Графики Out0...Out2 — это дискретные выходы тензоАЦП, они же заходят в виде входов Di2...Di4 (_bLev0..._bLev2) на входы нашего ПР110.
Графики Подача и Unload — это выходы ПР110.
Первый из графиков условно показывает, что подача продукта идет (в режиме ГРУБО, потом ТОЧНО, что определяется комбинацией выходов Do1 bFast_ и Do2 bSlow_).
Второй график показывает состояние выхода Do3 bUnld_
В нормальном цикле остальные входы не интересны:
Di1 _bSSInput всегда “1”, то есть разрешает зацикливать дозирование,
Di5 _bUnldEn всегда “1”, то есть разгрузка разрешена сразу по готовности дозы,
Di6 _bBtmClsd с небольшой задержкой повторяет инвертированный сигнал Do3 bUnld_.
Итак, при наличии Di1 _bSSInput начинаем дозирование. Проверяем состояние днища, видим, что там все чики-пики (Di6 _bBtmClsd = 1) и включаем подачу (момент времени t1).
При поступлении сигнала о достижении уставки1 переключаем подау на ТОЧНО.
При достижении уставки2 выключаем подачу.
В это время (после t3) все 3 входа Di2...Di4 (_bLev0..._bLev2) в состоянии “1”, ибо уставка2 — наибольшая из всех трех. ТензоАЦП начинает ловить стабильность, а наша задача — поймать “спецкод” в виде: уставка1 есть, а уставка0 упала в ноль. С учетом реальных значений этих двух уставок это нонсенс. Но именно он и нужен, чтобы перейти к разгрузке.
Итак, в момент t4 наш ПР110 получает “спецкодом” по голове и у него отваливается днище :)
Нет-нет, это была шутка. На самом деле в момент t4 возникает искомый “спецкод” (на рисунке обозначен как sig1), а ПР110 еще проверит разрешение разгрузки (вход Di5 _bUnldEn). И только по его “1” наш ПР110 включает выход открытия днища. Отобразил на рисунке это как некий сигнал sig2, чтобы вы смотрели, куда надо.
Уменьшение веса (sig3) ловит бдительный тензоАЦП и сразу понимает — его “спецкод” получен и разгадан! Ясен пень, он тут же возвращает свой выход Out0 (наш вход Di2 _bLev0) в нормальное для этой фазы состояние “1” (sig4 на рисунке). Это есть обязательный сигнал для ПР110, чтобы понять одну важную вещь: вход Di2 _bLev0 вообще-то может и подниматься. Замечу, что до этого нам было как-то по барабану, может ли этот вход переходить в “1”. Так что стоим, открыв днище, ждем “1” на втором входе.
Ну, а получив “1”, тут же начинаем ждать там же, но уже “0” (это произойдет в момент времени t6) . Ибо это показывает, что ковш разгрузился. Ну, на всякий случай ограничиваем сами себе, что меньше, чем какое-то минимальное время, мы сигнал разгрузки не обрезаем, даже если уже увидели, что Di2 _bLev0 = 0. И в момент t7 сигнал открытия днища снимаем.
Вот и все. На новом цикле обязательно проверим состояние днища до того, как включить подачу.
Аварийная ситуация связана с недержанием днища: если во время подачи ГРУБО, ТОЧНО или при попытке АЦП зафиксировать вес мы вдруг увидим, что днище точно съехало (мы проверяем это блоком TOF с полусекундной задержкой после окончательного пропадания сигнала на входе Di6 _bBtmClsd), то бросаем все и идем на начало цикла, в точку проверки днища. Сразу при этом сбросив все выходы управления подачей, естесственно. А там еще моментик: если в этом состоянии мы проторчим более 5 сек, то вообще взбесимся: включим выход Do4 bAlarm_ и уйдем в начало программы, где стоим, лампочкой светим и ждем закрытого днища. Когда дождемся, то проверим разрешение работы Di1 _bSSInput (при устранение аварии с днищем оператор мог и выключить тубмлер РАБОТА) и уж потом начнем новый цикл.