ae MNTSyRISH MELFA Basic IV incduecisn
Introduccion a la programacién
Melfa Basic IV
eerRic MELFA Basic IV inosuecsn
|= Programacién estructurada
mEn este lenguaje la programacién se estructura como
un conjunto de instrucciones cuyo flujo de proceso se
realiza en un lenguaje BASIC estandar.
m El aspecto de un programa es un conjunto de
instrucciones propias del sistema de Robot entre
sentenclas ya conocidas de BASIC.
Se obtiene asi una forma intuitiva de programacién,
sencilla incluso para aquellos usuarios con pocos
conocimientos de BASIC.ate BTESUBISHH MELFA Basic IV tnroduecisn
mEjemplo de programa
Sentencias propias de BASIC
para el flujo y condiciones de
programa
70 GOSUB 1000
pete CG Sentencias propias de
MELFA para el movimiento
95 RETURN del Robot
4100 GOTO 20
aR MELFA Basic IV inrocuccisn
mCaracteres con significado especial
Apostrofe (")
Las lineas de comentarios estén it
también a fa drive unit.
dicadas con apéstrofes, y serén transferidas
Ejemplo:
100 ° posicién de i
Asterisco (*)
El asterisco define marcas de salto (etiquetas). No seran tranferidas a la drive unit
Ejemplo:
110 *TABLA1Ss ae MELFA Basic IV ineoduccisn
mCarcteres con significado especial(2)
Coma (,)
La coma sirve de separador cuando se especifican muchos parametros consecutivos.
Ejemplo:
100 P50 = (450,100,300, ...)
Punto (.)
Para datos multiples ,como los datos posicionales, el punto sirve como separador
de cada componente singular.
Ejemplo:
110 M10 = P10.X
t
aR MELFA Basic IV inrocuccisn
mCardacteres con significado especial (3)
Espacio ( )u
Debe guardarse entre instrucciones y datos individuales, y tras los numeros de linea
Ejemplo:
100 .MOV.P10
t ft
Cada linea debe contener como maximo un comandoSs ae MELFA Basic IV ineoduccisn
™ Declaraci6n de variables
Los nombres de variables del tipo de posicién, articulacién (joint),
aritmética, y
cadena de caracteres , empiezan con un caracter particular.
Lanormaes:
P=
Je
M =
ce
Positional (variable de posicién)
Joint (articulaciones)
Aritméticas
Character string (cadena de caracteres)
aR MELFA Basic IV inrocuccisn
mConstantes numéricas
Ejemplos:
decimal 2 234, 7471, -435, +546, -5454
hexadecimal: &HO3FA, &H1AES, &HAS
binario : &B0101, &B110110101, &B10101111Mi iI .
ee" MELFA Basic IV incduecisn
=Constantes alfanuméricas
Ejemplo:
“MELFA BASIC es altamente eficiente"
“Siguiente posicién"
“Esperando entrada 5"
aR MELFA Basic IV inrocuccisn
mConstantes angulares
Ejemplo:
90DEG
120DEG
El seno de un angullo de 100° se
representa como:
SIN(100DEG)Ss ae MELFA Basic IV ineoduccisn
m Declaracién de variables: ejemplos
Position P Joint J ‘Arithmetic M | (Character string C|
PI 100 m0 cos
Prat ‘s100.W we COMBA ())
Prox sro M5 ()
Puoz
FINES)
POMC} Z(!)
(08610 on tora Base
aR MELFA Basic IV inrocuccisn
mExpresiones con variables de tipo Posicional
Ejemplos:
P14. =P100
P20. =P_CURR
P30 = P[M4*2+5] (!)
P5.Z = 10*MS
P[M10]= P1 + P20
P15.2 = P15.2+30
-Varlables de Posicién: Datos de coordenadas de espacio
ortogonales, X, Y Z,( normalmente en mm) y orientacin A, B.
(en DEG) . Todas las variables de este tipo empiezan con P.
(0) S610 on tora BaseSs ae MELFA Basic IV ineoduccisn
mExpresiones con variables del tipo Joint
Ejemplos:
J10 9 = J_CURR
J10.W = J10.W+RAD(MS)
-Variables de “articulacién”: Datos que hacen referencia a
posici6n de los ejes. Todas las variables de este tipo empiezan
con J.
See MELFA Basic IV introduecisn
mExpresiones con variables de Cadena de caracteres
Ejemplos:
C30$ = “N° de paso de secuencia.”
C$[M100] = “Siguiente posicién”(!)
C$[M10*2] = “Numero de posicién:”"(!)
(0)Séio en mera pase mae MNTSyRISH MELFA Basic IV incduecisn
mFunciones de movimiento: MOV
MOV : Movimiento interpolacién de ejes
Deseripeién:
Esta instruccién mueve a un punto determinado mediante
interpolacion de ejes. La trayectoria de un punto a otro no es
lineal, es decir, no describe una linea recta en el espacio,
sino que la CPU procesa y mueve los ejes a su conveniencia
, Por su camino mas sencillo. Por lo tanto la trayectoria no es
100% predecible por el usuario
eerRic MELFA Basic IV inosuecsn
mFunclones de movimiento: MOV
a0 nov P2
40 MOY P3,-100 WOH H ouT(17)—1
0 mov Pa
60 mov P3,-100 mmucve respecte PJ, 100nm atrae(derp-zelative)Mi i .
ee" MELFA Basic IV incduecisn
mFunciones de movimiento: MOV
Comentarios:
-El movimiento en este tipo de instrucciones no es lineal, por lo
tanto, no es 100% predecible. Utilizar esta instruccién con
cautela, para evitar colisiones del brazo con alguna parte del
entorno del robot.
-Cuando se usa el despiazamiento relativo desde un punto, (por
ejemplo Nov £3, -100) el sentido de avance viene determinado
por el signo de éste, en su coordenada Z:
eerRic MELFA Basic IV inosuecsn
mFunciones de movimiento: MVS
MVS : Movimiento en interpolacién lineal
Descripcion:
Esta instruccién mueve a un punto determinado mediante
interpolacién lineal. La trayectoria de un punto a otro es
lineal, es decir, describe una linea recta en el espacio.MI JBISHI
wee MELFA Basic IV incduecisn
mFunciones de movimiento: MVS
a “Vonresen atin
owsg SS
10 avs Pt, -50
20 avs PL
30 as,—50
Fen Linea recta (deap. elatira)
40 mvs 2,100 wr M_oUT(I7}=1 jmeve respecta #2,en Tinearecta,
10tmm atras, mientras activa
isalida bit ne 17
so avs pe mueve haota P2, on Linea recta
ou avs, -50 ‘mueve respecto PZ, en Linea reota 50mm
rae (esp. relative)
nm Hin de progeana
eerRic MELFA Basic IV inosuecsn
mFunciones de movimiento: MVS
Comentarios:
~Cuando se usa el despiazamiento relativo desde un punto, (por
ejemplo wvs 2%,-100) el sentido de avance viene determinado
por el signo de éste, en su coordenada Z, tal como se hace con
Mov.
-Al usar el desplazamiento relativo, la posicién destino es ficticia
(no consta en tabla de coordenadas, por lo tanto no es un punto
registrado). Usarlo con cuidado para evitar colisiones del brazo
con alguna parte del entorno del robot.Mi iI .
ee" MELFA Basic IV incduecisn
= Movimientos en interpolacién circular: MVR
MVR_ : Designado un punto de comienzo, un punto de transito
y un punto final, se realiza un movimiento a través de ellos
(describe un arco en el espacio), mediante interpolacién
circular de ejes
f P3
Ejemplo: mt
MVR P1,P2,P3 Pe
eerRic MELFA Basic IV inosuecsn
m= Movimientos en interpolacién circular: MVR2
MYR2_: Designado un punto de comienzo, un punto de final
y un punto de referencia, se realiza un movimiento del punto
inicial al punto final sin pasar por el punto de referencia. La
trayectoria seguida es la que corresponderia a un arco que
incluye el punto de referencia, pero slo se traza el segmento
correspondiente al tramo de! punto inicia| al final.
Ejemplo: é ‘en
PL
MVR2 Pl, P2,P3 Xe
Pz,Ss ae MELFA Basic IV ineoduccisn
= Movimientes en interpolacién circular: MVR3
MVR3_: Designado un punto de comienzo, un punto de
centro y un punto de final, se describe un arco desde el
punto de inicio hasta el de final, cuya trayectoria es trazada
Tespecto al punto de centro. El angulo trazado debe ser
entre 0 y 180°:
Ejempio:
FL @ es
MVR3 P1,P2,F3 NG /
re
aR MELFA Basic IV inrocuccisn
m= Movimientos en interpolacién circular: MVC
MVC_: Designado un punto de comienzo igual al final, un
punto de transito 1 y un punto de transit 2, describe un arco
desde el punto de comienzo pasando por el punto de transito
1, luego por el 2 y finaliza en le punto final, que es el mismo
de comienzo. Describe por lo tanto un circulo o una elipse
completa
Ejemplo: 2
MVC P1,P2,23MI JBISHI 7
ae WITSURISE MELFA Basic IV incduecisn
= Movimientos en interpolacién circular
10 wn Pt,p2,P3 wi Hour (18)
20 awn 73,405
ate METSUBISHH MELFA Basic IV meancon
m= Movimientos sin interrupciones: CNT
CNT : Movimiento sin interrupciones
Descripcién:
Esta instruccién permite que se realiza un movimiento entre
puntos multiples - definidos por MOV,MVS,MVR, etc, sin
interrupciones, es decir, sin aceleraciones ni deceleraciones.
En el momento que se declara esta instrucci6n, todas las
intrucciones de movimiento a partir de ella se hacen de esta
forma.
cera pDesigna 1a activacion de 1a funoton cur
[efine que el punta Be combenza a 100mm y
Jel de Einal a 20mm del punta destineae MNTSyRISH MELFA Basic IV incduecisn
@ Movimientos sin interrupciones
ne re
20 ext 1 } ayartir de las atgntentes Lin
‘30 mn 2,03,04
a0 avs 5
50 crr 1,100,200
fe habilita orn
} EL punto do comlenze mis cexcano a 100mm,
jel de Einal mar cescane « 201
30 exp
aR MELFA Basic IV introduecisn
™Definicién de velocidades y acc. decc.
ACCEL : Designa aceleraci6n y deceleracién en %
respecto a la maxima permitida
OVRD : Designa la velocidad de trabajo del robot en %.
JOVRD : Designa la velocidad de interpolacién de ejes
en % respecto a la maxima permitida
SPD : Designa la velocidad en mm/s de la interpolaci6n
circular y lineal, velocidad de la parte mévil (punto de trabajo,
mano, etc)MITSUBISHI
ELECTRIC
MELFA Basic IV ineoduccisn
™Definicién de velocidades y acc. decc.
10 ova 100
20 may Pi
30 mov P2,-50
90 mvs 73
100° SPD ¥RSED
140 sown 70
320 neceL
“fj Tio
cae
——
ca
pfija La velocidad de trabajo al 100%
|p movinientox LineaLes a 120em/=
Gneeler. y deceler. a We
$f tJa 1a veloctdad Lineal
jvelocidad de ntexpolacin
pfija a aveleracién y decelexacten al 100%
%. MITSUBISHI
ELECTRIC
m= Control de utensilios (I
HOPEN
HCLOSE
10 wow PL, -50
20 ovRD 50
30 Ms PL
40 HeLosE 1
50 DLY 0.5
60 ovan 100
70 wvs ,-50
80 wow P2,-50
90 oven 50
100
iio
120
130
yao
150
ws B2
HOPEN 1
DLY 0.5
‘ova 100
mvs, -50
np’
MELFA Basic IV introduecisn
za)
bre la pinza designada
jerra la pinza designada
} oierra pinga n° 1 (atrapa picza)
> ejecuta ui retardo de medio seguado
} abre pinza no 1 ( suelta pieza),,
} realiza un retardote SE MELFA Basic IV inroduecisn
mFuncién de Paletizado
Deseripcion:
Esta funcién desarrolla un movimiento programado en filas y
columnas, para realizar operaciones del tipo de manipulacion
en cajas compartimentadas, operaciones seriadas en una
superficie, etc
DEF PLT : Define el pallet a ser usado
PLT : calcula la posici6n actual de una casilla del pallet usado
Sintaxis:
DEF PLT ,
[], , ,
Ejemplos:
GoTo 200 ssalta a linea n° 200
GOTO *FINAL salta a linea marcada como * FINALSs ae MELFA Basic IV ineoduccisn
mComandos de control de programa
ON ...GOTO :Salto condicional a linea designada por una
variable entera. El programa seguird el valor de orden de
esta variable (0,1,2,3,4...)
Sintaxis:
ON GOTO...
Ejemplos:
on M1 Goro 100,200,300 «-ST wisi salta a 100,
fei win? salta a
200.84 no
jeortesponde, salta a
feiguiente
MITSUBISHI MELFA Basic IV snoaecsn
mComandos de control de programa
IF... THEN... ELSE —:Salto condicionado, si no se da la
circunstancia se ejecuta el salto designado en ELSE .El
comando ELSE es opcional.
Sintaxis:
IF THEN ELSE
Ejemplos
IF Mi=1 THEN 130 ;Salta a 130 si Mi
IF Mi=1 THEN 130 ELSE 150 ;Salta a 130 si Mi
sino salta a 150MI JBISHI 7
wee MELFA Basic IV incduecisn
mComandos de control de programa
SELECT...CASE :Salto condicional, seguin la condicién
se ejecuta lo designado en CASE
Sintaxis:
SELECT
CASE
CASE
CASE
egentenciaes DEFAULT corresponde al grupo de
instrucciones que se ejecuta cuando
DEFAULT ninguno de los casos anteriores se
ha cumplido
End SELECT
MITSUBISHI MELFA Basic IV snoaecsn
mcComandos de control de programa
Ejemplos
SELECT 1
case 10 Si Wis10 ejecuta solo
: jlas lineas entre CASE 10
: iy CASE TS 11
case 1 11 1 ejecuta solo
slas lineas entre CASE IS
: 711 y CASE Is <5
CASE IS <5
CASE 6 TO 8 sejecuta si esta entre 6 y 8
DEFAULT
END SELECTMI JBISHI 7‘
wee MELFA Basic IV incauccten
mComandos de control de programa
WAIT : Espera en esta linea hasta que la condicién ha
sido alcanzada
Sintaxis:
WAIT
Ejemplo:
WAIT MLIN(1) ;Espera en esta linea hasta que la sefial
de entrada 1 esta activa
aR MELFA Basic IV introduecisn
mRepeticién incondicional
FOR...NEXT : Repite las instrucciones comprendidas entre
FOR y NEXT las veces que indique la sentencia FOR. El
comando STEP es opcional
Sintaxis:
FOR = TO
STEP
(sentencias)
NEXT
Ejemplo:
10 FOR ML= 17010 ;Las lineas entre 10 y 60 se
: jrepetixan 10 veces
60 wexr
70 FOR M2= 0 TO 50 STEP 10 Se incrementa M2 en pasos de
: 7 10 unidadeseRe MELFA Basic IV incduecisn
mRepeticién condicional
WHILE...WEND: Repite las sentencias comprendidas
entre WHILE y WEND hasta que se cumpla una condicion
determinada
Sintaxis:
WHILE
(sentencias)
END
Ejemplo:
10 WHILE QiL>=1)ANDQ<=10) Las Lineas entre 10 y 60
: ise repetiran HASTA que Mi
peste entre 1 y 10
60 WEND
aR MELFA Basic IV introduecisn
mLlamada a subrutinas (incondicional)
GOSUB: llama a linea determinada en la instrucci6n y
vuelve a ella tras encontrar RETURN en la subrutina.
Sintaxis:
GOSUB
‘Toda subrutina debe acabar en RETURN para retomar el control ala linea siguiente tras GOSUB
Ejemplo:
10 GosuB 1000 ;DLAMADA a subrutina
20 itxansfiexe el control a
pla Linea 1000 hasta que
pencuentra RETURK, tras
jello vuelve a 20
1000
1400 RETURRSs ae MELFA Basic IV ineoduccisn
mLlamada a subrutinas (condicional)
ON ...GOSUB :Salto condicional a linea designada por una
variable entera. El programa seguiré el valor de orden de esta
variable (0,1,2,3,4...)
Sintaxis:
ON GOSUB .
‘Toda subrutina debe acabar en RETURN para reternar el contro ala linea siguiente tras ON...GOSUB.
Ejemplos:
ON M1 GOsUB 100,200,300 7SI M. salta a 100,
z si M. salta a
z 7200..si no
100 corresponde,salta a
200 siguiente
300
1000 RETURN
MITSUBISHI MELFA Basic IV snoaecsn
mLlamada a sub-programas
CALLP :Transfiere el control del programa a otro programa
almacenado en la Drive Unit; una vez lo ejecuta, vuelve a
pasar el control al programa principal. Opcionalmente puede
pasar parametros .
FPRM :Recibe pardmetros y variables desde el programa
principal, hacia el programa llamado.
Sintaxis:
CALLP
Ejemplo: ‘
Programa principal ' a1
Programa principal Progr. No.2
10 Mov P21 10 FPRM P200,P700
20 CALLP "2",P2,P7 | 100 Mov P200ae MNTSyRISH MELFA Basic IV incduecisn
mInterrupciones
DEF ACT :Define las condiciones de la interrupcién y la
instrucci6n a realizar tras ella
ACT :Establece la prioridad de esta interrupcién sobre las
otras
Sintaxis:
DEF ACT «Proceso»
Ejemplo:
10 pr ace Lac am(17)=1 coswm 100 1. si entrada 17 o# oN, sakta
Jimedgatanente «Lue 100
30 DEP ACE 3, AIMER(2}>10.5 OSU 300 Cuando paren 10.5 segundos
jsubrutina 300.
100 w rneRa)=0
no ger 2 MRetahlece peiozidades
ae aR MELFA Basic IV inrocuccisn
minterrupciones
Notas:
*Los saltos por interrupcién que leven a una instruccién
GOSUB, deben retornar con RETURN, en este caso:
RETURN
Las prioridades se establecen con ACT=y
van de 1(mayor) a 8(menor)
*Prioridad 0 significa interrupcién desabilitada
(ACT=0)
“Cuando se pone una 1 al final significa que la interrupcién se
ejecutara al finalizar la instruccién en curso :
DEF ACT 1,M_IN(17)=1 GosUB 100, LeRe MELFA Basic IV incduecisn
m= Paro incondicional
HLT :Para el programa en aquel punto
Sintaxis:
HLT
Ejemplo:
10 IF M_IN(20)THEN HLT ;detiene el programa si la
jentrada 20 es OW
mRetardos
DLY :establece un retardo
Sintaxis:
DLY
Ejemplo:
10 DLY 0.8 ;detiene el programa durante 0.8 s.
aR MELFA Basic IV introduecisn
mEntradas y Salidas
Sintaxis:
Entradas:
=M_IN ()
=M_INB ()
=M_INW ()
Salidas:
M_OUT (
M_OUT ()
M_OUT () =
Ejemplos:
Mi=m_tMB (20) ;BitsoUT 20 a 27 pasan a M1
WAIT M_IN(3)=1 ;Espera hasta que bitIN 3 es ow
M_OUT(I)=1 DLY 0.5 ;conmuta bitOUT 1 a ON durante 0.58Ss ae MELFA Basic IV ineoduccisn
mOperaciones aritméticas / légicas / funciones
MELFA Basic permite realizar operaciones con numeros y
comparaciones. Ejemplos:
sustitucién
P1=P2
P1O.Z=100
Aritmética:
tel yess
Comparacién
>, <, <>, =>, <=, AND, OR, NOT, XOR...
Funciones:
MAX, MIN, RAD, SQR, TAN, SIN, COS, TAN...