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

Функции 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 пользователей

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




  • Сообщения

    • ДОБРЯК
      В уравнении задачи на собственные числа только две матрицы - жесткости и масс. Надеюсь мы не будем обсуждать вопрос. Зависит ли матрица масс от правой части (от нагрузки)? От нагрузки зависит только жесткость. Кстати от температуры тоже зависит нагрузка. И естественно собственные частоты. Если на поверхностном уровне, то надо учитывать гироскопические силы и силы Кориолиса. Насколько эти силы влияют на собственные частоты зависит от конструкции и частоты вращения. Для гидро турбин это вообще ни о чем. Речь идет только про расчеты по МКЭ. Может быть какие то еще силы влияют на жесткость. Нужно глубже разбираться. Но все эти силы одного порядка... Надо смотреть документацию к программе, а если документации нет, то это черный ящик.   
    • taarok
      Комрады, всех с майскими праздниками. Кто нибудь может поделиться постом для fanuc oi-mf Solidcam. Taarok.d@yandex.ru заранее благодарен, быстрых вам подач и хороших фрез))    
    • Tad
      Это предупреждение о необходимости очередного техобслуживания машины. После его выполнения надо проделать некоторые манипуляции, как описано в приложенном документе   2010 0i pc AL2004 .pdf
    • Fedor
      https://www.mathnet.ru/links/70adc00f76e7f355f5e14569f99dd8dc/tm1745.pdf#:~:text=Под полной обобщенной проблемой собственных,из собственных векторов относительно 5.   Хотите посложнее читайте классику по обобщенной проблеме ... :)
    • Jesse
      а что такое этот corioliss в Ansys? что делает эта опция?
    • Борман
      А ну вот как раз вспоминаю про гироскопический момент, как интеграл сил инерции, действующих на смещенное колесо. И вот тут как раз появляется зависимость от направления вращения. В одном случае этот момент будет выворачивать колесо наружу, а в другом пытаться вернуть колесо ближе к оси. Но это эффект следующего порядка, и prestress-модальник его не схватывает. А сиса как-то сама умеет это учитывать, отсюда будут и разные частоты. Много на эту тему почерпнул (для себя) из книги Жирицкого, на которую ссылался в теме по вашей ссылке. Эту тему я забросил в начале 2008 года и больше не касался ее.
    • rocket
      Добрый день, у нас 4 осевой станок Syntec 6MB с поворотной головой вокруг оси Y, покупали б/у и приехал еще с поворотной осью А подключенный но не видящий ось А. В итоге помогло поменять в параметрах в разделе/index 10 поменять на 2 и в index 24 где ось B поменять 4 на 0 а в index 25  поменять с 0 на 4 (чтобы он читал с 4 порта) если посмотреть как идет подключение, то от этого зависят цифры 
    • maxx2000
      Спасибо КЭП, но в ярлыке ничего прописывать не надо, достаточно создать новый ярлык. Вопрос был про вызов справки из приложения. Впрочем, перезагрузка ПК устранило это досадное недоразумение.
    • Maxmore
      Согласен полностью, через всё это пришлось пройти. От себя добавлю что у нас 400ый не PRO а обычный - его еще больше пришлось доводить до рабочего состояния, так как их производят разные заводы. с ITX508MY еще все более печально было - проблемы на пусконаладке, затем замена прокладок, затем пусконаладка уже с участием китайца...в общем да, помучаться пришлось. С большего оборудование рабочее, свои функции выполняет. Фануковские посты можно доработать до HNC без особых проблем.
    • Fedor
      Для любой размерности можно решать полином этой размерности. Такова сущность вопроса существования, а не конкретное явление вычисления. Дух, а не буква :)
×
×
  • Создать...