Перейти к публикации

Диалог стойки с оператором


mmaks90

Рекомендованные сообщения

Добрый день! Подскажите как на 840 стойке сделать так, чтоб при старте программы стойка спрашивала ц оператора значения некторых переменных

Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts
10 минут назад, Anat2015 сказал:

Написать подпрограмму и засунуть ее вызов в начало каждой программы.

Тема такая, что высота заготовки разная. Мне надо чтоб оператору принудительно выпадало сообщение, укажите вылет заготовки. То что вы предлагаете, я не пойму

Ссылка на сообщение
Поделиться на других сайтах

Из партии заготовок выбирают самую большую и по её вылету пишут программу, а так то оператор забыл, то не сохранил, то перепутал.

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, GalielO сказал:

Из партии заготовок выбирают самую большую и по её вылету пишут программу, а так то оператор забыл, то не сохранил, то перепутал.

Вы видели вопрос? К чему этот совет

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах

В начале программы написать

; Чудо, в R10 забей вылет заготовки!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

M0

R10=

.............

а так, читать предыдущий пост.

 

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, mmaks90 сказал:

Мне надо чтоб оператору принудительно выпадало сообщение, укажите вылет заготовки.

Здравствуйте. Если 840D, то можно сделать так:

1. В программе удаляете файл DATA.SPF (ничего страшного, если он ещё не был создан - ошибки не возникнет).

2. Программно создаёте файл DATA.SPF примерно с таким содержимым:

M0; Откройте этот файл
STOPRE
R1 = ...; Здесь укажите вылет заготовки, закройте файл и нажмите START
IF (R1<95) OR (R1>105)
LOOP
M0; R1 Указан вне допустимого диапазона. Далее RESET
ENDLOOP
ENDIF
M17

3. Вызываете этот файл. Переменная R1 примет нужное проверенное значение.

 

Вот начало такой основной программы:

DEF INT ERR; Объявляем вспомогательную переменную, эту строку - в самый верх программы
DELETE(ERR, DATA_SPF)
WRITE(ERR, DATA_SPF, "M0; Откройте этот файл")
WRITE(ERR, DATA_SPF, "STOPRE")
WRITE(ERR, DATA_SPF, "R1 = ...; Здесь укажите вылет заготовки, закройте файл и нажмите START")
WRITE(ERR, DATA_SPF, "IF (R1<95) OR (R1>105)")
WRITE(ERR, DATA_SPF, "LOOP")
WRITE(ERR, DATA_SPF, "M0; R1 Указан вне допустимого диапазона. Далее RESET")
WRITE(ERR, DATA_SPF, "ENDLOOP")
WRITE(ERR, DATA_SPF, "ENDIF")
WRITE(ERR, DATA_SPF, "M17")
WRITE(ERR, DATA_SPF)
DATA
G0 Z=R1
...

Прерывать выполнение программы оператору не потребуется, ввод необходимого значения производится "на лету".

Если он проигнорирует сообщение (то есть не заметит) программа встанет в ошибку на команде "R1 = ...". Если ошибётся при вводе нового значения, программа тоже не будет продолжаться, попав в бесконечный цикл LOOP - ENDLOOP.

Изменено пользователем A_1
Ссылка на сообщение
Поделиться на других сайтах

@mmaks90 , упрощённый вариант:

R1 = 0
REPEAT
M0; Введите значение вылета заготовки в R1 таблицы параметров
STOPRE
UNTIL (R1>=95) AND (R1<=105)
G0 Z=R1
...

Программа будет возвращаться на строку с приглашением ввести значение в случае игнора или неправильного ввода. Но для ввода значения нужно заходить в OFFSET.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, A_1 сказал:

Здравствуйте. Если 840D, то можно сделать так:

1. В программе удаляете файл DATA.SPF (ничего страшного, если он ещё не был создан - ошибки не возникнет).

2. Программно создаёте файл DATA.SPF примерно с таким содержимым:


M0; Откройте этот файл
STOPRE
R1 = ...; Здесь укажите вылет заготовки, закройте файл и нажмите START
IF (R1<95) OR (R1>105)
LOOP
M0; R1 Указан вне допустимого диапазона. Далее RESET
ENDLOOP
ENDIF
M17

3. Вызываете этот файл. Переменная R1 примет нужное проверенное значение.

 

Вот начало такой основной программы:


DEF INT ERR; Объявляем вспомогательную переменную, эту строку - в самый верх программы
DELETE(ERR, DATA_SPF)
WRITE(ERR, DATA_SPF, "M0; Откройте этот файл")
WRITE(ERR, DATA_SPF, "STOPRE")
WRITE(ERR, DATA_SPF, "R1 = ...; Здесь укажите вылет заготовки, закройте файл и нажмите START")
WRITE(ERR, DATA_SPF, "IF (R1<95) OR (R1>105)")
WRITE(ERR, DATA_SPF, "LOOP")
WRITE(ERR, DATA_SPF, "M0; R1 Указан вне допустимого диапазона. Далее RESET")
WRITE(ERR, DATA_SPF, "ENDLOOP")
WRITE(ERR, DATA_SPF, "ENDIF")
WRITE(ERR, DATA_SPF, "M17")
WRITE(ERR, DATA_SPF)
DATA
G0 Z=R1
...

Прерывать выполнение программы оператору не потребуется, ввод необходимого значения производится "на лету".

Если он проигнорирует сообщение (то есть не заметит) программа встанет в ошибку на команде "R1 = ...". Если ошибётся при вводе нового значения, программа тоже не будет продолжаться, попав в бесконечный цикл LOOP - ENDLOOP.

Благодарю за конструктивный ответ! Завтра буду пробовать настроить.

По идеи мне проверки не нужны, проверка в самой программе. Уже  несколько раз уже было что оператор в суете на автомате поменял заготовку старт нажал, а вылет не указал, в итоге фреза корпусом деталь берет. А заготовки разные, иногда обрезь обрабатываем

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, A_1 сказал:

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

Согласен! Щуп есть но я его подальше от операторов держу. Какой ещё способ есть? 

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, mmaks90 сказал:

Какой ещё способ есть? 

Можно определить положение торца заготовки по нагрузке. Фрезу расположить так, чтобы при плунжерном фрезеровании у неё была приемлемая ap, на подаче опускаться вниз по Z, и в момент касания заготовки, по увеличившейся нагрузке на ось шпинделя зарегистрировать это положение.

Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, A_1 сказал:

Можно определить положение торца заготовки по нагрузке. Фрезу расположить так, чтобы при плунжерном фрезеровании у неё была приемлемая ap, на подаче опускаться вниз по Z, и в момент касания заготовки, по увеличившейся нагрузке на ось шпинделя зарегистрировать это положение.

Интересно а какие команды за это отвечают? 

Ссылка на сообщение
Поделиться на других сайтах
14 минут назад, mmaks90 сказал:

какие команды за это отвечают? 

Если у Вас Sin840Dsl, посмотрите есть ли опция 6FC5800-0AM41-0YB0 обработка внутренних величин привода

MENU SELECT - Лицензии - Все опции

Изменено пользователем A_1
Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, A_1 сказал:

Если у Вас Sin840Dsl, посмотрите есть ли опция 6FC5800-0AM41-0YB0 обработка внутренних величин привода

MENY SELECT - Лицензии - Все опции

К сожалению не установлена

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

Здравствуйте. Если 840D, то можно сделать так:

1. В программе удаляете файл DATA.SPF (ничего страшного, если он ещё не был создан - ошибки не возникнет).

2. Программно создаёте файл DATA.SPF примерно с таким содержимым:


M0; Откройте этот файл
STOPRE
R1 = ...; Здесь укажите вылет заготовки, закройте файл и нажмите START
IF (R1<95) OR (R1>105)
LOOP
M0; R1 Указан вне допустимого диапазона. Далее RESET
ENDLOOP
ENDIF
M17

3. Вызываете этот файл. Переменная R1 примет нужное проверенное значение.

 

Вот начало такой основной программы:


DEF INT ERR; Объявляем вспомогательную переменную, эту строку - в самый верх программы
DELETE(ERR, DATA_SPF)
WRITE(ERR, DATA_SPF, "M0; Откройте этот файл")
WRITE(ERR, DATA_SPF, "STOPRE")
WRITE(ERR, DATA_SPF, "R1 = ...; Здесь укажите вылет заготовки, закройте файл и нажмите START")
WRITE(ERR, DATA_SPF, "IF (R1<95) OR (R1>105)")
WRITE(ERR, DATA_SPF, "LOOP")
WRITE(ERR, DATA_SPF, "M0; R1 Указан вне допустимого диапазона. Далее RESET")
WRITE(ERR, DATA_SPF, "ENDLOOP")
WRITE(ERR, DATA_SPF, "ENDIF")
WRITE(ERR, DATA_SPF, "M17")
WRITE(ERR, DATA_SPF)
DATA
G0 Z=R1
...

Прерывать выполнение программы оператору не потребуется, ввод необходимого значения производится "на лету".

Если он проигнорирует сообщение (то есть не заметит) программа встанет в ошибку на команде "R1 = ...". Если ошибётся при вводе нового значения, программа тоже не будет продолжаться, попав в бесконечный цикл LOOP - ENDLOOP.

Здесь ошибка выскакивает. 12550, имя data_spf не определено или опция/ функция не активирована

Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, mmaks90 сказал:

имя data_spf не определено или опция/ функция не активирована

DATA_SPF возьмите в двойные кавычки во всех строчках

Ссылка на сообщение
Поделиться на других сайтах
11 часов назад, mmaks90 сказал:

Благодарю за конструктивный ответ! Завтра буду пробовать настроить.

По идеи мне проверки не нужны, проверка в самой программе. Уже  несколько раз уже было что оператор в суете на автомате поменял заготовку старт нажал, а вылет не указал, в итоге фреза корпусом деталь берет. А заготовки разные, иногда обрезь обрабатываем

 

14 часов назад, A_1 сказал:

Здравствуйте. Если 840D, то можно сделать так:

1. В программе удаляете файл DATA.SPF (ничего страшного, если он ещё не был создан - ошибки не возникнет).

2. Программно создаёте файл DATA.SPF примерно с таким содержимым:


M0; Откройте этот файл
STOPRE
R1 = ...; Здесь укажите вылет заготовки, закройте файл и нажмите START
IF (R1<95) OR (R1>105)
LOOP
M0; R1 Указан вне допустимого диапазона. Далее RESET
ENDLOOP
ENDIF
M17

3. Вызываете этот файл. Переменная R1 примет нужное проверенное значение.

 

Вот начало такой основной программы:


DEF INT ERR; Объявляем вспомогательную переменную, эту строку - в самый верх программы
DELETE(ERR, DATA_SPF)
WRITE(ERR, DATA_SPF, "M0; Откройте этот файл")
WRITE(ERR, DATA_SPF, "STOPRE")
WRITE(ERR, DATA_SPF, "R1 = ...; Здесь укажите вылет заготовки, закройте файл и нажмите START")
WRITE(ERR, DATA_SPF, "IF (R1<95) OR (R1>105)")
WRITE(ERR, DATA_SPF, "LOOP")
WRITE(ERR, DATA_SPF, "M0; R1 Указан вне допустимого диапазона. Далее RESET")
WRITE(ERR, DATA_SPF, "ENDLOOP")
WRITE(ERR, DATA_SPF, "ENDIF")
WRITE(ERR, DATA_SPF, "M17")
WRITE(ERR, DATA_SPF)
DATA
G0 Z=R1
...

Прерывать выполнение программы оператору не потребуется, ввод необходимого значения производится "на лету".

Если он проигнорирует сообщение (то есть не заметит) программа встанет в ошибку на команде "R1 = ...". Если ошибётся при вводе нового значения, программа тоже не будет продолжаться, попав в бесконечный цикл LOOP - ENDLOOP.

Есл  честно, не понял как происходит как происходит ввод значения. Мне хотелось бы чтоб выпадало окно " Введи вылет заготовки" ввёл и старт нажал. Тут как я понял что надо самому открыть другой файл ввести значение, а программа это просто проверка на лимиты

Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, mmaks90 сказал:

Тут как я понял что надо самому открыть другой файл ввести значение

Нет, открываете исполняемый файл одной подэкранной кнопкой "Корректировать программу"

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, A_1 сказал:

Нет, открываете исполняемый файл одной подэкранной кнопкой "Корректировать программу"

Понял спасибо, не совсем то что я хотел конечно, но попробую в этом ключе реализовать

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • Killerchik
      Господа, Вы все по-своему правы, как мне кажется. Виктор прав в том, что при описанном им отклонении будет невозможно сделать ось шпинделя перпендикулярной к поверхности детали, прижатой к столу, хоть убейся. Если это 3д фрезеровака - по барабану, а вот если надо расточить отверстие или обработать точную поверхность торцом фрезы (или шлифовального круга, шлифование на фрезерных ОЦ давно не что-то невероятное) - мы получаем неисправимое искажение.   Конечно, на хороших станках и физическую геометрию станины стараются делать хорошо. Но хорошо - это не отлично, а ещё её ведёт со временем, а ещё есть удары и т.п. Тут-то и приходит на помощь коррекция всех мастей. пиэс - работники Блом'а как выяснилось вручную подшлифовывают плоскости под рельсами брусками с наждачкой по результатам замеров))))) В видосе от Титанов это было.
    • gudstartup
      я вам все написал . вы же b компенсируете вот и вводите относительно наклона в заданной точке значения отклонений хоть по x и хоть по  y и ваша точка на оси сместится в пространстве. таблица компенсаций это позволяет. точки для оси b задаются от +90 0 -90 или как сами хотите 
    • Viktor2004
      Вот в моем примере надо задать смещение оси X в зависимости от Y. Но при B-90 это смещение должно быть в одну сторону, а при B+90 в другую сторону. А в промежутке между B-90---------B+90 значения смещения Х между этими крайними Значит компенсация X в зависимости от Y должна зависеть еще и от наклона оси В Ну и как будем компенсировать?
    • gudstartup
      вы понимаете что такое объемная компенсация? можно задать смещение точки вашего стола во всех плоскостях и станок это отработает переместив  на заданную величину оси х у или z  перемещая стол вы вообще не увидите больших отклонений. естественно все зависит от качества измерения и правильности ввода. лучше когда это делает специальная программа
    • Viktor2004
      хорошо. Представьте ситуацию 1. Ось В=0. двигаем индикатором по Х и Y все идеально ровно 2. Ось B=-90 ведем индикатором по Y вдоль стола. Отклонение в + (существенное) в сторону +X 3. Ось B=+90 ведем индикатором по Y вдоль стола. Отклонение в - (существенное) в сторону -X делаем вывод. стол не параллелен оси наклона Как будем компенсировать?
    • gudstartup
      если есть нормальный цикл для щупа и геометрия выравнена и соответствует кинематике то настройка = времени исполнения этого цикла. буржуи вообще этот цикл гоняют перед каждой высокоточной деталью и имеют прекрасную повторяемость точности. так надо уметь проводить измерения и иметь для этого соответствующие приборы.  вычисляется смещение оси в заданной точке и смещение осей влияющие на ее взаимную перпендикулярность. не видел там никаких формул. только недавно компенсировали ось А на пятиосевом хайдене и без формул обошлись.  согласен с тем что измерения пятиосевого продлятся дольше 
    • Viktor2004
      Я не смог. На Хенденхайне, где все компенсации очень наглядны и открыты. Трехосевой скомпенсировать можно, пятиосевой у меня не получилось. Потому что в значения компенсаций надо писать формулы, а оно позволяет писать туда только константы. А формулы оно туда писать не умеет
    • gudstartup
      тяжесть это отсутствие высокоскоростной обработки и трудоемкость. особенно если делать это с помощью индикатора и линейки станкостроители именно так и работают!
    • Guhl
      Там и прямой станок настроить непросто, а уж кривой, так хоть стреляйся 
    • gudstartup
      3 часа на измерение всех геометрических отклонений при умении работать с интерферометром это реально. не смешите
×
×
  • Создать...