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

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

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




  • Сообщения

    • Ninja
    • Ninja
      В зимнее время водители устанавливают на колёса специальные цепи против скольжения. В мире разработано множество видов цепей и способов их установки. Японцы применяют "цепи Абэ". Кто этот великий инженер? Это знаменитый японский писатель Кобо Абэ. Для уединенного писательского труда Абэ купил домик в горах. А в горах зима ранняя, снежная, затяжная. Без цепей на колёсах можно и улететь с обрыва. Абэ периодически заводил машину и спускался в долину. Почту получить/отправить, в магазине продукты купить, ящик рисовой водки. (Известное дело: насухую великую книгу не напишешь). В долине приходилось цепи снимать. По правилам цепи запрещается применять при отсутствии на дороге снежного покрова. В те времена для установки/снятия цепи требовалось домкратом поднимать каждое колесо. В машине 4 колеса. Товарищу Абэ приходилось корячиться с домкратом. При этом в самых нелитературных выражениях комментируя политику правящей партии и все домкраты в мире. Купил в магазине бухлишко-закусь. Поехал домой в горы. А там снег, скользко. Цепи требуются. Опять писатель и драматург Абэ домкрат крутит. Всё это насмерть надоело Абэ. Обратился к компаниям-производителям: придумайте способ установки цепей без домкрата! Но производители ничего не придумали. Или не захотели. Тогда Абэ сам придумал способ установки цепей без необходимости поднимать колесо. Послал изобретение на конкурс. И неожиданно получил призовое место и патент. Новый способ установки цепей быстро завоевал популярность. Так и пошло у японцев - "цепи Абэ". Кобо Абэ не получил Нобелевскую премию по литературе. Уже выдвигался, уже все были уверены в том, что он её получит. Но не успели, писатель умер. А это всё дурацкие цепи виноваты. Сколько времени он потерял в установке/снятии цепей? Сколько времени, вместо того чтобы писать, он крутил домкрат? Вот и не успел. https://ru.ruwiki.ru/wiki/Абэ,_Кобо
    • gudstartup
      приемлимо. температуру мотора посмотрите. если вентилятор нормально вращается и его скорость соответствует оригинальному а также контакт в разъеме нормальный а F все равно появляется то даже не знаю что у вас может быть так как привод у вас новый
    • Koels
      Хмм, я думал раз она вылазит даже в простое, то Z координата висит на тормозе и дело не в этом. Спасибо за мысль, щас узнаю. Вообще у нас рядом стоит точно такая же макина, точь в точь и там таким проблем нет. Много заказов и отсутствие специалистов сделало свое дело. :) @gudstartup, 58% нагрузка на координату
    • mrVladimir
      Что-то я немного засомневался. Если решим брать новое ЧПУ, то искать точно такое же необходимо по номеру сзади корпуса (пластикового пластмассового) - так? А если брать только плату (материнскую или как ее лучше назвать...), на которой установлена (запаена) микросхема 1 на моих фото выше, то искать плату необходимо по номеру, который указан на самой плате - так? В моем случае : ЧПУ : A02B-0321-B520. Код на плате : A20B-8201-0081/01A. Если, допустим, мы покупаем ЧПУ A02B-0321-B520 - будет ли это гарантией того, что в нем установлена плата A20B-8201-0081/01A. И можно ли будет его считать таким же. И с отдельно приобретаемой платой тоже самое - если номер на ней полностью совпадает с нашим, значит ли это, что она полностью идентична. P.S. : извиняюсь за , возможно, навязчивые вопросы. Просто не хотелось бы попасть впросак из-за своей некомпетентности. такой файл есть, но мне говорили, что после снятия архивов, его лучше вообще никогда нигде ни использовать. А на каком этапе он нам может понадобиться?. Если, как говорил Виктор, мы зальем архив SRAM на старый модуль (ROM-SRAM), установленный в новое ЧПУ, то и файл OPRMINF не нужен. Правильно же?
    • Slavdos
      Доброе. делюсь 1 внедренным китайцем. купили у ЛЛС MARVEL PRO 6000-3015.HGT , 2 шт , с автоматизацией. станки неплохие, интерфейс русские, достаточно дружелюбен. за автоматизацию зря переплатили, китай похоже в этом сильно уступает европе. из неожиданностей- резка воздухом дает неудаляемый грат, по сути необходимы зачистные станки.
    • Killerchik
      Я 4 комфорки на скоростной шпиндель поставил, в этом же качестве)))))
    • gudstartup
      я предлагал операторам чай кипятить чем больше и интенсивнее работают тем чаще чайку попить можно нельзя же чтобы тормозной кипятильник перегрелся
    • Viktor2004
      и этот человек смеялся когда я использовал кипятильник вместо тормозного резистора
    • gudstartup
      @mrVladimir если у вас нет копии oprminf обязательно сделайте
×
×
  • Создать...