Нет. Я не против описать словами, но как приложение к таблице. Ибо получается много текста, запутаетесь. Ща, добъю таблицу, потом к ней пояснение.
Нет. Я не против описать словами, но как приложение к таблице. Ибо получается много текста, запутаетесь. Ща, добъю таблицу, потом к ней пояснение.
1.Правильно ли я понял ,что днище открывается при условии уровень 0 в "1" и нажата педаль разрешения загрузки и есть пуск? .
2.у вас цикл засыпки-высыпки одиночный (дозирования),тоесть нужно каждый раз нажимать кнопку пуск или автоматический ,с перезапуском ?
3.нужно ли контролировать работу компараторов на предмет не существующей комбинации 10?
Последний раз редактировалось rovki; 31.07.2014 в 23:34.
электронщик до мозга костей и не только
ОК, давайте и так (хотя я все же опишу и в полном виде)
Если перед этим было Уровнь1 И НЕ Уровень0
И про ПУСК... Ну, да, был пуск. Но, понимаете, нельзя сказать, что в любой момент времени, когда "уровень 0 в "1" и нажата педаль разрешения загрузки и есть пуск" - открывать днище. До этого должны выполниться несколько шагов (грубо говоря, поймать сработку всех трех уровней), иначе днище откроется, например, в самом начале цикла дозирования, когда и Уровень0 есть, и разрешение разгрузки (это может быть вообще статический сигнал-перемычка), и ПУСК был...
В нужное время (фазу, мать ее..) нужно проверять "уровень 0 в "1" и нажата педаль разрешения загрузки и есть пуск"
Если на входе 1 стоит "1", то по окончанию цикла нужно начать новый
Не обязательно. А вот несуществующая комбинация х10, т.е. Уровень2 - не важно, Уровень1 = 1, а (более низкий) Уровень0 = 0 - это как раз сигнал, по которому следует перестать беспокоиться о днище (выключить TOF) и начать следить за комбинацией "уровень 0 в "1" и нажата педаль разрешения загрузки"
Как-то так.
тогда в какой последовательности у вас меняются уровни 0,1,2 в зависимости от засыпки .?
по 3 уровням есть 8 состояний ,вы используете только 3 ,остальные состояния могут быть использованы для диагностики компараторов ,но это после сделаем.
Правильно ли я понял ,что цикл заканчивается закрытием днища после дозирования?И если стоп ,то остановка ,а если пуск ,то новый цикл дозирования ?
Пора баяньки ,завтра вечером продолжим ....
Последний раз редактировалось rovki; 01.08.2014 в 00:07.
электронщик до мозга костей и не только
000 старт
001 началась подача
011 сработала уставка1, переход с ГРУБО на ТОЧНО
111 сработала уставка2, выключить подачу, ждать сообщения о фиксации дозы ("спецкод")
x10 "спецкод" - тензоАЦП говорит, что зафиксирован вес, можно идти дальше. Значение старшего бита МОЖЕТ быть любым
xх1 тензоАЦП увидел, что пошла разгрузка, вернул младший бит в нормальный режим
001 разгрузка продолжается
000 ковш пуст. Подождать не менее TUNLDMIN (ну, полсекунды) и закрыть ковш. Дождавшись сигнала о том, что он закрыт, подождать еще (типа, 2 сек) - и тогда уж вверх
А неплохое описание получилось с этими кодами... Надо будет еще раз все просмотреть. Пока пишу эти ТЗ, наблюдаю возможности для улучшения программы
Почти. Если иметь в виду, что "закрытие днища" - это не только снятие сигнала на его открытие, но и получение подтверждения от датчика днища
О! А я только разгулялся
И я решил, давай-ка опишу словесами, а то какие таблички не делаю, все меня птичьим языком попрекают.
А уж если после этого нужны будут уточнения - ну, бум уточнять.
Итак, прилагаю картинку (которая, как нас учили, заменяте тысячу слов). А к ней еще тысячу слов - комментарий.
А кто не любит ПДФ - так повторю комментарий прямо здесь. Вот он:
timechart.pngОписание временнОй диаграммы работы. Это простой нормальный цикл без аварий и дополнительных задержек на ожидание разрешения разгрузки и ожидания днища.
Верхний график — вес продукта в грузоприемном ковше.
Графики 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 (при устранение аварии с днищем оператор мог и выключить тубмлер РАБОТА) и уж потом начнем новый цикл.
Добрый день.
Прям пока спал такая дискуссия развернулась, аж с утра читать устал. И всё с мертвой точки сдвинутся не можем.
Задачка то выеденного яйца не стоит. То что Вы привели на картинке один в один в инструкции на наш весовой дозатор. Так что не надо уж так сильно гордится своим детищем, принцип работы у ВСЕХ одинаков. А то так себя расхваливаете, аж временами неудобно себя чувствуешь. Прям такой уж гениальный изобретатель к нам обращается и нас учит как правильно жить. Ваше описание устаешь читать и забывается смысл. Опять Вы на свои операторы слазите и вроде как шутками разбавляете.
Наверное предпоследнюю попытку сделаю достучаться.
В приложении 2 описания - техзадания. Сразу говорю тоже не идеал, но что удавалось в конечном счёте добиться, и вот такую табличку с работой выходов и условиями перехода на следующий шаг и надо. В первой (лесоруб) переход осуществляется от срабатывания соответствующих датчиков по переднему или заднему фронту. Они подцеплены к соответствующим входам. Во втором переход осуществляется по достижении определённой температуры и выдержки по времени. Вот это есть то что называется внутренние условия или внутренние операторы.
Ну а если уж и дальше гордыня не позволит перейти на другой режим общения, лично я умываю руки. Не так уж к сожалению много свободного времени.
Проекты по этим техзаданиям выкладывал ранее на форуме, можете посмотреть, лесоруб в разделе ПР110, коптильни в разделе ПР114.
С уважением ко всем.
Последний раз редактировалось maximov2009; 01.08.2014 в 06:33. Причина: добавить
Лучшее - враг хорошего "Le mieux est I\'ennemi du bien" (вроде как Вольтеровское)
Ну вот уже почти то что надо .на выходных не отходите от компа ,возможно появятся вопросы .Хорошее ТЗ -это уже пол дела в разработке и еще четверть в деле написания инструкций по эксплуатации(пояснений) .
электронщик до мозга костей и не только
Сначала дискуссия, потом вы с коллегой rovki меня убедили, что нужно попробовать изложить задачу иначе. И я пробовал, разве нет? Делал табличку, схожую на приведенные Вами, но rovki начал задавать вопросы - как не ответить? Попутно возникла идея описать словами.
На вкус и цвет... Вам не понравилось то, что я до сих пор предлагаю, но ведь видно, что другим это может показаться сносным описанием. Но Вы как будто обиделись.
Не совсем один в один, но Вы не дочитали (признаю, стиль мой тяжелый, многословный, да). Но главное ведь не то. Выбросьте мой фокус со "спецкодом", выбросьте слежение за днищем и отработку аварии - останется совершенно банальная циклограмма. Но реализуйте хотя бы ее! В конце концов, если все так схоже на ваш дозатор - ну так и реализуйте его именно! Мне-то что - я посмотрю Ваш шаблон, пойму, как делать проги на ПР и доделаю свои нюансы. Понимаете? Не гениальному изобретателю (уж не знаю, с какого Вы такой-то вывод делаете, но Бог с ним, с выводом), а просто пацану с улицы - покажите реализацию "ВСЕХ" или хоть одного стандартного простого дозатора на ПР110. Для этого и мое ТЗ, с которым я никак не могу угодить Вам, не нужно. Верно?
Знаю свой грешок. Но лучше шутками, чем матюками, а то у вас тут мониторят, по голове могут надавать
Не надо умывать. Если Вас не убедил мой нынешний постинг и Вы не хотите сделать программу кагбэ вообще без ТЗ (стандартный "свой" дозатор с "моими номерами входов-выходов) - ну, отвлекитесь, не следите пол-дня. Я же продолжаю составлять табличку. Изучу Ваши примеры ТЗ. Я стараюсь. Мне интересно не готовое решение (иначе ждал бы rovki, да и делов-то), а варианты подходов. Вот потому и прошу не сердиться, а продолжить конструктивно. Ок?
Хорошо. Дозатор не мой, лично я никогда дозаторы не конструировал, я сказал что у меня стоит на работе. Марка дозатора написана выше. Мы просто обслуживаем и настраиваем, поэтому я знаю принцип его работы, может мне и будет легче понять Вашу задачу. Но ещё раз напомню, что мне просто нужна таблица, как в примерах и всё. (Последнюю колонку для ППЗУ не надо). Потому что в нашем дозаторе весовая балка непосредственно подцеплена к контроллеру у Вас же сигналы берутся с выхода Вашего компаратора на ПР.
И Вы уж извините, но на работе завал, лето, отпуска, работаю за троих, поэтому вникать в словесное описание просто нет времени, а помочь человеку всегда хочется, мне в своё время также помогали разбираться. Поэтому отдельная благодарность ВСЕМ кто мне помогал начинать.
Лучшее - враг хорошего "Le mieux est I\'ennemi du bien" (вроде как Вольтеровское)