Jump to content

Fanuc 18-TB отключение магнитного пульс-кодера оси С


vl_cnc

Recommended Posts

Доброго всем, фануковские гуру.

Нужна помощь в таком вопросе. Имеется станок Harding SG-42 c системой 18-TB, перестала позиционироваться ось С, при команде выхода в ноль на шпиндельном драйвере (A06B-6078-H311#H500#EM) аларм 40. Осмотр показал, что на контроль оси С на шпинделе установлен магнитный пульс-кодер высокого разрешения,  имеет магнитный диск, две головки, подключаемые в блок усилителя ( как я понимаю), на котором маркировка A860-0382-T124 и он уже подключен на драйвере на разъём JY5. Магнитный диск имеет затeртости, и похоже его нужно менять. Состояние головок и усилителя неизвестно.

Также в моторе шпинделя имеется магнитный пульс-кодер, который подключен на усилитель с маркировкой A860-0382-T255 и оттуда уже на разъём драйвера JY2.

Вопросы:

1. можно ли переключить контроль оси С на энкодер, который стоит в моторе, и отключить энкодер на шпинделе?

2. как провести диагностику работоспособности головок и усилителя шпиндельного энкодера?

3. поделитесь мануалами на систему 18-TB, у кого есть.

Заранее спасибо за подсказки.

Link to post
Share on other sites


UnPinned posts
1 час назад, david1920 сказал:

В параметре 4002 что?

В 4002 все нули. Пробовал играться некоторыми параметрами из 4000-х, но результат не получил. Может неправильные комбинации ставил.

Link to post
Share on other sites
andrey2147
05.10.2023 в 19:28, vl_cnc сказал:

можно ли переключить контроль оси С на энкодер, который стоит в моторе, и отключить энкодер на шпинделе?

А смысл ? Точности не будет в оси С.

9 часов назад, vl_cnc сказал:

В 4002 все нули. Пробовал играться некоторыми параметрами

По книжке?

Link to post
Share on other sites
6 минут назад, andrey2147 сказал:

А смысл ? Точности не будет в оси С.

По книжке?

Ну, новый энкодер купить будет проблемно и очень дорого, поэтому рассматриваются все другие варианты. Хотелось бы увидеть, какая получится точность. На нарезание резьбы хватит?

Бегло просматривал мануал, нашел описание настроек 4000-х параметров на этот энкодер, пробовал их менять. Результата не достиг. Пока всё поверхностно. А есть какой-то пример параметров для управления осью С от энкодера мотора?

Link to post
Share on other sites
andrey2147
29 минут назад, vl_cnc сказал:

А есть какой-то пример параметров для управления осью С от энкодера мотора?

Любой фрезер, только это не C а уже S.

А по вопросу нет , не видал такого, потому как бессмысленно.

Edited by andrey2147
Link to post
Share on other sites
gudstartup
05.10.2023 в 17:28, vl_cnc сказал:

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

Если имеет потертости диск то о головках уже и говорить не приходится проверяйте биение оси оно у вас выше допуска и если установите новый датчик то получите тот же результат так как зазоры между головкой и диском небольшие

13 часов назад, vl_cnc сказал:

А есть какой-то пример параметров для управления осью С от энкодера мотора?

У мотора датчик очень низкого разрешения и как правило не используется для управления позиционированием только для ориентации и то если имеется 0 метка. Установите обычный фотоимпульсник через ремень и работайте главное чтобы выдавал нужное количество импульсов и они были правильного уровня TTL или 1VPP

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • AlexKaz
      В пнд-вт 9-10 дек. у Логос проходит оффлайн-онлайн конфа.  Регистрация для участия онлайн и оффлайн https://cae-conference.ru/   Примерная программа: - практики применения российских решений от представителей промышленности - доклады разработчиков и интеграторов рынка CAE - показ обновлённых возможностей пакета программ мат. моделирования и инженерного анализа «Логос» - открытая дискуссия пользователей, преподавателей и разработчиков ПО и продуктов СAE - участие в голосовании и опросах очно и онлайн ...   Неплохо бы добавить в дискуссию инженеров-конструкторов/проектировщиков. Послушаю, может что удастся выцепить из критичного.
    • Slavdos
      цитата не от того автора
    • s_liam
      А что измеряет и что задано изначально в длине? Сложно сказать так, нужны все циклы и подциклы. И в какой подпрограмме ошибка прописана, чтобы понять, что приводит к её возникновению. 
    • IgP
      Аааа, ну это стандартное решение от АСКОН: сделать тоже самое заново ... В данном случае установить ПО на ПК.
    • NDE
      Собственно доработка ПО, различные утилиты DLL (User functions), написанные с помощью UGOpen. Из NX необходимо читать (и по возможности записывать) атрибуты в BOM Teamcenter.  Ограничение версии NX - 10. А он, как известно, не умеет работать с атрибутами BOM line, с типами, отличающимися от строковых.   Пример, есть атрибут в BOM - номер вхождения с типом integer. При работе в NX необходимо знать, какой атрибут присвоен конкретному компоненту. Штатными средствами увидеть это невозможно (в сборку входит деталь несколько раз с разными значениями этого атрибута и просто визуально посмотреть в Менеджере структуры и потом в навигаторе сборки NX и понять, что к чему относится - невозможно). Да и каменный век это
    • IgP
      Ни hrena не понял ... Задачу бы лучше с технической/материалистичной стороны описали ...  
    • NDE
      Предисловие: "Или я слишком глубоко копаю и не вижу ответа на поверхности, или тут что-то действительно не так". Как организована интеграция NX и Teamcenter в части загрузки сборок и хранения информации о компонентах. Исходные данные: NX10, Teamcenter 11.6, испоьзование SOA из поставки NX, язык C/C++. Задача: из User Function NX читать атрибуты строк BOM и записывать их. Как я реализовал это сейчас:: Получаю сессию, открытую NX: NXOpen::Session *theSession = NXOpen::Session::GetSession(); NXOpen::PDM::PdmSession *thePdmSession = theSession->PdmSession(); connectionHandle = thePdmSession->GetSoaConnectionHandle(); Teamcenter::Soa::Client::Connection* tcSoaConnection = reinterpret_cast<Teamcenter::Soa::Client::Connection*>(connectionHandle->GetHandle()); Нахожу в базе ревизию сборки: dmSrev = Teamcenter::Services::Core::DatamanagementService::getService(tcSoaConnection); std::vector< Teamcenter::Services::Core::_2007_01::Datamanagement::GetItemFromIdInfo > query(1); Teamcenter::Services::Core::_2007_01::Datamanagement::GetItemFromIdPref pref; Teamcenter::Soa::Client::Model::ItemRevision *itemRevision; Teamcenter::Soa::Client::Model::Item *item; std::vector< Teamcenter::Soa::Client::ModelObject * > objs(1); query[0].itemId = object_id.GetUTF8Text(); query[0].revIds.push_back(object_rev.GetUTF8Text()); Teamcenter::Services::Core::DatamanagementService::GetItemFromIdResponse item_bom_response = dmSrev->getItemFromId(query, 1, pref); Создаю новое окно BOMWindow: itemRevision = item_bom_response.output[0].itemRevOutput[0].itemRevision; item = item_bom_response.output[0].item; bom_info[0].item = item; bom_info[0].itemRev = itemRevision; bom_info[0].clientId = "InfoDSERequest"; bom_info[0].bomView = nullptr; bom_info[0].objectForConfigure = nullptr; bom_info[0].activeAssemblyArrangement = nullptr; bom_info[0].revRuleConfigInfo = revRuleConfigInfo; Teamcenter::Services::Cad::StructuremanagementService *structServ = Teamcenter::Services::Cad::StructuremanagementService::getService(tcSoaConnection); Teamcenter::Services::Cad::_2007_01::Structuremanagement::CreateBOMWindowsResponse bomWindow = structServ->createBOMWindows(bom_info); topLine = bomWindow.output[0].bomLine; Дальше перебираю BOMLine, ищу UG ENTITY HANDLE, совпадающие с хэндлом в NX (с отбрасыванием от хэндла версионной информации, т.е. первые 28 символов): cur_line = dynamic_cast<Teamcenter::Soa::Client::Model::BOMLine *>(child_lines[i]); ent_handle = cur_line->get_UG_ENTITY_HANDLE(); UF_TAG_decompose_handle ((char*)ent_handle.c_str(), &file_data, &sub_file_id, &versio); child_file_data = file_data; UF_free(file_data); instance_file_data.resize(28); child_file_data.resize(28); if (!instance_file_data.compare(child_file_data) && instance_sub_file_id==sub_file_id) // Сравнение искомого компонента с каждой строкой BOMLine { Чтение атрибутов, например, seq_no = cur_line->get_bl_occ_int_order_no(); }   Считаю что это неэффективно, да и вообще неправильно. Если посмотреть, что создаёт NX в кэше SOA с помощью Teamcenter::Soa::Client::ModelObjectVector all_objs; tcSoaConnection->getModelManager()->getObjectsFromStore(all_objs); То мы увидим там и BOMWindow  и BOMLine и PSOccurrence и PSOccurrenceThread. Т.е. уже всё открыто и по идее надо работать именно с этими объектами. Но я, хоть убей, не могу найти связь между компонентом сборки NX и объектом TC. Максимум, что я накопал штатными средствами: Можно получить хэндл в БД для PendingComponents (естественно, NX Component для них ещё отсутствует). Хэндл имеет следующий вид: "wCpJ4WwyhfM7oB 0WhJ4WwyhfM7oB 2tpdxbGAhfM7oB". Это 3 UIds в Teamcenter. Первый - это UId айтема/ревизии, второй - PSBOMView, третий PSOccurrenceThread. Не штатными средствами, если импортировать функцию UGMGR_NX_ask_db_comp_handle_uids из LIBUGMR.DLL, можно получить такой же набор UIds для любого компонента NX или только PSOccurrenceThread  с помощью UGMGR_NX_ask_occ_thread_of_instance: HINSTANCE lib = nullptr; typedef int(__cdecl *INT_TAG_CHAR_PROC)(tag_t, char **); typedef int(__cdecl *INT_TAG_CHAR3_PROC)(tag_t, char **,char ** ,char **); INT_TAG_CHAR3_PROC UGMGR_NX_ask_db_comp_handle_uids; INT_TAG_CHAR_PROC UGMGR_NX_ask_occ_thread_of_instance; lib = LoadLibraryA("LIBUGMR.DLL"); UGMGR_NX_ask_db_comp_handle_uids = (INT_TAG_CHAR3_PROC)GetProcAddress(lib, "?UGMGR_NX_ask_db_comp_handle_uids@@YAHIPEAPEAD00@Z"); UGMGR_NX_ask_occ_thread_of_instance = (INT_TAG_CHAR_PROC)GetProcAddress(lib, "?UGMGR_NX_ask_occ_thread_of_instance@@YAHIPEAPEAD@Z"); tag_t inst_tag = UF_ASSEM_ask_inst_of_part_occ(pComponent->Tag()); UGMGR_NX_ask_db_comp_handle_uids(inst_tag, &buf, &buf1, &buf2); UGMGR_NX_ask_occ_thread_of_instance(inst_tag, &buf);   Эти функции написаны на C без использования ООП, поэтому мне удалось их использовать. Аналогичных функций в UGOpen я не нашёл. В принципе в LIBUGMR.DLL имеются функции для работы с BOM, но они уже на C++  с использованием классов, а лезть в это без исходной документации не лучшая идея. Да и противоречит лицензионной политике .   И вот собственно вопросы. 1. Как перейти от PSOccurrenceThread к PSOccurrence или BOMLine? (Для этого нужно знать, в каком BOMWindow искать). 2. Как найти нужный BOMWindow?   Примечания: 1. Может быть есть штатные функции получения хэндла в БД на основе instance или occurrence в NX? 2. NX создаёт BOMWindow в следующих случаях: при первом открытии сборки. отдельные BOMWindow для подсборок не создаются. Но если сначала открыть подсборку, а потом вышестоящую сборку, то в системе будет создано 2 BOMwindow. 3. NX не закрывает созданные BOMWindow до конца сессии (видимо поэтому и память потребляет как не в себя). Например, если открыть сборку, потом закрыть её и снова открыть, NX создаст 2 BOMWindow.
    • KSVSVK
      При расчете оболочечной конструкции требуется указать толщину. Этот же размер используется при построении стыкуемых с ней элементов. Естественно хочется задавать его только один раз. Использование размера с эскиза - скелетона в сборке оказывается невозможным. Поэтому в сборке задаю глобальную переменную и присваиваю ее размеру. Теперь нужно установить ее в качестве связанного значения толщины оболочки в Simulation. Объединяю несколько оболочек в группу и в ее свойствах пытаюсь поставить значение. В выборе параметров определяю новый и задаю значение глобальной переменной При этом, несмотря на то, что переменная выше определена с размерностью "мм", здесь единица измерения оказывается "N/A" После применения изменений возвращается предыдущее окно с пустым списком, т.е. введенная переменная не отобразилась. Как задать такую связь?
    • Maik812
      Ты просто хамло и с тобой нет разговора. я вопрос задал как печать сложные детали. что касаемо больших и сложных был вопрос кстати!
    • mamomot
      Никто не "подставляется". Процесс создания качественной отливки не столь однозначен. В подавляющем числе случаев это только путь опыта конкретных решений...  
×
×
  • Create New...