Револьверная головка токарных станков: различия между версиями

Материал из cnc-club
Перейти к навигации Перейти к поиску
Строка 73: Строка 73:
 
В custom.hal  дописываем следующее:  
 
В custom.hal  дописываем следующее:  
  
  # Загрузка компонентов
+
  # -------- TOOL CHANGER --------
 +
# load component
 +
loadrt turret_1325f30 personality=12
 +
 +
addf turret-1325f30.0 servo-thread
 +
 +
setp turret-1325f30.0.timeout 40
 +
setp turret-1325f30.0.timeout-fix 1
 +
 +
net tool-change-request => turret-1325f30.0.change
 +
net tool-change-confirmed <= turret-1325f30.0.changed
 +
net tool-number => turret-1325f30.0.number
 +
 +
net tc-err <= turret-1325f30.0.err
 +
net tc-reset => turret-1325f30.0.reset
 +
net tc-reset <= iocontrol.0.user-request-enable
 +
 +
net tc-current <= turret-1325f30.0.current-position
 +
 +
net tc-fwd <= turret-1325f30.0.fwd => hm2_7i92.0.7i77.0.0.output-13
 +
net tc-rev <= turret-1325f30.0.rev => hm2_7i92.0.7i77.0.0.output-12
 +
net tc-fix => turret-1325f30.0.fix <= hm2_7i92.0.7i77.0.0.input-28
 +
net tc-01 => turret-1325f30.0.sens-01 <= hm2_7i92.0.7i77.0.0.input-16
 +
net tc-02 => turret-1325f30.0.sens-02 <= hm2_7i92.0.7i77.0.0.input-17
 +
net tc-03 => turret-1325f30.0.sens-03 <= hm2_7i92.0.7i77.0.0.input-18
 +
net tc-04 => turret-1325f30.0.sens-04 <= hm2_7i92.0.7i77.0.0.input-19
 +
net tc-05 => turret-1325f30.0.sens-05 <= hm2_7i92.0.7i77.0.0.input-20
 +
net tc-06 => turret-1325f30.0.sens-06 <= hm2_7i92.0.7i77.0.0.input-21
 +
net tc-07 => turret-1325f30.0.sens-07 <= hm2_7i92.0.7i77.0.0.input-22
 +
net tc-08 => turret-1325f30.0.sens-08 <= hm2_7i92.0.7i77.0.0.input-23
 +
net tc-09 => turret-1325f30.0.sens-09 <= hm2_7i92.0.7i77.0.0.input-24
 +
net tc-10 => turret-1325f30.0.sens-10 <= hm2_7i92.0.7i77.0.0.input-25
 +
net tc-11 => turret-1325f30.0.sens-11 <= hm2_7i92.0.7i77.0.0.input-26
 +
net tc-12 => turret-1325f30.0.sens-12 <= hm2_7i92.0.7i77.0.0.input-27
 +
 +
# -------- TOOL CHANGER --------
 +
 +
!!! В строчках подключения датчиков tc-ХХ поменять пины на свои!!!
 +
 
 +
 
 +
 +
=Логика работы и описание пинов и параметров=
 +
Разжим головки и поиск инструмента происходит прямым вращением.
 +
Зажим головки производится обратным вращением. Есть датчик зажима.
 +
На каждом инструменте есть отдельыный датчик.
 +
 
 +
==Загрузка==
 +
При загрузке компонента указывается количество инструментов в револьверной головке в параметре personality:
 +
loadrt turret_1325f30 personality=12
 +
 
 +
 
 +
*setp turret-1325f30.0.timeout 40* Таймаут на поиск инстумента  в секундах если инструмент не найден за это время, пин turret-1325f30.0.err станет 1
 +
*setp turret-1325f30.0.timeout-fix 1* Таймаут на зажим инструмента
 +
 
 +
 
 +
*net tool-change-request => turret-1325f30.0.change* Пин запроса на смену инструмента
 +
*net tool-change-confirmed <= turret-1325f30.0.changed* Пин говорящий, что смена завершена
 +
*net tool-number => turret-1325f30.0.number* Номер инструмента который нужно найти
 +
 +
*net tc-err <= turret-1325f30.0.err* Пин ошибки, если сменщик выдает ошибку - его нужно подключить к estop
 +
*net tc-reset => turret-1325f30.0.reset* Пин сброса ошибки
 +
*net tc-reset <= iocontrol.0.user-request-enable* Подключаем его к общем Reset
 +
 +
*net tc-current <= turret-1325f30.0.current-position* Текущее положение сменщика
 +
 +
*net tc-fwd <= turret-1325f30.0.fwd => hm2_7i92.0.7i77.0.0.output-13* Пин прямого вращения
 +
*net tc-rev <= turret-1325f30.0.rev => hm2_7i92.0.7i77.0.0.output-12* Пин обратного вращения
 +
*net tc-fix => turret-1325f30.0.fix <= hm2_7i92.0.7i77.0.0.input-28* GПин датчика зажатия
 +
*net tc-01 => turret-1325f30.0.sens-01 <= hm2_7i92.0.7i77.0.0.input-16* Пины датчиков инструментов
 +
...

Версия 18:37, 27 августа 2021

Установка

Скачать файл Turret_1325f30.comp

В консоле выполняем

sudo halcompile --install turret_1325f30.comp

Если linuxcnc установлен в режиме run-in-place то тоже самое но без sudo.


Проверка работы

Запукаем halrun и в нем выполняем

loadrt turret_1325f30.comp

Эта строка не должна выдать ошибок. После этого проверяем какие пины и параметры доступны

 show

Должно показать примерно следующее

halcmd: show 
Loaded HAL Components:
ID      Type  Name                                            PID   State
	 4  RT    turret_1325f30                                        ready
	 2  User  halcmd60255                                     60255 ready

Component Pins:
Owner   Type  Dir         Value  Name
	 4  bit   IN          FALSE  turret-1325f30.0.change
	 4  bit   OUT         FALSE  turret-1325f30.0.changed
	 4  s32   OUT             0  turret-1325f30.0.current-position
	 4  bit   OUT         FALSE  turret-1325f30.0.err
	 4  bit   IN          FALSE  turret-1325f30.0.fix
	 4  bit   OUT         FALSE  turret-1325f30.0.fwd
	 4  s32   IN              0  turret-1325f30.0.number
	 4  bit   IN          FALSE  turret-1325f30.0.reset
	 4  bit   OUT         FALSE  turret-1325f30.0.rev
	 4  bit   IN          FALSE  turret-1325f30.0.sens-00
	 4  s32   OUT             0  turret-1325f30.0.state
	 4  s32   OUT             0  turret-1325f30.0.time
	 4  float OUT             0  turret-1325f30.0.timer
	 4  float OUT             0  turret-1325f30.0.timer-fix

Pin Aliases:
 Alias                                            Original Name

Signals:
Type          Value  Name     (linked to)

Parameters:
Owner   Type  Dir         Value  Name
	 4  float RW             40  turret-1325f30.0.timeout
	 4  float RW              1  turret-1325f30.0.timeout-fix
	 4  s32   RW              0  turret-1325f30.0.tmax
	 4  bit   RO          FALSE  turret-1325f30.0.tmax-increased

Parameter Aliases:
 Alias                                            Original Name

Exported Functions:
Owner   CodeAddr  Arg       FP   Users  Name
 00004  7fcb8140c279  7fcb803fb0d8  YES      0   turret-1325f30.0

Realtime Threads:
	 Period  FP     Name               (     Time, Max-Time )

Настройка

В custom.hal дописываем следующее:

# -------- TOOL CHANGER --------
# load component
loadrt turret_1325f30 personality=12

addf turret-1325f30.0 servo-thread

setp turret-1325f30.0.timeout 40
setp turret-1325f30.0.timeout-fix 1

net tool-change-request 		=> turret-1325f30.0.change
net tool-change-confirmed 		<= turret-1325f30.0.changed
net tool-number					=> turret-1325f30.0.number

net tc-err						 <= turret-1325f30.0.err
net tc-reset					=> turret-1325f30.0.reset
net tc-reset					<= iocontrol.0.user-request-enable

net tc-current					<= turret-1325f30.0.current-position

net tc-fwd		<= turret-1325f30.0.fwd		=> hm2_7i92.0.7i77.0.0.output-13
net tc-rev		<= turret-1325f30.0.rev		=> hm2_7i92.0.7i77.0.0.output-12
net tc-fix		=> turret-1325f30.0.fix		<= hm2_7i92.0.7i77.0.0.input-28
net tc-01		=> turret-1325f30.0.sens-01	<= hm2_7i92.0.7i77.0.0.input-16
net tc-02		=> turret-1325f30.0.sens-02	<= hm2_7i92.0.7i77.0.0.input-17
net tc-03		=> turret-1325f30.0.sens-03	<= hm2_7i92.0.7i77.0.0.input-18
net tc-04		=> turret-1325f30.0.sens-04	<= hm2_7i92.0.7i77.0.0.input-19
net tc-05		=> turret-1325f30.0.sens-05	<= hm2_7i92.0.7i77.0.0.input-20
net tc-06		=> turret-1325f30.0.sens-06	<= hm2_7i92.0.7i77.0.0.input-21
net tc-07		=> turret-1325f30.0.sens-07	<= hm2_7i92.0.7i77.0.0.input-22
net tc-08		=> turret-1325f30.0.sens-08	<= hm2_7i92.0.7i77.0.0.input-23
net tc-09		=> turret-1325f30.0.sens-09	<= hm2_7i92.0.7i77.0.0.input-24
net tc-10		=> turret-1325f30.0.sens-10	<= hm2_7i92.0.7i77.0.0.input-25
net tc-11		=> turret-1325f30.0.sens-11	<= hm2_7i92.0.7i77.0.0.input-26
net tc-12		=> turret-1325f30.0.sens-12	<= hm2_7i92.0.7i77.0.0.input-27

# -------- TOOL CHANGER --------

!!! В строчках подключения датчиков tc-ХХ поменять пины на свои!!!


Логика работы и описание пинов и параметров

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

Загрузка

При загрузке компонента указывается количество инструментов в револьверной головке в параметре personality:

loadrt turret_1325f30 personality=12


  • setp turret-1325f30.0.timeout 40* Таймаут на поиск инстумента в секундах если инструмент не найден за это время, пин turret-1325f30.0.err станет 1
  • setp turret-1325f30.0.timeout-fix 1* Таймаут на зажим инструмента


  • net tool-change-request => turret-1325f30.0.change* Пин запроса на смену инструмента
  • net tool-change-confirmed <= turret-1325f30.0.changed* Пин говорящий, что смена завершена
  • net tool-number => turret-1325f30.0.number* Номер инструмента который нужно найти
  • net tc-err <= turret-1325f30.0.err* Пин ошибки, если сменщик выдает ошибку - его нужно подключить к estop
  • net tc-reset => turret-1325f30.0.reset* Пин сброса ошибки
  • net tc-reset <= iocontrol.0.user-request-enable* Подключаем его к общем Reset
  • net tc-current <= turret-1325f30.0.current-position* Текущее положение сменщика
  • net tc-fwd <= turret-1325f30.0.fwd => hm2_7i92.0.7i77.0.0.output-13* Пин прямого вращения
  • net tc-rev <= turret-1325f30.0.rev => hm2_7i92.0.7i77.0.0.output-12* Пин обратного вращения
  • net tc-fix => turret-1325f30.0.fix <= hm2_7i92.0.7i77.0.0.input-28* GПин датчика зажатия
  • net tc-01 => turret-1325f30.0.sens-01 <= hm2_7i92.0.7i77.0.0.input-16* Пины датчиков инструментов

...