14 Feb 2016 16:27
Замкнутый круг
Вот прям свеженькое, только из цеха пришел...
Есть некая машина. У машины есть инструмент, а у него вертикальный привод с сервомотором, редуктором и зубчатым ремнем.
Чтобы не поломать инструмент при всяких нештатных ситуациях - на инструменте есть специальный датчик "перегрузки".
Ремень порвался - инструмент упал вниз.
Датчик перегрузки, естественно, сработал - машина остановилась по "ошибке перегрузки инструмента".
Ничего не поломалось, все хорошо, все так и должно быть.
А вот дальше...
Ремень поменяли. Инструмент вручную вывели вверх. А ошибка - не скидывается. Никак. Хоть застрелись.
Лезу в "мозги". И что у нас там наблюдается?
Условие сброса "ошибки перегрузки инструмента" - освободить датчик И поднять привод в позицию базовую или выше
(по виртуальному кулачку).
В процессе ремонта питание машины отключали -> сервомодуль актуальную координату инструмента потерял.
Соответственно, виртуальные кулачки не работают.
При включении - "потерявшийся" сервопривод ищет свою позицию (и находит по специальному датчику.)
Но! "Ошибка перегрузки инструмента" - блокирует перемещение сервопривода, и "найти себя" он не может.
А без поиска начальной точки "ошибка перегрузки инструмента" не снимается.
Ну и чего прикажете делать? Отправлять машину в сборе на завод-изготовитель?
Изготовитель этот - данную ошибку хоть раз тестировал?
Ладно, придется применить к контроллеру "жесткие репрессивные меры".
Скинуть меркер ошибки с программатора. Все завелось, нашлось и заработало.
Но без программатора-то как быть? Сервис вызывать?
Придется опять очередную телегу слать электропочтой. На этот раз - итальянским программистам. Чтобы получить одобрение на устранение косяка...
P.S. отдельная порция лучей поноса отправляется итальянским погромистам за то, что контроллер они сделали в Step7, а панель в TIAportal
Совершенно разные системы, вообще говоря.
Из-за чего в сторону этой машины - нужно ходить с ДВУМЯ программаторами...
И так вот запросто это не исправишь.
Есть некая машина. У машины есть инструмент, а у него вертикальный привод с сервомотором, редуктором и зубчатым ремнем.
Чтобы не поломать инструмент при всяких нештатных ситуациях - на инструменте есть специальный датчик "перегрузки".
Ремень порвался - инструмент упал вниз.
Датчик перегрузки, естественно, сработал - машина остановилась по "ошибке перегрузки инструмента".
Ничего не поломалось, все хорошо, все так и должно быть.
А вот дальше...
Ремень поменяли. Инструмент вручную вывели вверх. А ошибка - не скидывается. Никак. Хоть застрелись.
Лезу в "мозги". И что у нас там наблюдается?
Условие сброса "ошибки перегрузки инструмента" - освободить датчик И поднять привод в позицию базовую или выше
(по виртуальному кулачку).
В процессе ремонта питание машины отключали -> сервомодуль актуальную координату инструмента потерял.
Соответственно, виртуальные кулачки не работают.
При включении - "потерявшийся" сервопривод ищет свою позицию (и находит по специальному датчику.)
Но! "Ошибка перегрузки инструмента" - блокирует перемещение сервопривода, и "найти себя" он не может.
А без поиска начальной точки "ошибка перегрузки инструмента" не снимается.
Ну и чего прикажете делать? Отправлять машину в сборе на завод-изготовитель?
Изготовитель этот - данную ошибку хоть раз тестировал?
Ладно, придется применить к контроллеру "жесткие репрессивные меры".
Скинуть меркер ошибки с программатора. Все завелось, нашлось и заработало.
Но без программатора-то как быть? Сервис вызывать?
Придется опять очередную телегу слать электропочтой. На этот раз - итальянским программистам. Чтобы получить одобрение на устранение косяка...
P.S. отдельная порция лучей поноса отправляется итальянским погромистам за то, что контроллер они сделали в Step7, а панель в TIAportal
Совершенно разные системы, вообще говоря.
Из-за чего в сторону этой машины - нужно ходить с ДВУМЯ программаторами...
И так вот запросто это не исправишь.
Tags:
no subject
Как правило, требуется очень хитрая rocovery процедура с инициализацией внутри самой процедуры. Программист может этот баг и видел, но вот как победить не придумал.
Абсолютные энкодеры рулят, тем более, что стоят они всего-то на три копейки дороже.
no subject
Типа в момент пуска датчик говорит, что инструмент стоит на точке ноль, значит все хорошо.
no subject
Обойти же данную конкретную ошибку в данном конкретном случае элементарно.
При наличии ошибки, но физическом освобождении датчика - запрещать рабочее перемещение привода (то бишь запуск машины), но разрешить инициализацию и поиск референсной позиции.
В более сложных случаях (несколько приводов хитро завязаны друг на друга, и могут друг друга поломать) - разрешить ручное референсирование на малой скорости.
(то бишь - движение привода вручную, пока позиция не найдется).
no subject
Там проверяется фронт сигнала с датчика референсной позиции, и только при движении в одну сторону
Что, вообще говоря, совершенно правильно.
Иначе можно ошибиться с позицией на несколько мм.
no subject
Прикольно.
Интересно, по логике в положении "ошибка по перегрузу" он продолжает читать датчик перегруза?
Тогда решение очень простое. При поднятом инструменте, подаем на привод питание, чтоб инструмент поехал вниз и поймал клина для срабатывания датчика. После чего по штатной схеме вывести мозги из ступора.
no subject
А положение привода живет в сервоконтроллере и долговременным быть не может по определению, т.к. энкодер инкрементальный.
no subject
no subject
Там и процедура соответствующая имеется в программе, и датчик - в наличии.
А вот про обработку аварийных ситуаций - недодумали.
no subject
Прогон по оси в крайние положения при старте?
no subject
У меня были на итальянском оборудовании PLC Siemens, а панели оператора B&D. И софт для этих панелей (Zenon) вообще не такой как WinCC (.
И ситуации были разные. Както начал выделываться палетайзер - недокладывать слои на паллету, иногда. На входном конвейере у него есть счетчик зашедших паков, количество паков в паллете известно, ит.д. Я, соотвественно, первым делом полез проверять все ли в порядке с этим счетчиком, ибо в моем понимании полная паллета- это заданное количество паков= вошедшему количеству паков.
Оказалось в итоге что данные с этого счетчика только выводились на панель оператора,в программе, в роли условия, вообще не используясь.
Это было неожиданно o_O.
Что оказалось по итогу:
Паллета заполняется в несколько слоев. Каждый слой формируется на ковейере и толкателем перемещается на паллету. Количество слоев задано в рецепте для каждого формата тары.
В роли признака формирования слоя был взят датчика кулачка толкателя слоя- при возврате кулачка датчик срабатывал и счетчик слоев инкрементировался .
В какой-то момент механики полезли в механизм толкателя , чего то там порегулировали, и в итоге каким то образом, датчик кулачка иногда давал вместо одного импульса целых 2. И соответсвенно счетчик слоев тоже увеличивался на 2, при фактически уложенном одном слое.
no subject
no subject
Работаю с разрывной машиной от Galdabini, например. Полбеды, что в комплекте нет никакого языка программирования, и настраивать приходится через ужасный интерфейс. Хуже, что датчик силы запаздывает от датчика перемещения, и на малых амплитудах он дает огромные относительные забросы. Но вот то, что они не прописали порядок арифметических действий, и 2+2*2 для него будет 8 - это за гранью просто.
no subject
В более сложных алгоритмах, видимо, должны быть виртуальные мальчики на побегушках.
no subject
no subject
На тех станках стояло по два кулачка на осях - нулевой и аварийный, и еще несколько десятков мм для выбега свободный ход. Иногда с размаху проскакивали оба при ускоренной подаче на G00. Причина - Заказчик сэкономил деньги и заказал дешевые чебоксарские приводы, а они отчего то не очень подружились с югославскими моторами и тахогенераторами...
no subject
А вообще, бывают же наверное и приятные случаи, когда налаживать/ремонтировать удобно. Как это устроено и что предусмотрено.
no subject
no subject
Теперь жди джобофера из Италии!
no subject
no subject
Но да, сколько программистов - столько и способов че-нито изобрести :)
no subject
Только не в крайние положения, а до референсного датчика
(аварийные концевики обычно слишком грубы для референсирования, у индуктивного датчика воспроизводимость позиции срабатывания куда лучше)
no subject
Однако ж - что мешало сделать все на TIAPortal?
Мне бы было тупо лень ручками таскать тэги из проекта в проект :)
no subject
no subject
часто встречается на процессорах со стеком аккумуляторов
вот такой кусочек в STL/IL точно так же даст 8
L 2
L 2
+I
L 2
*I
no subject
prosave от Step7 и TIAP на одной машине не живут.
А также с flex проблемы непонятного рода
Впрочем, наверняка все это можно пофиксить, но нам привезли 2 программатора чисто с TIAP