Jump to content

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


Recommended Posts

mmaks90

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

Link to post
Share on other sites


UnPinned posts
Anat2015

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

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

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

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

Link to post
Share on other sites
GalielO

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

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

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

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

Link to post
Share on other sites
lem_on

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

Link to post
Share on other sites
Ander

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

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

M0

R10=

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

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

 

Link to post
Share on other sites
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.

Edited by A_1
Link to post
Share on other sites

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

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

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

Link to post
Share on other sites
mmaks90
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.

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

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

Link to post
Share on other sites

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Edited by A_1
Link to post
Share on other sites
mmaks90
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 не определено или опция/ функция не активирована

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

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

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

Link to post
Share on other sites
mmaks90
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.

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

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

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

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

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

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




  • Сообщения

    • AlexKaz
      Ls-Dyna, Pamstamp, Autoform. Что-то ещё. На крайний случай (будет муторно и долго): Ansys, Code_Aster, CalculiX, SolidWorks Simulation. QForm для листовой очень так себе.   Возможно, Вам будет проще отдать расчёт на сторону (например, мне), недорого.
    • Udav817
      Скорее всего это надо искать в функционале модулей по расчёту деформаций. В общем, это сопромат. Моделировать окажется сильно дольше, чем провести эксперимент. Да и моделирование без эксперимента будет неточным.
    • Udav817
      Несколько это сколько? Я вижу только 2 детали. Большой контур, который делается замкнутым и маленькая скоба внутри. Ну, большой контур можно конечно сделать из двух частей, если технология не позволяет согнуть так, чтобы замкнуть и стык сварить. Тогда будет 3 "куска". И это не зависит от того, в скольки плоскостях гиб. Только от качества гибочного инструмента и опыта слесаря.   Длина развёртки может быть неточной только если пруток при гибке плохо зафиксирован. А так на таких габаритах плюс-минус 2 мм максимум (на большой детали). "схему гибки" придётся чертить вручную. CAD здесь поможет только размерами отрезков и дуг из эскиза. Как вариант, можно просто на видах указывать размеры от одной точки. Вручную, разумеется. Тогда будет больше ясности какой элемент идёт следующим. А если начертить прямой кусок и на нём нанести размеры, это не будет так наглядно. Это всё же не листовой материал и разницу надо понимать.
    • Udav817
      Проверяй права админа. И если библиотеки на сервере, там может быть настроен откат из резервной копии. 
    • раздватри
      Хорошо, прекращаем, но по ссылке я обнаружил только бред о крыльях пчел. А ведь они жужжат и возможно на звуковых волнах висят. Как вам этот бред ... Любое неисследованное явление должно быть сперва показано, а потом исследовано и очень редко наоборот, случайно. Ничего этого нет и быть не должно. Только бабка-Яга и на швабре - сказка словом.
    • Krusnik
      Подниму некропост. Решил я сделать себе CREO c блэкджеком и шлюхами со своим Hole. GOST.hol   Но уткнулся в следующее.  В hol файле есть фаски, и я внес в него заходные фаски под резьбу. Но нужны ещё фаски и под потай, плюс цековки под винты, болты. И все они разные.   Как удобнее делать это в CREO? Делать отдельные файлы типа 17475.hol?
    • MAXIKOT
      Я скачал триальную версию. Может я что-то не так делаю, но в списке файлов постпроцессора мне что нужно выбрать для этого?   да как тут картинку то вставить в сообщение, блин. https://thumb.cloud.mail.ru/thumb/xw1/new.jpg
    • НиколайП
      Картинки нет. Полосовой профиль - это банальная полоса, узкий длинный лист. Свободная кромка - та, что не сварена с листом настила. Вот как это может выглядеть (только пример, нет реальной задачи).   Стандарт требует пускать по свободной кромке фиктивный стержневой элемент, вот так:   Зачем это нужно? Зачем в этом несуществующем элементе измерять напряжения? Пояснений я в правилах РМРС не вижу.  Когда DNV рекомендует пускать стержень по краю мембранного элемента для устранения сингулярности - это понятно. Когда наш регистр пихает в правила не обработанный текст из Гугл-переводчика - непонятно.
    • sazewar
      Всем доброго времени суток! Объясните, пожалуйста, нубу (может не очень внимательно читал, но всё же) В общем, задача такая, внедрить Teamcenter (или другую pdm-систему, главное чтобы была с интеграцией solidworks или NX), как минимум, на 3 компа (а лучше на 10).  Как я понял, нужно следующее: 1) На одном из компов устанавливаем серверное ПО (Windows Server 2012R2 x64 + MS SQL Server 2012 SP2 x64 и еще что-то). На это всё устанавливаем Teamcenter, серверную часть.  2) Затем устанавливаем клиентские части тимцентра на другие компы. 3) Тут главный вопрос. Как их связать, чтобы мы друг друга видели? Ну то есть, через локалку, или еще как-то? Ну чтобы сосед подключился к моему серверу, и мы начали работать в одной базе, как положено. Нигде, в инструкциях я на этот вопрос ответа не нашел.  4) Как подвязать NX в этот Тимцентр (а лучше еще и solidworks)?  В общем, не нашел в теме ответ, как связать несколько тимцентров между собой. Догадки есть конечно, но просвятите пожалуйста.
    • a_schelyaev
      Вы знаете, вы мне напоминаете человека, который решил все измерения любых величин приводить к мм размерности, для чего ему пришлось вводить дополнительные коэффициенты "обрезающие" ед изм до мм. Вам говорят "зачем?", а вы в ответ "потому что я очень умный!". И вот стоит он, доказывает какой он умный себе на уме.
×
×
  • Create New...