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

Функции IF и GOTO на Sinumerik 840D


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

Не получается прописать в программе переход.

 

IF ($AA_IM[Y]<=100.) = TRUE GOTOB N10

IF ($AA_IM[Y]>100.) = TRUE GOTOF N20

 

Подскажите, что не так прописываю.

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


1 час назад, JaVa сказал:

Подскажите, что не так прописываю

Оператор сравнения ==.

Этот оператор и TRUE и скобки можно убрать из текста.

 

 

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

Ввел по новому.

 

IF $AA_IM[Y]<=100. GOTOB N10

IF $AA_IM[Y]>100. GOTOF N20

 

Все так же пишет - ошибка синтаксиса IF. В чем может быть дело?

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

IF $AA_IM[Y]<=100. GOTOB N10

IF $AA_IM[Y]>100. GOTOF N20

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

Этот текст не содержит ошибок (анализ текущей станочной координаты оси Y). Ошибка в расположении кадров программы.

Приведите фото экрана в области СТАНОК при ошибках. И полный текст программы.

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

дык, вроде, метка должна кончатся двоеточием и не уверен, что можно использовать N. Это в фануке номер кадра используется, как метка.....

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

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

Какая-то странная логика. Программа будет работать (ось Y в 0) пока ось Х не будет в плюсовом конечнике. Что такое кадр J0 в Вашем примере?

Напишите простой тест

N10

N11 IF $AA_IM[Y]<=100. GOTOB N10

N12 IF $AA_IM[Y]>100. GOTOF N20

N20 M30

Номера кадров обязательно. До пука ось Y переместите в координату больше 100. Перед вторым пуском переместите ось Y в координату меньше 100. Теоретически программа должна  циклиться. Я не знаю реакцию симулятора в этом случае.

Введите заново текст Вашего примера (PART1.MPF), НЕ копируя, пронумеруйте все кадры.

После пуска сделайте СРАЗУ два скриншота - область СТАНОК и область СТАНОК->КОРРЕКЦИЯ ПРОГРАММЫ 

 

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

Нашёл в чём проблема. Симулятор не распознаёт $AA_IM[Y]. С переменными R0, R1 все работает нормально.

 

DEF INT R0=$AA_IM[Y]

 

Пробовал так прописать, но он выдает то, что на прикреплённом скриншоте. Может неправильно саму $AA_IM[Y] прописываю? Как ещё можно перенести актуальное значение оси Y в значение переменной?

1.png

2.png

Попробовал переписать. Получилось это.

1.png

2.png

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

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

1) Прочитайте описание DEF

2) Сделайте два теста

N1 R0=$AA_IM[Y]

N2 M30

посмотрите значение

Сдвиньте ось Y

Опять проверьте значение R0.

3) Внимательно вглядывайтесь в текст программы. Это основной способ поиска ошибок. Раз у Вас есть симулятор, старайтесь отработать вопросы на простых тестах.

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

GOTOB N20..

А где номер кадра N20 или метка?

Обычно пишут так

_MARK:

.......

IF .... GOTOB _MARK

 

Тогда, если будет выполнено условие, программа перейдет назад в строку _MARK:

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

GOTOB N20..

А где номер кадра N20 или метка?

Обычно пишут так

_MARK:

.......

IF .... GOTOB _MARK

 

Тогда, если будет выполнено условие, программа перейдет назад в строку _MARK:

Переход на кадр по номеру кадра, а не по метке не рекомендуется (так как есть опасность, что номер нужного кадра изменится при автоматической перенумерации программы), но работает.

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

Переход на кадр по номеру кадра, а не по метке не рекомендуется (так как есть опасность, что номер нужного кадра изменится при автоматической перенумерации программы), но работает.

 

В 25.12.2018 в 13:49, JaVa сказал:

Собственно, это симулятор для стойки EMCO.

 

 


Я в примере номера кадра не увидел. А ссылка на него есть.

Я к тому, что может попробовать по ссылке на метку?

Изменено пользователем s_liam
Ссылка на сообщение
Поделиться на других сайтах
  • 7 месяцев спустя...
В 25.12.2018 в 12:49, JaVa сказал:

Собственно, это симулятор для стойки EMCO.

1.png

2.png

В строке номер 8 содержится недопустимый код: "J10." Символ J  обычно используется в составе кода G2/G3, G34/G35, G331/G332  как вспомогательный параметр для указания позиции центра окружности/шага резьбы по оси ординаты.

Ссылка на сообщение
Поделиться на других сайтах
В 26.12.2018 в 09:55, JaVa сказал:

Нашёл в чём проблема. Симулятор не распознаёт $AA_IM[Y]. С переменными R0, R1 все работает нормально.

 

DEF INT R0=$AA_IM[Y]

 

Пробовал так прописать, но он выдает то, что на прикреплённом скриншоте. Может неправильно саму $AA_IM[Y] прописываю? Как ещё можно перенести актуальное значение оси Y в значение переменной?

1.png

2.png

Попробовал переписать. Получилось это.

1.png

2.png

А здесь ещё больше ошибок...

1. Объявление переменных (DEF) можно делать только в "шапке" программы, поверх любых используемых в дальнейшем команд. Исключение - ";".

2. Обращение к системным переменным происходит через ключ "$", а не "%".

3. R-переменные объявлять не надо. И тип данных у них - REAL, а не INT.

4. Команда ELSE используется в управляющей структуре IF...ELSE...ENDIF.

5. Примечание. В качестве ссылок для перехода можно использовать номер кадра "N", метку перехода "Label:" или переменную, содержащую "N" с номером кадра или имя метки с ":".

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • anykeyto
      День добрый коллеги. Работает ли кто на этой стойке? Где берете информацию по программированию кроме мануала от Ками?  Интересует макропрограммирование, программирование цилиндрической интерполяции. Да и вообще, давайте делиться опытом. В свободном доступе практически нет никакой информации о работе станка и стойки этого чуда китайской инженерии.  Вопрос про G108, пользовался ли кто функцией CTOS/STOC?   
    • __Andrey__
      Доброго всем времени суток. Начал сборку станка для симуляции. Загрузил модель станка DMU50 в папку. В генераторе станков сделал настройки осей. Постпроцессор на sinumerik создал из шаблона. Скопировал папку cse_driver со станка с похожей кинематикой (sim06_mill_5ax). В файлы .dat внесены данные. При запуске симуляции по машинному коду ругается, что не найден файл PMAC. После закрытия окна с ошибкой продолжает работу и доходит до смены инструмента и там выскакивает ошибка. . Прошу помощи с этой проблемой. Файл to_ini генерируется в папку cse_driver.
    • anykeyto
      Устроился в начале года в контору где стоит IronMAC IMU-5X 400 Pro. Стойка HNC8-848di. Контора отправила на обучение, на курс 5-осной обработки на этой стойке, в цто Ками в Москве. В целом все доступно и понятно. Это когда было само обучение. Но в работе самой стойки есть куча вопросов. По факту на стойка не настроена. Не знаю, может наладчик который запускал станок попался ленивый, может в другом была причина. Но первый месяц-полтора занимался только настройкой системы (что знал, что пришло в процессе изучения параметров, ладдера, и прочее).   Сам станок интересный и понятный. Но русская локализация хромая, как и мануал от ками. Там голимый перевод то ли с английского, толи с китайского.... но вместо фрезы "нож" и так далее.  Основа тут G код, в целом почти фанук, но есть отличия. Есть группа циклов для фрезеровки сверления, резьбы и расточки, под них есть прям шаблон, в котором только переменные задаешь, но криво реализован синтаксис, который поправить можно уже непосредственно в коде.
    • Ветерок
      В ярлыке прописать путь к русскому файлу: "C:\PTC\Creo 8.0.4.0\creo_help_pma\russian\index.html"
    • Guhl
      Номера 2000 и выше - это вроде как не ошибка а сообщение оператору Открывайте инструкцию на станок с описанием сообщений или смотрите в ладдере в чпу или скачайте ладдер и смотрите в Fladder3
    • ДОБРЯК
      В МКЭ это классический modal-prestress анализ. Из МКЭ вы получаете только матрицу масс и матрицу жесткости. На этом МКЭ заканчивается. Дальше решайте как хотите. Вот Федор решает квадратное уравнение и получает первые собственные частоты.:=) Вопрос только в том какие силы нужно задать, чтобы получить начальные напряжения и как эти силы зависят от частоты вращения. Дальше матрица начальных напряжений суммируется с матрицей жесткости. Естественно данное суммирование меняет жесткость конструкции. Поэтому и говорят про преднапряженный модальный анализ. Основной вопрос какие силы нужно приложить в зависимости от частоты вращения, прежде чем делать статический анализ.  Но вы этот вопрос не освещает. Это ваше право не подумайте, что у меня есть какие то претензии.
    • Fedorly
      Вашему вниманию предоставляется программа, которая позволяет пакетно обработать DXF файлы разверток и получать Длину реза, Количество врезок, габариты развертки, миниатюру.  Полученные данный  легко сохраняются в PDF, Excel, txt и другие форматы. Дальше, полученные данные, могут быть применены в расчете себестоимости детали Скачать  
    • maxx2000
      такой дурной вопрос. Как сделать чтобы офлайн справка вызывалась на русском? перезаписать файлы английской справки русской или можно где-то, что-то подправить?
    • ДОБРЯК
      @Jesse может быть эта тема вам поможет понять почему частоты не меняются... https://cccp3d.ru/topic/83522-%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0-%D0%BA%D1%8D%D0%BC%D0%B1%D0%B5%D0%BB%D0%BB%D0%B0-%D0%B4%D0%BB%D1%8F-%D0%B2%D0%B0%D0%BB%D0%B0-%D1%81-%D0%BA%D0%BE%D0%BB%D0%B5%D1%81%D0%BE%D0%BC/?ysclid=lvrjkzdpez476841118
    • Артур8991
×
×
  • Создать...