fixik_papus: (Default)
[personal profile] fixik_papus
Сегодня я предлагаю ознакомиться с отличным образцом классической советской сатиры, а также с его (образца) практическим применением.

А во время ознакомления - подумать над одним из множества нюансов, отличающих "хорошее" оборудование от "плохого".
Предположим, у нас есть некоторые важные настройки, неправильное ковыряние в которых приведет к мелким и не очень пакостям, вплоть до физической поломки.
Как лучше "закрыть" доступ туда паролем (или токеном, не суть важно) операторам и прочим уборщицам:
1) заблокировать возможность перехода на экран настроек
2) разрешить переход на экран настроек, но заблокировать возможность их изменения.
?

Правильный ответ будет в конце второй части завтра. А сейчас - смотрим (и думаем, чтобы время зря не терять)


Посмотрели? Пора ознакомиться с практическим применением (2 раза).

Лирическое отступление. Как сделать конфету с начинкой? Самый очевидный (но далеко не единственный) вариант - отлить в форму сперва "стаканчик" (кондитеры говорят "корпус"), затем начинку, и сверху отлить-запечатать донышко.
Как видим, в теории все просто. А на практике - всегда что-нибудь может "пойти не так".

Например, если первая разливочная машина не разлила шоколад - разливать в форму начинку категорически нельзя.
Почему? Потому что начинка, когда теплая - липкая, а когда остыла (а охладить нужно перед отливкой донышка, иначе все перемешается) - прочная.
Даже для "штатного" вытряхивания конфет из формы - по ней приходится лупить пневмомолотком. А начинку и острый пар в моечной машине не всегда за один проход берет.

Соответственно, для проверки разливки - на формы смотрит видеокамера с распознавалкой. Если хоть в одной лунке формы шоколада нет - она помечается внутри контроллера как бракованная. Форма путешествует по конвейеру, а соответствующая ей метка-байтик путешествует в сдвиговом регистре в памяти контроллера. Соответственно, больше в эту форму ничего не разливается ни при каких условиях, а на выходе "недоделанные" конфеты, если есть - вытряхиваются не на упаковку, а в реворк.
Видеокамера общается с контроллером по Ethernet.
Работает все это хорошо и надежно. Но...

Но довольно часто нужно протестировать на остановленной линии, как работает разливочная машина начинки "сама по себе", вообще без форм.
Поскольку разливка наглухо заблокирована - народ наладился вытаскивать "хвост" от видеокамеры из коммутатора в шкафу. Тогда контроль разливки, очевидно, не работает, а возникающая "ошибка связи по шине" с камерой идет только на индикацию. Все хорошо и удобно. Но...

Но как-то раз на линию добавляли то ли насос, то ли вентилятор - не помню, но управляемый с частотного привода. Как обычно у нас бывает, электрики сделали свою работу быстрее механиков. Частотник тоже подключен по Ethernet (profinet, если быть точным). Электрики все сделали - и частотник обесточили и отключили от коммутатора, пока механики монтаж не закончат. Соответственно, появилась "ошибка связи по шине" с новым частотником. "Ошибка связи" эта одна на все устройства; бывает она крайне редко (вообще не припомню такого), а если и будет - наладчики с программатора посмотрят, что "отвалилось".
Сейчас ошибку эту операторам было велено до завершения работ - игнорировать. Но...

Но в выходные другая смена механиков меняла манжеты на плунжерах разливочной машины начинки. Поменяли, включили (выдернув кабель от камеры), проверили, воткнули кабель на место. Но...

Но они воткнули НЕ ТОТ кабель. Они воткнули кабель от неиспользуемого пока частотника. Он в тот же коммутатор идет.

Несколько дней все работало без замечаний. Потом из-за какой-то мелкой проблемы в другом цеху вырубилась на полчаса подача шоколада на линию. Из-за чего встали разливочные машины корпуса и донышка. Такое бывает иногда, и ни к чему плохому не приводит (кроме небольшого недовыполнения плана). Но...

Но в этот раз контроль розлива не работал. И об этом никто не знал.
Операторы же - надежно уверовали в автоматику; и факт работающей разливочной машины начинки при стоящих разливочных машинах шоколада их никак не смутил. Хотя это не только видно, но и слышно замечательно.

Причем достоверно известно, что кто-то пытался озадачиться этим вопросом, но старший сказал "оно само разбирается, куда разливать, а куда - нет".

В конце линии, после "выбоя" продукта, тоже стоит видеокамера. Она смотрит, чтобы формы стали пустыми. Не-пустые автоматически складываются в отдельную стопку, вместо них на конвейер, тоже автоматически, кладутся чистые. Как набирается достаточное количество грязных - операторы получают сигнал "пора увезти грязные формы на мойку, а взамен привести чистые". Что они честно и добросовестно и сделали.
Но пока ездили на погрузчике на мойку и обратно - мало того что стопка "грязных" форм, которая и за неделю не набирается обычно, снова уже полная, так и линия уже аварийно встала по ее переполнению.

Потому что начинка без шоколада - из форм не выколачивается.
И теперь нужно вытаскивать из линии бОльшую часть форм и отмывать по полной программе острым паром.

Результат - полсмены простоя линии и несколько сотен килограммов продукта в канализацию.

Затем, как водится, был разбор полетов. На котором единогласно решили, что выдергивание хвоста из коммутатора - совсем не есть good manufacturing practice.
Больше так делать строго-настрого запретили. А для отладочных целей разливочной машины - сделали режим "автономной работы", включаемый в сервисном меню ее.
Также сделали отдельную диагностику связи и исправности всех четырех камер на линии, и в случае проблем с ними - формы стали считаться негодными.

Все стало замечательно? Замечательно, но....
Но об этом уже в следующий раз.
Пока же попробуйте пока сами угадать способ повторного наступания на те же грабли, после досконального и тщательного разбора и устранения причин первого наступания.

Date: 21 Jul 2016 15:38 (UTC)

From: [identity profile] kuigoroj.livejournal.com
"Все стало замечательно?"

Нет. Потому что состояний должно быть два. Видит нормальную форму и видит ненормальную форму. Других состояний быть не должно.
Date: 21 Jul 2016 15:42 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Вот, еще один оптимист.

Забыли состояния "ничего не видит", "нет связи" и так далее

По моему опыту:
сделать, чтобы все работало когда все хорошо - это 30% работы
остальные 70% - это обработать аварийные ситуации
Edited Date: 21 Jul 2016 15:46 (UTC)
Date: 21 Jul 2016 15:53 (UTC)

From: [identity profile] kuigoroj.livejournal.com
"Забыли состояния "ничего не видит", "нет связи" и так далее"

Не забыл. Как раз об этом. О том, что она должна выдавать "нормально/ненормально" через определенные интервалы +- и ошибки в промежутке между ними. Остальное - к приключениям.
Date: 21 Jul 2016 16:00 (UTC)

From: [identity profile] fixik-papus.livejournal.com
А, ну тогда - да, все так
Date: 21 Jul 2016 20:46 (UTC)

From: [identity profile] antontsau.livejournal.com
неверно. Выдавать оно должно только "ошибка - нет ошибки". Все нетсигналы по определению равны ошибке. Плюс некоторый вспомогательный код, не обязательно идущий в обработку, для диагностики уполномоченным юзером. Продвинутый вариант - третье состояние "совсем ошибка, самый полный стоп!", чтоб например в данном случае не валило все формы в сброс, а останавливало всю линию при отсутствии всякого сигнала с камеры.

Date: 22 Jul 2016 08:54 (UTC)

From: [identity profile] kuigoroj.livejournal.com
У нас три состояния системы. Нормальная форма. Дефектная форма. Хз что. Третье состояние при большом желании можно разделить на множество чего-то понятного. Но не обязательно. Потому что этого достаточно. Текущее значение для первых двух состояний нам не известно. Для третьего - известно. Хз что. Т.е. первое и второе могут поступать на выход в любой последовательности, но между ними должно быть хз что. Это нужно для того, чтобы исключить залипание системы на одном из состояний, которое мы, без хз что, не сможем вовремя отследить. Единственное, что для этого требуется, это подавать формы реже, чем частота кадров камеры. В крайнем случае - с той же частотой, но мы рискуем попасть в ситуацию, описанную выше.

"Все нетсигналы по определению равны ошибке."

Это не ошибка. Это "синхроимпульс".
Date: 22 Jul 2016 16:27 (UTC)

From: [identity profile] antontsau.livejournal.com
не, в данном случае это будет плохо работать. Если приравнять хз к дефекту и все, то при отрыве камеры оно просто начнет валить все формы в сброс, и ни слова не говорить. Пока кто-нибудь вручную это все не остановит "что-то у нас продукт выходить перестал!" так и будет заливать и выбрасывать. Так что "хз" все-таки должно быть не просто дефект, а усиленный дефект. Мождет и не прямо сразу стоп, но если за минуту третий раз - значит полный стоп.

Хз между дефектом и нормой совершенно необязательно. Для того и камера стоит, что "нипалучилось" - совершенно стандартная ситуация, не требующая никакого воздействия, только не пропустить это нипалучившееся в дальнейшую обработку.

Порочный метод. Требует не только положительного но и отрицательного распознавания, чтоб мог отличить дефектную но все же форму от рябой морды сантехника васи всунутой под камеру. Что нереально.




Date: 23 Jul 2016 11:18 (UTC)

From: [identity profile] kuigoroj.livejournal.com
"Если приравнять хз к дефекту"

Это откуда и зачем взялось?

"хз" все-таки должно быть не просто дефект, а усиленный дефект."

Нет. Это не дефект. Это контроль. Единственная точка в процессе, значение которой заранее известно.

"Хз между дефектом и нормой совершенно необязательно."

Крайне желательно. Иначе - к приключениям.

"Требует не только положительного но и отрицательного распознавания, чтоб мог отличить дефектную но все же форму от рябой морды сантехника васи всунутой под камеру. Что нереально."

Попробуйте немножко подумать над написанным мною выше. Если не получится, спросите, я поясню.

Date: 23 Jul 2016 22:05 (UTC)

From: [identity profile] antontsau.livejournal.com
как хз может быть известно? ХЗ по самому определению это "не попадает в закрытый список известного", "все прочее", "неописанное состояние" и тп. По нему привязываться - косяков будет стаей, отрыв кабеля или вошь на бинокле все будет туда валиться.

Между дефектом и нормой нет ничего. Встала форма на позицию - проконтролировали. А что там показывает камера когда форма еще едет... непредсказуемый шум, распознавать который и отделять его от состояния "матрица развалилась" нереально.

Date: 24 Jul 2016 08:39 (UTC)

From: [identity profile] kuigoroj.livejournal.com
"как хз может быть известно?"

Потому что это временной интервал. Нет никаких проблем синхронизировать камеру с конвеером. И в этом случае мы, как и писал выше, получаем три ситуации.

1. Перед камерой нормальная форма.
2. Перед камерой ненормальная форма.
3. Перед камерой часть конвеера.

Состояние первых двух нам заранее не известно. Форма может оказать как нормальной, так и битой. Мы не можем заранее предсказать, какой результат должна выдать камера. Зато точно можем предсказать результат для третьего состояния - ни первый, ни второй.

"По нему привязываться - косяков будет стаей, отрыв кабеля или вошь на бинокле все будет туда валиться."

По нему нужно обязательно привязываться, если позволяет соотношение скорости конвейера и камеры. Иначе, как и писал выше, мы рискуем попасть в ситуацию, когда камера "залипнет" в одном из состояний. И мы не увидим этого до момента возникновения критичного объема брака.

"Между дефектом и нормой нет ничего. Встала форма на позицию - проконтролировали."

Это очень плохо.

"А что там показывает камера когда форма еще едет... непредсказуемый шум, распознавать который и отделять его от состояния "матрица развалилась" нереально."

Во всех путных линиях прекрасно работает. Именно то, что в этот момент ничего не получается распознать и есть проверка камеры.
Date: 24 Jul 2016 08:54 (UTC)

From: [identity profile] antontsau.livejournal.com
не пойдет. Все что мы можем легко и просто сказать - "хорошая форма". Картинка вот такая плюс минус столько, в этом и этом углу плюс минус гораздо меньше так как критично и тп и тд, то есть вполне так внятное описание положительного эталона, "вот так и не хуже". А описание "негодная форма" в принципе невозможно, так как этой самой негодности может быть что угодно, от "вообще никакой картинки - камера сдохла" до "обьектив забрызгало ошметками" или "матрица косячит и шумит". Вот и получается, что у нас вполне разумно определяется "хорошая форма", а все остальное - "ошибка".

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


Date: 24 Jul 2016 09:04 (UTC)

From: [identity profile] kuigoroj.livejournal.com
"Вот и получается, что у нас вполне разумно определяется "хорошая форма", а все остальное - "ошибка"."

Так не везде. У вас так? Плохо. Но даже в этом случае проверять камеру нужно. И именно так, как я написал. Потому что мы заранее знаем правильный сигнал от камеры, в вашем случае - "не определяется, как хорошая форма", только для кадров конвейера, не содержащих форм. Но, как я уже сказал, это плохо. Потому что мы рискуем отправить много хороших форм в брак при отказе камеры.

"В процессе смены формы и пр картинка непредсказуема."

Масса вариантов. Было бы желание. Но понимаю, почему выбран самый дешевый.
Date: 24 Jul 2016 09:20 (UTC)

From: [identity profile] antontsau.livejournal.com
если начать распознавать шум, то туда надо не камеру с несложным контроллером ставить, а целый скайнет городить. Вместо простенького решения с положительной идентификацией "норма" + метаобработкой "что-то у нас сплошная ненорма поперла! что-то не так!".
Date: 24 Jul 2016 13:36 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Все проще.
Там есть датчик наличия формы под камерой.
Подъехала камера - сфоткали ее.

Также распознаватель изображений умеет выдавать сигнал "не распознал форму". Такое бывает, если вышеозначенный датчик работает неправильно.
Date: 24 Jul 2016 05:11 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Камера работает по датчику наличия формы под ней.
Одна форма - один кадр.
Date: 24 Jul 2016 08:39 (UTC)

From: [identity profile] kuigoroj.livejournal.com
Очень плохо.
Date: 24 Jul 2016 09:35 (UTC)

From: [identity profile] genrih.livejournal.com
Кстати упомянутая вами проблема решается проще.
На формы наносятся индивидуальные штрихкоды, и при считывании проверяется номер формы.
Или еще проще - наносятся те же штрихкоды, но просто сверяется картинка с предыдущей, совпадает или нет. И тогда залипание камеры будет отловлено. Хотя и без штрихкода должны быть отличия в изображениях.
А наличие штрихкодов и их распознавания добавляет возможностей автоматического учета, складского учета, контроля производства и чего еще можно придумать:)
Date: 24 Jul 2016 09:42 (UTC)

From: [identity profile] kuigoroj.livejournal.com
Да, как один из вариантов.
Date: 24 Jul 2016 19:17 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Не вариант вообще.
Это будет мгновенно заляпано.

У нас есть линия, где формы с залитыми внутрь пластика RFID метками. Там это нужно, потому что возможно производство разных конфеток и нужно знать, для чего предназначена данная конкретная форма. А для людей - каждый тип форм имеет свой цвет.
Date: 24 Jul 2016 18:15 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Что ж тут плохого?
Date: 21 Jul 2016 17:53 (UTC)

From: [identity profile] mindfactor.livejournal.com
>Забыли состояния "ничего не видит", "нет связи" и так далее

Классические вопросы любого мониторинга же. ;)
Должно рапортовать не только о плохом, но и о хорошем, и как раз отсутствие "хорошо" == чёткий признак "плохо"
Date: 23 Jul 2016 16:10 (UTC)

From: [identity profile] Виталий (from livejournal.com)
Это вам любой программист подтвердит. Я еще много сил в свое время воюя с заказчиками, что некоторые вещи автоматически(без вмешательства человека) работать не будут впринципе. А песни что вы мне поете это пока идет все как надо, а если сбой сами меня и проклянете за эту автоматику.
Date: 24 Jul 2016 05:12 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Вот поэтому на линии присутствуют аж 2 оператора. Хотя при нормальной работе им делать нечего вообще, от слова совсем. Только и остается, что на телефонах играть (на компах нельзя)
Date: 24 Jul 2016 17:35 (UTC)

From: [identity profile] Виталий (from livejournal.com)
Ну у нас такая же ситуация. Операторов правда 4, но это с безопасностью связано.

Profile

fixik_papus: (Default)
fixik_papus

January 2023

M T W T F S S
      1
2345678
9101112131415
16171819202122
232425262728 29
3031     

Style Credit

Expand Cut Tags

No cut tags
Page generated 10 Jun 2025 06:34
Powered by Dreamwidth Studios