14 Feb 2016 16:27
Замкнутый круг
Вот прям свеженькое, только из цеха пришел...
Есть некая машина. У машины есть инструмент, а у него вертикальный привод с сервомотором, редуктором и зубчатым ремнем.
Чтобы не поломать инструмент при всяких нештатных ситуациях - на инструменте есть специальный датчик "перегрузки".
Ремень порвался - инструмент упал вниз.
Датчик перегрузки, естественно, сработал - машина остановилась по "ошибке перегрузки инструмента".
Ничего не поломалось, все хорошо, все так и должно быть.
А вот дальше...
Ремень поменяли. Инструмент вручную вывели вверх. А ошибка - не скидывается. Никак. Хоть застрелись.
Лезу в "мозги". И что у нас там наблюдается?
Условие сброса "ошибки перегрузки инструмента" - освободить датчик И поднять привод в позицию базовую или выше
(по виртуальному кулачку).
В процессе ремонта питание машины отключали -> сервомодуль актуальную координату инструмента потерял.
Соответственно, виртуальные кулачки не работают.
При включении - "потерявшийся" сервопривод ищет свою позицию (и находит по специальному датчику.)
Но! "Ошибка перегрузки инструмента" - блокирует перемещение сервопривода, и "найти себя" он не может.
А без поиска начальной точки "ошибка перегрузки инструмента" не снимается.
Ну и чего прикажете делать? Отправлять машину в сборе на завод-изготовитель?
Изготовитель этот - данную ошибку хоть раз тестировал?
Ладно, придется применить к контроллеру "жесткие репрессивные меры".
Скинуть меркер ошибки с программатора. Все завелось, нашлось и заработало.
Но без программатора-то как быть? Сервис вызывать?
Придется опять очередную телегу слать электропочтой. На этот раз - итальянским программистам. Чтобы получить одобрение на устранение косяка...
P.S. отдельная порция лучей поноса отправляется итальянским погромистам за то, что контроллер они сделали в Step7, а панель в TIAportal
Совершенно разные системы, вообще говоря.
Из-за чего в сторону этой машины - нужно ходить с ДВУМЯ программаторами...
И так вот запросто это не исправишь.
Есть некая машина. У машины есть инструмент, а у него вертикальный привод с сервомотором, редуктором и зубчатым ремнем.
Чтобы не поломать инструмент при всяких нештатных ситуациях - на инструменте есть специальный датчик "перегрузки".
Ремень порвался - инструмент упал вниз.
Датчик перегрузки, естественно, сработал - машина остановилась по "ошибке перегрузки инструмента".
Ничего не поломалось, все хорошо, все так и должно быть.
А вот дальше...
Ремень поменяли. Инструмент вручную вывели вверх. А ошибка - не скидывается. Никак. Хоть застрелись.
Лезу в "мозги". И что у нас там наблюдается?
Условие сброса "ошибки перегрузки инструмента" - освободить датчик И поднять привод в позицию базовую или выше
(по виртуальному кулачку).
В процессе ремонта питание машины отключали -> сервомодуль актуальную координату инструмента потерял.
Соответственно, виртуальные кулачки не работают.
При включении - "потерявшийся" сервопривод ищет свою позицию (и находит по специальному датчику.)
Но! "Ошибка перегрузки инструмента" - блокирует перемещение сервопривода, и "найти себя" он не может.
А без поиска начальной точки "ошибка перегрузки инструмента" не снимается.
Ну и чего прикажете делать? Отправлять машину в сборе на завод-изготовитель?
Изготовитель этот - данную ошибку хоть раз тестировал?
Ладно, придется применить к контроллеру "жесткие репрессивные меры".
Скинуть меркер ошибки с программатора. Все завелось, нашлось и заработало.
Но без программатора-то как быть? Сервис вызывать?
Придется опять очередную телегу слать электропочтой. На этот раз - итальянским программистам. Чтобы получить одобрение на устранение косяка...
P.S. отдельная порция лучей поноса отправляется итальянским погромистам за то, что контроллер они сделали в Step7, а панель в TIAportal
Совершенно разные системы, вообще говоря.
Из-за чего в сторону этой машины - нужно ходить с ДВУМЯ программаторами...
И так вот запросто это не исправишь.
Tags:
no subject
Как правило, требуется очень хитрая rocovery процедура с инициализацией внутри самой процедуры. Программист может этот баг и видел, но вот как победить не придумал.
Абсолютные энкодеры рулят, тем более, что стоят они всего-то на три копейки дороже.
no subject
Обойти же данную конкретную ошибку в данном конкретном случае элементарно.
При наличии ошибки, но физическом освобождении датчика - запрещать рабочее перемещение привода (то бишь запуск машины), но разрешить инициализацию и поиск референсной позиции.
В более сложных случаях (несколько приводов хитро завязаны друг на друга, и могут друг друга поломать) - разрешить ручное референсирование на малой скорости.
(то бишь - движение привода вручную, пока позиция не найдется).
(no subject)
From:no subject
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Типа в момент пуска датчик говорит, что инструмент стоит на точке ноль, значит все хорошо.
no subject
Там проверяется фронт сигнала с датчика референсной позиции, и только при движении в одну сторону
Что, вообще говоря, совершенно правильно.
Иначе можно ошибиться с позицией на несколько мм.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
no subject
Там и процедура соответствующая имеется в программе, и датчик - в наличии.
А вот про обработку аварийных ситуаций - недодумали.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
У меня были на итальянском оборудовании PLC Siemens, а панели оператора B&D. И софт для этих панелей (Zenon) вообще не такой как WinCC (.
И ситуации были разные. Както начал выделываться палетайзер - недокладывать слои на паллету, иногда. На входном конвейере у него есть счетчик зашедших паков, количество паков в паллете известно, ит.д. Я, соотвественно, первым делом полез проверять все ли в порядке с этим счетчиком, ибо в моем понимании полная паллета- это заданное количество паков= вошедшему количеству паков.
Оказалось в итоге что данные с этого счетчика только выводились на панель оператора,в программе, в роли условия, вообще не используясь.
Это было неожиданно o_O.
Что оказалось по итогу:
Паллета заполняется в несколько слоев. Каждый слой формируется на ковейере и толкателем перемещается на паллету. Количество слоев задано в рецепте для каждого формата тары.
В роли признака формирования слоя был взят датчика кулачка толкателя слоя- при возврате кулачка датчик срабатывал и счетчик слоев инкрементировался .
В какой-то момент механики полезли в механизм толкателя , чего то там порегулировали, и в итоге каким то образом, датчик кулачка иногда давал вместо одного импульса целых 2. И соответсвенно счетчик слоев тоже увеличивался на 2, при фактически уложенном одном слое.
no subject
no subject
Однако ж - что мешало сделать все на TIAPortal?
Мне бы было тупо лень ручками таскать тэги из проекта в проект :)
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Работаю с разрывной машиной от Galdabini, например. Полбеды, что в комплекте нет никакого языка программирования, и настраивать приходится через ужасный интерфейс. Хуже, что датчик силы запаздывает от датчика перемещения, и на малых амплитудах он дает огромные относительные забросы. Но вот то, что они не прописали порядок арифметических действий, и 2+2*2 для него будет 8 - это за гранью просто.
no subject
часто встречается на процессорах со стеком аккумуляторов
вот такой кусочек в STL/IL точно так же даст 8
L 2
L 2
+I
L 2
*I
(no subject)
From:(no subject)
From:no subject
В более сложных алгоритмах, видимо, должны быть виртуальные мальчики на побегушках.
no subject
no subject
prosave от Step7 и TIAP на одной машине не живут.
А также с flex проблемы непонятного рода
Впрочем, наверняка все это можно пофиксить, но нам привезли 2 программатора чисто с TIAP
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
На тех станках стояло по два кулачка на осях - нулевой и аварийный, и еще несколько десятков мм для выбега свободный ход. Иногда с размаху проскакивали оба при ускоренной подаче на G00. Причина - Заказчик сэкономил деньги и заказал дешевые чебоксарские приводы, а они отчего то не очень подружились с югославскими моторами и тахогенераторами...
no subject
Но да, сколько программистов - столько и способов че-нито изобрести :)
no subject
А вообще, бывают же наверное и приятные случаи, когда налаживать/ремонтировать удобно. Как это устроено и что предусмотрено.
no subject
Конечно, бывают
Вот что однозначно идет "в плюс" разработчикам от эксплуатационщикам
1) Прежде всего, корректная диагностика и отображение ошибок. Выбило автомат - напиши в сообщении его номер. Нет сигнала от датчика - напиши номер датчика и номер входа, куда он подключен. И т.д.
2) Подсказки на панели при выполнении типовых операций
"сейчас вам нужно положить картон в магазин" (ждем датчика наличия картона в магазине) "теперь подведите челнок к картону и нажмите сюда для запоминания позиции" (ждем) "нажмите сюда для теста взятия картона из магазина"
3) мануалы на все оборудование в панели, обычно в pdf
4) электро- и гидравлическая схема машины на панели, тоже в pdf
5) счетчики моточасов и напоминалки о мероприятиях ТО в соответствии с ними
И так далее...
no subject
no subject
Теперь жди джобофера из Италии!
no subject
У них там иммиграционная политика "никого не пущать".
Это в Германию всех подряд пускают пока что
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Один раз вывалилась в ошибку вообще непонятно почему, все датчики исправные, никаких проблем при эксплуатации не было и вдруг станок встал. Потом выяснилось, что глобальный счетчик, который даже не выводится на операторскую панель - переполнился.
Мелкие итальянские производители похоже сильно экономят на тестировании.Такое ощущение, что они вообще не тестируют управляющую программу.
Я когда новую версию УП на свое оборудование ставлю старым клиентам, в обязательном порядке подключаю оборудование через удаленный шлюз, чтобы в любой момент можно было бы понять в чем проблема и оперативно ее исправить.
no subject
Это больше похоже на закладку, нежели на ошибку
"в обязательном порядке подключаю оборудование через удаленный шлюз"
тут возникает проблемка с безопасностью
у нас принято иметь air gap
в контроллерную сеть можно попасть только изнутри фабрики, только с программаторов и только воткнув в него USB-токен
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
no subject
к счастью тиапортал только тестил/щупал. но проекты со степов разных версий мигрировали в него нормально. может заодно с разрешением на заплатки и разрешение на миграцию проекта низа в тиапортал получить? или напрячь буржуев в рамках сервсиного обслуживания сделать:).
зы. степ и итальянцы? "наслаждаетесь" сотрудничеством с Даниэле?:)
no subject
На Даниэли мир не заканчивается :)
Итальянцев много миллионов, и всяких машиностроительных заводиков там тысячи...
no subject
изделие 90го года рождения, древнее как г@вно мамонта. При вранье потенциометра расходомера воздуха двигателя(она им угол опережения зажигания задает) ругается на сдохший датчик холла(примитивный датчик оборотов КВ, раньше был в трамблере). Расход воздуха функция от оборотов и открытия дросселя. Так же ругался как и та на дураком немцев из шараги ВОШ :))
Климат контроль на поделии 2003 года. Если запустить адаптацию(поиск краев у дачиков[тоже резестивных]) если резюк шумит прописывает min и max одним числом - не шевелит им, тоже ругался на дураков немцев :))
Все это прошло когда потребовалось написать свою SCADA систему, еб@нанасрать(сори за французкий) какой же это гимор, особенно путевая поддержка исключений. Я к тому что прежде чем ругаться, попробуй сделать глобальную систему лучше чем они. Результат сильно удивит боюсь :(
no subject
Я всегда говорил и говорю:
сделать систему, которая работает, "когда все хорошо" - это 30% работы
Остальные 70% - это обработка исключений
И я ВСЕГДА это прописываю, насколько мозгов хватает
(что не означает, конечно, что я не могу накосячить)
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
no subject
Имел летом сношения с испанцами. Сношения потому, что нам надо было поднять связь между контроллерами по PUT/GET, а для этого, в нашем случае (IM151-8CPU) контроллеры должны быть в одном проекте. Это даже не 300, в котором можно партнёра по связи указать, как unspecified..
Итого, у меня портал 13 с первым сервиспаком, у испанца (наладчик, даже не разработчик) - 13 без сервиспака. У меня на виртуалке, у него на хосте. Крутить виртуалку у него комп слишком чахлый. Чего, говорю, на сервиспак 1 не переходите? (смысл в переходе есть, там много фишек добавили и косяков пофиксили). Говорит, что у них есть полтора разработчика и N наладчиков. Чтоб переходить, это надо всем и сразу. Для этого надо наладчиков собрать всех и сразу, а это нереально :) Проект этот у них, кстати, типовой. И если б у них тянулся исторический шлейф в виде контроллера на классике и панели на портале - они бы так и поставили, единообразия ради.