Академический Документы
Профессиональный Документы
Культура Документы
Laboratrios de
Automao Industrial
Caldas Pinto
ndice
1
Introduo ............................................................................................................................. 3
1.1
Motivao...................................................................................................................... 3
1.2
1.2.1
1.2.2
1.3
2
2.2
2.3
Introduo ................................................................................................................... 13
3.2
3.3
Introduo ................................................................................................................... 17
4.2
Enunciado .................................................................................................................... 17
4.3
4.3.1
4.3.2
4.3.3
4.3.4
4.3.5
4.3.6
4.3.7
4.3.8
4.3.9
Introduo ................................................................................................................... 30
5.1.1
5.1.2
5.2
Conceitos introdutrios............................................................................................... 32
5.2.1
5.2.2
5.2.3
5.3
5.4
5.4.1
Lista de Instrues:.............................................................................................. 40
5.4.2
5.4.3
Exemplo ............................................................................................................... 41
5.5
5.5.1
Lista de Instrues:.............................................................................................. 44
5.5.2
5.5.3
Exemplo ............................................................................................................... 45
5.5.4
Cronmetro ......................................................................................................... 46
5.5.5
5.6
5.6.1
6
Introduo ................................................................................................................... 49
6.2
6.3
6.4
6.4.1
6.5
6.6
6.7
Utilizao do GRAFCET como algoritmo para programar em linguagens no
sequenciais .............................................................................................................................. 58
ANEXO I: Ligao a uma VPN....................................................................................................... 59
ANEXO II: Mensagens de segurana do Java............................................................................... 70
ANEXO III: Tabela de smbolos nas bancadas virtuais ................................................................. 73
ANEXO IV: Gama de endereos no PG5 2.0 ................................................................................ 75
ANEXO V: Controlo do Tapete Rolante e do Elevador ................................................................ 77
Index ............................................................................................................................................ 78
ii
Introduo
1.1
Motivao
Umas das componentes mais importantes no ensino desta Unidade curricular (UC) a
programao de autmatos programveis (AP).
Os AP devem ser considerados computadores industriais em que dada principal nfase s
cartas de interface com equipamentos, em particular cartas de entrada e de sada. Estas
podem ser lgicas recebendo ou enviando sinais binrios, ou analgicas recebendo sinais
contnuos e procedendo sua discretizao (cartas de entrada) ou enviando sinais contnuos
aps a converso digital analgica dos sinais de comando gerados no AP (cartas de sada).
Pela sua versatilidade, custo e robustez aparecem em qualquer soluo de automao no s
nas unidades industriais mas tambm em edifcios e escritrios (domtica).
Por este motivo absolutamente necessrio e que os futuros engenheiros mecnicos
adquiram bons conhecimentos deste equipamento e da sua programao.
Os autmatos SAIA, no sendo to populares como por exemplo os Siemens so na Europa,
permitem ser programados com linguagens paradigmticas da maioria das linguagens dos AP
do mercado. Tm tido desde sempre a vantagem de permitir a utilizao livre do seu software
de programao a todos os alunos durante 3 meses, tempo necessrio para a execuo dos
trabalhos.
1.2
Na verso atual do LV existem 8 postos (ver Fig. 1-2) para utilizao dos 8 grupos de cada
turma. Cada um destes postos pode ser acedido, aps se ter feito a ligao VPN do LV (ver
cap. 2), nos seguintes endereos1:
http://192.168.77.1/bancada1.html
http://192.168.77.2/bancada2.html
http://192.168.77.8/bancada8.html
Laboratrio Remoto
Um laboratrio diz-se remoto se o seu equipamento, que real, pode ser manipulado
remotamente. Este equipamento est localmente associado a um computador ou AP que, por
sua vez, est ligado internet.
O LR instalado est ligado a 4 dos AP que tambm pertencem ao LV. Consiste em 4 postos em
que cada um constitudo por 3 cilindros e respetivos sensores e atuadores, mais um conjunto
de lmpadas. (Ver Fig. 1-2)
S pode aceder a estes sites com a ligao VPN do LV/R estabelecida, ver captulo 2.
1.3
Instalao do programa que permite escrever cdigo e envi-lo para os APs. Nesta UC
ser o PG5 v2.0 da SAIA.
Finalmente faz-se notar que muita da informao aqui veiculada deve ser complementada com
o livro de texto da disciplina e com o manual do PG5.
Web
2.1
Os APs que constituem o LV/R, uma cmara web e um computador tipo PC esto ligados entre
si por protocolo ethernet, desempenhando este ltimo o papel de servidor e estando, por isso,
ligado rede internet. A rede assim definida designa-se por rede privada virtual ou
simplesmente VPN (Virtual Private Network). Sobre este conceito aconselha-se uma pesquisa
na internet, a comear pela wikipedia.
Estas redes esto protegidas por um username e uma password que preciso conhecer. No
caso do LV/R :
Username: vpn
Password: vpngcar
Com estes elementos s tem de configurar o seu computador para estabelecer a ligao.
Infelizmente no h uma configurao padro, pois depende do sistema operativo. O que se
recomenda que sejam seguidos um dos variados procedimentos disponveis na internet,
principalmente os transmitidos via youtube.
Como segunda abordagem sugerido que sigam os passos descritos no Anexo I para os
sistemas operativos mais importantes.
Aps ter configurado a sua ligao VPN do LV/R deve testar o acesso mesma de acordo
com os seguintes passos:
Clicar no shortcut para a VPN e introduzir o username e a password. (ver Fig. 2-1)
Abrir o browser e introduzir o endereo correspondente sua bancada (ver seco
anterior). Se lhe aparecer uma srie de mensagens com avisos do JAVA proceder de
acordo com o Anexo II.
Pode ainda visualizar o LR se se ligar Webcam (software recomendado IPVIEW) 2.
Esta ligao opcional j que no vai ser necessria. Para instalar o IPView ver seco 2.3
2.2
Os APs do LV apesar de terem uma ligao pr-determinada aos painis web neles alojados, s
correm naturalmente os programas que l forem instalados. No incio de cada semestre
(durante a 1 semana) enquanto os estudantes no tm o software PG5 instalado nos seus
computadores, no podendo assim instalar os seus prprios programas nos APs, ser posto a
correr nesses autmatos um programa de teste, que permite ilustrar a forma como
normalmente vai ser utilizado3.
Para correr este programa necessrio abrir o painel web da bancada remota que lhe foi
atribuda e cujo endereo est dado no Cap.1. Quando o fizer muito provavelmente vai obter
uma srie imensa de avisos JAVA que pode mesmo recusar-se a aceder ao endereo dado.
Para resolver o problema consulte o Anexo II deste documento.
Quando deixar de obter esta srie de avisos pode comear as suas experincias.
Os testes descritos a seguir referem os nomes dos smbolos fixados para este painel e que
esto referidos na Fig. 2-2.
O cdigo ser posteriormente fornecido de forma que os utilizadores possam repor o programa no AP
se assim o entenderem.
4
Um boto diz-se tipo Toggle quando tem duas posies estveis. Ou seja atua-se uma vez e fica numa
posio e quando se atua de novo muda a posio. Tambm se designam por botes tipo ON/OFF.
5
Um boto diz-se de presso quando uma posio corresponde ao estar atuado e a outo corresponde
ao estar desatuado. No LV atuar o boto consiste em atuar o rato sobre ele. Infelizmente no LV no se
pode ter mais de um boto deste tipo atuado ao contrrio do que se passa com estes botes quando
so reais.
OU
manter atuado o Detetor de presena
OU
manter atuado TapeteCdir
OU
manter atuado Tapete Cesq
Actua
Alarme
Atuar Botao1
Acende
Atuar Botao2
Acende
Atuar Botao3
Acende
Atuar Botao4
Acende
Todas as lmpadas do
semforo 1
Todas as lmpadas do
semforo 2
Todas as lmpadas do
semforo 3
Todas as lmpadas do
semforo 4
Acende
Acende
Luz Verde
Acende
Luz Amarela
Modifica
Registo 1105
(visualizar campo de
registos)
No laboratrio presencial essa deteo feita por um programa de viso computacional, ou ento
modificando o mesmo registo na watch window (a estudar mais tarde)
7
No laboratrio presencial ser usualmente a palete a atuar este sensor.
10
volta a acender.
O processo continua com a entrada de nova palete at que o boto de start se desligue.
Nesta altura o tapete deve parar e a luz verde apagar-se, mas s quando o processo em curso
terminar.
O nmero de peas de cada tipo entre duas atuaes de Start colocado respetivamente nos
registos 1201, 1202 e 1203, que pode ser observado no campo de visualizao de registos
2.3
username: aind_gcar
pass: aifo
11
12
3.1
Introduo
O PG5 o programa disponibilizado pela Saia Burgess para programao dos seus autmatos.
Infelizmente todas os fabricantes tm software prprio, todas as tentativas de normalizao
no tm ainda resultados visveis. Contudo, todas as linguagens ao dispor de cada marca
seguem paradigmas muito semelhantes e, por isso, torna-se simples programar qualquer AP,
desde que se tenha compreendido esse paradigma com um deles.
Descreve-se na seco a seguir os passos a dar na instalao do PG5 verso 2.0. Na
documentao disponibilizada est o manual desta linguagem. A sua leitura integral
vivamente recomendada embora possa apenas ser utilizado para dvidas pontuais que possam
surgir.
O pacote que vai ser instalado tem uma licena demo de 1 ms que no interessa usar. Assim
o representante em Portugal deste software, a Infocontrol, fornece uma licena de 3 meses
aos estudantes do IST. Para no terem de encetar um processo de atualizao de licenas,
sempre complicado, os estudantes devem esperar pela licena fornecida para fazer a
instalao.
3.2
Processo de instalao
Pode ser feito o descarregamento do pacote PG5 2.0 (verso 32 bits e 64 bits) diretamente do
site da Saia:
http://www.saia-support.com/en/software/pg5-controls-suite/pg5-20-current-version/pg520-suite.html
Contudo para evitar variaes de verses recomenda-se que a instalao seja feita a partir do
site de apoio disciplina:
http://web.ist.utl.pt/ist11390/
Tenha em ateno os seguintes pontos:
Deve fazer a instalao como administrador
13
Antes de instalar deve colocar a licena fornecida (FENIX ou no site de apoio) numa
pasta que saiba onde est. Desta forma, quando na instalao lhe pedirem a licena,
deve dar o caminho dessa pasta. No use a que vem por defeito no pacote pois essa
s vlida por um ms e no fcil de substituir pela nova.
Quando pedido para indicar o "path" para instalao das pastas, tanto do software
como dos projetos, deve evitar que haja espaos no caminho indicado. Ex: "PG5 2_0"
ou
"PG5
Projects
2_0"
devendo
ser,
respetivamente,
"PG5_2_0"
"PG5_Projects_2_0".
indispensvel ter disponvel o Help do PG5. Contudo o Windows 7 (e possivelmente
o 8) no compatvel com os ficheiros hlp. A soluo instalar o programa de ajuda
do windows WinHLP32.exe que vai permitir correr este tipo de ficheiros tornando
acessvel a ajuda do SAIA.
3.3
Quando se d como licena, uma que s vlida por um ms, desinstalar o programa
normalmente no basta caso a nova licena no seja aceite. Caso isso acontea os seguintes
procedimentos costumam resultar:
14
15
16
4.1
Introduo
4.2
Enunciado
O seu 1 programa vai ser uma simples implementao duma funo lgica.
Esta funo est sempre a ser lida pelo autmato (AP/PLC8) e testada sempre que se carrega
em PVerde mantendo este atuado. A funo deve usar os botes 0 a 2. Sempre que for 0 a
lmpada encarnada acende, sempre que for 1 esta lmpada apaga.
Para se saber que o cdigo est a ser lido deve acender-se uma luz verde enquanto PVerde
estiver atuado.
Cenrio do problema:
Configura os botes 0 a 2 (interruptores)
Atua PVerde (boto de presso)
4.3
Supe-se naturalmente que j tem o PG5 instalado e a ligao VPN estabelecida. Sabe
tambm a bancada que lhe foi atribuda.
17
Project
um
nome
no
seu
computador
Para poder aceder ao painel web vai copiar
para dentro da pasta Device1 a pasta html
fornecida nos ficheiros de apoio.
Do menu criado s se
vai preocupar com os
submenus que esto
sublinhados.
10
18
Passo 2: introduzir o IP do
autmato que corresponde
sua bancada
192.168.77.BANCADA
e fazer OK.
(este exemplo para correr
na bancada 7)
Passo 3: Copiar para o seu
PC (upload) as
caractersticas do PLC no IP
fornecido. Selecione:
Clique em Upload
configurations.
NO FAA
ABSOLUTAMENTE MAIS
11
NADA
Carregar em Download
pode ter efeitos imprevistos
e tornar o autmato
inoperacional
11
S um perito deve mexer nas configuraes dentro do menu fornecido, pois estas podem provocar
mau funcionamento inesperado do PLC. Se quiser esclarecer algum dos pontos fale com um docente.
19
Confirme O Upload e a
seguir feche a janela do
Device Configurator fazendo
SAVE.
12
Se no for alterado de imediato faa Device/rebuilt e mesmo dando um erro a alterao feita.
Esta alterao prende-se com a possibilidade dos alunos escreverem o seu nome ou nmero no
painel. A sua necessidade ser revista noutra edio deste painel.
14
Aconselha-se vivamente que seja lido o cap. 5 do manual do PG5. Uma m utilizao das variveis
uma causa frequente de erros. A palavra global associada ao nome indica que estes smbolos so
definidos fora dos mdulos de programa introduzidos, podendo por isso ser ou no utilizados. Por isso a
sua definio global e no particular a um mdulo de programa. nesta tabela que as variveis so
inicializadas.
15
Este problema no vai fazer uso nem do elevador, nem dos cilindros. Por isso no preciso incluir os
blocos de programa a eles associados. Contudo no pode mexer na tabela de smbolos que envolve
esses elementos, pois o autmato necessita saber referir-se a eles
13
20
1. Incluso de:
LV_Global.sy5
As variveis aqui
declaradas so as
definidas para o lab virtual
Se fizer F5 aparecer uma janela (SAIA Symbol Editor) com todos os
smbolos importados16. Definidos como pblicos podem passar a
ser usados nos outros mdulos17 como external. No Anexo I
dada esta tabela e o seu significado no lab virtual18
main(MyFirstProgram).src
Para poder ligar (link) e correr o seu programa falta ter uma
program file com os blocos principais XOB 16 e COB 0 019.
Vai incluir o ficheiro fornecido, main(MyFirstProgram).src, com
estes dois blocos, o XOB 16 para eventuais inicializaes20 e
termina com a instruo EXOB e o COB 0 0 no faz nada (para j) e
termina com a instruo ECOB.
2. Ligao pg web do
autmato:
16
O nome destes smbolos no pode ser alterado, pois tambm so usados no Painel Web.
Define-se como mdulo, uma file tipo Fupla, Lista de Instrues ou GRAFTEC que pode conter um ou
mais blocos de programa.
18
Tem de clicar duplamente em LV_Global.sy5 se quer ver a tabela com os smbolos inicializados (ver
frente)
19
Sobre o que significam estes termos ver manual do PG5 cap 7 seces 7.1 e 7.4
20
Neste programa no h inicializaes a fazer para alm das referentes s variveis do painel web
21
Se aparecer vazia porque se esqueceu de colocar a pasta html dentro da pasta device1
22
que foram previamente colocados na pasta html
17
21
Neste momento j pode ligar as files includas e correr o programa no LV. O programa no far
nada mas poder ver o painel como est definido. Note que a visualizao do painel de forma
correta depende da correo dos passos anteriores. Sob este ponto de vista o autmato no
se estraga. Siga os passos descritos a seguir.
23
Sai fora do mbito deste curso uma explicao mais detalhada deste tema.
Esta facilidade pode ser usada para ter diferentes mdulos no compatveis entre si no mesmo
programa
24
22
Neste momento o seu PLC ou est parado ou tem um programa a correr25. Quando l coloca o
seu programa o PLC vai parar e comear a correr o seu programa. No momento de descarregar
o programa corre o XOB 16, e tambm as variveis inicializadas nas tabelas de smbolos. Em
resumo:
Faa o download do
programa
Limite-se a clicar em
Download
Faa OK
Normalmente corre bem. Se obtiver uma resposta a dizer que no possvel estabelecer o
contacto e tiver ligado VPN, dever fazer mais umas tentativas e de seguida enviar um email
para o Eng. Camilo Cristo com conhecimento para o responsvel da UC
Clique em Go-OnLine
Visualize agora o painel web apresentado no autmato definido pelo IP que introduziu nas
configuraes. Neste caso fazendo:
http://192.168.77.7/bancada7.html
25
O estado normal do autmato ter um programa a correr, mas claro que o podem ter deixar parado.
23
Finalmente se clicar nos interruptores e botes v que eles tm dois estados, mas nada mais
acontece pois no h qualquer conjunto de instrues nesse sentido. Repare unicamente no
estado de ocupao e no user ID. Deve escrever o seu nmero ou nome.
Se em vez desta imagem obtiver mensagem relativas ao Java porque no o tem bem instalado e
deve ler o anexo correspondente deste documento. Se esta imagem aparecer deteriorada porque no
criou o ficheiro webserver.wsp ou tem erros na tabela de smbolos globais.
27
A estudar mais tarde
24
COB 0
0
; o seu cdigo:
ECOB
Vamos agora escrever o programa pedido28, ou seja a implementao de uma funo lgica.
Esta funo vai ser escrita em linguagem de contactos e colocada no Program Block FLogica.
Siga os seguintes procedimentos para criar esta funo:
Criar uma program file tipo
fupla que abre um editor para
linguagem de contactos e
blocos funcionais. Atribua um
nome significativo file29
Comece para definir para o
bloco um nome30.
28
25
CPB FLogica
Quando escreve abre-se automaticamente o Symbol Editor. Selecione a deste programa
e acrescente esta varivel tabela de smbolos:
26
Faa save e repare que este smbolo encontrado e declarado logo como External.
Abra o painel web da sua bancada e certifique-se que o seu estado livre. Se estiver
ocupado entre em contacto com o USER ID para se certificar que est a trabalhar
efetivamente no painel.
Faa o seu download para o autmato, coloque-se on-line e corra o programa. Estes
passos j foram explicados atrs.
(a)
b)
Fig. 4-1. a bold esto os contactos atuados e as linhas com energia. Em (a) Lverde acende e em
(b) ambas as luzes acendem.
31
32
27
em
watch
window
H-de obter a janela ao
lado.
Ative o icon dos culos
para
se
verem
os
estados actualizados.
Escreva por exemplo
Botao0.
Se
no
algum
passo
anterior
Quando
carregar
botao0
no
no
painel
Pode
modificar
33
sada
valor
uma
colocando
desejado
modify
o
em
fazendo
33
28
Sugesto: crie verses sucessivas deste programa at ser capaz de o fazer sem consultar este
documento.
29
Programao em PG5.
5.1
Introduo
Neste captulo iremos aplicar as diferentes linguagens de APs aos problemas tpicos que
iremos tratar na disciplina. Para cada um dos problemas far-se- uma abordagem o mais geral
possvel de como as diferentes linguagens do APs os implementa. Esta implementao ser
ilustrada com problemas concretos usando o PG5 2.0. So feitas algumas consideraes sobre
as instrues usadas mas, naturalmente, no se pretende substituir o manual do PG5 que deve
ser lido numa fase inicial e consultado sempre que subsistirem dvidas.
Contudo, antes de entrar nos problemas tpicos vamos rever alguns conceitos e instrues
bsicas.
30
Linguagens grficas
As linguagens baseadas na representao grfica de variveis e funes tiveram a sua gnese
na linguagem de contactos. Esta linguagem era a nica linguagem grfica existente nos APs
mais antigos. Permite emular circuitos eltricos com interruptores e rels a comandar a
abertura ou fecho de atuadores eltricos. Atualmente a prpria LC integra contactos e rels
mais elaborados36 que no iremos aprofundar.
A outra linguagem grfica baseia-se num conjunto de blocos, cada um realizando uma dada
funo. Por isso se designa por Linguagem de Blocos Funcionais. Estas funes comearam por
ser muito simples como por exemplo as correspondentes s funes lgicas. Atualmente
podem realizar funes muito complexas e parametrizveis online como, por exemplo, as
35
36
Para estudar esta linguagem use o livro Tcnicas de Automao e o manual do PG5
Ver no menu Binary/Ladder Diagram no ambiente Fupla.
31
utilizadas nos sistemas AVAC37. O PG5 integra a linguagem de contactos e a dos blocos
funcionais num ambiente de programao que denomina de Fupla.
Finalmente, o Diagrama Sequencial uma linguagem baseada na representao em diagrama
de estados do sistema, em particular no GRAFCET. Os diferentes fabricantes de APs oferecem
ambientes grficos que permitem desenhar um modelo sequencial e fazer a programao para
os seus diferentes elementos38. No caso do PG5 oferecido o GRAFTEC que, como o nome
sugere, se baseia diretamente no GRAFCET. Cada dos elementos do GRAFTEC39 programado,
ou em lista de Instrues, em Linguagem de Contactos ou Blocos Funcionais.
Como foi dito acima um sistema sequencial deve comear por ser representado por um
diagrama de estados, mesmo que no se pense usar a linguagem Diagrama Sequencial para
o programar. O GRAFCET pode ser olhado como um algoritmo a implementar e, a partir dele,
fazer a programao na linguagem escolhida.
5.2
Conceitos introdutrios
Tanto "AVAC" como "HVAC" so siglas que significam "aquecimento, ventilao e ar condicionado"
(em ingls "heating, ventilating and air conditioning"). Wikipdia.
38
O sonho do engenheiro que modela dar o modelo e ser o compilador a gerar todo o cdigo. Apesar
de haver uma evoluo nesse sentido ainda est longe de poder dizer-se estar concretizado.
39
Como ser estudado, estes elementos so as etapas e as transies.
40
De notar que em todas as linguagens de programao de alto nvel o endereo atribudo de forma
dinmica.
41
Ser chamada a ateno destes casos sempre que for oportuno. Na programao a ser feita nesta UC
no ocorrero, com exceo das variveis definidas na tabela global de smbolos usadas no painel web.
32
foram inicializadas noutro.42. Na Fig. 5-1 apresentada uma tabela de smbolos tpica de um
dado mdulo de programa.
(a)
(b)
Fig. 5-2. Inicializao de variveis (a) estticas (b) dinmicas
conveniente que o estudante perca algum tempo a estudar e a manipular a tabela de smbolos de
cada mdulo pois a segurana nesta manipulao permite evitar muitos problemas na compilao dos
programas.
33
Patamares
So dois os patamares definidos. Aquele que est acima e a que se chama 1, High ou
True. O outro que est abaixo chama-se 0, Low ou False. Em termos de AP detetar um
patamar por o valor lgico 1 no acumulador (accu). Esto associados expresso semntica
enquanto.
Linguagem Lista de Instrues43:
Utiliza, associadas com o nome das variveis, as instrues STH e STL. Em conjunto com outras
instrues podem ser usadas as instrues ANH, ANL, ORH, ORL44. A terminao H
corresponde a detetar o patamar 1 e a terminao L usa-se para detetar o patamar 0
Linguagem de contactos
Nesta linguagem usam-se os smbolos descritos na Fig. 5-4. A deteo corresponde
passagem de corrente num interruptor.
(a)
(b)
Fig. 5-4. (a) Deteo patamar superior (1) (b) Deteo patamar inferior (0)
Blocos funcionais
Nesta linguagem as variveis esto associadas a blocos e a entrada destes que define o
elemento do sinal que est a ser usado. Na Fig. 5-5 visualiza-se um bloco tipo AND cujas
entradas correspondem respetivamente ao patamar superior da varivel var1 e ao inferior de
var2.
Fig. 5-5. (a) Este bloco usa o patamar superior da varivel var1 e o inferior da var2
43
44
34
Flancos
Os flancos podem ser ascendentes e descendentes. Definem-se tambm como eventos e
usam-se essencialmente em operaes de sincronizao, incremento ou decremento. Esto
associados expresso semntica no instante em que.
Linguagem Lista de Instrues
A deteo do flanco de uma varivel lgica em LI feita usando a instruo DYN. Esta instruo
est associada a uma flag (que pode ser dinmica). A flag serve para guardar o estado da
varivel entre cada passagem do programa pela instruo. O flanco detetado quando este
estado varia entre duas passagens consecutivas.
STH Cesq
Dyn f_temp1
STL Cesq
Dyn f_temp1
Linguagem de contactos
Deteo do flanco ascendente
Deteo do flanco descendente
45
35
que
devem
respetivamente
para
ser
usados
deteo
quando
do
flanco
for
necessrio
ascendente
descendente.46
Sth f 30
Dyn f_temp1
Res Cil_A
Quando se programa em fupla/ linguagem de contactos
Enquanto a entrada 20 estiver a 1 a flag 12 est a 1.
46
Nota: estes blocos tm no quanto inferior esquerdo um tringulo que significa que podem ser
parameterizados mesmo on-line. Ver manual do PG5 Pg 6.33
47
Com fins ilustrativos usa-se, neste exemplo, as variveis diretamente referidas pelo seu endereo
esttico. No ser, contudo, a opo mais recomendada.
36
5.3
Este problema consiste na implementao de sistemas de controlo que podem ser descritos
por um conjunto de equaes lgicas. Estas em geral correspondem soluo de um problema
combinatrio48.
A sua programao vai ser feita usando as linguagens de programao estudadas. Trata-se de
um problema que corresponde ao do MeuPrimeiroPrograma
Exemplo de aplicao
A LC de utilizao muito simples. Seja o problema 2.1 da srie de problemas.
Enunciado
Considere a funo lgica S de 4 variveis dada pela seguinte expresso:
S 1 (0,3,10,13,15) d (1,2,4,8,14)
a)
d) Implemente a funo em blocos funcionais (BF) usando portas AND e OR. Suponha que
comanda o Sem1E
e)
Implemente a funo em blocos funcionais (BF) usando portas NAND. Suponha que
comanda o Sem2V
f)
Implemente a funo em blocos funcionais (BF) usando portas NOR. Suponha que
comanda o Sem2A
g)
Soluo
48
Iremos ver que nem sempre assim quando se estudarem os sistemas de comando para o
movimento linear cclico.
37
Colocada a funo num mapa de Karnaugh ir-se- levantar as funes atravs dos seus 1 e a
partir dos seus 0.
A partir destes levantamentos escrevem-se todos os programas pedidos como vem a seguir49:
b)
c)
49
As variveis
38
d)
,(
d) e e)
f)
PB
Prob2_1_LI
STL Botao3
ANL Botao2
XOB 16
; inicializaes do seu programa:
EXOB
39
OUT flag1
COB 0
0
; o seu cdigo:
STL botao2
ANL Botao0
OUT flag2
STH
ANH
ANH
OUT
botao3
Botao2
Botao0
flag3
STH
ORH
ORH
OUT
flag1
flag2
flag3
Sem2E
sth botao5
CPB H Prob2_1
CPB H Prob2_1_LI
STH Botao6
CPB H Prob2_2_LI
STL Botao6
CPB H Prob2_2_BF
; a incluir pelo menos os blocos que usar
ECOB
EPB
5.4
Problema 2: contagem
Um contador corresponde a um registo especial50 que contem um inteiro positivo, que pode
ser incrementado e decrementado. A esse registo especial est associada uma varivel lgica
que indica se o valor contido zero, ou diferente de zero e uma varivel inteira que d o valor
contido no registo. Em lista de instrues estas variveis tm o mesmo nome (o do contador) e
distinguem-se pelo contexto. Testar o contador testar o seu estado (operao lgica) ou
testar o seu contedo (operao aritmtica). Quando se trata de operaes aritmticas, o que
dito para contadores vlido para registos em geral.
Duas das situaes tpicas em que um contador pode ser usado so:
1. Contar um nmero de ocorrncias para simples visualizao e/ou para despoletar um
aviso quando um certo nmero de ocorrncias acontecer.
2. Dado um certo nmero, como o de peas a produzir, ou o da capacidade de uma
instalao, despoletar um sinal quando esse nmero for alcanado.
Vamos de seguida rever, em Lista de Instrues, e em Blocos Funcionais, como estas duas
situaes se programam no PG5.
acumulador (accu)
50
De 32 bits normalmente
40
constante
Inicializar um contador com um Usar a instruo copy. Como no depende do accu
valor existente num registo
Testar o estado inteiro do Esta operao s pode ser feita recorrendo a um registo.
contador
5.4.3 Exemplo
A seguir ilustra-se a sua utilizao o que corresponde soluo do Problema 2.2:
Enunciado:
Pretende-se controlar a entrada de pessoas numa instalao que comporta m pessoas. Entram
uma a uma e quando todas tiverem entrado fecha o acesso. Ser o operador que renova o
processo de entrada aps a instalao voltar a ficar vazia, o que constata por observao. O
51
41
operador dispe de um boto de presso (Penc) e existe um sensor (SBanc52) que deteta cada
pessoa que entra (supe-se que entra uma de cada vez). O nmero de pessoas m est definido
num BCD53 (logo de 0 a 9). A atuao de Penc faz abrir uma porta, se no houver pessoas na
instalao (avana cilindro A), e quando a instalao estiver cheia essa porta deve fechar
(Recua Cilindro A)
Enquanto houver lugares disponveis (contador >1) deve manter-se a Luz Verde do semforo 3
(sem3V) acesa e quando apenas s houver um lugar disponvel (contador =1) deve tambm
acender-se a amarela do mesmo semforo (sem3A)
Enquanto no houver lugares disponveis (contador = 0) est acesa a Luz Encarnada do mesmo
(sem3E)
Pretende-se que resolva o problema usando duas linguagens de programao, respetivamente
Lista de Instrues (LI) e blocos funcionais (BF). Estes blocos devem ser chamados a partir de
um programa principal escrito em LI.
Objetivo do problema: prtica com contadores: inicializao, incremento e decremento.
Discusso sobre a utilizao de um BCD.
Soluo:
Cenrio:
Actuao
Acende sem3A
Implementao:
Lista de instrues:
PB
52
53
Prob2_2_LI
42
STH
anl
DYN
CPB
SET
PEnc
contadorPessoas
fl_aux1
H CopiaRegistoRoda
Cil_A
sth contadorPessoas
anH SBanc
DYN fl_aux2
DEC contadorPessoas
STL contadorPessoas
RES Cil_A
STH contadorPessoas
OUT sem3V
PB CopiaRegistoRoda
COPY Roda
ContadorPessoas
EPB
Blocos funcionais:
No lab presencial deve usar o BCD. A Figura abaixo ilustra o bloco funcional que preciso
adicionar para carregar um registo com o valor contido no BCD. Neste caso deve fazer como
em baixo.
43
5.5
Um temporizador funciona nos APs como um contador de impulsos gerados por um relgio.
No PG5 a base de tempo por defeito a dcima de segundo. Assim temporizar a 5s o
mesmo, em termos internos ao AP, que inicializar um contador a 50. O AP sabe como proceder
atravs do tipo de varivel que definida, no PG5, ser o tipo T de temporizador.
A inicializao de um temporizador pode ser feita a partir de um valor guardado num registo
(que pode mesmo ser introduzido por um BCD54) ou a partir de uma constante definida no
momento da escrita do programa.
Testar o estado inteiro do Esta operao s pode ser feita recorrendo a um registo. Copia54
Desde que o valor entrado no registo seja multiplicado por um fator de escala como 10, para
corresponder a segundos.
44
contador
5.5.3 Exemplo
A seguir ilustra-se a sua utilizao e que corresponde soluo do Problema 2.3:
Enunciado:
Imagine que quer controlar o tempo entre atuaes sucessivas de dois sensores, sejam os
sensores TapeteCesq e TapeteCdir do tapete. Quando atua o TapeteCesq apaga LVerde e
LAmar se alguma estiver acesa. Coloca nesse momento um temporizador a trabalhar com um
tempo de 5s. Se quando atuar TapeteCdir tiver j passado esse tempo acende uma amarela
(LAmar). Se no tiverem ainda passado acende LVerde.
Soluo:
Cenrio do problema
Actuao
55
45
5.5.4 Cronmetro
A medio e registo do tempo que decorre entre duas operaes podem ser efetuados por um
bloco denominado Chrono que simula um cronmetro. A sua utilizao est ilustrada na
Fig. 5-6.
Fig. 5-6. Clr (Clear) coloca o cronmetro a zero e este contabiliza o tempo desde que En
(enable) esteja a 1. O tempo medido colocado num registo em dcimas de segundo.
46
deixa de chamar, a luz pode ficar ligada ou desligada56. Por isso deve sempre ser desligada/
ligada de acordo com o que se pretende quando este bloco deixa de ser chamado.
Fig. 5-7. Utilizao do Bloco Blink. Est sempre Enabled e tem perodo de 1s57
5.6
A visualizao do estado das variveis quando um programa est a correr essencial para
verificar se o programa tem erros. A ferramenta mais simples que o PG5 oferece a watch
window que permite no s ler o estado das variveis, como forar o seu valor. O mesmo
possvel com o mdulo de online debug (o icon um aranhio), que contudo menos
amigvel. Permite, contudo, fazer outras operaes.
Num mdulo escrito no ambiente Fupla possvel ver o estado das variveis desse mdulo.
Como se ver frente se o programa estiver escrito em GRAFTEC possvel tambm visualizar
no grafo o estado em que se est em cada instante.
Finalmente o painel web em si uma ferramenta de debug pois permite verificar se o sistema
controlado se comporta como previsto. Existem tambm trs janelas onde se podem visualizar
o valor dos registos. Contudo preciso saber primeiro qual o nmero do registo pretendido.
Estes registos tambm podem ser usados para ver variveis como contagem de ocorrncias
ou de tempo. So totalmente equivalentes utilizao da watch window para o efeito.
Se o Enable estiver ligado a uma flag e esta for 0 o output do bloco passa a ser0. (ver Help do bloco)
Quando se pretende usar o Painel Web para que o pisca seja visvel o perodo fixado depende da
velocidade da rede. No IST este perodo de 1s suficiente.
57
47
manter o boto esquerdo do rato atuado arrastar essa varivel da tabela de smbolos para a
WW (pegar na varivel na zona do tringulo) Podem ser colocadas variveis com qualquer
mbito que a WW guarda a sua provenincia.
Depois de o programa estar a correr clica-se no icon dos culos (ver Fig. 5-8) que aparece o
estado corrente das variveis.
Com esta WW tambm possvel forar o valor de variveis. Esta situao til por
exemplo para criar mais interruptores, ou colocar valores em registos. Para isso colocase o valor desejado na coluna Modify e depois clica-se na seta vermelha.
Nos mdulos criados em Fupla possvel ver diretamente o estado das variveis sem
necessidade de usar a WW58. Isto est ilustrado na Fig. 5-9.
Fig. 5-9. Debug em Blocos Funcionais (nota: clicando nos retngulos azuis permite mudar a
formatao da apresentao dos resultados)
58
48
Programao em GRAFTEC
6.1
Introduo
6.2
Este assunto est detalhadamente explicado no livro de referncia. Muito em resumo, depois
de ter o GRAFCET bem estabelecido, associa-se uma flag a cada etapa deste e a evoluo entre
etapas traduzido na evoluo do estado das flags. Este assunto vai ser retomado mais abaixo
quando se estudar a implementao do paradigma Master/slave.
6.3
49
GRAFCET
GRAFTEC
Todas as aes associadas a uma etapa em Todas as aes associadas a uma etapa duram
que
no
haja
qualquer
indicao
contrrio,59 duram enquanto dura a etapa, ou prtica como se todas fossem do tipo P.
seja enquanto a etapa estiver ativa.
As
transies
so
simples
testes
recetividade que permitem fazer evoluir os transies seguintes s etapas ativas. Poder
grafos.
No
ordens
transies60
associadas
59
50
Esta ltima situao equivalente anterior em GRAFTEC pois uma etapa neste dura sempre
um intervalo de relgio.
51
GRAFCET
Transio fonte
Transio poo
(o sistema fica retido na
etapa n+1) de onde s
sai
com
uma
nova
inicializao do grafo.
6.4
A diferena formal entre um GRAFCET que mestre e outro que escravo que o mestre
inclui ordens de foragem que controlam a evoluo do mestre. Um dos problemas do PG5
que a linguagem sequencial que incorpora, o GRAFTEC, no permite que blocos GRAFTEC
chamem outros blocos GRAFTEC. Assim o mestre ter de ser implementado usando linguagens
no sequenciais. Atravs de exemplos vamos ver como isto pode ser feito
Variveis de situao:
Estas variveis, que definem o estado de um dado grafo, podem ser representadas de
diferentes formas em GRAFCET62. Em GRAFTEC a nica forma simples de as obter associar
uma flag nas etapas de que se pretende guardar o estado e declar-las como variveis
pblicas. Essas flags s podem estar ativas na etapa que definem ou seja deve ser feito o seu
62
Ver bibliografia
52
reset na inicializao do programa (XOB 16), na etapa inicial e nas etapas imediatamente a
seguir s que pretendem caracterizar.
ordens de foragem
No PG5 um bloco sequencial s corre se estiver permanentemente a ser chamado. Se deixar
de ser chamado paralisar onde ficou, mantendo-se em permanncia as ordens que estavam
a ser dadas. Portanto, forar a paralisao corresponde a deixar de chamar o respetivo bloco
sequencial.
Em PG5 quando o programa arranca os blocos sequenciais ficam prontos a arrancar nas etapas
marcadas como iniciais. Contudo essas etapas podem ser definidas no programa principal
(mestre) usando a instruo RSB63.
Finalmente existe ainda a foragem do estado vazio ou sem marcas. Este estado no
possvel em PG5. A forma mais aproximada do realizar colocar o grafo num estado em que
no faz nada, que pode ser o inicial ou outro tipo poo de onde s sai com nova foragem de
um dado estado.
Finalmente nota-se que forar situaes de paralisao ou vazio podem conduzir a situaes
perigosas para o equipamento ou pessoas. Deste modo a execuo destas ordens est
normalmente dependente do estado atual do sistema. Este deve ser conduzido para estados
compatveis com estas ordens. Se no for este o caso dever ter de ser o mestre a controlar
situaes perigosas64
Exemplo
O exemplo a seguir ilustra como a partir da representao em GRAFCET dum mestre tpico se
programa em lista de instrues este sistema de comando.
63
Restart Sequential Block. Ver no manual do PG5 cuidados a ter com esta instruo.
Por exemplo paralizar um sistema em que um forno est ligado conduzir a uma situao perigosa se
este no for desligado.
64
53
54
55
56
6.5
6.6
As etapas que iro ter associadas variveis de situao devem ter uma etiqueta com o
nome dessa varivel para facilitar a leitura do grafo.
57
6.7
linguagens no sequenciais
Este assunto vem amplamente discutido no livro de referncia da UC.
58
Windows XP
Seguir os seguintes passos:
1
Em
START/Control
Painel/
Network
59
Clique em Advanced:
9
60
Windows 7
Seguir os seguintes passos
1 Abrir o Control Panel,
e, nele, o Network and
Sharing Center, para ver
o dilogo da figura
3 Escolher Connect to a
workplace e carregar
em Next, para ver o
dilogo da figura
61
4 Escolher
Use
Internet
my
connection
(VPN), e preencher os
campos no dilogo da
figura: o endereo IP o
193.136.103.204,
das
ligaes
62
Windows 8
Seguir os seguintes passos:
1
63
Selecionar
Use
Internet
my
connection
(VPN)
Agora
clicamos
na
Internet
Internet
(ou
Adress):
193.136.103.204
Nome
de Destino
(ou
Destination
Name):
LabRemoto
ou
LabRemotoAI
As caixas de verificao
devem estar como na
imagem
64
com
ligao
criada
65
10 clicando
em
Ver
Propriedades da Ligao
(ou
View
connection
properties),
surgir
janela ao lado
No
primeiro
separador
Opes
Options),
(ou
permanece
inalterado.
12 No separador Segurana
(ou
Security)
faa
as
seguintes alteraes:
a) Selecionar-se a opo
Permitir estes Protocolos
b) fazer um certo/check
nas caixas de verificao
CHAP e MS-CHAP v2, tal
como mostra a imagem
66
13 Quando
se
Separador
passa
ao
Rede
Networking)
(ou
surge
um
separador
selecionam
Protocol
Rede
Internet
Version
clicam em Propriedades
67
na
rede
OK e novamente
OK.
Ligar
(ou
Connect) em LabRemoto
Observaes:
1) Alguns estudantes acharam til seguir estas instrues juntamente com o seguinte vdeo do
Youtube: http://m.youtube.com/watch?v=8lxnMEHArqY
2) Houve quem reportasse o seguinte erro:
Error 942
The connection could not be established because the authentication method used by your
connection profile is not permitted for use by an access policy configured on the RAS/VPN
68
server. Specifically, this could be due to configuration differences between the authentication
method selected on the RAS/VPN server and the access policy configured for it.
E desse como soluo:
Para o resolver necessrio aceder novamente s propriedades da ligao e ao separador
"Security". Aqui existem duas opes no selecionadas - deve-se selecionar a segunda "Allow
these protocols" e dentro desta opo selecionar o quadrado que diz "Microsoft CHAP Version
2".
Ao selecionar este quadrado, automaticamente selecionado um sub-quadrado que diz
"Automatically use my Windows logon.......etc" - deve-se desseleccionar este quadrado.
Veja tambm:
http://eufuckingreka.wordpress.com/2012/11/13/windows-8-vpn-getting-error-942/
3) Se alguma coisa correr mal com a sua ligao seguindo estes procedimentos, envie um email
com o problema e a sua soluo para ser acrescentado a este manual.
69
Procedimento 1:
1) Abrir o Control Panel
Find the Java Control Panel
Windows XP
(Mudar o Painel de controlo para vista clssica)
Click on the Start button and then click on the Control Panel option.
Click on the Start button and then click on the Control Panel option.
In the Control Panel Search enter Java Control Panel.
Double click on the Java icon to open the Java Control Panel.
Windows 7, Vista
Press Windows
OR
logo
key
W to
open
the Search
charm to
search
settings
Drag the Mouse pointer to the bottom-right corner of the screen, then click on the Searchicon.
In the search box enter Java Control Panel
Click on Java icon to open the Java Control Panel.
70
4) Clicar em Edit Site List... para adicionar o endereo da webpage a usar. Ser aberta
uma nova janela.
71
6) Sempre que for inserido um endereo ir aparecer uma janela de aviso. Fazer Continue e
depois na janela Java Control Panel clicar em OK para sair.
NOTA: Para retirar os diversos avisos de segurana ir ao Java Control Panel e entrar na aba
Advanced.
72
Type Address
F
1000
F
1001
F
1002
F
1003
F
1004
F
1005
F
1032
F
1033
F
1034
F
1007
F
1023
F
1048
F
1049
F
1016
F
1017
F
1018
F
1006
F
1096
F
1097
F
1098
F
1099
F
1100
F
1101
F
1102
F
1103
F
1035
F
1036
F
1037
F
1038
F
1112
F
1113
F
1114
F
1115
F
1106
F
1107
F
1108
F
1109
F
1110
Scope
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
73
ElevDirec
Sem1E
Sem1A
Sem1V
Sem2E
Sem2A
Sem2V
Sem3E
Sem3A
Sem3V
Sem4E
Sem4A
Sem4V
BCD0
BCD1
BCD2
BCD3
Roda
Pea
user_ID
ocupacao
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
R
R
TEXT
F
1111
1064
1065
1066
1067
1068
1070
1080
1081
1082
1083
1085
1086
1019
1020
1021
1022
1105
1104
50
1025
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Public
Bancada Virtual
Estas variveis tero de ser adicionadas como external nos mdulos que as vierem a utilizar.
74
Flags66
Como na tabela de smbolos globais se usa a gama entre os 1000 e 1200, pode usar flags com
endereos declarados entre 0 e 999 e depois entre 1200 e 1999. Os endereos a partir do 2000
esto reservadas para flags dinmicas.
65
Isto que se passa nas outras linguagens de programao. Note-se que no Matlab nem o nome das
variveis usadas necessrio declarar.
66
Toda esta informao foi retirada do manual do PG5 que deve ser usado como referncia final para
esclarecimento de qualquer dvida.
75
Se optar por usar por usar flags dinmicas s tem que declarar o nome dado como flag. Isto
ilustra-se a seguir:
Exemplo: usar uma flag que, desde que esteja a 1, acende a LEnc.
; o seu cdigo:
SET fl1
OUT LEnc
Na tabela de smbolo aparece como varivel local (que se for usada noutro mdulo deve
passar para pblica)
Note que se puser o rato sobre a varivel no seu cdigo aparece o endereo atribudo:
Timers
Os endereos a partir do 10 so dinmicos. Se pretender usar endereos estticos pode usar os
endereos de 0 a 9.
Counters
Os endereos at ao 50 esto ocupados com timers e a partir do endereo 1000 esto
reservados para serem alocados pelo AP (dinmicos). Pode assim usar contadores com
endereos estticos de 51 a 999.
Blocos de programa:
Pode usar endereos para estes blocos de 0 a 29967. No atribua um endereo aos seus blocos,
ou seja deixe o autmato faz-lo.
Blocos sequenciais:
Pode usar endereos para estes blocos de 0 a 3168. No atribua um endereo aos seus blocos,
ou seja deixe o autmato faz-lo.
67
68
76
77
Index
Function block diagram, 37
global.sy5, 27
Inicializacao.src, 27
Instruction list, 38
IPVIEW, 18
laboratrio presencial, 4
laboratrio remoto, 3
laboratrio virtual, 2
Ladder Diagram, 37
Lista de Instrues, 38
painel web, 2
78
PG5, 19
problema sequencial, 37
sensor de presso, 16
Sequential function chart, 38
sistema combinatrio, 37
Structured text, 38
Toggle, 16
Variveis dinmicas, 62
VPN, 6
Watch Window, 35