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

передача параметров proc


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

простите за глупые вопросы, но нужно разбираться

создал главную программу GLAV_MPF, и подпрограмму PODPR_SPF, нужно передать DEF переменные подпрограмме,

 

Главная программа GLAV_MPF

PODPR_SPF (10,20,30)

...

M30

 

подпрограмма PODPR_SPF

PROC PODPR_MPF (INT ODIN, INT DVA, INT TRI)

...

RET

 

Ошибка, имя PODPR не определено,

когда используешь PROC, или PROC...(VAR...) кто кому передает параметры? и в какой директории лучше создавать подпрограмму?

 

 


 

 

 

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


UnPinned posts
2 часа назад, Aveovar сказал:

 

подпрограмма PODPR_SPF

PROC PODPR_MPF (INT ODIN, INT DVA, INT TRI)

...

RET

 

Ошибка, имя PODPR не определено

Здравствуйте. В главной программе, в самом начале добавьте строку

EXTERN PODPR(INT, INT, INT)

Окончания _SPF и _MPF из текстов программ уберите. 

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

Здравствуйте. В главной программе, в самом начале добавьте строку

EXTERN PODPR(INT, INT, INT)

Окончания _SPF и _MPF из текстов программ уберите. 

Дружище, как ты это делаешь? я весь день пробегал от книжки до станка и обратно, спасибо что отвечаешь. А файл UC.COM нужно прописывать? или эта строка его заменяет?

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

А файл UC.COM нужно прописывать? или эта строка его заменяет?

Про этот файл не знаю. Чтобы не писать EXTERN, попробуйте подпрограмму расположить в папке Циклы пользователя. Если эту подпрограмму планируете вызывать из разных программ.

И перезагрузите станок.

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

Про этот файл не знаю. Чтобы не писать EXTERN, попробуйте подпрограмму расположить в папке Циклы пользователя. Если эту подпрограмму планируете вызывать из разных программ.

она там и находилась, но, у нас все подпрограммы сопровождались файлом UC.COM, сам мало что знаю про него, но без него не вызывались подпрограммы даже из циклов пользователя

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

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

А теперь о передаче параметров в подпрограмму. Передавать различные значения из главной программы в подпрограмму можно несколькими способами: 1. При помощи глобальных R- переменных; 2. С помощью передачи параметров через связку proc/extern; 3. Через глобальные пользовательские переменные, объявленные в главной программе. 

Кстати связку proc/extern лучше использовать в тех случаях, когда программа задумывается как универсальная подпрограмма. 

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

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

Видел такие только в PCU20

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

В  этих модулях я не очень "секу"... Весь опыт и знания накоплены при работе на стойке Sinumerik 840D sl. Ну и кое-что знаю о стойке 802D. При " углубленном" изучении структуры интерфейса стойки 840D sl и "ковырянии" в коде циклов нашёл кое-какую информацию и о файлах с расширением ".COM". Вообще же, руководств на русском языке по стойкам Sinumerik не очень-то и много, а реально полезной, эксклюзивной информации в них и того меньше. А английский я, увы, знаю плохо, так что без хороших разъяснений со стороны русскоязычных гуру освоить эту стойку на уровне профи очень и очень сложно...) 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • vladimir.songin
      Здравствуйте. Есть пресс с контролёром DELEM 65. Имеются оси: Y1, Y2, X, X1, R, Z1, Z2. Некоторые оси отключены, некоторые работают хорошо, некоторые плохо. Например ось z2 сама по себе двигается постепенно в бок. Это начало раздражать и попытались эту ось отключить. Процедура понятная, некоторые оси уже были отключены раньше. Но после отключения появилась ошибка: MSA missing for module 2012391. Ошибка появлялась всегда после перезагрузки и оси даже не начинали инициализироваться. Проблема по CAN шине. Своими силами разбираться желания особо у меня небыло. Нашёл ребят в польше, которым выслал весь компьютер с расширениями и они как бы его починили, но... не совсем. После ремонта, контролёр видит все блоки, через 50 меню видим все входы, управляем всеми выходами, в том числе аналоговые. После включения соответствующих выходов, все оси (у которых рабочие сервомоторы) управляются и слушаются. Но при старте не инициализируются и станок не запускается. Никаких ошибок нет. Кода заходим в 50 меню, а затем в какой либо блок расширения, в верхней строке видим счётчик энкодера. Во время управления конкретной осью, либо просто если ось подвинуть вручную или повращать энкодер, показания счётчика меняются. Кроме оси Х. А с осью Х происходят чудеса. При входе в блок DM02, который управляет осями Y1, Y2, X, и компенсатором нижней балки, в верхней строке должен высвечиваться счётчик энкодера, а справа сверху параметр аналогового входа. Аналоговый вход, в нашем случае, э то обратная связь положения компенсатора. При активации соответствующих выходов, включается мотор компенсатора и в одну либо другую сторону и  меняется значение обратной связи аналогого входа. А теперь самое интересное - в поле счётчика энкодера высвечивается то же самое значение, что и в окне аналогого входа.  Я не знаю это ли является причиной, лишь предполагаю, но ось Х не инициализируется и станок не запускается. Если отключаю ось X, X1, Z1, Z2, а оставляю только Y1 Y2 и R, то станок запускается и работает. Как только добавляю X, инициализация не проходит и станок не работает.  Прилагаю видео:  https://1drv.ms/v/s!Agwfggcm6YCVweRffGg_8KeuB2SeJA?e=lleTFw Если вдруг не качается напишите, размещу как-то по другому.  Прицепляю ещё BackUp, который был сделан сразу после ремонта компа, но станок ещё не был запущен.  TOOLS Внимание вопрос: Что за фигня и что можно с этим сделать. Очень буду благодарен за любые подсказки и направления движения.     
    • ID_Hacker
      Для помощи, нужен текст программы. Возможно циклы в Sinutain и станке различаются. Используйте версию Sinutrain такую же, как версия системного ПО в ЧПУ станка
    • ID_Hacker
      Если будут проблемы по энкодеру, SMC модуль перейдёт в аварийное состояние, у вас будет ошибка активного или пассивного датчика, в зависимости от активности измерительной системы. Если откажет связь с SMC модулем, он так же упадёт в аварию, но при этом будут ошибки устройств приводной системы. Провод датчика температуры даст ошибку по температуре. Короче не туда копаете.   Вы описание параметра читали? Из какой справки взяли рекомендацию? В руководстве по диагностике всё предельно чётко   У вас пропадает разрешение привода. Так как SL скорее всего, придётся лезть в STEP 7 и смотреть как собирается DB3x.DBX2.1. Какой порядковый номер у оси S1/C11?
    • dommast
      Тогда пусть это будет не благодарность, а простое человеческое спасибо. Спасибо за уделенное время для решения моего вопроса.  
    • BASH_HD
      По CNCNUMID   1112 = 4      значит более 4 осей без вмешательства не получить выходит.   по опциям не совсем ясно - в списке каталога функций нашлась только одна совпадающая строка:   A02B-0307-J948                       31i-A     Part Program Memory, 2 MB  другие опции есть, судя по всему они касаются Manual guide и языков.  но номера не совпадают с PDF от 12 года.    могу предположить что сама стойка сразу шла с активированными 4 осями и это как то заложено в ее номере, поэтому доп опций нет по активации осей. файл maintinf что я выше прикрепил содержит все названия модулей и опций.   остается главный вопрос - как теперь купить/доустановить опцию.  
    • gudstartup
      у вас есть коды активации и точное название опций??
    • ID_Hacker
      Эти программы меняют серийный номер раздела. К серийному номеру карты он не относится.
    • Maik812
    • dps
      Да. На моем случает 5шт кажется опций. И я сейчас уже не вспомню порядок восстановления. Если кто-то возьмется его все же полно и достоверно изложить- было бы очень замечательно. Или может инструкция есть от того же ХААс-а?
    • Александр 36
×
×
  • Создать...