Сменщик инструмента на станке 6р13ф: различия между версиями

Материал из cnc-club
Перейти к навигации Перейти к поиску
(Новая страница: «=Общая схема= Сменщик будет реализован на базе компонента python - для сменщика не требуется…»)
 
 
(не показаны 2 промежуточные версии этого же участника)
Строка 5: Строка 5:
 
=Компонент=
 
=Компонент=
  
+
[[Файл:Toolchanger.tar.gz]]
#!/usr/bin/python
 
import hal, time
 
h = hal.component("passthrough")
 
h.newpin("tool-change", hal.HAL_BIT, hal.HAL_IN)
 
h.newpin("tool-changed", hal.HAL_BIT, hal.HAL_OUT)
 
h.newpin("tool-prep-number", hal.HAL_S32, hal.HAL_IN)
 
 
 
h.newpin("kantovatel", hal.HAL_BIT, hal.HAL_IN)
 
h.newpin("manipulator", hal.HAL_BIT, hal.HAL_IN)
 
h.newpin("got-instrument", hal.HAL_BIT, hal.HAL_IN)
 
 
 
h.newpin("kantovatel-move", hal.HAL_BIT, hal.HAL_OUT)
 
 
 
 
 
h.newpin("reset", hal.HAL_BIT, hal.HAL_IN)
 
h.newpin("error", hal.HAL_BIT, hal.HAL_OUT)
 
h.newpin("state", hal.HAL_S32, hal.HAL_OUT)
 
 
 
 
 
 
 
 
 
 
 
h.ready()
 
import subprocess
 
 
 
def error(n,msg="")
 
subprocess.Popen(['zenity', '--error', '--text="Ошибка %s %s"'%(n,msg)])
 
h["error"] = True
 
 
 
try:
 
while 1:
 
if h["reset"] :
 
h["error"] = False
 
   
 
if h["tool-change"] and not last_tool_change : # начало смены инструмента
 
h["tool-changed"] = False
 
if not h["kantovatel"] :  # проверяем датчик кантователя
 
error(57, "Kantovatel")
 
if not h["manipulator"] :  # проверяем датчик кантователя
 
error(71, "Manipulator")
 
if not h["spindle-at-change"] :  # проверяем датчик кантователя
 
error(72, "---")
 
if not h["spindle-at-change"] :  # проверяем датчик кантователя
 
error(72, "---")
 
 
h["kantovatel-move"] = 1  # двигаем кантователь
 
 
timeout = time.time() + 10
 
while not h["got-instruiment"] :  # ждем захват инструмента, таймаут 10 секунд - если не взяли - ошибка
 
time.sleep(0.1)
 
if timeout > time.time() :
 
error(0,"Timeout")
 
break
 
 
 
 
last_tool_change = h["tool-change"]
 
 
    time.sleep(0.1)
 
except KeyboardInterrupt:
 
raise SystemExit
 
  
 
=Загрузка=
 
=Загрузка=
  
  loadusr tool_changer
+
  loadusr -Wn toolchanger python toolchanger.py
  net
+
  net tool-change  => toolchanger.tool-change    <= iocontrol.0.tool-change
 +
net tool-changed  <= toolchanger.tool-changed    => iocontrol.0.tool-changed
 +
net tool-changed  => toolchanger.tool-prep-number    <= iocontrol.0.tool-prep-number
 +
....

Текущая версия на 13:42, 18 июля 2018

Общая схема

Сменщик будет реализован на базе компонента python - для сменщика не требуется жесткий real-time поэтому можем использовать python.


Компонент

Файл:Toolchanger.tar.gz


Загрузка

loadusr -Wn toolchanger python toolchanger.py 
net tool-change   => toolchanger.tool-change    <= iocontrol.0.tool-change 
net tool-changed   <= toolchanger.tool-changed    => iocontrol.0.tool-changed
net tool-changed   => toolchanger.tool-prep-number    <= iocontrol.0.tool-prep-number
....