Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2020, 12:25   #11
sheppard
Гуру
 
Регистрация: 19.04.2020
Сообщения: 215
Сказал Спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении
По умолчанию

DEF interrupt_20( )

GLOBAL INTERRUPT DECL 33 WHEN $MEAS_PULSE[3]==TRUE DO forward()

INI

INT i;
INT t;
INT l;
INT cou;
INT hicou;
INT cmhicou;
INT r;

и т.д.

Ну дословный же перевод - глобальное объявление прерывания 33, когда $MEAS и далее...

Я же просто по форуму нашел обсуждение ошибочного, и быстро исправленного примера: http://robotforum.ru/forum/showthrea...ight=interrupt

====

Вот потому и упираюсь рогом не в логику или даже семантику, а в, видимо, оформление.

Это как те, кто и так прекрасно программируют на куче языков, как я, в первые несколько дней люто матерятся от простейшего Питона, потому что там каждый отступ и табуляция очень важны, хотя это безумие какое-то .

Значит что-то не так с оформлением... Но что? В сотенностраничных талмудах уже упрел ковыряться ))
sheppard вне форума   Ответить с цитированием
Старый 26.08.2020, 13:25   #12
sheppard
Гуру
 
Регистрация: 19.04.2020
Сообщения: 215
Сказал Спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении
По умолчанию

Полнейший маразм... Наплевал на ОранжЭдит и влепил в обычном текстовике. Кстати Оранж весело чавкнул и проглотил, но где делать грамотно INI я так и не нашел.

Однако на оба этих варианта - https://yadi.sk/i/IQlnt-pYIACgXg

выдаётся одинаковая ошибка?!?:
"
Описание не находится а разделе описаний
***INT i;
"

Опупенительно. А где этот раздел тогда, куда пихать свои переменные, если подфолдер fold user ini не подходит, а после всего ini место тоже неподходящее, хотя до возни с прерыванием я тупо строчил
"
INI
INT i;
"
и все прекрасно работало?!!!

Прямо такой же бред, как с костылявым gw-basic на первых PC после нормальных бейсиков для z80, atari и даже бк0010...

Где глюк? ((
sheppard вне форума   Ответить с цитированием
Старый 26.08.2020, 14:57   #13
Роботёр
Гуру
 
Регистрация: 20.12.2017
Сообщения: 712
Сказал Спасибо: 19
Сказали Спасибо 145 раз(а) в 138 сообщении
По умолчанию

сделай декларацию переменных до формуляра ini
Роботёр вне форума   Ответить с цитированием
cказали "Спасибо" Роботёр за это сообщение:
sheppard (26.08.2020)
Старый 26.08.2020, 15:03   #14
sheppard
Гуру
 
Регистрация: 19.04.2020
Сообщения: 215
Сказал Спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении
По умолчанию

гм... сейчас попробую через 10 мин!
sheppard вне форума   Ответить с цитированием
Старый 26.08.2020, 15:35   #15
sheppard
Гуру
 
Регистрация: 19.04.2020
Сообщения: 215
Сказал Спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении
По умолчанию

обалденительно! робот сожрал код.

спасибо!!!

все же это не я тупой, это немцы наперекор своей немецкости оставили сырость в языке! хоть бы взяли за образец простенький, но за полвека буквально вылизанный до блеска синтаксис паскаля.

теперь можно разбираться с самим прерыванием, потому что пока не срабатывает эвент...
sheppard вне форума   Ответить с цитированием
Старый 26.08.2020, 18:15   #16
Роботёр
Гуру
 
Регистрация: 20.12.2017
Сообщения: 712
Сказал Спасибо: 19
Сказали Спасибо 145 раз(а) в 138 сообщении
По умолчанию

еще все переменные можно деккларировать в файле config.dat. при этом они автоматически становятся глобальными.
что с прерыванием, что не срабатывает?
Роботёр вне форума   Ответить с цитированием
Старый 28.08.2020, 08:58   #17
sheppard
Гуру
 
Регистрация: 19.04.2020
Сообщения: 215
Сказал Спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении
По умолчанию

само прерывание уже сработало, но нельзя сделать, например, в общем коде
--
PTP_REL{Z 1000}
--

А в процедуре прерывания
--
PTP_REL {Z 100}
--

И вернуться так, чтобы PTP_REL{Z 1000} осталось актуальным, то есть чтобы конечная точка движения не изменилась - робот просто ыдает вполне ожидаемую ошибку и стопорится. Вместо 1000 нужна переменная, но, во-первых, мнений прорва, а в доступных описаниях есть только синтаксис оформления, но рабочих примеров у меня нет.

Пока реалистичными выглядят варианты просто с переменными, как вы указали, но не знаю банально как их там оформлять - это юниты, списки или составные переменные просто синтаксис неясен.

Но есть еще, как бает интернет, переменные, которые являются системными, и одна из них, например, в любой момент времени выдает текущее состояние координат. Логично в начале самой процедуры прерывания сохранить в отдельную переменную текущие координаты и конце процедуры отправить PTP_ по этой переменной.

Но снова как с этим работать, чтобы PTP принял переменную. Видимо оба вопроса актуальны: как оформляются все эти e6pos и т.д., в чем их отличие, и как использовать технопеременные с актуальными координатами.

По сути это и есть "окончательное решение робото-вопроса" ))

P.S.

У меня PTP_REL на больших расстояниях делает заметную дугу (что логично для суставного робота), а чем заменить команду, чтобы движение было строго по прямой?

А то у меня есть прорва глубоких и хитрых мануалов, которые я тоннами дергал в первую очередь не глядя, как только нарывался на них, а такой простоты нет, так как думал, что доберусь до них в любой момент Но пока с местным интернетом даже сюда строчить приходится через телефон - Рыгорыч лютует аццки уже которую неделю ))
sheppard вне форума   Ответить с цитированием
Старый 28.08.2020, 13:29   #18
sheppard
Гуру
 
Регистрация: 19.04.2020
Сообщения: 215
Сказал Спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении
По умолчанию

с птп разобрался )) а вот с переменной пока нет.. интернет как у глухонемого в подлодке

Последний раз редактировалось sheppard, 28.08.2020 в 14:07
sheppard вне форума   Ответить с цитированием
Старый 28.08.2020, 19:34   #19
Ignis
Мастер
 
Регистрация: 03.03.2019
Сообщения: 49
Сказал Спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении
По умолчанию

DECL E6POS MyPoint ;объявляем переменную



E6POS MyPoint={X 0,Y 0,Z 0,A 0,B 0,C 0,S 0,T 0,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} ;Можешь объявить переменную в dat файле с таким же именем что и src, тогда все значения переменной буду перезаписываться в файл

XP1=$POS_ACT ; в твоем прерывании записываем координату события

$VEL_AXIS[1] = 40 ; задаем если надо другую скорость
$ACC_AXIS[1] = 40 ; и ускорение c A1
.
. ; А2-А5
.
$VEL_AXIS[6] = 40 ; скорость
$ACC_AXIS[6] = 40 ; ускорение по A6

Можно не задавать явно значения скорости, тогда эти величины будут взяты из предыдущего PTP, сделанного через тачап

PTP MyPoint ; выполняем движение

Последний раз редактировалось Ignis, 28.08.2020 в 19:55
Ignis вне форума   Ответить с цитированием
Старый 29.08.2020, 14:13   #20
sheppard
Гуру
 
Регистрация: 19.04.2020
Сообщения: 215
Сказал Спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении
По умолчанию

не понял от слова совсем ))

---
Тут все ясно:

DECL E6POS MyPoint ;объявляем переменную
E6POS MyPoint={X 0,Y 0,Z 0,A 0,B 0,C 0,S 0,T 0,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}

XYZ - просто координаты от BASE? (мм, полагаю)
ABC - ?
ST - ?
E1..E6 - углы движков в градусах? И если "да", то дробные значения можно использовать?

Теперь к "боевой" практивке: как мне, например, использовать MyPoint в вычислениях? Мне, например, нужно менять только координату Х.

Я должен по синтаксису написать MyPoint.X=MyPoint.X+10, к примеру? Или MyPoint(X)=MyPoint(X)+10 или использовать {}? В этом вопрос ))

Суть енамов едина со времен макросов ассемблера )) Просто немцам в KRL орднунг отшибло наглухо - косяков в банальном оформлении просто больше, чем в первом Питоне Разок сделали и не стали что-то вылизывать, мол, инженер за пару дней запомнит

2. В вашем примере:
XP1=$POS_ACT

Кто это? Это две переменные типа E6POS, где вторая - системное автоотслеживание текущих координат и поворотов? Насколько я успел уцепить суть, есть три вида переменных, которые предназначены для работы с координатами и углами, из которых тип E6POS - самый универсальный.

Если на все вопросы "да", тогда все совершенно понятно Вот только все-таки хотелось бы расшифровку ABCST...
sheppard вне форума   Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +2, время: 13:39.

vBulletin v3.6.2, Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co