Escolar Documentos
Profissional Documentos
Cultura Documentos
MÓDULO LINGUAGEM DE
PROGRAMAÇÃO PDL2 AVANÇADA
Distancia: milímetros(mm)
Tempo: milissegundos(ms)
Angulo: graus (°)
Velocidade linear: metros/segundos (m/s)
Velocidade Angular: radianos/segundos (rad/s)
Corrente: amperes (A)
Encoder/Resolver Data: revolutions (2 ms)
COMPONENTES DA LINGUAGEM
Set de Caracteres
O PDL2 reconhece os caracteres elencados abaixo:
Letras:
abcdefchijklmnopqrstuvwxyz
ABCDEFGHI JKLMNOPQRSTUVWXYZ
Algarismos:
0123456789
Símbolos:
@<>=/*+,;.#S'[]%(}\:!()_
Caracteres Especiais:
blank (space), tab
INTEGER VECTOR
REAL POSITION
BOOLEAN JOINTPOS
STRING XTNDPOS
ARRAY PATH
RECORD SEMAPHORE
NODE
- relacionais ( =, := )
- booleanas (and, or, xor, not)
DADOS DO TIPO STRING
O tipo de dados STRING representa uma série de caracteres ASCII
que são considerados como um grupo único de dados. Um apóstrofe
assinala o início e o fim de um string.
Por exemplo:Além dos caracteres ASCII imprimíveis, os strings
podem conter também seqüências de controle. Uma seqüência de
controle é constituída por uma barra invertida (\) acompanhada por
um código ASCII qualquer de três algarismos.
Por exemplo:
aritméticas (+, -)
aritméticas (*, /) VECTOR-INTEGER, VECTOR-REAL e vice-versa
relacionais (=)
vetoriais (X,Y,Z)
DADOS DO TIPO POSITION
O tipo de dados POSITION é usado para descrever a posição de um
sistema cartesiano de
coordenadas com relação a outro (chamado sistema inicial).
Geralmente, um valor do tipo POSITION é usado para especificar a
posição final para uma instrução MOVE que é posição a ser
alcançada pela ferramenta, instalada na extremidade do braço, com
relação ao sistema do usuário. Os valores tipo POSITION também
definem os sistemas de coordenadas de referência: por exemplo, a
posição da base do robô ($BASE), as dimensões da ferramenta na
extremidade do braço ($TOOL) e o sistema de coordenadas do
usuário ligado à peça de trabalho ($UFRAME) (consultar a seção
"Sistemas de Coordenadas de Referência" neste capítulo para uma
definição geral dos sistemas de coordenadas).
Notar que os valores tipo POSITION, além da posição, definem
também a orientação e, somente para os pontos finais, a
configuração do robô. Portanto, o tipo de dados POSITION é
constituído por três componentes de posição tipo REAL, três
componentes de orientação tipo REAL e um valor tipo STRING que
contém os componentes de configuração.
DADOS DO TIPO JOINTPOS
O tipo de dados JOINTPOS representa a posição real das juntas do
braço, em graus. A cada articulação do braço corresponde um
componente real. Cada valor real é a distância efetiva que a
articulação deve percorrer a partir da sua posição pré-definida
"zero". Cada variável JOINTPOS está associada a um braço
específico e não pode ser utilizada para um braço diferente.
WAIT
SIGNAL
DECLARAÇÕES DE CONSTANTES
As Constantes são declaradas na seção CONST de um programa. A
declaração de uma constante estabelece dois atributos a um
identificador de constante; um nome e um valor invariável. O tipo de
dado de uma constante é definido pelo valor que lhe é atribuído, que
pode ser um INTEGER, um REAL, um BOOLEAN, ou um STRING. Ao
interno do programa é possível utilizar o identificador no lugar do seu
valor.
A sintaxe a ser utilizada para a declaração de uma constante é a
seguinte:
name = || literal I predef_const_id II
As declarações de constantes aparecem na respectiva seção, após a
palavra reservada CONST.
DECLARAÇÕES DE VARIÁVEIS
As Variáveis são declaradas na seção VAR de um programa. A
declaração de uma variável estabelece um identificador de variável e
um tipo de dado. O tipo de dado de uma variável é definido pelo
atributo que lhe é informado. Ao interno do programa é possível
utilizar o identificador no lugar do seu valor.
A sintaxe a ser utilizada para a declaração de uma variável é a
seguinte:
A cláusula opcional SCAN pode ser usada para indicar uma taxa
diferente para a varredura do gestor de condição.
REFERENCIAS À VARIÁVEIS
ESTADOS BOOLEAN
EVENTOS DE ERROS
EVENTOS DE USUÁRIO
AÇÃO DE INCREMENTO
AÇÕES INTERNAS
Malha:
Instrução FOR
Instrução WHILE
Instrução REPEAT
Salto incondicional:
Instrução GOTO
INSTRUÇÃO IF
A instrução IF permite ao programa escolher entre dois possíveis
fluxos de execução em base ao resultado de uma expressão
BOOLEAN. Se a expressão for TRUE (verdadeira), as instruções
colocadas após á cláusula IF serão executadas.
O controle do programa passa, depois, à instrução colocada após o
ENDIF. Se a expressão for FALSE (falsa), as instruções colocadas
após a cláusula IF são saltadas e o controle do programa passa à
instrução colocada após o ENDIF. A figura 6-1 ilustra a execução de
uma instrução IF.
Um cláusula ELSE opcional, posicionada entre a última instrução da
cláusula IF e o ENDIF, pode ser utilizada para executar uma série de
instruções caso a expressão BOOLEAN seja FALSE.
Ao interno das cláusulas IF ou ELSE é possível inserir um número
qualquer de instruções PDL2 executáveis, assim como, também,
outras instruções IF.
INSTRUÇÃO SELECT
Exemplo:
A instrução WAIT FOR suspende a execução do programa até que
seja satisfeita a condição especificada.
INSTRUÇÃO ACTIVATE
Exemplo:
Se houver necessidade de usar 8 teclas em um grupo e dois grupos de
um outro programa:
2 arquivos XML devem ser ser definidos. No primeiro arquivo, um
grupo com 8 softkeys sera definido;
No segundo, 2 grupos com 3 softkeys cada. TP4i/WiTP criará as
seguintes páginas:
– Uma página com 6 softkeys pertencentes ao primeiro arquivo xml
– Uma página com as 2 restantes softkeys do grupo primeiro arquivo
xml
– Uma página com as 3 softkeys do primeiro grupo do Segundo XML
– Uma página com as 3 softkeys do Segundo grupo do Segundo XML.
CUSTOMIZAÇÃO: USO DO RIGTHMENU
<arName>...</arName>
É a tag que indicará o nome a ser visualizado na página(rigthmenu)
<arIconName>...</ arIconName >
É a tag responsável por conectar o ícone(que deve estar na mesma
pasta que o XML
E deverá ter o formato(.GIF).
< arEnabled >...</ arEnabled >
Tag que define se a tecla estará habilitada ou não para uso
< arStatus>...</ arStatus >
Essa tag definirá qual sera a cor que aparecerá no interior do status do
botão
Ex.: WIN_BLUE, WIN_RED, WIN_GRAY, WIN_YELLOW,
WIN_BLACK,WIN_GREEN, etc…
CUSTOMIZAÇÃO: USO DO RIGTHMENU
Eventos Softkey Pressure(teclar) e Release(soltar)
Três tags para eventos das teclas:
– Evento (teclar) Softkey (< evPressed >...</ evPressed >)
– Evento (soltar) Softkey (< evReleased >...</ evReleased>)
– Evento (teclar e segurar) Softkey (< evLongPressed>...</
evLongPressed >)
Descrição:
< evPressed >...</ evPressed >
Um evento de teclar pode ser associado a cada softkey(tecla).
Um evento de usuário CONDITION (WHEN EVENT ... ) deve monitorar o
pressionamento da tecla. A classe do evento de usuário deverá ser
definido entre 49152 à 50175.
Essa tag XML deverá conter um desses valores.
Os outros eventos das outras teclas serão automaticamente
Sequenciais ao primeiro valor inserido.
CUSTOMIZAÇÃO: USO DO RIGTHMENU
Por exemplo <evPressed >50100</ evPressed> em um grupo de 6
softkeys, o evento 50100 será gerado ao pressionar a primeira softkey
do grupo, O evento 50105 ser gerado ao pressionar a 6ª tecla.
<?xml version="1.0"?>
<NewMenu>
<group>
<progName>group1</progName>
<numItems>4</numItems>
<arName>nomi</arName>
<arIconName>icone</arIconName>
<arStatus>colori</arStatus>
<arEnabled>en</arEnabled>
CUSTOMIZAÇÃO: USO DO RIGTHMENU
<evPressed>50100</evPressed>
<evLongPressed>50120</evLongPressed>
<evReleased>50130</evReleased>
</group>
<group>
<progName>group2</progName>
<numItems>2</numItems>
<arName>nomi</arName>
<arIconName>icone</arIconName>
<arStatus>colori</arStatus>
<arEnabled>en</arEnabled>
<evPressed>50150</evPressed>
<evLongPressed>50160</evLongPressed>
<evReleased>50170</evReleased>
</group>
</NewMenu>
CUSTOMIZAÇÃO: USO DO RIGTHMENU
Agora o exemplo do programa PDL2 usado.
PROGRAM group1 NOHOLD
VAR
nomi : ARRAY[5] OF STRING[10]
icone: ARRAY[5] OF STRING[10]
en : ARRAY[5] OF BOOLEAN
colori : ARRAY[5] OF INTEGER
BEGIN
CONDITION[1] NODISABLE :
WHEN EVENT 50100 DO
colori[1] := WIN_RED
en[2] := FALSE
WHEN EVENT 50101 DO
colori[2] := WIN_GREEN
en[1] := FALSE
ENDCONDITION
ENABLE CONDITION[1]
CYCLE---
DELAY 1000---
END group1
CUSTOMIZAÇÃO: USO DO RIGTHMENU
Exemplo de configuração right menu
O arquivo XML define um grupo com 5 softkeys. O programa a
manusear é o ‘rightmenu’.
O nome é armazenado em ‘nomi’, os icons em ‘icone’, a habilitação em
‘en’ e as cores em ‘colori’. O evento para “teclar” a primeira tecla é
50120. O evento para “pressionar e segurar” é
A primeira softkey é 50120. O evento para “soltar” a primeira tecla é
50000.
<?xml version="1.0"?>
<RightMenu>
<group>
<progName>rightmenu</progName>
<numItems>5</numItems>
<arName>nomi</arName>
<arIconName>icone</arIconName>
<arStatus>colori</arStatus>
<arEnabled>en</arEnabled>
<evPressed>50100</evPressed>
CUSTOMIZAÇÃO: USO DO RIGTHMENU
<evLongPressed>50120</evLongPressed>
<evReleased>50130</evReleased>
<evShow>50000</evShow>
</group>
</RightMenu>
O programa iniciará com 4 teclas…
PROGRAM rightmenu NOHOLD
VAR
nomi : ARRAY[5] OF STRING[10]
icone : ARRAY[5] OF STRING[10]
en : ARRAY[5] OF BOOLEAN
colori : ARRAY[5] OF INTEGER
BEGIN
-- primeira softkey
nomi[1] := 'S1'
icone[1] := 'i1'
en[1] := TRUE
CUSTOMIZAÇÃO: USO DO RIGTHMENU
colori[1] := WIN_BLUE
-- segunda softkey
nomi[2] := 'S2'
icone[2] := 'i1'
en[2] := TRUE
colori[2] := WIN_RED
nomi[3] := 'S3'
icone[3] := 'i1'
en[3] := TRUE
colori[3] := WIN_YELLOW
nomi[4] := 'S4'
icone[4] := 'i1'
en[4] := TRUE
colori[4] := WIN_GREEN
CUSTOMIZAÇÃO: USO DO RIGTHMENU
CONDITION[1] NODISABLE :
WHEN EVENT 50100 DO
colori[1] := WIN_RED
colori[2] := WIN_GREEN
WHEN EVENT 50101 DO
colori[1] := WIN_PINK
colori[2] := WIN_RED
ENDCONDITION
ENABLE CONDITION[1]
CYCLE
DELAY 1000
icone[2] := 'i2'
DELAY 1000
icone[2] := 'i1'
END rightmenu
VARIÁVEL DE SISTEMA $STARTUP