Сменщик инструмента на станке 6р13ф

Материал из cnc-club
Версия от 13:35, 18 июля 2018; Nick (обсуждение | вклад) (Новая страница: «=Общая схема= Сменщик будет реализован на базе компонента python - для сменщика не требуется…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Общая схема

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


Компонент

#!/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
net