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

Расширенное программирование Sinumerik


BamsiII

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

Приветствую вас, коллеги!

Не имел ли кто из вас опыт программирования вызова подпрограмм с передачей параметров?

Пример в документации скуп и несовсем понятен.

Вот описание формата команды:

PCALL <путь/имя программы>(параметр 1, ..., параметр n)

Параметры 1 до n : Актуальные параметры согласно оператору PROC подпрограммы.

С путем тут все понятно. Неясно каким образом нужно описывать процедуру в подпрограмме.

Допустим, файл подпрограммы я назвал MY_SPF, в котором я описываю прототип моей процедуры PROG. Имя процедуры при этом нужно повторить с именем файла, в которой она описана? Т.е., процедура в файле подпрограммы должна объявляться следующим образом?

PROC MY_SPF (var1, ..., var n)

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

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


Вот пример:

Основная программа:

N20 Extern Kreis (REAL,REAL)

N820 KREIS(5.5,3)

Подпрограмма:

PROC KREIS (REAL RAD,REAL EIN) SAVE

;

G91

G1 G41 G64 X=-(RAD-EIN) Y=EIN

FFWON

G3 X=-EIN Y=-EIN I0 J=-EIN

G3 X0 Y0 I=RAD J0

G3 X=EIN Y=-EIN I=EIN J0

FFWOF

G0 G40 G60 X=(RAD-EIN) Y=EIN

G90

M17

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

Вот пример:

Основная программа:

N20 Extern Kreis (REAL,REAL)

N820 KREIS(5.5,3)

Подпрограмма:

PROC KREIS (REAL RAD,REAL EIN) SAVE

;

G91

G1 G41 G64 X=-(RAD-EIN) Y=EIN

FFWON

G3 X=-EIN Y=-EIN I0 J=-EIN

G3 X0 Y0 I=RAD J0

G3 X=EIN Y=-EIN I=EIN J0

FFWOF

G0 G40 G60 X=(RAD-EIN) Y=EIN

G90

M17

Благодарю за пример, но насколько я понимаю, подпрограмма KREIS описана в одном файле с основной программой, верно?

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

Все, что я нашел в мануалах по этому поводу - это PCALL. Но нет понимания, как использовать эту функцию.

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

Приветствую вас, коллеги!

Не имел ли кто из вас опыт программирования вызова подпрограмм с передачей параметров?

Пример в документации скуп и несовсем понятен.

Вот описание формата команды:

PCALL <путь/имя программы>(параметр 1, ..., параметр n)

Параметры 1 до n : Актуальные параметры согласно оператору PROC подпрограммы.

С путем тут все понятно. Неясно каким образом нужно описывать процедуру в подпрограмме.

Допустим, файл подпрограммы я назвал MY_SPF, в котором я описываю прототип моей процедуры PROG. Имя процедуры при этом нужно повторить с именем файла, в которой она описана? Т.е., процедура в файле подпрограммы должна объявляться следующим образом?

PROC MY_SPF (var1, ..., var n)

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

Все ж просто. Создаем файл spf. В нем действительно в самом начале будет нечто подобное -

PROC MY_SPF (REAL VAR1 ,REAL VAR2)

еще можно внутренние переменные юзать через - DEF REAL Var3_inside

...

Var3_inside = VAR1 + VAR2

G90 G00 Z=Var3_inside (к примеру)

...

...

M17

А в основной программе вызов так же чудовищно прост

...

...

Т2 М6

G54 D1

...

...

MY_SPF (100,200)

M30

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
      а 319 контроллеров у вас нигде более нет чтобы попробовать? может попробовать обычным step7 выгрузить 317 добавив туда какой нить аддон поновее версии? вы побольше выливайте все впитаем а с чего вообще взяли что аддон синумерик 1 предназначен только для тиа портала? для этого в степ 7 были аппаратные апдейты и я уверен что в тиа они тоже есть только нам сейчас недоступны
    • Andrey.V
      Совсем нет, у меня есть х8. 2016 совсем другой 
    • hlibhlib
      Нашел в инете запись про мастеркам 2016 = Оказывается, это Мастеркам 8 
    • Andrey.V
      2016 версия  Выше ответил. Оригинал файла не могу выслать, поищу что-то похожее и обязательно вышлю 
    • hlibhlib
      Может Эксклюзив????????????   Но такой версии точно не было. ))
    • GalielO
      Такой версии нет. Есть Х9 и 2017. У вас точно Mastercam?
    • Andrey_kzn
      @gudstartup , а вы впитываете информацию как губка Код у сименса хранится в контроллере в пригодном для редактирования виде. И по идее, должен выгружаться. Естественно без комментариев. Просто в нашем случае - это станок с 840DSL и контроллер  319, выгрузить проект в портал я  не могу. И в Step7 тоже не могу, пишет что-то про несовместимость версий.  Как будет в случае с настоящим Sinumerik ONE, не знаю.  Там контроллер 1500. Тут ещё надо не забывать о аппаратно-программной совместимости портала и железа, порталов уже куча разных версий вышла.  Поэтому, если перед вами станок с Sinumerik ONE, совсем не факт, что железо будет совместимо с вашей версией портала.  Станок с проектом в тиа портале у нас один,  и попробовать больше негде.  
    • hlibhlib
      Попробуй    Строй поверхности и по ним траекторию. Нет файла = нет конкретики.
    • Andrey.V
      У меня 16
    • hlibhlib
      В смысле не нашел?!!! У тебя какая версия? На видео 21-ая.
×
×
  • Создать...