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

Как определить программно нажали кнопка М01


Сергей Львов

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



Уважаемый @Сергей Львов !

В области СТАНОК в режиме AUTO выбрать функциональную клавишу НАСТРОЙКА ПРОГРАММЫ. В правом углу экрана появится окно настройки. 

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

Человеку нужно в УП проверить параметр, активна ли опция останова по M01. Ему не на стойке нужно глядеть.

Не знаю, зачем это ему нужно, но, полагаю, нужно =) если он расскажет - будет интересно. Любопытно.

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

Уважаемый @s_liam !

И это можно сделать, уточнив какая СЧПУ.

Если есть возможность внести дополнение в программу электроавтоматики, проанализировать битов PLC. соответствующие биты в DB21 (см. документ FB1), установив MD20800. А в УП анализировать системные переменные битов PLC.

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

Может, имеется ввиду, команда какая-то есть? Например, чтобы проверить активен ли поиск кадра, можно создать условие

IF $P_SEARCH ...

где $P_SEARCH - параметр поиска. Если он равен 0, то режим запуска с поиска кадра не активирован на стойке.

Возможно, что-то подобное есть и с функцией M01?

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

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

На ноже никто не пишет предупреждение, что он острый.

В начале программы забей М0 с сообщением-вопросом: "А Вы не забыли включить М1  ???" 

Если не поможет, то прям перед М1 забить ещё одно такое сообщение, но уже со словом "хороший человек" 

А можно и просто М1 заменить М0

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

Правда, потом появится вопрос:" А как проверить включена ли косая черта?"

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

$ac_timer[1] = 0

M1; просто нажмите старт

if $ac_timer[1] > 0.001

; клавиша M1 нажата

else

; M1 не нажата

endif

 

44 минуты назад, Ander сказал:

Правда, потом появится вопрос:" А как проверить включена ли косая черта?"

О нажатой или нет "косой черте" узнать легко.

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

Нам тоже потребовалось в программе определять, нажата ли кнопка опционального останова M01. Сначала скажу зачем это может быть нужно. Наш станок, встречая команду M01, останавливает выполнение программы, но не выключает вращение шпинделя и СОЖ. Остановить вращение шпинделя кнопкой Spindle Stop тоже невозможно. При вращающемся шпинделе сделать какие-то замеры нельзя, поэтому приходилось сбрасывать программу, что не очень удобно. Задавать команды выключения M5 и M9 перед остановом - не вариант, так как при непрерывном выполнении программы остановки и новые включения вращения шпинделя замедляют работу станка.

Поэтому хотелось бы, чтобы при нажатой клавише M01 программа понимала, что требуется сделать какие-то ручные действия, и останавливала всё что требуется, а может даже отводила инструмент от заготовки.

Для этого можно использовать таймер $AC_TIMER[1], но желательно убедиться, что он не используется какими-то служебными программами, в противном случае следует использовать в квадратных скобках другой номер таймера.

Пишем в месте остановки "по требованию" такой код:

$AC_TIMER[1] = 0
M1
IF $AC_TIMER[1] > 0.1
M5 M9
Z=<безопасное расстояние>; если нужно
M0
ENDIF
$AC_TIMER[1] = -1

Если клавиша опционального останова НЕ НАЖАТА, то таймер с момента его включения ($AC_TIMER[1] = 0) до проверки условия (IF $AC_TIMER[1] > 0.1) не успеет отсчитать эти 0.1 секунды и управление сразу перейдёт на команду следующую за строкой ENDIF, таким образом, останова, а также выключений M5 M9 не будет.

Если клавиша опционального останова НАЖАТА, то станок остановится по команде M1, мы нажимаем клавишу START, после которого происходят желанные выключения M5 M9 и останов программы командой M0.

Команда $AC_TIMER[1] = -1 останавливает работу таймера.

Этот фрагмент можно поместить в подпрограмму OPTIONAL_STOP.SPF и использовать более лаконичный код основной программы.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • jtok
      Он сильно зависит от марки PP, от расчетной температуры и от расчетного срока службы (количества циклов нагружения). Поищите стандарт DVS 2205, части 1 и 2. В нем есть номограммы долговременной прочности. Он на немецком, но ничего лучше нет. Номограммы эти приведены по ссылке, внизу страницы, раздел "Список приложений".  Например, диаграмма для PP type 1 по ссылке: В оригинале же выглядят они вот так (для PP type 1): Также был древний документ на русском по этой теме, прицеплен к сообщению. _raschet_emkosti DVS 2205-2.pdf
    • Andrey_kzn
      - тут возможно смысл сообщения в том, что оси не синхронизированы, только вот зачем синхронизировать  оси X и Y не понятно. В случае двух шпинделей например,  coupled будет означать синхронизацию.
    • niagara39
      Правильно ХУ на этом станке не перпендекулярны. Тормоз оси У включен постоянно, отключается только при перемещении самой оси У. Координаты не  меняются... Знать бы что за параметры, пока ничего подобного не нашли
    • nicomed
      Поднял старые записи. Из того что было максимально похоже на то, что можно было назвать "получалось" :   Самому не совсем понятно поведение СкетчМенеджера при отрисовке линии от координат 0,0,0 - частенько слетает в произвольное место на виде. 
    • maxx2000
      на втором  скрине PLC сообщает что-то типа "старт программы запрещён потому что оси ХУ не связаны". Возможно станок в режиме точения должен заблокировать перемещение У, включить тормоз или что-то ещё для произвольного смещения под нагрузкой. Возможно косяк в тексте программы.
    • maxx2000
      @sneg0vik как это? Если ХУ не перпендикулярны то это уже не У, а скажем ось В. Нет, конечно в теории можно построить станок с неперпендикулярными ХУ. Вопрос зачем? Gildemeister CTX 420 это же токарно-фрезерный с осью У
    • sneg0vik
      На станке ось "X" является наклонной по отношению к оси "Y" (т. е. они не перпендикулярны). Поэтому надо полагать (учитывая текст ошибки) у вас отключена связь оси "Y" с осью "X".   Проверьте меняются ли координаты оси "X", когда вы двигаете ось "Y". И наоборот. Если - нет, то ищите как включить (наверное через параметры) взаимосвязь оси "Y" с осью "X".
    • ДОБРЯК
      Если ваш Заказчик и такую работу примет, то необходимо в шпоночное отверстие добавить и массу воды. Примерно 1/4 от той массы которую вы будете добавлять.  Да и еще и не забыть добавить момент инерции от воды.
    • Soprin
      В функции MOVE по F7.3 должно же из R270 переносить в R278?
    • niagara39
      Причина все еще не найдена... Но заметил, что сразу после включения в меню диагностики появляется следующее предупреждающее сообщение: 10155 M: Y-axis: Y-axis and X-axis not coupled , но причина его появления и его смысл неизвестны
×
×
  • Создать...