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

KAREL FANUC


Kawazaki

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

Всем привет, есть ли тут ребята которые шарят в программирование KAREL?

Стоит задача передвинуть оси робота и доп оси на заданное значение. Вот то что пока накидал, но я что-то не догоняю.

 

PROGRAM TEST_KAREL

%ENVIRONMENT TPE
%ENVIRONMENT BYNAM
CONST

    MAX_AXS = 9
    JNT_POS = 9
    XYZ_POS = 2

VAR

    to_prog: STRING[25]
    open_id: INTEGER
    status: INTEGER
    position_no: INTEGER

    jp_org   : ARRAY [9] OF REAL
    jp_new   : ARRAY [9] OF REAL
    
    prg_select: INTEGER
    arr_size  : INTEGER
    indx      : INTEGER
    
    indx_pos: INTEGER
    num_pos : INTEGER
    indx_axs: INTEGER
    num_axs : INTEGER
    pos_typ : INTEGER
    
    group_no: INTEGER
    
    org_jpos : JOINTPOS
    new_jpos : JOINTPOS
    posn_type: INTEGER
    org_xyz  : XYZWPREXT
    new_xyz  : XYZWPREXT
    org_xyz_ext  : XYZWPREXT
    new_xyz_ext  : XYZWPREXT
    
    
BEGIN
    
    to_prog = 'TEST_TP_1'
    
    OPEN_TPE (to_prog, TPE_RWACC, TPE_RDREJ, open_id, status)
    
    group_no = 1
    position_no = 3
    
    GET_POS_TYP (open_id, indx_pos, group_no, posn_type, num_axs, status)
    
            WRITE ('get_pos_typ status', status,CR)
        
        SELECT pos_typ OF
            
            CASE (JNT_POS):
            
    SET_JPOS_TPE (open_id, indx_pos, new_jpos, status)
        
            WRITE ('indx_pos', indx_pos, 'new_jpos',CR, new_jpos,CR)
            
        ENDSELECT
                                        
            org_jpos = GET_JPOS_TPE (open_id, indx_pos, status)
    
        org_xyz = GET_POS_TPE (open_id , indx_pos, status)
            
        new_xyz.x = org_xyz.x +10
        new_xyz.y = org_xyz.y +0
        new_xyz.z = org_xyz.z +0
        new_xyz.w = org_xyz.w +0
        new_xyz.p = org_xyz.p +0
        new_xyz.r = org_xyz.r +0
        new_xyz_ext[1] = org_xyz_ext[1] + 10
        new_xyz_ext2 = org_xyz_ext2 + 10
        new_xyz_ext3 = org_xyz_ext3 + 10
        
        SET_POS_TPE (open_id, position_no, new_xyz, status)

    CLOSE_TPE (open_id, status)
    
END TEST_KAREL

 

ОШИБКИ при компиляции

 

KTRANS Version V8.30 (Build 30  11/12/2019)
Copyright (C) FANUC America Corporation, 1985 through 2016.
All Rights Reserved.

 

D:\NikolaevAS\Desktop\untitled18.kl(75)
  75   new_xyz_ext[1] = org_xyz_ext[1] + 10
                                  ^ ERROR
Id type is not an ARRAY or indexing exceeded number of dimensions.  Id: ORG_XYZ_EXT

D:\NikolaevAS\Desktop\untitled18.kl(76)
  76   new_xyz_ext2 = org_xyz_ext2 + 10
                                 ^ ERROR
Id must be defined before this use.  Id: ORG_XYZ_EXT2

D:\NikolaevAS\Desktop\untitled18.kl(77)
  77   new_xyz_ext3 = org_xyz_ext3 + 10
                                 ^ ERROR
Id must be defined before this use.  Id: ORG_XYZ_EXT3

D:\NikolaevAS\Desktop\untitled18.kl(79)
  79   SET_POS_TPE (open_id, position_no, new_xyz, status)
                                                ^ WARNING
Argument will be passed by value.  Id: NEW_XYZ


===============Translation not successful===============
Build Failed: Error translating program: Code: 0xFFFFFFFF:  
----------------------------------------------------------------------

 

 

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


UnPinned posts

@Kawazaki Ну он же пишет вам в чем ошибка при компиляции.

ORG_XYZ_EXT - не является массивом или указан индекс за пределами массива

ORG_XYZ_EXT2 - не определена

ORG_XYZ_EXT3 - не определена

Думаю, вместо:

        new_xyz_ext[1] = org_xyz_ext[1] + 10
        new_xyz_ext2 = org_xyz_ext2 + 10
        new_xyz_ext3 = org_xyz_ext3 + 10

Должно быть:

        new_xyz_ext[1] = org_xyz_ext[1] + 10
        new_xyz_ext[2] = org_xyz_ext[2] + 10
        new_xyz_ext[3] = org_xyz_ext[3] + 10

Может org_xyz_ext нужно будет определить начальные значения?

Не в курсе особенностей программирования для KAREL, но как минимум часть проблемных моментов видно и так. Руководство есть?

 

 

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

@Kawazaki Ну он же пишет вам в чем ошибка при компиляции.

ORG_XYZ_EXT - не является массивом или указан индекс за пределами массива

ORG_XYZ_EXT2 - не определена

ORG_XYZ_EXT3 - не определена

Думаю, вместо:

        new_xyz_ext[1] = org_xyz_ext[1] + 10
        new_xyz_ext2 = org_xyz_ext2 + 10
        new_xyz_ext3 = org_xyz_ext3 + 10

Должно быть:

        new_xyz_ext[1] = org_xyz_ext[1] + 10
        new_xyz_ext[2] = org_xyz_ext[2] + 10
        new_xyz_ext[3] = org_xyz_ext[3] + 10

Может org_xyz_ext нужно будет определить начальные значения?

Не в курсе особенностей программирования для KAREL, но как минимум часть проблемных моментов видно и так. Руководство есть?

 

 

как ты пробовал раньше, проблема в том что не в джоинте не знаю как определить доп оси, через JOY_POS пытался ничего не вышло, скомпилировал, но по итогу результата не было никакого, руководство есть могу скинуть.

 

 

 

 

это через JOY_POS

 

PROGRAM TEST_KAREL_2

%ENVIRONMENT TPE
%ENVIRONMENT BYNAM

CONST

    MAX_AXS = 9
    JNT_POS = 9
    XYZ_POS = 2

VAR

    to_prog: STRING[25]
    open_id: INTEGER
    status: INTEGER
    position_no: INTEGER

    jp_org   : ARRAY [9] OF REAL
    jp_new   : ARRAY [9] OF REAL
    
    prg_select: INTEGER
    arr_size  : INTEGER
    indx      : INTEGER
    
    indx_pos: INTEGER
    num_pos : INTEGER
    indx_axs: INTEGER
    num_axs : INTEGER
    pos_typ : INTEGER
    
    group_no: INTEGER
    
    org_jpos : JOINTPOS
    new_jpos : JOINTPOS
        
BEGIN
    
    to_prog = 'TEST_TP'
    
    OPEN_TPE (to_prog, TPE_RWACC, TPE_RWREJ, open_id, status)
    
    group_no = 1
    
    position_no = 3

    GET_POS_TYP (open_id, indx_pos, group_no, pos_typ, num_axs, status)
    
        WRITE ('get_pos_typ status', status,CR)
        
        SELECT pos_typ OF
            
            CASE (JNT_POS):
                                        
            org_jpos = GET_JPOS_TPE (open_id, indx_pos, status)
            
        CNV_JPOS_REL (org_jpos,  jp_org, status)
        
        FOR indx_axs = 7 TO num_axs DO
            
            jp_new[7] = jp_org[7] + 300
            jp_new[8] = jp_org[8] + 1000
            jp_new[9] = jp_org[9] + 5000
            
        ENDFOR
        
        SET_JPOS_TPE (open_id, indx_pos, new_jpos, status)
        
            WRITE ('indx_pos', indx_pos, 'new_jpos',CR, new_jpos,CR)
            
        ENDSELECT
            
    CLOSE_TPE (open_id, status)
        
END TEST_KAREL_2

 

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

@Kawazaki Я говорил про синтаксические ошибки в коде в вашем первом посте. Да и во втором они тоже есть. Может поэтому не получалось? Кидайте руководство, лишним не будет. 

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

Есть у кого нибудь пример программы на Karel по сдвигу дополнительных осей на роботах FANUC?

 

Или проконсультировать по этому вопросу.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Maxim.Oi TF
      Значит из хорошего материала изготовлен.
    • vasillevich68
      вы там, что, круг заточного станка на ходу измеряете???   Пользуюсь уже больше 10-ти лет цифровым колумбиком Gedore    до сих пор ничего не выработалось.  
    • Maxim.Oi TF
      Нужен именно цифровой. С нониусом не удобно.   Мерить приходится часто. детали мелкие. Работаю оператором.  Может посоветуете ШЦЦ с твердосплавными губами?
    • Altvorec
      Добрый день. Прошу подскажите пожалуйста- у меня пост для НХ по версию NX 2312 Build 8103 окружности и спирали выводил с приставкой TURN. Но поставив  NX 2406 Build 1700 вывод турн исчез. Выводит отрезками. В чем может быть загвоздка?  
    • maxx2000
      а есть необходимость в измерениях штангенциркулем с точностью до 0,01мм? Чем не устраивает обычный с нониусом, твердосплавными губками и шкалой в 0,05мм? Почему не купить цифровой с твердосплавными губками?
    • Maxim.Oi TF
      Добрый день.  Решил приобрести ШЦЦ. выбор пал  штанген фирмы INSIZE.  Модель  INSIZE 1114-150A .На ОФИЦИАЛЬНОМ САЙТЕ INSIZE.com представительства в РФ нет. Но поисковик находит сайт insizeru.com. стоит ли заказывать с этого сайта. Складывается ощущение что это подделки под бренд insize.     В настоящее время пользуюсь ШЦЦ С Али экспресс. Фирмы Shahe. Хватает его примерно на год. После года губки вырабатываются и измерение не точное. Хочется что то понадежнее. МИТАТОЙЁ или Mahr дороговато.
    • gudstartup
      лампочка вещь аппаратная а у автора неисправна программная структура данных. сама лампочка работает только вот потоки данных не те! 
    • maxx2000
      @gudstartup ну так и тут попытка загрузиться(включить лампочку) приводит  к одному и тому же результату (лампочка не светится)     
    • gudstartup
      если проблемы в аппаратной части а не в логической структуре файловой системы тогда диск либо не работает либо читает с задержками много бэд секторов и это  уж никак не может происходить в одном и том же месте учитывая что диск проверен. я ни разу не видел чтобы сдохший контроллер а уж тем более оборванный шлейф и проблемы с питанием приводили к таким результатам. загрузка проверка и ошибки в конкретных файлах говорит о том что повреждение было вызвано при сохранении данных которое было прервано по причинам которые всем известны. не выключайте компьютер пока система пишет данные на твердый диск  именно так звучит это предупреждение на системах heidenhain при завершении работы. Ну как же!!. раз за разом происходит попытка загрузки и проверка дает одни и те же компьютер загружается с и проверяет диск а лампочка если сгорела уже не светиться! есть внешнее питание от главного выключателя станка а есть внутреннее от бп компьютера и это две большие разницы или вы думаете проблема во  внутреннем бп так как указали еще и на контроллер ide? логика проста надо проверять ufs а не шлейф контроллер или бп @Artem artem  автор покажете какие разделы обнаружены на  диске кроме swap?
    • maxx2000
      @gudstartup шлейф, контроллер, источник питания относятся к аппартной(железной) части машины. Устройства могут взаимодействовать на низком уровне, минуя прослойки из драйверов. Я пока не улавливаю логики в твоих посланиях. Проблема не повторяющаяся, она просто вот такая, как сгоревшая лампочка. Сколько не включай результат один и тот же. А ты начал уже строить догадки почему она появилась. Отключение питания это конечно не проблема с питанием, о чём это я, ошибка записи в результате плохого контакта это тоже не проблема, подгнивший контроллер, да о чём я вообще, как это может повлиять на запись данных.
×
×
  • Создать...