SECRETARIA DE EDUCAÇÃO MÉDIA E TECNOLÓGICA CEFETES - SERRA COORDENADORIA DE AUTOMAÇÃO INDUSTRIAL
Intouch VERSO
SEBASTIÃO ALVES CARNEIRO
Serra – ES 2007/1 1
2
A - ACESSANDO O INTOUCH - Carregue o aplicativo InTouch, dando um duplo click no no ícone localizado no desktop
- O gerenciador de aplicativos do InTouch será aberto com as últimas aplicações aplicaç ões abertas - Pressione Avançar
mude, será salva no seguinte IMPORTANTE: 1) Toda aplicação nova, caso você não mude, diretório: C:\Arquivos de programas\FactorySuite\InTouch\NewApp 2) Caso deseje salvar em outro diretório, basta clicar no botão ao lado Browse e selecionar nova basta com o diretório desejado. Exemplo, desejo que nova aplicação esteja armazenada em C:\seba
A.1- CRIANDO UMA NOVA APLICAÇÃO
1- Seleciono o Browse - Na barra de menu File, escolha a opção New, A tela cria nova aplicação aparecerá, conforme a seguir:
11
12
2- Pressiono o ícone nova pasta
2- Na Opção Examinar seleciono o diretório que desejo criar minha nova aplicação
3- Altero o nome pasta nova para o nome da aplicação desejada, para o nosso exemplo seba
A.2- CARREGANDO UMA APLICAÇÃO JÁ EXISTENTE Se desejar entrar num projeto já existente, entre em Tools/Find Aplications... e através do browse, localize em que diretório o projeto se encontra e dê um duplo click, o mesmo deverá aparecer na relação de projetos já abertos. Selecione, na lista de projetos já abertos, o projeto desejado e dê um duplo click, assim você entrará no ambiente de construção de projetos de supervisão chamado WindowMaker
13
14
- Pressione o botão OK
B - WindowMaker - Ambiente de Construção de Projetos de Supervisão Industrial A Ilustração a seguir mostra a tela principal do WindowMaker quando uma aplicação está aberta, identificando seus elementos. Quando não existe uma aplicação aberta à tela apresenta menos opções na Barra de menu e na Barra de Ferramentas, mas o seu layout permanece o mesmo.
15
16
COMANDO
TECLAS DE ATALHO
AÇÃO
Linha vertical ou horizontal Seqüência de linhas
General Toobar
Vizualiza a Barra de Ferramenta Geral
Wizards/AxtiveX Wizards/AxtiveX Toobar
Vizualiza a Barra de Ferramenta Wizard
Polígono Texto
Format Toobar
Vizualiza a Barra de Ferramenta formatação
Draw Object Toobar
Vizualiza a Barra de Ferramenta Desenho
View Toobar
Vizualiza a Barra de Ferramenta Visual
Arrange Toobar
Vizualiza a Barra de Ferramenta arranjos
Status Toobar
Vizualiza a Barra de Ferramenta Status
Ruler
Vizualiza a Barra de Ferramenta Régua
Application Explorer
Vizualiza a Barra de Ferramenta Explorer Esconde todas as barras de ferramentas com exceção da barra de menu e barra de Título. Esconde todas as barras de ferramentas inclusive a barra de menu E Titulo.
Hide All Full Screen
Importação de bitmap Gráfico de Tendência Real Gráfico de Tendencia Histórica Botão Seleciona e altera tipo de fonte. Altera fonte do texto selecionado para formato Bolbo Altera fonte do texto selecionado para Itálico
Runtime! Transfere rapidamente do Window Maker para o Window Viewer. Todas as alterações feitas nas janelas abertas no Window Maker serão salvas antes da transferência para o Window Viewer (não pede confirmação!).
Altera fonte do texto selecionado para Sublinhado Diminui tamanho da fonte do texto selecionado quando a mesma é tipo True Type (TT) Aumenta tamanho da fonte do texto selecionado quando a mesma é tipo True Type (TT)
Descrição das ferramentas
Alinha texto a esquerda Centraliza texto
A seguir serão descritas as ferramentas que compõem o ambiente de trabalho do Alinha texto a direita
WindowMaker.
Altera cor de linha do objeto selecionado Altera cor de enchimento do objeto selecionado.
DESCRIÇÃO DOS ÍCONES Ícone
Descrição
Altera cor da fonte selecionada Altera cor da janela
Seleção de objetos, multiplos ou específicos com a tecla SHIFT acompanhada. Altera trasparencia Retângulo Habilita/Desabilita explorer do Intouch Retângulo com bordas arredondadas Hide/Show todas as ferramentas Elipse Mostra janela editada em formato full screen Linha Habilita/Desabilita Habilita/Desabilita grade da janela editada 21
22
Habilita /Desabilita régua do WindowMaker
Agrupar célula
Cria nova janela
Desagrupar célula
Abre janela
Girar 90 graus sentido horário
Fecha janela
Gerar 90 graus sentido anti-horário
Salva janela corrente para o disco
Espelhar horizontal
Salva todas as janela para o disco
Espelhar Vertical
Duplica objeto selecionado
Selecionar Wizard, objetos previamente editados e configurados.
Recorta Copia para área de transferência Cola da área de transferência Retorna ação Avança ação retornada Imprime Alinha objetos selecionados à esquerda Alinha objetos selecionados no meio horizontal Alinha objetos selecionados à direita Alinhamento superior de objetos selecionados Alinhamento no meio vertical de objetos selecionados Alinhamento inferior de objetos selecionados Alinhamento central de objetos selecionados Enviar para trás Trazer para frente Espaçamento horizontal igual Espaçamento vertical igual Agrupara em símbolo Desagrupar símbolo 23
24
3- Criação de Projetos no windowmaker
Size controls: opção de redimensionar o tamanho da tela.
Todos os projetos são desenvolvidos dentro de Janelas/telas que estão ligadas entre si.
3.1 Janelas/telas Uma janela(window) ou tela, como iremos chamar daqui para frente, pode ser definida como o ambiente de fundo onde será feito toda a construção do processo a ser monitorado. Um processo/aplicação pode ter um número ilimitado de telas. Uma tela pode ser criada, pressionando o botão Nova Tela (New Window...) na barra de ferramentas ou usando o comando Novo (New) no menu File. A seguinte janela de propriedades irá surgir:
Window Color : cor de fundo da tela. Dimensions X Location: localização do canto superior esquerdo da tela (Ex.: 04) Y Location: localização vertical do canto superior esquerdo da tela (Ex.: 04) Window Width : largura da tela em pixels (Ex.: 632) tela em pixels (Ex.: 278) Window Height : altura da tela No momento somente o nome da tela é importante. Digite um nome qualquer ( Ex.: Minha Primeira Tela) e click em ok. A seguinte tela irá surgir:
Figura 3.1 Janela de Propriedades de Telas Novas Onde:
Name: Nome da tela. Deve refletir a finalidade a ser visualizada no processo. Comment: Comentário sobre a tela a ser criada. Windows Type: Tipos de telas. •Replace: Tela de sobreposição, apaga as telas do fundo •Overlay •Popup: Tela de superposição, não apagar as telas do fundo.
Figura 3.2 Primeira Tela Criada Você poderá criar dentro desta tela seus desenhos (bitmaps) em qualquer tamanho e cores que desejar, Lembrando que este desenho deverá refletir o processo industrial que se deseje monitorar. Para visualizar ou editar as propriedades da tela corrente dê um click no botão direito do mouse e pressione em Window Properties... e a janela de propriedade retornará como na Figura 3.1
Frame Style: Estilo das brodas • Single :borda simples • Doublé: borda dupla OBS.: Na opção Title Bar ativa, somente a borda simples (single) é disponibilida. tela – se estiver inativa, não terá como mudar a Title Bar : opção de aparecer o nome da tela posição da tela.
25
Exemplo: Desejamos criar uma tela com as seguintes características: características: Nome da tela: Tela Nova. Fundo: cinza. Tipo de Tela: Replace. Localização X: 50 pixel’s. Localização Y: 100 pixel’s. 26
3.2 Objetos de Tela
Largura da tela: 600 pixel’s. Altura da tela: 300 pixel’s. Borda: Simples. Solução: Na barra de Menu em File / New Window... abra a janela de propriedades a seguir:
São inseridos sobre os bitmaps e desta forma podem ser deletados, copiados, movidos e redimensionados sem mudanças na tela de fundo. Objetos de Tela são elementos gráficos usados para mostrar os valores da Tag de uma forma mais atraente. Os Objetos de Tela podem ser criados a partir da barra de ferramentas. Uma vez selecionado o objeto que se deseja criar mantenha o botão esquerdo do mouse pressionado na área da tela enquanto movimenta o mouse (um retângulo pontilhado mostra o tamanho e a forma do objeto). Ao soltar o botão o objeto será posicionado dentro da área especificada. Os seguintes objetos podem ser criados: · Primitivas do Editor Gráfico (Retas, Círculos, Retângulos, Polígonos, etc..); · Controles (Alarmes, Históricos, etc); · Imagens não vetoriais (Arquivos BMP, JPG, GIF, etc...). · Imagens vetoriais (Arquivos WMF, EMF, etc). · Controles Padrão do Windows (Lista, Editor de texto, Lista de seleção, etc.). . Bibliotecas fornecidas por terceiros.
3.2.1 Ícone de Seleção de Objetos Ícone
Descrição Seleção
de
específicos
objetos, com
a
multiplos tecla
acompanhada.
Figura 3.3 Exemplo de Propriedades de uma nova tela a ser criada
Resultado:
3.2.2 Descrição dos Objetos Objeto
Descrição Retângulo Retângulo com bordas arredondadas Elipse Linha Linha vertical ou horizontal Seqüência de linhas
Figura 3.2 Exemplo de uma Nova Tela Criada
Polígono Texto
27
28
ou
SHIFT
Importação de bitmap Gráfico de Tendência Real Gráfico de Tendencia Histórica Botão
3.2.3 Objetos Adicionais – Wizard Mais objetos podem ser selecionados através do Wizard Selecionar Wizard, objetos previamente editados e configurados.
Objetos Wizard:
Figura 3.2 Objeto Tipo Retângulo Criado
Buttons – Botões Clocks – Relógio Frames – Contornos Lights – Lâmpadas Meters – Medidores UV Panels – Painéis Runtime Tools - Ferramentas Sliders – Variadores deslizantes Switches - Chaves Text Displays – Visualizadores de texto Trends - Históricos Value Displays – Vizualizadores de Grandezas Windows Controls : - Controladores Windows
3.2.4 Edição dos objetos A edição dos objetos na Tela, como alinhamento, tamanho, posição e agrupamento são feitos através da barra de ferramentas Arranjar. O último objeto selecionado fica com o foco para ser usado como referência.
3.3 Tagnames (TAG’S) São todas as variáveis numéricas ou alfanuméricas envolvidas na aplicação. São elas que fazem o elo entre o processo e a animação. O tipo deTag pode ser definido na opção Tipo do Tag (Tag Type) de acordo com a função do Tag.
3.3.1 Criando Tagnames Pode-se criar e editar Tags a partir do menu Special, selecionando a opção Tagname Dictionary, ou mesmo quando na animação de um objeto ou no desenvolvimento do script(fase de programação) uma variável(Tag) for digitada, e ainda não foi definida. Uma tela de alerta irá aparecer informando que a Tag é indefenida e se você deseja defini-lá.
3.3.1 Tipo Tiposs Tagnames Tagnames TIPO Discrete Integer Real
29
DESCRIÇÃO
EXEMPLO DE APLICAÇÃO
Variável que possui apenas dois níveis, 0 ou 1, ativada ou não ativada, ligado ou não ligada. Variáveis inteiras, ou seja, números inteiros (conjunto Z) Variável real, ou seja, conjunto R.
Bombas, válvulas on/off, lâmpadas, alarmes, etc. Indicações inteiras, saídas inteiras, etc. Indicações reais, saídas reais, etc.
Message
Variável alfanumérica números e/ou letras.
acumula Informações que podem números e/ou letras.
Group Var
Grupo de variáveis, as variáveis podem ser agrupadas para melhorar a Alarmes, organização, etc. organização ou até mesmo para alarmar em uma janela de alarmes. 30
ser
Hist Trend
I/O
Variável do gráfico de tendência histórica. Cada gráfico necessita de uma. O gráfico de tendência histórica é o equivalente ao registrador, com as Gráfico de tendência histórica e vantagens da carta não “embolar”, a wizard. tinta não “borrar” ou acabar, não ocupar espaço no painel, além de poder ser criado diversas vezes. Variável Variável usada para trocar trocar informações informações com os equipamentos de aquisição de dados, usando drivers de I/O PLC, Controladores digitais, etc fornecidos pelo fabricante do supervisório de acordo com o tipo do equipamento utilizado.
Tagnames Internas Existem várias Tagnames já pré definidas pelo intouch para auxiliar o projetista, todas iniciam com o caracter $; exemplo, a tagname $second é igual aos segundos do computador já a a tagname $Month é igual ao mês corrente do computador. Em anexo temos a relação de todas as tagnames.
Há nove possibilidades de animações, que são ser subdivididos, como é vista a seguir:
3.4 Animando os Objetos As animações são os recursos usados para dá “vida” aos objetos. Para isso basta dar um duplo click com o mouse no objeto e a janela auxiliar de animações será mostrada na tela do vídeo. Veja o exemplo a seguir:
1) Touch Links – Interação com o usuário através de: Entradas (User Imput) Sliders Ações por botões (Touch pushbottons) 2) Line Color – Coloração de linha. 3) Object Size – Tamanho do objeto. 4) Miscellaneous – Animações de diversas: visibilidade do objeto, pisca, rotação. do objeto e indisponibilidade do objeto. 5) Fill Color – Coloração do obejto. 6) Location – Posicionamento do objeto. 7) Value Display – Valor a ser visualizado. 8) Text Color – Coloração do texto. 9) Percent Fill – Percentagem de preenchimento do objeto. Deve-se observar que de acordo com o objeto algumas opções de animações ficam desabilitadas, já que não fazem sentido na animação.
31
32
3.4.1 Prenchimento de Objetos-Percentil Fill Este tipo de animação é utilizado em simulações de prenchimento de objetos, simulando processos industriais, tais como: tanques, escalas termométricas etc. O preenchimento pode ser tanto na horizontal, como na vertical.
Etapa 2- Estabeleça as condições de preenchimento
Exemplo: Iremos simular o preenchimento de um reservatório, na vertical, através da variação da tagname de sistema $second, já que não temos os valores reais dos instrumentos de campo. Condições de preenchimento do reservatório que que será simulado pela tag $second:.
Propertiers
Para $second=0 o reservatório deve estar vazio; Para $second=59 o reservatório deve estar 100% preenchido;
Para $second=0 o reservatório deve estar vazio; Para $second=59 o reservatório deve estar 100% preenchido;
Vejas etapas a seguir de configuração:
Etapa 1- Selecione a animação desejada(Percent Fill/Vertical)
Expression: nome da tagname($second)
Logo, para o valor da tagname $second=30 o reservatório estará 50% preenchido e assim sucessivamente.
Background Color – Selecione uma cor de fundo diferente da cor do “tanque” para que haja contraste. Direction – up (para cima) Conforme figura a seguir:
33
34
Caso:
a) # b) #.# c)
#.##
-
Most Mo stra rará rá apen apenas as a parte parte inte inteir iraa da vari variáv ável el.. -
Apar Aparec ecer eráá vari variáve áveis is com com uma uma casa casa decim decimal al.. -
Aparecerá variáveis com duas casa decimal.
Cuidado: O ponto (.),entre os caracteres #, é importante para estabelecer a parte decimal. diferente de #.## (0,01) ###=# (001) é diferente
Etapa 2- Selecione a animação desejada( Value Display ) que apresenta de três subdivisões de seleção: Discret, Analog, String. É importante observar que tagname do tipo: Discret apresentam só 2 estados( falso ou verdadeira; 0 ou1, liga ou desliga; etc); Reais( tensão,corrente, temperatura, temperatura, etc); Analog são Contínuas, Inteiras ou Reais( String são do tipo mensagem(nome do operador, etc). A tagname $second é do tipo Analog.
Resultado no WindowViewer EXEMPLOS: - CONFIGURANDO:
3.4.2 Visualização de Variáveis - Value Display Em todo projeto é importante visualizar as variáveis do processo, para que possamos ter uma visão das grandezas envolvidas no processo. Assim como nos painéis elétricos temos voltímetros, amperímetros, wattímetros etc. Desejamos visualizar os segundos do computador, através da tagname $second
Etapa 1- Na barra de ferramenta de Desenhos , escolher o ícone Texto e digitar o caracter # no local desejado
35
36
VISUALIZANDO HORAS E DATAS a) $TimeString – Representa HH:MM:SS b) $DateString– Representa MM:DD:AA tagnames do tipo string.
3.4.3 DIMENSÕES DE OBJETOS –(OBJECT SIZE) -Visualizando a aplicação- Runtime! (WindowViewer):
As dimensões (altura(Heigth) e largura(Width)) de um objeto podem ser alteradas(diminuídas) em função da mudança de uma variável. Normalmente esta animação é usada para simular o enchimento de um objeto ou fornecer uma idéia de deslocamento em direção ao operador na frente do vídeo.
Exemplo: Iremos simular a diminuição da altura de um reservatório até 10% do seu valor real(100x200 pixels), através da variação da tagname de sistema $second, já que não temos os valores reais dos instrumentos de campo. Condições de diminuição da largura do reservatório reservatório que será simulado pela tag $second:.
EXEMPLO 2: - Faça a implemetação do seguinte projeto: WindowMaker:
Para $second=0 a altura do reservatório deve ser de 10% do normal; Para $second=59 a altura do reservatório deve ser de 100% do normal; Vejas etapas a seguir de configuração:
Etapa 1- Desenhar o objeto em tamanho original (100%) com largura =100 pixels e altura =200 pixels
Runtime!:
Etapa 2- Utilizar a Tag do sistema $second para alterar a altura (height) do objeto.
37
38
Mín % Height = 10 2-Value at Mín Height =0 Quando $second=0, o retangulo deve estar com 10 % do seu tamanho.
- Runtime: Dimensões do objeto p/ $ second =0
.
Dimensões do objeto p/ $ second =25.
Observar que a âncora escolhida é a parte inferior do retângulo, ou seja é a base inferior que será referencia.
Properties: 1- Value at Max Height =59 Max % Height = 100 Quando $second=59, o retangulo deve estar com 100 % do seu tamanho.
39
40
3.4.4 DESLOCAMENTO DE OBJETOS ( LOCATION)
O deslocamento vertical e/ou horizontal de um objeto pode ser conseguida em função da mudança de uma variável; para simular o movimento de objeto; como por exemplo: movimento de veículos, movimento de peças numa correia transportadora etc.
- Animar o objeto ( Location:
vertical horizontal)
Exemplo: - Animar o deslocamento do objeto(retângulo), conforme figura a seguir: Deslocamento horizontal: 100 pixel’s. Deslocamento vertical: 200 pixel’s. Intervalo de tempo: 60 s.
480 380
250
Auxilia no posicionamento final
450
- Utilizar a variável de sistema ($second) p/ promover o deslocamento vertical
Não necessita de objeto final
41
42
Quando $second=0, o retangulo deve estar na posição inicial.
Ação:
(Value – At Top =0)
-RODANDO(WindowViewer) (Runtime). Posição do objeto p/ $second =13
(Vertical Movement - Up=0)
Quando $second=59, o retangulo deve deslocasse da posição inicial, para baixo(Down) de 200 pixel’s.
Ação:
(Value – At Top =59)
(Vertical Movement - Down = 200)
- Utilizar a variável de sistema ($second) p/ promover o deslocamento horizontal.
Posição do objeto p/ $second = 56
Quando $second=0, o retangulo deve estar na posição inicial. ou seja sem nenhum movimento à esquerda;
Ação:
(Value – At Left End =0)
(Horizontal Movement – To Left =0)
Quando $second=59, o retangulo deve deslocasse da posição inicial, para à direita de 100 pixel’s.
Ação:
(Value – At Right End =59)
(Vertical Movement – To Left =100)
43
44
3.4.5 TOUCH LINKS Para animarmos os objetos sem utilizar a tagname $second, precisamos saber como fazer para mudar o valor da tagname que está sendo utilizada. Para isso, podemos usar na janela de animações: User inputs, Sliders ou Touch Pushbuttons-Discrete Pushbuttons-Discrete Value, Value, que veremos a seguir:
1- User Inputs Como há 3 tipos de tagnames, também há 3 possibilidades de entradas: discrete, analog, string. INPUT DISCRETE (Tipo: 0/1) -RODANDO(WindowViewer) (Runtime).
Msg to User : Mensagem para o usuário Set Prompt – On: Mensagem que irá aparecer no keypad que ativa a tagname para nivel lógico 1 Reset Prompt – Off: Mensagem que irá aparecer no keypad que ativa a tagname para nivel lógico 0 On Mensage On: Mensagem que irá aparecer no keypad que ativa a tagname para nivel lógico 1 Reset Prompt – Off: Mensagem que irá aparecer no keypad que ativa a tagname para nivel lógico 0 45
46
Keypad – Habilita o teclado numérico Título do keypad. Msg to user : Min Value : Valor mínimo do keypad (Ex.:0) Max Value: Valor Máximo do keypad (Ex.:100) - RODANDO-WindowViewer RODANDO-WindowViewer (Runtime).
Keypad
2- INPUT ANALOG (Tipo: Real/Contínua) 3- INPUT STRING (Tipo: Mensagens/Nomes)
47
48
2- Slider’s Usado para atribuir valores ao tag selecionado, deslizando o botão interno. O valor da tag varia conforme uma escala definida no objeto. Há dois tipos de slider um Vertical e outro Horizontal. Você pode editar as propriedades do Slider dando um duplo click sobre o mesmo. Slider
Exemplo de Slider Vertical Iremos ilustrar a configuração do slider através do objeto quadrado, que será o curso, associada a tagname x que deverá variar de 0 a 100 em 200 pixel´s verticalmente, conforme a tela a seguir:
Keypad – Ativa teclado Echo Characters – Se desejar que os caracteres sejam mostrados durante a digitação (opção Yes). Quando desejar digitar senhas a opções deve ser No. Após a digitação os caracteres podem ser visualizado pelo operador.
Configuração ( WindowMaker).
Input Only Não permite que após a digitação os caracteres sejam visualizado pelo operador. Ou seja para criar entradas para senhas, duas condições devem ser obedecidas: a) Echo Characters (No) b) Input O Only nly – Ativada
1) Input Discrete Botão x Imput only a) Se Input only (Ativa) “O text continuará” b) Input only (Desativada) O text assume o valor da On message (ligado) ou Off message (desligado)
2) Input Analog
Imput Only (Destivada)
49
50
Clicar no quadrado e abrir a tela de animação.
b- Configurando o deslocamento 200 ( de deslocamento slocamento em pixels acima) Up – 200 Down – 0 ( deslocamento em pixels abaixo,neste caso nenhum)
- RODANDO-WindowViewer RODANDO-WindowViewer (Runtime).
3- Botões-Touch Botões-Touch Pushbuttons-Discrete Value
Há 5 possibilidades de mudar o valor de uma tag através do toque de um botão.
Propriedades:
a- Configurando a tag Value: At Top – 100 (valor máximo da tag) At Bottom – 0 (valor mínimo da tag) 51
52
Tipos: Direct Reverse Toggle Reset Set Função:
4- Botões-Touch Botões-Touch Pushbuttons-Action Pushbuttons-Action
4.1
Primeira Ação- Action 1: On Key Down
Deseja-se que ao pressionar o botão direito do mouse a tagname assuma o valor 1000.
53
54
Terceira AçãoAção- Action 3: On Key Up Segunda Ação- Action 2: While Down Deseja-se que ao manter pressionado o botão direito do mouse a tagname incremente seu valor de uma unidade a cada 1 segundo (1000 Msec).
Deseja-se que ao soltar soltar o botão direito direito do mouse a tagname tagname assuma o valor zero.
Nota: Se desejar aumentar ou diminuir o tempo de incremento da tagname X basta alterar o tempo de loop que está em Msec.
55
56
5- Show window -Touch Pushbuttons- Navegando entre Telas
Normalmente, em função dos processos industriais serem de grande porte ou o processo precise de uma tela de informação adicional, em uma única tela do monitor do computador seria bastante complicado contemplar todas estas situações; nestes casos c asos é preciso dividir a visualização do processo em mais de uma tela. Surge ai a necessidade de se navegar entre telas ou de determinada tela chamar novas telas.
Etapa 3- Selecione a Tela desejada, neste caso a tela 2
Etapa 1- Devemos criar 2 novas telas ( tela 1 e 2) e nelas inserir um objeto tipo texto que chame a tela desejada.
Etapa 2- Com o objeto texto ( Vá para Tela 2 ) selecionado na tela 1. Dê um duplo click e na janela de animações( Touch Pushbuttons) selecione a sub-divisão: Show window (mostrar janela).
57
Etapa 2- Repita o processo com o objeto texto (Vá para Tela 1 ) selecionado na tela 2
58
Runtime!: Neste caso a tela 2 está ativa e desejamos acessar a tela 1, para isso basta clicar sobre o objeto texto, conforme a seguir:
3.4.6 MISCELLANEOUS-ANIMAÇÕE MISCELLANEOUS-ANIMAÇÕES S ADICIONAIS
Serão apresentadas 4 animações adicionais, que são usadas normalmente para simular processos industriais reais. As animações são: Visibility – Visibilidade Blink – pisca Orientation – Rotação Disable - Disponibilidade
1- Visibility – Visibilidade de Objetos O objeto deverá aparecer ou desaparecer sob determinadas condições.
Neste caso, da tela 2 ativo a tela 1 e vice-versa.
Para ilustrar vamos fazer o seguinte s eguinte exemplo: O objeto tipo texto 1 só deverá aparecer quando a tagname do sistema $second for menor que 30 s. O objeto tipo texto 2 só deverá aparecer quando a tagname do sistema $second for maior ou igual a 30 s.
5- Hide window -Touch Pushbuttons- Fechando Telas Utilizada quando não se deseja mais que a tela permaneça no vídeo do computador. Pode ser usada em conjunto com a opção show window. Ou seja, a medida que solicito que uma tela seja mostrada outra poderá ser fechada, para melhorar a apresentação.
59
60
Etapa 1 - Selecione a animação - Visibility
-RODANDO-WindowViewer (Runtime). Veja as 2 condições de visibilidades. 1- Condição para $second<30
2- Condição para $second>=30
Etapa 2 - Coloque a condição que se deseja que o objeto 1 fique visível:
2- Blink– Piscar Piscar de Objetos O objeto deverá piscar sob determinadas condições. Para ilustrar vamos fazer o seguinte s eguinte exemplo: O objeto tipo texto 1 só deverá piscar quando a tagname do sistema $second for menor que 30 s.
Repita o mesmo procedimento para o objeto 2, observando que sua condição de visibilidade é $second>=30.
61
O objeto tipo texto 2 só deverá piscar quando a tagname do sistema $second for maior ou igual a 30 s.
62
Etapa 1 - Selecione a animação – Blink
Atributos da condição de piscar:
a- Blink Invisible – O objeto piscar sem nenhuma animação adicional; ou seja, o objeto desaparece e aparece b- Blink visible with these attributes - O objeto piscar com possibilidade de animação adicional; ou seja: Text Color – Seleciono a cor que o texto deve p iscar; [somente para objeto tipo texto] Line Color - Seleciono a cor que o contorno deve piscar; [somente para objeto com contorno ex.: retângulo] Fill Color - Seleciono a cor que o objeto deve p iscar. [somente para objeto com contorno ex retângulo] OBS.: Se o texto original é preto e escolho a opção Text Color azul o objeto vai piscar entre preto e azul; ou seja, o objeto não desaparece e aparece.
Etapa 3 - Coloque na condição que o objeto 1 pisque Blink Invisible
Etapa 2 - Coloque a condição que se deseja que o objeto 1 pisque.
63
Repita o mesmo procedimento para o objeto 2, observando que sua condição de piscar é $second>=30.
64
3- Orientation – Rotação de Objetos
a) Animação: giro horário em torno do centro do objeto:
A variação de uma tagname pode provocar um giro do objeto no sentido horário ou anti-horário de no máximo 360 o em relação a um ponto de referencia. Para ilustrar vamos fazer os seguintes exemplos: a) O retângulo deverá girar no sentido horário horário 360 o em torno do centro em 60segundos. b) O retângulo deverá girar no sentido anti-horário anti-horário 360 o em torno do centro em 60segundos, c) O retângulo deverá girar girar no sentido horário horário 360 o distante de (100,100) do centro em 60segundos, horário
b) Animação: giro anti-horário em torno do centro do objeto:
Anti horário
Lembrar: CCW – abreviação de CounterClockWise, CounterClockWise, traduzindo `a esquerda. CW – abreviação de ClockWise, traduzindo `a direita.
65
66
c) Animação: giro horário horário em torno do ponto ponto (100, 100) distante do centro centro do objeto:
4- Disable – Disponibilidade de Objetos Habilita ou desabilita um botão, sob determinadas condições;
Deseja-se que o botão Liga/Desliga fique desabilitado entre o intervalo 30 até
OBS.: Deve ser observado que o sinal negativo se justifica, pois a distancia de giro, vertical (Y Position), está sendo diminuída de 100 pixels do centro do objeto em relação a origem (0,0) que fica localizada no canto superior esquerdo; já na horizontal (X position) a distancia está sendo acrescida de 100 pixels do centro de giro em relação a origem (0,0). Visualizando a animação:
50 s Assim, deve-se configurar a Expression e Disable State, conforme a seguir: Expression: $second >30 and $second <50 Disable State: em ON (fica no estado desabilitado)
67
68
Para a condição fora do intervalo $second =10, o botão fica no estado abilitado.
PLAYSOUND-SOM
Arquivos de som tipo wave são s ão emitidos toda vez que a expressão playsound() for acionada. Sintaxe
Para a condição dentro do intervalo $second = 42, o botão fica no estado desabilitado.
Nota: Se a condição Disable State for alterada para Off a condição de desabilitado se inverte; ou seja, dentro do intervalo 30-50 o botão fica abilitado.
PlaySound(“arquivo som”,Flags);
Parametros Descrição arquivo som. Arquivos com extensão wav Flags Flags can be one of the following: following: Type Description 0 Play sound synchronously (default) 1 Play sound asynchronously 2 Do not use default sound. Playsound is the filename of a .wav file. PlaySound can also accept an entry name from the [Sounds] section of the win.ini file. As an example, if you have an entry in the win.ini file like the following MouseClick=C:\Sounds\Click.wav you can enter MouseClick as the SoundName. 3 NOT USED! 4 NOT USED!. 5-7 NOT USED! 8 Repeat the sound until the next time PlaySound() is called. For Windows 95 (or later). 9 PlaySound() is called. For Windows NT 4.0 SP4 (or later). 16 Do not stop any currenlty playing sound.
Exemplo(s):
PlaySound ("c:\horns.wav",1);
Caso se deseje intervalos diferentes de desabilitação o operador lógico OR deverá ser inserido na expressão. Exemplo: Vamos supor que uma tagname Temp varie de 0 a 1000 oC e que desejamos que o botão Temperatura fique desabilitado somente entre as faixas de: 200 – 300o e 500 – 600 o e 800 – 900 o. Assim, deve-se configurar a Expression e Disable State: Expression:
SYMBOL FACTORY O intouch fornece uma biblioteca de objetos industriais para facilitar e dá uma aparência mais profissional na apresentação na tela do computador. Normalmente estes objetos não acompanham o pacote de instalação intouch e devem ser instalados a parte. Ver em anexo a instalação da biblioteca symbol factory. -Selecione, através do wizard, a opção symbol factory e siga os passos a seguir:
($second >200 AND $second <300) OR ($second >500 AND $second 600) OR ($second >800 AND $second <900)
Disable State: ON
69
70
2- Animação dos objetos symbol factory
71
72
Programando – Scripts Scripts são módulos em linguagem, onde se pode definir linhas de código como na linguagem Basic, desta forma eles permitem uma maior flexibilidade para associar ações a eventos específicos.
Scripts são
usados para criar ações lógicas e executá-las quando um evento específico ocorrer.
Você pode definir Scripts para qualquer objeto que possua um ambiente Scripts, como: Aplicação, Tags, Telas, Objetos, Alarmes etc. Por exemplo, Scripts de Tags normalmente estão associados ao valor do Tag, isto significa que eles são executados quando o valor do Tag mudar ou estiver em uma situação de Alarme. Muitos objetos na sua aplicação possuem um ambiente Scripts como mostrada abaixo, onde podem ser editados Scripts Tipos de ambientes Scripts
Os Scripts disponíveis são descritos na tabela abaixo SCRIPTS DISPONÍVEIS Você pode associar Scripts executando-os em uma das situações a seguir: OnKeyPress OnKeyPress
executa somente quando uma determinada tecla for pressionada
OnKeyRelease OnKeyRelease
executa somente quando a tecla for despressionada. despressionada.
OnStartRunning OnStartRunning
executa quando a aplicação iniciar a execução.
OnStopRunning
executa quando a aplicação terminar a execução.
OnUserLogin
executa quando um usuário inicia a sua seção na aplicação.
OnUserLogout
executa quando um usuário encerra a sua seção na aplicação.
WhileKeyPressed WhileKeyPressed
executa enquanto uma determinada tecla estiver sendo pressionada.
WhileRunning
executa enquanto a aplicação estiver executando. O Script irá executar tantas vezes quantas você definir na caixa de textoRodar textoRodar a cada: (aparece somente para Scripts WhileRunning)
PROGRAMANDO VIA SCRIPT
Há 6 possibilidades de programação via script, conforme mostrado a seguir:
1- Application Script... É executado sempre que a aplicação estiver no modo running;
2- Window Script... Para criar um Script, pressione vá na barra de menu Special/String/Application. O ambiente Scripts irá aparecer com uma lista de Scripts disponíveis para o objeto corrente. Selecione o Script que você deseja criar
É executado sempre que a janela estiver ativa;
3- Key Script... É executado sempre que a tecla correspondente for pressionada; 73
74
2o PASSO:
4- Condicion Script...
Abrir o ambiente de programação script , conforme a seguir: É executado sempre que uma determinada condição acontecer; Vamos ilustrar as 4 condições condições de Script com o exemplos a seguir: seguir:
1 - Application Script... Vamos iniciar nossa programaçao com o seguinte problema: Uma variável X deve ser incrementada incrementada de um em um, num intervalo de 1 segundo.
1o PASSO: Vamos visualizar a variável X, para isto será necessário definir a tagname X (inteira) Defina o tipo de tagname Mensage integer (inteira)
75
76
Ambiente programação via sript
de
COMENTÁRIOS SOBRE O AMBIENTE DE PROGRAMAÇÃO PROGRAMAÇÃO SCRIPT
2- Tempo de LOOP Deve ser digitado no espaço reservado o tempo, em Msec, que se deseja fazer o loop no ambiente de programação, programação, para o nosso problema o tempo tempo é 1 s ou seja 1000 Msec.
t
loop = 1000
1- Condition Type: Há 3 possibilidades: Se for necessário aumentar a velocidade de varredura o tempo deve ser diminuído, até que se deseja a velocidade desejada.
On Startup – Será executado ao abrir o programa; While Running – Será executado durante a execução do WindowViwer; On ShutDown – Será executado ao término do programa.
t
Valores máximos e mínimos para o loop
tloop mín > 0 tloop máx <= 360.000 Msec ( 360 s , 6 h ) Voltado ao nosso problema:
Para a nossa aplicação vamos trabalhar trabalhar durante a execução execução do windowViwer – opção: While Running. Nota: Ao selecionar esta opção, a mesma ficará em negrito para indicar que está sendo utilizada, pois mais de uma opção poderá ser utilizada conjutamente
Como desejo incrementar a variável de um em um, devo fazer X=X+1, num intervalo de 1 segundo devo digitar 1000 Msec e rodar o programa.
77
78
Vou usar o recurso de que uma janela pode fechar a outra, para melhor observar a implementação. Veja as duas janelas a seguir:
Usando a opção Window Script..., com a janela 1 ativada, incremento de 1 a tagname x; Visualizando no WindowViwer
Exemplos : Exemplo 1 (Window Script...) 1- Quando a janela 1 estiver ativa a tagname x deve ser incrementada de 1, já quando a janela 2 estiver ativa a tagname x deve ser diminuída de 1. 79
Usando novamente a opção Window Script..., com a janela 2 ativada, decremento de 1 a tagname x; 80
Passo 1: - Apago a janela 1 Ao apagar a janela 1, somente a janela 2 permanecerá ativa, neste caso a tagname começa a decrementar. Rodando... Passo 1: - Apago a janela 2
Passo 2: - Ativo a janela 2 Ao ativar a janela 2 a tagname se estabilizarar, já que as duas janelas estão ativas já que a janela 1 manda incrementar e janela 2 manda decrementar. Exemplos 2 (Key Script...) Utilizando o exemplo anterior, for usar a função teclado Ctrl + a para a tagname assumir o valor 1000, ou seja x=1000;
81
82
COMANDOS DE PROGRAMAÇÃO Foram apresentados situações de programação que envolvem a utilização do conceito de entrada, processamento e saída de informações de várias formas. Neste capitulo, será abordada a utilização de tomadas de decisão em um programa, utilizando desvios condicionais simples e compostos.
Operadores Funcionais No exemplo anterior, foi utilizado o sinal de igual = e soma + para estabelecer o novo valor da variável. Diferentemente Diferentemente em em uma operação poderá haver: haver: multiplicação, divisão, divisão, potenciação. Essas operações operações são efetuadas com a utilização da tabela abaixo. Símbolo + / * ** =
Ao rodar o programa pressiono o teclado Ctrl + a e a tagname assumira o valor 1000, ou seja x=1000;
Significado Soma Subtração Divisão Multiplicação Potenciação igual
Exemplo: a) Soma X = 2+3;
X= 5
b) Subtração: X= 3 –2; X= 1 c) Divisão X= 3 /2; X= 1,5 d) Multiplicação X= 3 *2; X= 6 e) Potenciação X= 3 **2; X= 9 83
84
Operadores Relacionais na Comparação No exemplo anterior, foi utilizado o sinal de = (igual) (igual) para estabelecer estabelecer o novo valor da variável. Diferentemente em uma condição condição de comparação, comparação, poderá ser verificada como: diferente, igual a, menor que, maior ou igual que e menor ou igual que. Essas verificações são efetuadas com a utilização da tabela abaixo. Símbolo == <> > < >= <=
Significado Igual a Diferente de Maior que Menor que Maior ou igual a Menor ou igual a
Nota: Há uma diferença diferença substancial substancial entre = e ==, o primeiro estabelece estabelece um novo valor a tagname, já o == deve ser usado para comparação de igualdade.
Desvio Desvio Condic Condicion ional al Sim Simple pless - IF...T IF...THEN HEN... ...THE THEN N O IF . . . THEN é usado para testar um condição, e se a condição for verdadeira, ele executa o comando que estiver em seu interior, ou seja até encontrar um ENDIF.
Comando
comando 1;
comando 2;
.
Adicionando Comentários ao Script Um programa pode conter comentários feitos pelo próprio programador com o objetivo de mais tarde torná-lo mais fácil de ser modificado e entendido. Todo comentário deve ser colocado entre chaves {.....} em qualquer linha de programação. Exemplo: aum=0;
{Isto é um comentário – Aprenda programar passo a passo desenvolvendo um
aplicação}
sp = -1; { o valor da variável sp deve ser inicialmente -1 } IF sp<0 THEN { para um valor de sp menor que zero faça aum=1 } aum=1; ENDIF;
Desvio Operadores Compostos IF...THEN...ELSE Anteriormente, foi visto como fazer uso da instrução if...then do tipo simples. Agora será estudado como fazer uso da instrução if...then...else, em que, sendo a condição falsa, será executada a instrução else. Caso seja necessário considerar mais de uma instrução para as condições Verdadeira ou Falsa, utilizar-se o conceito de blocos. Sendo assim, essa instrução possuía a seguinte estrutura: IF
IF expressão lógica THEN
ENDIF;
expressão lógica
THEN
comando 1; { instrução p/ condição verdadeira } ELSE
comando 2; { instrução p/ condição falsa }
ENDIF;
ENDIF;
O ELSE executa a expressão lógica se mesma não for verdadeira. Veja:
Se a condição for falsa, não serão executadas as instruções que estejam após a instrução IF. . . THEN e o comando será será direcionada para o final da condição, condição, ou seja após o ENDIF
IF expressão lógica THEN
comando 1;
comando 2;
85
IF expressão lógica THEN comando 1;
. . ELSE 86
IMPORTAR NO INTOUCH Para importar devo iniciar um projeto novo: (exemplo importar objeto) 1)WindowViewr – Deve estar desativado. 2)Todas as janelas devem estar fechadas
Algoritmo Início
A,B
R=A+B
{Informe os valores das notas}
{Calcula a soma das notas}
{Compara}
R >=5
APROVADO
REPROVADO
{apresenta o resultado}
Selecionar a aplicação que se deseja importar.
Fim
89
90
Como exemplo iremos importar a aplicação esteira que se encontra em c:\seba\exemplos\intouch\esteira.
OBS: 1) Posso selecionar 01 ou todas as janelas; 2) Se desejar, importar no futuro alguma janela que não foi importada, todas as janelas devem ser fechadas.
Após selecionar a aplicação devo selecionar o que desejo importar.
Importar também o programa script
Select p/ importar quais janelas se deseja. Importar somente as janelas feitas na aplicação esteira
Na importação as variáveis (tag´s) devem ser convertidas (convert) ou alteradas, conforme gosto do projetista; Deve-se ir ao script e convertê-las.
91
92
2) Todos os objetos também devem ter suas variáveis convertidas.
1) OBS: ?d: | ?r: | ?i: é usada para identificar as variáveis importadas e se desejar convertê-las (d = discreta, r = real, i = inteira) A opção local deve ser acionada
93
94
Special Tagname Dicnary...
Exportar telas Só pode ocorrer ente 2 projetos intouch 1) Abro a aplicação que tem a janela a ser exportada Ex: C:\seba\botoes2) C:\seba\botoes2) 2) Fecho todas todas as janelas 3) File
a) Escolha a tagname a ser deletada e deleta. Ou b) Deletar todas as tagnames não usadas. usadas. Delete Unused Tags...
Export window... Seleciono o novo projeto que ira receber a telas. (botões1) 4) Seleciona a janela a ser exportada (EX: botão) 5) Basta fechar a aplicação corrente corrente e abrir a aplicação onde à tela tela foi exportada.
Para deletar TAG Exemplo: Duas tagnames não estão sendo utilizadas x e y e queremos eliminálas Fechar todas as janelas Special Update User Count... 95
96
ALARMES
Alarmes são usados para sinalizar algum tipo problema que está ocorrendo na planta e então tomar as ações apropriadas. Iremos inicialmente abortar alarmes com tagnames do tipo Real ou Inteira. Para visualizar os Alarmes configurados para um Tag você precisa criar um Objeto de Tela Alarme e atribuir uma nova Tag a ele.
A seguir os campos de alarme são descritos na tabela que segue. campo LoLo
A página de Alarmes dos Tags aparece quando apção Alarmes no topo das páginas do Tag for selecionada.
Low High HiHi
descrição Alarme Baixo Crítico. Define um intervalo de valores (menor igual) onde o Tag é considerado em um estado de Alarme Baixo Crítico. É usado quando o valor do Tag está abaixo de um mínimo, ou seja, extremamente baixo.. Alarme Baixo. Define um intervalo de valores (menor igual) onde o Tag é considerado em estado de alarme baixo. É usado quando o valor do Tag está abaixo do normal. Alarme Alto. Define um intervalo de valores (maior igual) onde o Tag é considerado em estado de Alarme Alto. É usado quando o valor do Tag está mais alto do que o normal. Alarme Alto Crítico. Define um intervalo de valores (maior igual) onde o Tag é considerado em estado de Alarme Alto Crítico. É usado quando o valor do Tag é está acima de um máximo, ou seja, extremamente alto.
Prioridades Define a prioridade para cada situação de alarme.É um campo importante quando desejamos selecionar o tipo de gravidade de cada alarme ocorrido e para um melhor controle os alarmes de maior prioridade irão aparecer em primeiro plano na janela de alarmes. É disponibilizada quando o valor de alarme é digitado. Pode variar entre 1 a 999. Números pequenos indicam alta prioridade prioridade e valores sugestivos são dados conforme a tabela a seguir: Prioridades: Crítico: 1 – 249 Maior: 250 – 499 Menor: 500 – 749 Aconselhado: 50 - 999 Cada Tag que você define possui uma página de Alarmes como a mostrada a seguir, onde podem ser configurados 4 intervalos de valores e prioridades.
97
98
Definir a tagname nível (Tipo real) com seus respectivos valores de alarmes:
EXEMPLO:
Implemente 1 tangue com preenchimento entre 0-100%, associados a uma tagname nivel com respectiva variação entre 4-20, através de slider’s. As condições de alarme são
campo LoLo Low High HiHi
Configurar o indicador de alarme muito alto – HiHi H iHi
Valor 5 7 17 19
tangue
- Configurar o indicador de alarme muito alto – Hi
99
100
Configurar o indicador de alarme muito alto – Lo
-
RODANDO-WindowViewer (Runtime).
Valor da tagname nivel = 16,9 - Normal
Configurar o indicador de alarme muito alto – LoLo Valor da tagname nivel = 18,3 – Alarme Hi indicou
Associar o slider a tagname nível e um visiluazador de tag.
Valor da tagname nivel = 19,1 – Alarme HiHi indicou (Além do Hi)
101
102
Standart Alarm Display É um visualizador, configurável, de todas as ocorrências os alarmes; disponível na biblioteca do wizard.
Através das opções de intervalo de prioridade (From Priority e To From Priority), é que se filtra os alarmes a serem listados no Standart Alarm Display
Projeto abordando Prioridades Implemente 4 tangues com preenchimento entre 0-100%, associados a 4 tagnames com respectiva variação entre 4-20, através de slider’s. As condições de alarme são as mesmas para todos os tangues (LoLo = 5, Lo = 7, Hi = 15 e HiHi =17), já as condições de prioridades de cada tangue são dadas a seguir: Tangue 1 : Prioridade – 100 Tangue 2 : Prioridade – 350 Tangue 3 : Prioridade – 550 Tangue 4 : Prioridade – 850 Associe a cada tangue um Standart Alarm Display que monitore somente a ocorrência de alarme do respectivo tangue e um Standart Alarm Display que monitore todas as ocorrências de alarme. O Standart Alarm Display pode ser configurável conforme a janela a seguir:
103
104
TENDÊNCIA REAL TRENDREAL Este objeto é usado para visualizar um gráfico de tendência com até 4 Tags. O gráfico é constantemente atualizado a medida que o processo evolui e os valores dos Tags mudam. Usando Tendências você pode fazer gráficos como ValorXTempo e ValorXValor. Devido a estas características pode-se efetuar a análise dos dados a medida que o processo evolui. Você pode editar as propriedades da Tendência dando um duplo click sobre a mesma.
Para alarmes com tagnames do tipo Discrete, só uma escolha de alarme pode ser feita: Estado On ou Estado Off, com a respectiva prioridade.
O exemplo a seguir mostra está condição, quando a tagname falha for para o estado On a mesma deve alarmar, quando a mesma for para o estado Off volta ao normal.
1- Time s e deseja visualizar da variável no Time Span – Estabelece o intervalo de tempo que se eixo da absissa.
105
106
2 – Sample Interval – Indica o número de amostra que será plotado no gráfico, no intervalo de tempo especificado (Time Span). O número de amostras no intervalo de tempo não poderá ser superior a 1024 amostras. Caso isso ocorra, aumenta-se o tempo do intervalo ou diminui o nímero de amostras Exemplo: Para Time Span =11s = 11000 Ms e Interval =10 Msec Logo: Time Span / Interval + 1 = 11000 / 10 +1 = 1101 > 1024
2) O Interval deverá ser Múltiplo e óbvio menor que Time Span, ou seja Time Span / Interval deve ser um número inteiro. 11000 Msec e Interval =12 Msec não é possível embora a Exemplo: Time Span = 11 s = 11000 conta Time Span / Interval + 1 < 1024
COMENTÁRIOS: Ou seja, se a cada 10Msec se eu pegar uma amostra em 11000 Msec eu terei 1100 amostras, logo 1100>1023. Desconsiderando é claro, na a análise o +1. È importante observar que: 1) Quanto maior o intervalo a ser observado, mais nitido fica fica a variável, porém mais lento será a visualização da atualização das variáveis. Veja o exemplo a seguir:
2 Eixo da Absissa (Tempo)Time Divisions – 2.1 Numer of Major Div – Determina quantas divisões o eixo da absissa terá, para o nosso exemplo 6 divisões; 2.2 Numer Div / Major Div - Determina quantas sub-divisões o eixo da absissa terá, para o nosso exemplo 3 sub-divisões; 2.3 Major Div/Timer Label – Indica onde o tempo irá aparecer no gráfico. Deve ser múltiplo e menor ou igual a Numer of Major Div ( 6 ), para o nosso exemplo pode ser 1,2,3 e 6. especificado em Major Div/Timer Label irá aparecer Top Labels - Indica que o tempo especificado acima no gráfico, é pouco usual. 107
108
especificado em Major Div/Timer Label irá Bottom Labels - Indica que o tempo especificado aparecer na absissa no gráfico, é o que normalmente é usado.
Observação deve ser múltiplo de 3 e 6, pois somente em uma dessas linhas posso localizar o tempo; não faz sentido por exemplo 4.
EXEMPLO:
Exemplo 1:
=6
4 Eixo da Ordenada (Tagnames) 4.1 Numer of Major Div – Determina quantas divisões o eixo da ordenada terá, para o nosso exemplo 4 divisões; 4.2 Numer Div / Major Div - Determina quantas sub-divisões o eixo da ordenada terá, para o nosso exemplo 2 sub-divisões; 4.3 Major Div/Value Label – Indica onde as sub-divisões irá aparecer na ordenada. Deve ser múltiplo e menor ou igual a Numer of Major Div ( 4 ), para o nosso exemplo pode ser 1,2. Left Labels Labels - Indica que as sub-divisões especificada em Major Div/Value Label irá aparecer à esquerda do gráfico, é o que normalmente é usado Right Labels - Indica que as sub-divisões especificada em Major Div/ Value Label irá aparecer à direita do gráfico, é pouco usual.
EXEMPLO: Exemplo 2:
=3
109
110
Usuários Pode-se controlar o acesso a uma aplicação através de uma lista de nomes, podendo atribuir uma senha a cada usuário e configurar níveis de segurança no seu s eu sistema.
O usuário “Administrador” possui acesso ilimitado ao sistema. Os demais usuários possuem um nível de segurança associado que permite a eles acessarem apenas as características atribuídas ao seu nível de acesso. Para se alterar as configurações dos usuários o usuárior deve ter nível de acesso maior ou igual a 9000.
5 Pen Até 4 tagnames podem ser visualizadas ao mesmo tempo.
Ao entrar no windowmaker o usuário sempre terá os privilégio de administra tor com nível de acesso máximo, ou seja 9999. (cuidado! Não é administra dor, lembre-se a wonderware é americana) Ao entrar no WindowViewer o usuário perde o privilégio de administrador e terá nível de acesso mínimo, ou ou seja 0; obrigando o usuário a se logar logar novamente.
1- Criando Novos Usuários Special/Security/Configure Users
111
112
Adicionar: Add
O Nome do usuário não deverá exceder a 16 caracteres
Criando Usuários
Digitar o Nome do Usuário, A Senha e o Nível de Acesso Ex.: Nome do Usuário: USUARIO 1 A Senha: U1 Nível de Acesso: 1 113
Repetir para os usuários 2 Nome do Usuário: USUARIO 2 A Senha: U2 Nível de Acesso: 2
Repetir para os usuários 3 Nome do Usuário: USUARIO 3 A Senha: U3 Nível de Acesso: 3 114
2.2- No exemplo a seguir, desejamos que: somente o usuario 1 com nível de acesso 1 acesse o segundo botão. Veja o procedimento a seguir: O segundo botão não(off) deve estar desabilitado para o nível de acesso = 1; ou seja USUARIO 1 2- Restrições com nível nível de acesso 2.1- No exemplo a seguir, desejamos que: somente o usuario ADMINISTRADOR com nível de acesso 9999 acesse o primeiro botão. Veja o procedimento a seguir:
Repetir o procedimento para os demais usuários No WindowViewer Observar que todos os botões estão desabilitados, pois ao entrar WindowViewer, o usuário estabelecido é o None com nível de acesso Zero. O passo seguinte é se logar.
O primeiro botão não(off) deve estar desabilitado para o nível de acesso = 9999; ou seja ADMINISTRADOR
115
116
A tagname interna discreta $changePassword quando levado a 1 abre uma caixa de diálogo para mudança de senha de quem estiver logado.(tem que haver um usuário diferente de None, já que este não pode ser alterado).
TENDÊNCIA HISTÓRICA
TRENDHIST
Log On para o usuário 1 Em Special/secutity/log On… digite o nome do usuário e a senha
Históricos permitem armazenar dados de processos para análises futuras. Você pode criar tantos arquivos de Históricos quanto desejar, cada um contendo até 8 Tags. Históricos podem ser definidos no Wizard durante a configuração da aplicação ou em tempo de execução usando Funções Especiais através de Scripts. Cada arquivo de Histórico possui uma taxa de amostragem que determina com que freqüência os dados serão escritos no arquivo.
1o Passo Para criar ou editar um Histórico você precisa selecionar no Wizard a opção Trends , conforme figura a seguir:
Observar que o botão USUÁRIO 1 fica habilitado para este usuário
obs.: Caso se deseje que um usuário com nível de acesso maior tenha acesso também a uma determinada restrição, basta na restrição em vez de usar o sinal de igual usar o maior ou igual. A tagname interna string $operator fornece o nome do usuário logado.
117
118
Selecionar também Trend Zoom/Pan Panel para fazer as visualizações necessárias:
3o Passo: Nomeiar as Penas Somente as tagnames tagnames que foram foram ou serão definidas com a opção Log Data ativa que aparecerão no gráfico. Por exemplo, a tagname do sistema $second não é do tipo Log Data, por esse motivo não será mostrada, apesar de ser a 4 a pena.
2o Passo
Nomeiar as tagnames tipo Trend O histórico necessita de 2 nomes de tagnames para identifica-lo. Basta teclar em Suggest para que seja sugerido os nomes das tagnames; ou seja, Hist trend iar ra ra o gráfico histórico histórico e HistTrend1PenScale HistTrend1PenScale para associá-lo a escala das penas.
119
120
4o Passo:
Nomeiar as tagnames Trend Panel (Opcional) O Trend Panel é utilizado para atualizar os dados no gráfico e necessita de 2 nomes de tagnames para associá-lo ao gráfico. gráfico. Basta teclar em Suggest para que seja sugerido os nomes das tagnames; ou seja, Hist trend para associa-lo ao gráfico histórico e HistTrendPanMins para associá-lo ao Panel. ( Pode ser omitido, se usar a função função HTUpdateToCurrentTime("Trend") HTUpdateToCurrentTime("Trend"),, como será visto a seguir. )
6o Passo: Definição das Tagnames Log Data
Com esta opção ativa a tagname poderá ser plotada; deste que seja configurada como uma das Penas. Valores mínimos e máximos Ao criar as tag´s é fundamental fundamental colocar os valores mínimos e máximos, pois o final da escala do eixo (Y) toma esses valores para montar o gráfico.
5o Passo:
Nomeiar as tagnames das Legendas (Opcional) O Trend Legend é utilizado para mostrar os dados instantâneos e necessita de 2 nomes de tagnames para associá-lo associá-lo ao gráfico. Basta teclar em Suggest para que seja sugerido os nomes das tagnames; ou seja, Hist trend para associá-lo ao gráfico histórico e HistTrendPenScale para associá-lo a legenda.
121
122
7o Passo:
Configuração: No menu Special / Configure / Historical Loggin... as seguintes opções devem ser assinaladas.
Atualizações dos dados apresentados Devemos observar que os dados apresentados não são atualizados
Enabled Historical Logging – Permite armazenar os dados, ou seja as tagnames tipo Log Data; Keep Log Files for: ____ days - Armazenar os dados por tantos dias; Store Log Files in Appliation Directory – Salva os arquivos de dados no próprio diretório do aplicativo. O único problema é que eles ficam misturados com os demais arquivos. Store Log Files in Specific Directory – Direciona os arquivos de dados armazenados para um diretório especifico, neste exemplo, para c:\seba\trend. Veja figura a seguir:
dinâmicamente. Para isto, devemos utilizar a função HTUpdateToCurrentTime("Trend") HTUpdateToCurrentTime("Trend") que atualizará os dados apresentados no gráfico histórico. Para o nosso caso vamos atualizar os dados a cada 5 s (5000 Msec), usando para nos auxiliar a programação Scrip, conforme visto a seguir:
Vale a pena comentar que os arquivos de dados gerados levam em seu nome a data de sua geração. No nosso exemplo temos os seguintes arquivos gerados: 03061700.idx
onde: 03 indica o ano de sua geração geração 20 03 06 indica o mês mês de sua geração junho junho (06) 17 indica indica o dia de su sua a geração geração 17 00 sem significado. Idx extensão do arquivo gerado para armazenar os dados
03061700.lgd 03061700.alg
123
124
Imprimir o gráfico tendência Trend Pode ser associado a um botão para imprimir o gráfico de Tendência Histórica associado com a tagname espe especificada cificada ( tipo Hist Tend). O gráfico de Tendência Histórica deve ser visível na tela, quando usando esta função.
Sintaxe Parâmetro Trend_Tag
PrintHT (Trend_Tag ); Descrição Tagname do gráfico de Tendência Histórica., tagname tipo mensagem, ou string atual
Exemplos: Botão - imprimir
Modificações nas telas que envolvem Hist Trend, normalmente exigem que WindowViwer esteja fechado (é diferente de estar minimizado). Deve-se observar que, se o WindowViwer for fechado os dados não mais serão armazenados. 125
126
CHECKBOX – Botões especias de opção Normalmente usado para selecionar uma ou mais m ais opções, quando selecionado a tagname associada muda de estado, ou seja, normalmente de 0 para 1. Procedimento no WindowMaker
Fica
visível Habilita a opção/ fica visível, mas não habilita a entrada.
Caption = mensagem desejada; CheckBox Control : quando habilitado torna a tagname discreta (selecione-cortar) p/ “1”.. Exemplo: Desejo optar entre dois tipos de máquinas, cortar ou misturar. 2 - Importar o segundo CheckBox Control (opção : misturar)
1 - Importar do Winzard o primeiro CheckBox Control ( opção : cortar) Exemplos aplicativos no próprio: intouch a) Abrir e fechar janelas no próprio b) Na tela auxiliar de animação.
3 - Em cada um dos CheckBox, faço o script de opção 127
128
A> 2 tagnames selecione_cortar e selecione selecione misturar vão p/ 1 Função do checkbox
Script usado para selecionar tipo de máquina a ser usada
Selecione_cortar=1; Selecione_misturar=1;
If selecione_cortar THEN Machine=”cortar” ENDIF; If selecione_misturar THEN Machine=”misturar” ENDIF;
WindowViewer Selecione a máquina de cortar. Neste caso a tagname selecione_cortar vai p/ 1
Selecione a máquina de misturar. Neste caso, somente a tagname selecione_mistura vai p/ 1.
Observe: Se as duas opções forem selecionadas, as mesmas serão encaminhadas, como mostra o exemplo. 129
130
Soma de strings
Endereçamento de Relés especiais
Strings também podem ser “somadas’ (concatenadas) (concatenadas) resultando um novo valor para a tag. Veja o exemplo a seguir: Exemplo: M1= “ba”; M2= “lá”; Soma=m1+m2; If soma= “bala” then Res= “sucesso” else Res= “falha”; endif;
COMUNICAÇÃO (INTOUCH x CLP)
Drivers
O Supervisório permite a comunicação com equipamentos de aquisição de dados e outros computadores executando o Supervisório, através de Drivers de I/O ou Drivers de Rede fornecidos pelo fabricante de de supervisório de acordo com o tipo do equipamento equipamento de I/O ou da conexão de rede. Os Drivers do Supervisório são arquivos separados com extensão DLL.
COMUNICAÇÃO CLP MATSUSHITA CLP MATSUSHITA A comunicação será feita utilizando o exemplo a seguir: Exemplo: Deseja-se que ao pressionar o botão LIGA no supervisório a saída Y1 do CLP MATSUSHITA comute para on e ao pressionar o botão DESLIGA no supervisório a saída Y1 do CLP MATSUSHITA comute para off. EXEMPLO APLICATIVO:
ENDEREÇAMENTO DAS ENTRADAS E SAÍDAS DIGITAIS O CLP MATSUSHITA apresenta 15 ENTRADAS DIGITAIS e SAÍDAS DIGITAIS e são endereçadas conforme a Tabela a seguir: ENTRADAS ENTRADAS DIGITAIS DIGITAIS X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 SAÍDAS SAÍDAS DIGITAIS DIGITAIS Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15
131
132
Ativar o drive drive de comunicação comunicação KEPSERVER RECOMENDAÇÕES: I -Não utilizar as saídas (Yi) do programa ladder que está carregado na memória do PLC nos itens. II -Verificar, fazendo download para o computador.
III- Velocidade recomendada para o script 300 Msec.
IV- Ver os tipos de protocolos em anexo.
- Criar o canal de comunicação:
133
134
-Observar a paridade Odd (ímpar)
135
136
-Ver, em anexo, a configuração do CLP matsushita.
- Adicionar um device:
137
138
-Observar o Device Model: Any model
CONSIDERAÇÕES:
- Salvar o projeto (*.kdp) (exemplo: aluno.kdp) - Observar que só posso colocar o projeto on-line depois de salvá-lo. - A conexão entre o clp e computador COM1 deve estar perfeita (carregar o progama a seguir e observar a comunicação) - Kepdde deve estar off-line (se estiver on-line a com1 já estará sendo usada) - Carregar o programa a seguir para a memória do CLP;
139
140
RESUMO Equivalência INTOUCH e KEEPSERVER INTOUCH
KEPSERVER
Access Name = a
Channel = a
Application name = Kepdde
Kepdde.exe
Topic Name = b
O cpl deve estar no modo RUN
Device = b
* Não foi preciso nem carregar (abrir) o fpsoft Intouch Kepserver Basta observar np clp se ele está RUN. ** Ao adicionar uma saída, mais de uma acender ou alguma coisa estranha acontecer, verificar senão há conflito nas tags.
ENTRADAS E SAÍDAS ANALÓGICAS- EXPANSÃO 1 Colocar o kepdde on-line Bem... < ok >; Automaticamente a comunicação entre o CLP e o computador é perdida, só poderá ser restabelecida quando kepdde for para o modo off-line; Fazer as conexões na bancada do CLP; Reinicialize a comunicação -
A maioria dos processos industriais utilizam as variáveis analógicas para representarem seu processo. Em anexo é mostrado os endereçamentos das entradas e sidas analógicas do CLP FPO-C32
As saídas do PLC também podem ser analógicas. A exemplo das entradas, as saídas analógicas são resultado da conversão de um valor digital gerado pela UCP. CONFIGURAÇÃO DAS I/O ANALÓGICAS DO CLP MATSUSHITA
ENDEREÇAMENTO ENDEREÇAMENTO DAS ENTRADAS E SAÍDAS SAÍDAS ANALÓGICAS - EXPANSÃO 1 O CLP MATSUSHITA apresenta na expansão 1 duas entradas analógicas e 1 saída analógica e são endereçadas conforme a tabela a seguir: -Observar o travamento do relé e a lâmpada acender. -Após a comunicação verificada o fpsoft poderá ser fechado*. 141
ENTRADAS ANALÓGICAS SAÍDAS ANALÓGICA 142
WX2 WX3 WY2
LIGAÇÃO DAS ENTRADAS E SAÍDAS ANALÓGICAS
As entradas e saídas analógicas devem ser configuradas através de um DIP SWITCH , localizado na frente da unidade analógica, de acordo com o sinal de entrada e saída da instrumentação do local.
CONFIGURAÇÃO DO DIP SWITCH
143
Exemplo: Utilizaremos um sinal variável de 0 -10 V que deverá indicar o nível de um reservatório ( 0 – 100 % )
144
- Entrar com o sinal analógico ( 0 – 10 V ) na entrada analógica do CLP (WX2);
EXEMPLO 1 Min EU = -2000 e Max EU = 2000, para WY2 = 2000 Vo = 10 V Min Raw = -4000 e Max Raw = 4000, para para WY2 = 4000 Vo = 10 V De uma forma geral, podemos fazer a seguinte conversão de valores: Vo = WY2 * ( Vmáx/EU) *( Raw/EU) Assim para WY2 = 1000
Vo
= 1000* (10/2000) * 4000/2000 = 10 V.
Observe que antes era preciso WY2 = 2000 para termos Vo = 10 V
EXEMPLO 2 Min EU = -2000 e Max EU = 2000, para WY2 = 2000 Vo = 10 V Min Raw = -20.000 e Max Raw = 4000, 4000, para WY2 = 20.000 Vo = 10 V 1 – Entrada Analógica : WX2 2 – Entrada Analógica : WX3
De uma forma geral, podemos fazer a seguinte conversão de valores: Vo = WY2 * ( Vmáx/EU) *( Raw/EU) Assim para WY2 = 171
Vo
= 171* (10/2000) * 20.000/2000 = 8,5 V.
RELAÇÃO ENTRE EU E RAW Os valores Min EU = -2000 e Max EU = 2000, corresponde os Vmáx = –10 V e + 10 V reais do PLC; Os valores Min Raw e Max Raw, corresponde uma mudança, se assim desejar, nos valores Min EU = -2000 -2000 e Max EU = + 2000, exemplo: 145
146
- Ver a indicação do nível para uma tensão na entrada WX2 = 9,12 V
O Slider ilustrado deverá forçar a saída analógica WY2 entre seus valores máximos, ou seja, -10 V a + 10 V. Ver referencia referencia em anexo.
- Ver a indicação do nível para uma tensão na entrada WX2 = 5,04 V - Rever a posição dos dos Dip switch e as ligações da saída analógica analógica no KIT de experiência.
SAIDAS ANALÓGICAS O exemplo a seguir ilustrará a manipulação da saída analógica do CLP Matsushita: 147
148
REDE PROFIBUS - FMS E ETHERNET DO LABORATÓRIO LABORATÓRIO DE CONTROLE DE PROCESSOS 1. CONSIDERAÇÕES INICIAIS “Acesso aos processos via rede TCP/IP + PROFIBUS” ESTABELECER COMUNICAÇÃO TCP/IP ENTRE AS MÁQUINAS Para isso 3 procedimentos devem ser observados: a) Placa de Rede( Gerenciador de dispositivo, dispositivo, cabos conectados, Ping 10.0.0.10 10.0.0.10 etc) b) Endereço TCP/IP corretos c) Mesmo Grupo de Trabalho (EX.: AUTOMACAO)
Check? – no ambiente dos > ping professor Submask: 255.0.0.0
2. CONFIGURAÇÃO FÍSICA DA REDE
- Conectar o Multímetro na saída do PLC e observar a tensão de saída com a mudança na posição do Slider.
3. CONFIGURAÇ CONFIGURAÇÃO ÃO DOS PARAMETROS PARAMETROS 3.1- TÓPICOS REMOTO BURKERT BURKERT PROFIBUS São os tópicos que correspondem aos endereços de acesso remoto Burkert PROFIBUS
KR4, KR5, KR2, KR3, KR6 Definidos nos arquivos da festo para a I/O SERVER 149
150
Kbl.dat Buspar.dat REACTOR
3.2 - ITEM NAMES Definidos no controlador controlador Burkert Burkert - Padrão profibus profibus PV= O22T8I200 X Variável do Processo MV= O27T8I500 Y Variável manipulada ( Vazão da bomba) W SP= O24T8I500 Set Point Kp_level P= O151T8I500 Tn I= O153T8I500 D=O154T8I500 Tv
TAG X_Temp W_Temp Y-_temp
ACCESS NAME
TOPIC NAME
ITEM
KR2
O22T8I200 O24T8I500 O27T8I500
Temp_control
INTERRUPÇÕES NA REDE
1- INTRODUÇÃO Manual= O37T5I500 =O Auto= O37T5I500=1 Processo= O41T5I500=1 Config Configura uração ção= = O41 O41T5I T5I500 500=2 =2
Situações de falha pode ocorrer na rede de comunicação entre o processo e o supervisório e a seguir descrevemos o comportamento destas falhas, nem sempre bem compreendidas pelos operadores. pod podee alte alterar rar os parâme parâmetro tross do PID
Padrão profibus PROFIBUS, ‘TOPIC, ITEM
2.1- CONTROLADOR DESLIGADO
STORAGE
TAG X_ Flow W_ Flow Y_ Flow
ACCESS NAME Flow_control
TOPIC NAME
ITEM
KR 3
O22T8I200 O24T8I500 O27T8I500
FILTRATION
TAG
ACCESS NAME
X_ Flow W_ Flow Y_ Flow
Level_control
TAG
ACCESS NAME
TOPIC NAME
ITEM
KR4
O22T8I200 O24T8I500 O27T8I500
PRESSURE X_Pressure W_Pressure Y_Pressure
TOPIC NAME
ITEM
KR6
O22T8I200 O24T8I500 O27T8I500
Pressure_control
151
2-INTERRUPÇÃO NO CONTROLADOR BACKER Quando o controlador é desligado acidentalmente, os valores na tela do supervisório permanecem permanecem “congelados” (não zeram) e só são atualizados, atualizados, ou sejam zerados, já que o controlador está desligado, se reinicializar a comunicação em Special / Reinitialize I/O 2.2- CONTROLADOR RELIGADO Ao ligar o controlador os valores na tela do supervisório são atualizados automaticamente, sem a necessidade de reinicializar a comunicação em Special / Reinitialize I/O 3-INTERRUPÇÃO NA REDE ETHERNET Quando a rede ETHERNET Quando ETHERNET está fora fora do ar , os valores na tela do supervisório Special / Reinitialize I/O os congelam de vez , nem reinicializando em valores são atualizados, ou seja deveriam zerar. Voltando a Internet, os valores não são atualizados, é preciso a reinicialização em Special / Reinitialize I/O para restabelecer os valores atuais na tela do supervisório.
152
ENDEREÇAMENTO DAS ENTRADAS E SAÍDAS DIGITAIS O CLP SIEMENS apresenta 15
ENTRADAS e SAÍDAS DIGITAIS e são endereçadas conforme a
Tabela a seguir: POSSIVEIS FALHAS NA COMUNICAÇÃO INTOUCH / PLANTA
NOME.ENDREÇO – EX.: IN.07 – ENTRADA 7 DO CLP OUT.12 – SAÍDA 12 DO CLP
PROFIBUS
INTOUCH VIEWER
PLANTA ATIVA ATIVA/FE /FECHA CHADA DA STATUS STATUS LED DA PLACA PROFIBUS ROD RODAND ANDO ATIV ATIVA A BAD BAD LIGA LIGADO DO DES DESLIGA LIGADA DA
SOLUÇÃO DO DO PR PROBLEMA
RODANDO
DESATIVADA
X
APAGADO
LIGA LIGAR R A PLAN PLANTA TA PROFIBUS E REINICIALIZAR LIGADA LIGADA ATIVAR CONVERSAÇÃO I/O (VIEWER)
DESATIVADO
ATIVA
X
APAGADO
LIGADA
REINICIALIZAR CONVERSAÇÃO I/O (VIEWER)
RODANDO
ATIVA
X
APAGADO
LIGADA
VERIFICAR O TOPIC NAME, NUM DA ESTAÇÃO E REINICIALIZAR CONVERSAÇÃO I/O (VIEWER)
PARA O NOSSO EXEMPLO USAREMOS ET200_IN. PARA AS ENTRADAS E ET200_OUT. PARA AS SAÍDAS
ENTRADAS DIGITAIS SAÍDAS DIGITAIS
ET200_IN. 00 01 02 03 04 05 06 07 08 08 10 11 12 13 14 15 ET200_OUT. 00 01 02 03 04 05 06 07 08 08 10 11 12 13 14 15
NOME.ENDEREÇO – EX.: ET200_IN.07 – ENTRADA 7 DO CLP
RODANDO
CONDIÇÕES PARA A OPERAÇÃO NORMAL DO INTOUCH - PLANTA MPS ATIVA GOOD LIGADO LIGADA COMUNICAÇÃO NORMAL
ET200_OUT.12 – SAÍDA 12 DO CLP
ENDEREÇAMENTO DAS SAÍDAS DIGITAIS
COMUNICAÇÃO CLP SIEMENS CLP SIEMENS Exemplo: Deseja-se que ao pressionar qualquer um dos botões LIGA ( L1...L15) no supervisório a saída no no CLP comute para on e ao pressionar qualquer botão DESLIGA( D1...D15) no supervisório a saída saída no CLP comute comute para off. Bem como, monitorar todas as 15 entradas do CLP. EXEMPLO APLICATIVO:
153
154
ENDEREÇAMENTO DAS ENTRADAS DIGITAIS
155
156
COMUNICAÇÃO EXCEL X INTOUCH
STATUS PROFIBUS
Considerações iniciais O Projeto de nível que será utilizado pelo intouch será o driver de comunicação Simulate, que já conta internamente com os itens name abaixo.
- Ativar o Simulate.
157
158
- Estabelecer, no menu Configure, o Topic Name = abc no simulate. abc = É um nome qualquer, deve ser o mesmo nome no Topic Name utilizado na Tagname do Intouch.
- Montar o projeto do nível do tanque no Intouch. - Não mexer nos demais parâmetros. - Deixá-lo ativado. - Escrever os endereços em qualquer qualquer célula do Excel, conforme conforme descrição descrição a seguir:
= Application name| topic name! ‘Item’ Para o nosso caso:
= simulate | abc ! L1
Observar que todos os valores já estão sendo lidos, neste caso como start = 0; todos os demais também deverão ser zeros. Veja a seguir:
159
160
- Liga /desliga = start (I/O discrete). - Topic Name = abc, pois caso seja outro nome, a comunicação no simulate não é estabelecida. - Application Name = simulate , pois estabelece a comunicação do drive (simulate.exe). - Access Name = teste , para a comunicação entre o simulate e o excel, o nome do Access name não importa. - Rodar (Run). - Ligar o projeto (botão liga /desliga = START) e observar que o excel faz a captura instantânea do valor das variáveis.
- Comportamento do processo e do excel normais mesmo para Access Name = qualquer Value 0-100
% 0100%
I/O Real Mín – Max 20 980
Observação: - Algumas Algumas vezes o Excel demora a iniciar a comunicação com o intouch, neste caso é aconselhável clicar na célula e aguardar. - Se desativar o simulate a comunicação é interrompida. - Mesmo alterando o Access Name = qualquer , não há nenhuma mudança no processo, como no excel.
161
162
Excell x Intouch KEPSERVER Comunicação entre o Excel e o Intouch, usando o drive de comunicação do CLP FPO - C32T da Kepserver Matsushita, que utiliza o arquivo kepdde.exe no application Name.
Obs: Caso y1 não tenha sido definida no intouch, seu valor default é O (falso).
163
164
Abrindo qualquer executável
C:\ Arquivos de prgramas\microsoft Office\officed\excel Office\officed\excel Abrir o Excel C:\ Arquivos de prgramas\microsoft Office\officed\word Abrir Abrir o Word Word Obs Obs.: .: Se Se já estive estiverr abert aberto o OK
165
166
Control Name
Usado para fazer seleção de uma lista de opções.
O nome do Control Name não influencia pode permanecer. Colocar o nome da tagname que selecionará a opção desejada (ex.: tagname=sel) Colocar em Buttons o número de opções desejada, para o nosso caso Buttons = 5. Deletar todos e incluir novos no Caption e incluir 5 novos Captions (Volks, Fiat, Ford, Honda e BMW).
167
Ao configurar a tagname, neste caso sel, observar que o valor inicial deverá ser 1, como também seu valor mínimo 1, já que neste tipo de seleção pelo menos 1 deverá ser escolhido. Ver a seguir:
Veja a implementação no WindowViewer
168
Para dá sentido ao tipo de seleção ( 1 a 5) devemos associar a tagname inteira sel ao tipo de veículo escolhido; ou seja: Sel=1 (Volks); Sel=2 (Fiat); Sel=3 (Ford); Sel=4 (Honda); Sel=5 (BMW). Isto deve ser feito através através do script, associando a tag sel com outra do tipo message ex.: carro, veja exemplo a seguir:
169
170
EXERCÍCIOS
Nome do arquivo executável: ________________ ________________ 8) Qual a diferença entre os ícones de agrupamento Make Symbol e Make Cell
1) Descreva duas funcões básicas de um supervisório Industrial 2) Descreva 7 características de supervisórios Industriais:
Resp.:_____________________ Resp.:____________________________________ ________________________ _________
3) Além do Intouch cite 3 outros nomes de supervisórios Industriais Industriais 4) A empresa que desenvolveu o Intouch foi a _______________________ no ano de 19___ com, sede em ______________(cidade) ______________(cidade) na ______________ ______________(Estado). (Estado). 5) Supervisório Industriais possui telas que representam o processo, onde estas podem ser animadas em função das informações recebidas pelos ______________, _______________ etc. (Motores, Contatores, CLP´s, fusíveis, controladores de processos)
Resp.:________________________ Resp.:_______________________________________ _____________________ ______ 9) Estando no Application Manager do Intouch (Gerenciador de Aplicativos), qual a finalidade de Find Application em Tools. (Ver Figura a seguir).
6) Em geral, as IHMs são atualmente disponíveis disponíveis em duas principais opções básicas: a) Hardware específico do fabricante do PLC. b) Software supervisório executado em computador. Cite qual a desvantagem em se utilizar a primeira opção 7) Explique a finalidade de cada um dos ícones a seguir:
_____________________________________________ ______________________________ ____________________ _____ _______________________________ _______________ _______________________________ ____________________ _____
Nome do arquivo executável: ________________
______________________________________________ _______________________________ ___________________ ____ _______________________________ ________________ _______________________________ ___________________ ___
Nome do arquivo executável: ________________ ______________________________________________ ______________________________ ____________________ ____ ______________________________ ______________ _______________________________ _____________________ ______ 171
10) Crie uma nova aplicação chamada Reservatório Reservatório de Leite no seguinte diretório C:\Fabrica de Chocolate ABC\Reservátorios\Leite ABC\Reservátorios\Leite 11) Crie uma nova nova aplicação chamada Reservatório Reservatório de Corante no seguinte diretório C:\Fabrica de Chocolate ABC\Reservátorios\ Corante 12) Crie uma nova aplicação aplicação chamada Reservatório Reservatório de Açucar no seguinte diretório C:\Fabrica de Chocolate ABC\Reservátorios\ ABC\Reservátorios\ Açucar 13) Salve as aplicações das das questõ questões es 10,11 e 12 em um disqueste 3 ½” a:\Fabrica de Chocolate ABC\Reservátorios\Leite ABC\Reservátorios\Leite a:\Fabrica de Chocolate ABC\Reservátorios\ Corante a:\Fabrica de Chocolate ABC\Reservátorios\ Açucar
172
14)Desenhar 14) Desenhar um circulo na janela tipo Poup e animá-lo para quando a tagname var for maior ou igual a 10s a cor do circulo seja azul e quando a variável for menor que 30s o mesmo seja verde. verde. A tagname deve variar, variar, segundo segundo uma animação de slider.
OBS.: Utilizar Utilizar um único retângulo para para implementar o projeto
15) Desenhar um retângulo na janela tipo Replace e animá-lo para quando a variável do sistema $second for maior ou igual a 40s o retângulo retângulo comece a piscar e quando a variável do sistema $second for menor que 10s o mesmo desapareça. 16) Desenhar um retângulo (200 x 100 pixels), fundo fundo preto, na janela tipo Overlay e animá-lo para quando a variável do sistema $second for igual a 39s o retângulo esteja tot totalmente almente preenchido, preenchido, verticalmente, verticalmente, na cor amarela. 17) Desenhe qualquer figura no paintbrush e cole em um retangulo. 18) Anime
um
botão
de
entrada
(Input)
do
tipo
String
(exemplo:
) com as opçoes de animações Keypad (opção Yes) e Echo Characters (opção Yes) e que essa ent entrada rada seja carregada pela tecla F2 do teclad teclado. o. 19) Crie uma variável variável (Tag) conforme a seguir: Nome: Nivel, Tipo: Memory Real, Valor inicial: 10 . Valor mínimo: 5 Valor máximo: 25
20) Implemente o seguinte projeto no intouch: Uma bola deve deve subir uma rampa rampa de 150 pixels de altura em 30 segundos e desçer em 15 s, indefinidamente, conforme mostra a figura a seguir:
22) Salvar os programas no disquete (exemplo a:\nome do aluno ) 23) Marque a opção correta das questões a seguir: - Os tipos de janelas do Supervisório são: a) Window, Popup, Application b) Application, Overlay, Window c) Real Time Trend, Application, Window d) Popup, Replace, Overlay e) Application, Overlay, Popup - O comando que permite a navegação entre janelas é: a) Show Window b) Replace Window c) Wizard d) Bitmap e) Overlay Window
21) 8Q)) Implemente o seguinte s eguinte projeto no intouch: Um retângulo de dimensões A x L deve percorrer uma distancia distancia de 320 pixel’s em 20 20 s, chegando com uma altura de 15% da original; logo em seguida o retângulo deve descer 265 pixel’s em 40 s, chegando com uma largura de 20% da original, conforme ilustra a tela a seguir. 173
- A meta de comunicação entre um CLP e um Supervisório é: a) criar um canal de de comunicação entre os dois b) fazer o software de comunicação reconhecer o dispositivo a comunicar c) relacionar as tagnames com as variáveis do CLP d) estabelecer as tagnames do supervisório e) selecionar o melhor software de comunicação c omunicação
174
- Um canal de comunicação tem início no seu estabelecimento, ou seja, começa a ser estabelecido a partir do: a) Application Name b) Access Name c) Node Name d) Topic Name e) Device Name - Para conseguir registrar, com precisão, as oscilações de uma variável que acontecem a uma freqüência de 100 Hz, qual é o valor do tempo para recolhimento de amostras (valores), desta variável em um Gráfico de Tendência Real? a) 100 segundos b) 10 segundos c) 1 segundo d) 0,1 segundo e) 0,01 segundo
Tela 2 – Nivel
Tela 2 – Alarme
24) Faça o projeto conforme a seguir, nas seguintes condições: CONDIÇÕES: 1. O tanque 02 02 esvazia, enquanto o tanque 01 enche; 2. O processo inicia somente quando: a chave de partida(0/1), as válvulas 01 e 02 e a bomba estejam todos ligados; 3. O processo pára se: a chave de partida(0/1) ou a válvulas 01 ou a 02 ou a bomba seja desligada; 4. Quando o nível atingir 10% 10% dos limites máximos (inferiores/superiores) (inferiores/superiores) os sensores devem acusar. 5. Criar duas novas telas: uma para indicação de nível e outra para a indicação de alarme; 6. Possibilidade de navegar entre as 3 telas do processo 7. Tela nível só tem permissão usuário Paulo Paulo com nível de acesso igual a 200 8. Tela de alarme só tem permissão usuário usuário Carlos com nível de acesso igual a 300 300 9. Criar o usuário João no nível de acesso = 400 que possa entrar entrar nas suas duas telas Obs: Os usuários Paulo a Carlos só tem acesso as suas telas
Tela 1 – Principal
Alarme
Real
25) Faça o seguinte projeto no Intouch. a) Um retângulo retângulo deve mover-se, 350 pixel´s, da da esquerda para direita direita em 30s e da direita para a esquerda em 45s, continuamente, quando o botão de partida for acionado; b) Os led´s L1 e L2 devem alarmar em valores: mínimo de 10 % e máximo de 90 % do valor da variável (que deve se chamar var ) que controla o movimento do retângulo; c) Apresentar os gráficos de Alarme, d) Tendência Real, e) Tendência Histórica. f) Os arquivos de rregistros egistros dos dados dados históricos devem ser armazedos armazedos em c:\ aluno 26) Faça o seguinte projeto projeto entre o Intouch Intouch e o clp Matsushita - Um botão que liga e desliga uma lâmpada na saída Y5 do CLP Matsushita e um LED que monitora esta saída.
175
176
OBS.: - Utilizar para a comunicação os seguintes parâmetros: Access Name: comunicação Topic Name: CLP - Configurar o drive de comunicação Kepserver. - Apresentar o projeto com a comunicação de fato.
29) Implemen Implemente te a animação animação de um um Tanque Tanque 3D
27)
Tanque 3D desejado:
Faça o projeto de de um Slider de modo que o mesmo possa alterar o valor da variável(tagname) Deslocamento entre os valores de zero a 80, através da mudança de 250 pixel’s na horizontal do retângulo abaixo.
30) Projeto abordando Prioridades Implemente 4 tangues com preenchimento entre 0-100%, associados a 4 tagnames com respectiva variação entre 4-20, através de slider’s. As condições de alarme são as mesmas para todos os tangues (LoLo = 5, Lo = 7, Hi = 15 e HiHi =17), já as condições de prioridades de cada tangue são dadas a seguir: 28) Faça o projeto no no Intouch de uma bola descendo uma rampa rampa de 200 pixels de altura e 160 pixels de largura em 40 s; em seguida a bola percorre 100 pixels na horizontal, conforme mostra a figura a seguir:
Tangue 1 : Prioridade – 100 Tangue 2 : Prioridade – 350 Tangue 3 : Prioridade – 550 Tangue 4 : Prioridade – 850 Associe a cada tangue um Standart Alarm Alarm Display que monitore monitore somente a ocorrência de alarme do respectivo tangue e um Standart Alarm Display que monitore todas as ocorrências de alarme.
177
178
31) Anime um botão 1 que somente o servidor Paulo com senha P possa acessá-lo e um botão 2 que somente o servidor Carlos com senha C possa acessá-lo. 32) Identifique no canto canto superior esquerdo esquerdo o nome do operador logado. logado. (tagname interna string $operator ) 33) Crie 5 janelas novas : USUÁRIOS, PLANTA ELÉTRICA, PLANTA INDUSTRIAL, PLANTA QUÍMICA E FÓRMULAS . A janela USUÁRIOS é a principal, logo da mesma pode se ter acesso a qualquer uma das demais janelas (desde que se tenha permissão para acessar a janela pretendida ver Tabela a seguir). Das demais janelas, deve ser possível retornar para para a janela USUÁRIOS.
179
TABELA 1 – USUÁRIO e PERMISSÕES USUÁRIO
SENHA
FUNÇÃO
PAULO
P
JOAO CARLOS
J C
PERMISSÃO ACESSA SOMENTE A PLANTA OPERADOR PLANTA INDUSTRIAL INDUSTRIAL ACESSA SOMENTE A PLANTA OPERADOR PLANTA ELÉTRICA ELÉTRICA OPERADOR PLANTA QUÍMICA ACESSA SOMENTE A PLANTA QUÍMICA
TELES LUIZ
T L
SUPERVISOR ADMINISTRADOR
ACESSA TODAS AS PLANTAS, MENOS A PLANTA FORMULAS
ACESSO IRRESTRITO
180
34) Desenvolva um projeto no Intouch, usando CHECKBOX, para totalizar a pontuação dos trabalhos, realizados pelos alunos em sala de aula, considerando que nem todos possam ter feitos todos os trabalhos. Conforme é mostrado a seguir:
35) Faça um projeto onde uma tagname TEMP representa a temperatura de um processo que varia de 100-900 oC, onde a mesma possa ser alterada através de um slider, e que um botão(liga/desliga) associado a tagname possa ser desabilitado entre os valores de 200-300 oC e 500-600 oC e 800900oC. 36) Faça um projeto onde uma tagname NIVEL representa o nivel de um reservatório (simulado por um retângulo azul 200x500) que varia de 0-100 m, onde a mesma possa ser alterada através de um botão de entrada, e que o reservatório, pisque lentamente, com fundo vermelho, entre os valores de 10-30m e 50-60m e 80-90m. 37) Faça um projeto onde um objeto se desloque 250 pixel’s na horizontal à esquerda e 350 pixel’s na vertical para baixo, pela variação da tagname MV que deve variar de 0-50.
38) Faça um projeto de um pêndulo que oscile num período período de 20 segundos, mostrando o tempo e o número de oscilações. Onde: L= 170 pixel’s e o ângulo de movimento 90
181
182
RESPOSTAS
Animação: Diminuição da largura:
RESPOSTA EXERCÍCIO Q08): Animação: Deslocamento horizontal:
Animação: Deslocamento vertical: RESPOSTA EXERCÍCIO Q11):
SCRIPT’S Special Script’s Application script While running ... Every 1 Msec NIVEL2=100-NIVEL1; IF NIVEL2 >= 11 THEN M2L=1; ELSE M2L=0; ENDIF; IF NIVEL2 >= 90 THEN M2H=1; ELSE M2H=0; ENDIF; IF NIVEL1 >= 11 THEN M1L=1; ELSE M1L=0;
Animação: Diminuição da altura:
183
184
ENDIF; IF NIVEL1 >= 90 THEN M1H=1; ELSE M1H=0; ENDIF; IF START == 1 AND NIVEL1>=90 NIVEL1>=90 THEN AUXILIAR=1; ENDIF; IF START==1 AND NIVEL1<=10 THEN AUXILIAR=0; ENDIF; IF START==1 AND VALV01==0 AND VALV02==0 AND AUXILIAR==0 THEN NIVEL1 = NIVEL1 + 1; ENDIF; IF START==1 AND VALV01==0 AND VALV02==0 AND AUXILIAR==1 THEN NIVEL1 = NIVEL1 - 1; ENDIF;
Veja montagem passo a passo:
1. Retângulo frente 2. Retângulo fundo 3. Tampa superior 4. Traços das arestas inferiores inferiores que devem sobrepor o retângulo 6 5. Traços das arestas arestas superiores superiores que devem sobrepor sobrepor o retângulo retângulo 6 6. A figura 6 é a composição das figuras figuras 1,2 e 3 Obs.:1- a altura do retângulo inferior 2 deve ser maior 2- O deslocamento vertical da figura 6 deve ser da altura do retângulo 1 7. Contorno externo do retângulo retângulo 6 (Torná-lo invisível) RESPOSTA EXERCÍCIO Q16): Tanque 3D desejado:
185
186
Resp. 35)
187
188