W O N D E R W A R E ®
T R E I N A M E N T O
Manual de treinamento Revisão E Fevereiro de 2006 Número de peça 05-2039
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
NFORMAÇÕES NESTE DOCUMENTO ESTÃO SUJEITAS A MUDANÇAS SEM COMUNICAÇÃO PRÉVIA. © 2005 por Invensys Systems, Inc. Todos os direitos reservados. Nenhuma parte deste documento pode ser reproduzida, armazenada ou introduzida em um sistema de recuperação, ou transmitida em qualquer formulário ou por qualquer meio (eletrônico, mecânico, fotocópia, registro ou semelhante), ou para qualquer fim, sem a permissão expressa escrita da Invensys Systems, Inc. Exceto onde indicado, as empresas, organizações, produtos, nomes de domínio, endereços de e-mail, logos, pessoas, locais e eventos descritos neste são fictícios e não há intenção de fazer associação ou de se presumir associação com empresas, organizações, produtos, nome de domínio, endereço de e-mail, logo, pessoa, local ou evento real. Invensys e o autor não se responsabilizam por erros ou omissões e nenhuma responsabilidade é assumida por danos resultantes do uso de informações contidas aqui. O uso do software Invensys descrito neste documento está sujeito aos termos da licença Wonderware Corporation ou Invensys Systems, Inc. aplicáveis. Estes termos incluem cláusulas que limitam seus direitos como restrições de uso, termos de isenção de responsabilidade de garantias e limitações de responsabilidade da Wonderware e da Invensys. Uma cópia da licença aplicável estará exibida na instalação inicial do software. Se uma cópia da licença não é exibida ou se precisar de uma cópia adicional da licença, você poderá obter uma da unidade de negócios Wonderware da Invensys mediante solicitação através do telefone 1.949.727.3200 ou enviando um e-mail para
[email protected]. Invensys; Wonderware; ActiveFactory; ArchestrA; DT Analyst; FactorySuite; FactorySuite A2; InBatch; InControl; IndustrialSQL Server; InTouch; InTrack; QI Analyst; SCADAlarm; SPCPro; SuiteLink; SuiteVoyager; WindowMaker; WindowViewer; Todo o sistema em sua fábrica, trabalhando em conjunto; e os logos Visualize, Analyze, Optimize são marcas comerciais ou marcas de serviço da Invensys plc, suas subsidiárias e empresas afiliadas. Todas as outras marcas e os nomes de produtos ou de serviços podem ser as marcas comerciais ou marcas de serviço de seus respectivos donos.
Índice
Índice Módulo 1
Introdução....................................................................................1-1 Seção 1 – Introdução ao curso .......................................................................... 1-3 Seção 2 – Introdução ao InTouch.................................................................... 1-11
Módulo 2
Ambiente de desenvolvimento .................................................2-1 Seção 1 – Introdução ........................................................................................ 2-3 Seção 2 – Como usar o WindowMaker ........................................................... 2-27 Laboratório 1 – Criação de uma nova aplicação, Windows e Graphics .... 2-63
Módulo 3
Dicionário TagName ..................................................................3-1 Seção 1 – Tags e recursos de tags .................................................................. 3-3 Laboratório 2 – Criação de tags ................................................................ 3-17
Módulo 4
Links de animação .....................................................................4-1 Seção 1 – Características gerais de links de animação ................................... 4-3 Seção 2 – Objetos de animação ....................................................................... 4-9 Seção 3 – Links de animação – Referência rápida ........................................ 4-45 Laboratório 3 – Configuração de links de animação ................................. 4-49 Seção 4 – Como usar SmartSymbols.............................................................. 4-63 Laboratório 4 – Como usar SmartSymbols ............................................... 4-81
Módulo 5
InTouch QuickScripts .................................................................5-1 Seção 1 – Tipos de QuickScript ........................................................................ 5-3 Seção 2 – Trabalhar com o editor script .......................................................... 5-13 Seção 3 – QuickScripts – Referência rápida ................................................... 5-35 Laboratório 5 – Como usar InTouch QuickScripts..................................... 5-39
Módulo 6
Alarmes ........................................................................................6-1 Seção 1 – Alarmes e eventos ........................................................................... 6-3 Seção 2 – O objeto alarme distribuído ........................................................... 6-23 Laboratório 6 – Criação de alarmes e eventos ......................................... 6-39
Módulo 7
Tendência em tempo real e de histórico ..................................7-1 Seção 1 – Tendências em tempo real ............................................................... 7-3 Laboratório 7 – Configuração de tendências em tempo real ...................... 7-7 Seção 2 – Tendências de histórico.................................................................. 7-11 Laboratório 8 – Configuração de tendências de histórico ........................ 7-27
Módulo 8
Comunicação de E/S ..................................................................8-1 Seção 1 – Protocolos de comunicação de E/S ................................................. 8-3 Seção 2 – Servidores de E/S Wonderware .................................................... 8-13 Laboratório 9 – Configuração de comunicação de E/S ............................ 8-19 Seção 3 – Localização de falhas de E/S ......................................................... 8-25
Módulo 9
Funcionalidade avançada de tag 9-1 Seção 1 – Funções de E/S avançadas ............................................................. 9-3 Seção 2 – Tags indiretas .................................................................................. 9-7 Laboratório 10 – Criação e uso de tags indiretas........................................ 9-9 Seção 3 – SuperTags ....................................................................... InTouch 9-15 Laboratório 11 – Definição de SuperTags................................................. 9-27 Seção 4 – DBDump e DBLoad ........................................................................ 9-37
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1
2
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos Seção 5 – Otimização do dicionário tagname .................................................. 9-43 Laboratório 12 – Remoção de tags............................................................ 9-55
Módulo 10
Segurança ................................................................................. 10-1 Seção 1 – Modelos de segurança ................................................................... 10-3 Laboratório 13 – Como estabelecer segurança 10-15 Seção 2 – Proteção da aplicação .................................................................. 10-27
Módulo 11
Backup da aplicação ............................................................... 11-1 Seção 1 – Backup da aplicação ...................................................................... 11-3
Apêndice A Licença FactorySuite 2000 .......................................................A-1 Apêndice B Suporte ao produto Wonderware .............................................B-1 Apêndice C Glossário de termos InTouch C-1 Apêndice D Controles ActiveX ......................................................................D-1 Apêndice E Observações técnicas referentes ao InTouch .........................E-1 Apêndice F Simulação de E/S........................................................................ F-1 Apêndice G Funções de script ..................................................................... G-1 Apêndice H Como usar o InTouch em um microcomputador Tablet ........H-1 Apêndice I Atalhos de teclado para InTouch ............................................... I-1
Treinamento Wonderware
Módulo 1
Introdução Seção 1 – Introdução ao curso Seção 2 – Introdução ao InTouch
1-3 1-13
1-2
Módulo 1 – Introdução Objetivos do módulo z
Estabelecer o conteúdo do curso
z
Lançar o InTouch®
z
Criar um novo aplicativo InTouch
z
Entender os recursos e as ferramentas de Gerenciador de Aplicação
Treinamento Wonderware
Seção 1 – Introdução ao curso
1-3
Seção 1 – Introdução ao curso Objetivos da seção z
Descrever os objetivos do conteúdo completo do curso
z
Destacar os laboratórios deste curso
Esta seção irá familiarizá-lo com os objetivos e o conteúdo do curso Fundamentos do curso de desenvolvimento de aplicativos InTouch. Descreve também os produtos Wonderware e como o InTouch atende as especificações de interface homem-máquina para visualização.
Descrição do curso O InTouch® HMI 9.5 é orientado pelo instrutor com duração de 5 dias com o objetivo de apresentar o recurso básico do módulo de visualização Wonderware®. O objeto deste curso é oferecer o conhecimento em InTouch® IHM necessário para desenvolver uma Interface Homem Máquina (IHM) para seu ambiente específico de chão de fábrica com elementos básicos InTouch® IHM. Este sistema IHM será desenvolvido usando muitos dos recursos/funcionalidades do software InTouch® IHM como WindowMaker, Tagnames, Animation, Cells e Symbols, SmartSymbols, Scripting, Alarms, RealTime e Historical Trending, Advance Tag Functionality, Security, Application Backup e muito mais.
Objetivos do curso Ao final deste laboratório, você: z
Usará o WindowMaker para criar janelas e manipular objetos
z
Criará e importará tags e usará o Dicionário Tagname
z
Definirá links de animação e gerará SmartSymbols
z
Usará o editor de scripting para criar QuickScripts
z
Adicionará a funcionalidade de alarme ao aplicativo
z
Verá os dados de usuário em tempo real e recuperará os dados de arquivos históricos
z
Estabelecerá comunicação com drivers, além de configurar e localizar falhas em Servidores de E/S
z
Implementará segurança InTouch® HMI em um aplicativo
z
Fará backup de um aplicativo
z
Desenvolverá um aplicativo de Interface Homem Máquina (IHM) para seu ambiente de chão-de-fábrica especifico usando elementos básicos InTouch®
Público Operadores de chão-de-fábrica, gerentes, administradores de sistema, integradores de sistema e outros indivíduos que precisam usar o InTouch® HMI em seus processos de manufatura.
Pré-requisitos Os pré-requisitos deste curso são: z
Pelo menos 8 horas de experiência prática com o InTouch® HMI
z
Microsoft Windows
z
Experiência na indústria de manufatura
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-4
Módulo 1 – Introdução Conteúdo Módulo 1 Introdução Seção 1 – Introdução ao curso Esta seção familiarizará você com os objetivos e o conteúdo para o InTouch Fundamentos do cursos de desenvolvimento de aplicativos. Ela também descreve os produtos Wonderware e como o InTouch atende as especificações de interface homem-máquina para visualização. Seção 2 – Introdução ao InTouch Esta seção detalha como lançar o InTouch e como usar os três componentes principais: Application Manager, WindowMaker e WindowViewer.
Módulo 2 Ambiente de desenvolvimento Seção 1 – Introdução Esta seção identificará os recursos do WindowMaker e o ambiente de desenvolvimento do Application Explorer, incluindo definição de barras de ferramentas e botões na interface do WindowMaker. Seção 2 – Como usar o WindowMaker Esta seção aborda a criação e a manipulação de objetos gráficos, linhas e contornos, objetos de texto, imagens e bitmaps. Laboratório 1 – Criação de uma nova aplicação, Windows e Graphics
Módulo 3 Dicionário Tagname Seção 1 – Tags e recursos de tags Esta seção definirá tags, tipos de tag, criação de tag e modificação de tag. Ela também demonstrará os filtros Tagname Browser e a impressão do dicionário Tagname. Laboratório 2 – Criação de tags
Módulo 4 Links de animação Seção 1 – Características gerais de links de animação Esta seção identificará e definirá os recursos de link da animação básicos como os tipos de link de animação, e também como acessar o navegador de tag e os campos ponto tagname. Seção 2 – Objetos de animação Esta seção descreve as opções de link de animação InTouch. Ela também demonstra a importação de janelas e o compartilhamento de animações em diversas janelas. As seguintes informações descrevem as opções de animação InTouch. Seu instrutor demonstrará as diversas opções de link de animação. Ao final desta seção, você importará uma janela pré-configurada InTouch durante uma tarefa orientada pelo instrutor. A janela é usada para configurar e compartilhar links de animação através de janelas em laboratórios subseqüentes. Seção 3 – Links de animação – Referência rápida Este guia de referência rápida resume a funcionalidade básica de cada link de animação. Laboratório 3 – Configuração de links de animação
Treinamento Wonderware
Seção 1 – Introdução ao curso
1-5
Seção 4 – Como usar SmartSymbols Os SmartSymbols integram a tecnologia orientada ao objeto com os gráficos InTouch para transformá-los em modelos reutilizáveis. As mudanças feitas aos modelos automaticamente se propagam por todo o aplicativo, mesmo em diversos nós de microcomputadores conectados em rede. Como resultado, os engenheiros gastam menos tempo criando, modificando e validando e revalidando aplicativos IHM. Laboratório 4 – Como usar SmartSymbols
Módulo 5 InTouch QuickScripts Seção 1 – Tipos de QuickScript Esta seção explicará e definirá os diversos tipos de InTouch QuickScript. Seção 2 – Como trabalhar com o editor script Esta seção descreve os recursos e as funções comuns do QuickScript Editor. Os recursos e as funções que são exclusivas para um determinado tipo de script são descritos mais adiante nesta seção. Seção 3 – QuickScripts – Referência rápida Neste guia, a funcionalidade básica de cada tipo de QuickScript que pode ser criado é resumida. Laboratório 5 – Como usar InTouch QuickScripts
Módulo 6 - Alarmes Seção 1 – Alarmes e eventos Esta seção explica e define os diferentes tipos de alarmes e de eventos e como adicionar a funcionalidade de alarme aos aplicativos. Seção 2 – O objeto alarme distribuído O objeto de alarme distribuído exibe alarmes gerados localmente e remotamente. Os objetos de exibição desta tela incluem: barras de rolagem incorporadas, colunas de exibição dimensionáveis, seleção múltipla de alarmes, barra de status de atualização, barra de status de consulta, menu com o botão direito do mouse sensível ao contexto e cores de tela de alarme baseadas na prioridade do alarme . Laboratório 6 – Criação de alarmes e eventos
Módulo 7 Tendência em tempo real e de histórico Seção 1 – Tendências em tempo real O InTouch oferece dois tipos de objetos de exibição de tendência: histórico e tempo real. Os dois objetos podem ser configurados para exibir representações gráficas de tags diversas em um período de tempo. Laboratório 7 – Configuração de tendências em tempo real Seção 2 – Tendência de histórico Esta seção apresentará e explicará as tendências de histórico do InTouch e explicará as opções de configuração de tendência de histórico. Laboratório 8 – Configuração de tendências de histórico
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-6
Módulo 1 – Introdução Módulo 8 Comunicação de E/S Seção 1 – Protocolos de comunicação de E/S Esta seção explica os protocolos de comunicação de E/S e demonstra como configurar um nome de acesso InTouch. Seção 2 – Servidores de E/S Wonderware Esta seção descreverá a configuração de um Servidor de E/S Wonderware (Modbus). Laboratório 9 – Configuração de comunicação de E/S Seção 3 – Localização de falhas de E/S Esta seção explica como localizar falhas de E/S de comunicação entre o servidor de E/S e o InTouch, e entre o servidor de E/S e o PLC.
Módulo 9 Funcionalidade avançada de tag Seção 1 – Funções de E/S avançadas Esta seção explica a funcionalidade de E/S avançada do InTouch incluindo as funções IOSetAccessName e IOSetItem e o Endereçamento de Referência Dinâmica. Seção 2 – Tags indiretas Esta seção explica o conceito e a prática de tags indiretas, incluindo discussões das vantagens e desvantagens. Laboratório 10 – Criação e uso de tags indiretas Seção 3 – InTouch SuperTags Esta seção definirá as SuperTags usando a estrutura de modelo SuperTag. Laboratório 11 – Definição de SuperTags Seção 4 – DBDump e DBLoad Esta seção explicará o uso dos utilitários DBDump e DBLoad. Seção 5 – Otimização do dicionário Tagname Há diversos modos de editar links existentes e tags. Esta seção substitui, converte e exclui os tagnames, assim como aplica o Utilitário de Referência Cruzada InTouch. Laboratório 12 – Exclusão de tags
Módulo 10 - Segurança Seção 1 – Modelos de segurança Este módulo fornece as características gerais de três modelos de segurança disponíveis no desenvolvedor InTouch. O enfoque é no modelo de segurança baseado em InTouch. Laboratório 13 – Definição de segurança Seção 2 – Proteção da aplicação Esta seção aborda a personalização dos ambientes em Runtime e de desenvolvimento para proteger o aplicativo. Ela também explica como iniciar automaticamente um aplicativo.
Módulo 11 Backup da aplicação Seção 1 – Backup do aplicativo Esta seção explicará como salvar um aplicativo e otimizá-lo para distribuição/implantação.
Treinamento Wonderware
Seção 1 – Introdução ao curso
1-7
Produtos Wonderware
A próxima geração de produtos Wonderware® é a primeira a aproveitar a nova potência e o desempenho da arquitetura de software de automação e informação de fábrica ArchestrA® da Invensys. Os seguintes produtos Wonderware oferecem aumento da funcionalidade e flexibilidade e extensa conectividade: z
z
Plataforma Industrial Application Server para todo o sistema, aquisição de dados em tempo real, gestão de alarme e de evento, segurança centralizada, manipulação de dados, desenvolvimento remoto e engenharia colaborativa InTouch® software de interface homem máquina (IHM) para visualização e controle de processo
z
IndustrialSQL Server™ historian de dados de fábrica
z
Functional Modules para exclusiva integração de novas capacidades funcionais nos aplicativos Industrial Application Server usando uma abordagem modular, incluindo o Production Events Module (PEM) para histórico de produto e de produção e genealogia
z
InTrack™ software de recurso e de rastreamento WIP
z
InBatch™ software de gestão flexível de lote
z
InControl™ software de controle em tempo real
z
DT Analyst™ software de rastreamento de tempo parado de equipamento e gestão de desempenho
z
SuiteVoyager® software de portal industrial para visualização Internet/intranet e gestão de conteúdo
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-8
Módulo 1 – Introdução z
InTouch for Terminal Services software para hospedagem remota de aplicativos InTouch
z
Device Integration produtos que oferecem uma biblioteca de centenas de servidores de E/S e DAServers
z
QI Analyst™ para uso de dados em tempo real e de histórico para monitorar, analisar e prever variações de processo potencialmente prejudiciais, permitindo ajustes online para melhora de qualidade de produção e consistência
z
ActiveFactory™ para acelerar e melhorar a tomada de decisões em todos os níveis de uma fábrica através de um conjunto de clientes de análise avançada de dados que usam os dados armazenados no IndustrialSQL Server
z
SCADAlarm™ software de notificação de vento para notificação de alarme em tempo real, aquisição de dados e controle remoto de dispositivos de telecomunicação para sistemas de software de automação industrial
Este conjunto de ferramenta líder na indústria apresenta os melhores e robustos módulos de software que ajudam os usuários a desenvolver e gerir efetivamente aplicativos de automação para ambientes contínuos, discretos, de processo, híbridos e manufatura de lote.
Especificações de sistema Para executar o InTouch, recomendamos o hardware e software a seguir z
Qualquer microcomputador com um Pentium III com um mínimo de 700 MHz ou um processador mais potente para um sistema de nó único; recomendado 1.2 GHz ou mais potente
z
2GB de espaço no disco rígido
z
Mínimo de 256MB de memória de acesso randômico (RAM); recomendado 512 MB RAM
z
Adaptador de visor SVGA com 2MB de RAM recomendado
z
Dispositivo de indicação, como mouse, trackball ou tela touch screen,
z
Adaptador de rede deve estar instalado
z
Microsoft® Windows 2000 Professional com Service Pack 3 ou mais recente OU Windows XP™ com Service Pack 1 ou mais recente ou Windows 2003 Server com Service Pack 1 ou mais recente
Observações para a instalação do InTouch O programa de instalação do Wonderware FactorySuite é usado para instalar o InTouch. O InTouch opera em sistemas operacionais Windows 2000, Windows XP ou Windows 2003 Server. O programa de instalação cria diretórios, de acordo com o necessário, e copia os arquivos do CD para seu disco rígido. Obs.: As versões mais antigas do aplicativo InTouch precisam ser convertidas para InTouch 9.5. Após o processo de conversão, estes aplicativos não mais operarão com versões InTouch anteriores a 9.5. Instruções detalhadas de instalação estão incluídas no Guia de Instalação InTouch. É recomendado ler o Guia de Instalação InTouch antes de começar o processo de instalação. Obs.: Seu Guia do administrador de sistema FactorySuite online fornece instruções de instalação detalhadas para a maioria dos produtos incluídos no pacote de software FactorySuite.
Treinamento Wonderware
Seção 1 – Introdução ao curso
1-9
O InTouch usa Microsoft SQL Server™ Standard Edition como seu banco de dados de alarme . Se Microsoft SQL Server 2000 é instalado no mesmo sistema no qual o InTouch está sendo instalado, o programa de configuração do InTouch pode solicitar a reinicialização do sistema durante o procedimento de instalação. É preciso reiniciar o sistema porque o Microsoft SQL Server 2000 instala o MDAC™ versão 2.6, mas o InTouch precisa do MDAC versão 2.6 Service Pack nível 2 (SP2). O programa de configuração InTouch instalará este Service Pack durante a instalação. Uma vez que o sistema seja reiniciado, a instalação do InTouch será reinicializada automaticamente. Devido a esta reinicialização, o Nome do Usuário e a Senha da conta do nó de comunicação desativado que foram inseridos antes da reinicialização devem ser reinseridos após a retomada da instalação do InTouch. Isto aplica-se apenas se estiver instalando o InTouch no sistema operacional Microsoft Windows 2000 . Se o Microsoft SQL Server 2000 SP2, que instala o MDAC versão 2.6 SP2, estiver instalado em seu sistema antes da instalação do InTouch ou se o Microsoft SQL Server 2000 não estiver instalado em seu sistema, o programa de configuração InTouch não solicitará o reinício durante a instalação. Se o InTouch 7.11 estiver instalado em seu sistema e você tiver o Alarm DB Logger configurado para operar como um serviço, você deve mudar o modo para manual antes de desinstalar o InTouch e reiniciar seu sistema. Se desinstalar o InTouch 7.11 com o Alarm DB Logger no modo automático, a instalação do InTouch 9.5 não será concluída corretamente. Licença FactorySuite Suas informações da licença do sistema FactorySuite podem ser visualizadas através do utilitário de visualização da licença. Este utilitário é lançado a partir do WindowMaker ao selecionar Help / About do menu principal. Suporte Técnico O Suporte Técnico Wonderware oferece uma variedade de opções de suporte para responder qualquer dúvida sobre os produtos Wonderware e sua implementação. Antes de entrar em contato com o suporte técnico, consulte o capítulo relevante neste manual de treinamento ou seu Guia do usuário InTouch para verificar uma possível solução. Se achar necessário entrar em contato com o suporte técnico para assistência, tenha em mãos as informações a seguir. z
A versão do InTouch que está em execução
z
O tipo e a versão do sistema operacional que está usando. Por exemplo, Windows 2000, Windows XP ou Windows 2003 Server
z
Os termos exatos das mensagens de erro de sistema encontrados
z
Qualquer lista de saída relevante do Wonderware Logger, do Microsoft Event Viewer ou qualquer outro aplicativo de diagnóstico
z
Detalhes das tentativas que fez para solucionar o(s) problema(s) e os resultados obtidos
z
Detalhes sobre como recriar o problema
z
Se esta for uma dúvida em andamento, o número de caso do Suporte Técnico Wonderware atribuído
Para mais informações sobre o Suporte Técnico, consulte seu Guia administrador do sistema FactorySuite online. Appendix E deste manual contém Technotes que se referem ao produto InTouch. Para as mais recentes Technotes, consulte a página www.wonderware.com/support .
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-10
Módulo 1 – Introdução Convenções Este curso inclui conteúdo orientado pelo instrutor além dos laboratórios aplicados regularmente. As etapas orientadas pelo instrutor têm por objetivo serem explicativas e devem prepará-lo para o laboratório que será realizado em seguida. As etapas não devem duplicar ou estar em conflito com o conteúdo do laboratório aplicado. Etapas orientadas pelo instrutor são indicadas por letras (a, b, c). As imagens de telas deste manual foram extraídas de uma máquina que executa o Sistema Operacional Microsoft Windows 2003 Server com temas XP acionados e com resolução 1024 x 768.
Treinamento Wonderware
Seção 1 – Introdução ao curso
1-11
– Deixado em branco intencionalmente –
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-12
Módulo 1 – Introdução
Treinamento Wonderware
Seção 2 – Introdução ao InTouch
1-13
Seção 2 – Introdução ao InTouch Objetivos da seção z
Lançar o InTouch®
z
Criar um novo aplicativo InTouch
z
Entender os recursos e as ferramentas do Application Manager
Esta seção detalha como lançar o InTouch e como usar os três componentes principais: Application Manager, WindowMaker e WindowViewer.
Introdução Wonderware® InTouch® é o modo mais rápido e mais fácil de criar aplicações IHM para sistemas operacionais Microsoft® Windows 2000, Windows XP e Windows 2003. Os aplicativos InTouch são usados no mundo inteiro em uma diversidade de mercados verticais incluindo processamento de alimentos, semicondutores, petróleo e gás, automotivo, produtos químicos, farmacêutico, papel e celulose, transporte, utilidades e muito mais. Ao usar o InTouch, é possível criar aplicações potentes, equipadas com diversos recursos que usam recursos chaves do Microsoft Windows, incluindo controles ActiveX®, OLE, gráficos, rede e muito mais. O InTouch pode também ser ampliado para adicionar controles personalizados ActiveX, assistentes, objetos genéricos e criar extensões InTouch QuickScript.
Componentes InTouch O InTouch é formado por três componentes principais: Application Manager, WindowMaker e WindowViewer. Obs.: As figuras a seguir são os ícones da barra de ferramentas usados para abrir os componentes InTouch.
Application Manager: Organiza as aplicações criadas. O painel de aplicação contém uma lista de links (ícones) para aplicações que residem naquele nó. As informações sobre as aplicações são exibidas nas colunas Name, Path, Resolution, Version, Application Version, Date Modified e Description. O Application Manager é usado para configurar o WindowViewer como um serviço NT, para configurar o Desenvolvimento de Aplicação de Rede (NAD) para arquiteturas baseadas no cliente e no servidor e para configurar a Conversão de Resolução Dinâmica (DRC). Os utilitários de banco de dados DBDump e DBLoad são lançados do Application Manager. WindowMaker: O ambiente de desenvolvimento do InTouch, em que gráficos orientados ao objeto são usados para criar as janelas de telas animadas, sensíveis ao toque. Estas janelas de tela podem ser conectadas a sistemas de E/S industriais e outros aplicativos Microsoft Windows. O último aplicativo usado é automaticamente aberto quando o WindowMaker é lançado independente de isto ocorrer fora do Application Manager (por exemplo, a partir do menu Windows Start).
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-14
Módulo 1 – Introdução
WindowViewer: O ambiente de Runtime usado para exibir as janelas gráficas criadas no WindowMaker. O WindowViewer executa o InTouch QuickScripts, realiza registro de dados históricos e relatórios, processa o registro de alarme e o relatório e pode atuar como um cliente e um servidor para os protocolos de comunicação DDE e SuiteLink. O último aplicativo usado é automaticamente aberto quando o WindowViewer é lançado independente de isto ocorrer fora do Application Manager (por exemplo, a partir do menu Windows Start).
Ferramentas do Application Manager Quando o InTouch é executado inicialmente, a barra de ferramentas do Application Manager e a barra de status são exibidas como padrão. Estas informações descrevem cada um dos botões da barra de ferramentas do Application Manager. Botão
Descrição Executar o comando New no menu File para criar um novo aplicativo. Executar o comando WindowMaker no menu File para abrir o aplicativo selecionado no WindowMaker. Executar o comando WindowViewer no menu File para abrir o aplicativo selecionado no WindowViewer. Executar o comando DBLoad no menu File para executar o utilitário DBLoad. Este utilitário é usado para carregar um arquivo de entrada de Tagname Dictionary. Executar o comando DBDump no menu File para executar o programa utilitário DBDump Este utilitário é usado para extrair um Tagname Dictionary de um aplicativo. Executar o comando Large Icons no menu View para exibir os ícones grandes dos aplicativos listados. Executar o comando Small Icons no menu View para exibir ícones pequenos dos aplicativos listados. Executar o comando List no menu View para alterar a caixa de diálogo para listar o modo de visualização. Executar o comando Details no menu View para alterar a caixa de diálogo para listar o modo de visualização de detalhes. Abrir a caixa de diálogo Node Properties em que as propriedades do computador são configuradas ao usar Desenvolvimento de Aplicação de Rede (NAD), Conversão de Resolução Dinâmica (DRC).
Treinamento Wonderware
Seção 2 – Introdução ao InTouch
1-15
Execução do InTouch pela primeira vez A primeira vez que executar o INTOUCH.EXE, o arquivo INTOUCH.INI é automaticamente criado. Este arquivo localiza-se na mesma pasta do aplicativo e contém os ajustes de configuração padrão para aquele aplicativo. Ao configurar seu aplicativo, seus ajustes de parâmetro são escritos no arquivo INTOUCH.INI . a. Selecione Start / Programs / Wonderware / InTouch.
A caixa de diálogo Welcome to InTouch Application Manager é exibida:
b. Clique em Next.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-16
Módulo 1 – Introdução c. Para especificar um diretório diferente, insira o caminho para o diretório na caixa de entrada ou clique em Browse para localizar o diretório.
d. Clique em Finish. O Application Manager pesquisa seu computador para verificar qualquer aplicativo InTouch existente. Os links do aplicativo são exibidos através de um ícone que contém o nome do aplicativo. Outras informações são exibidas em colunas. Por exemplo:
Treinamento Wonderware
Seção 2 – Introdução ao InTouch
1-17
Criação de um novo aplicativo Para criar um novo aplicativo a. Clique na ferramenta New
na barra de ferramentas Application Manager.
A caixa de diálogo Create New Application é exibida:
Por padrão, o sistema exibe o seguinte caminho: C:\Documents and Settings\Username\My Documents\My InTouch Applications\ . Insira o caminho para o diretório de base no qual deseja que seu aplicativo seja criado ou clique em Browse para localizar o diretório. b. Para esta aula, insira c:\applications no campo de diretório. c. Clique na caixa de seleção Set As Default Directory. Todos os aplicativos serão criados no diretório especificado.
d. Clique em Next.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-18
Módulo 1 – Introdução A janela Create New Application é exibida, permitindo a você definir o diretório no qual seu aplicativo será criado:
e. Mude o diretório como exibido na figura a seguir:
f.
Clique em Next para continuar.
Treinamento Wonderware
Seção 2 – Introdução ao InTouch
1-19
g. Insira um nome único para o novo aplicativo. Este nome será exibido quando o aplicativo é listado na janela InTouch Application Manager . h. Na caixa Description, insira uma descrição do aplicativo.
Obs.: Confirme se a opção InTouchView Application está desmarcada. Isto somente é aplicável no ambiente ArchestrA, com o Industrial Application Server. i.
Clique em Finish. A janela InTouch - Application Manager é reexibida mostrando um ícone, o caminho e a Versão, Modo e Descrição do aplicativo:
Obs.: Quando o aplicativo é exibido pela primeira vez no Application Manager, a resolução e a versão são exibidas como 0. Após a abertura, os detalhes de resolução e de versão são atualizados.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-20
Módulo 1 – Introdução Como usar o InTouch Application Manager Use o InTouch Application Manager para criar aplicativos novos ou abrir aplicativos existentes, renomear ou remover aplicativos e executar os utilitários InTouch DBDump e DBLoad. Para abrir um aplicativo a. Selecione o aplicativo e clique no ícone da barra de ferramentas WindowMaker, ou; b. Clique duas vezes com o botão do mouse no ícone do aplicativo, ou c. Selecione o aplicativo e, em seguida, pressione Enter, ou; d. Clique com o botão direito do mouse no aplicativo e escolha WindowMaker como exibido a seguir. (WindowViewer não pode ser executado para um novo aplicativo.) Quando o WindowMaker ou o WindowViewer é aberto, o Application Manager fecha.
Para renomear um aplicativo a. Clique com o botão direito do mouse no aplicativo na lista e selecione Rename do sub-menu.
b. Insira o novo nome e pressione a tecla Enter .
Treinamento Wonderware
Seção 2 – Introdução ao InTouch
1-21
Para remover um link de aplicativo O Application Manager exibe links para aplicativos em diversos lugares em seu sistema. Se remover um link de aplicativo da lista, os arquivos do InTouch e o diretório não são removidos. Remover o aplicativo InTouch requer uma operação de remoção manual do Windows Explorer. a. Clique com o botão direito do mouse no aplicativo na lista e, em seguida, selecione Delete.
b. Uma caixa de mensagem é exibida pedindo que confirme a remoção. Clique em Yes ou No.
c. Para exibir o link após sua remoção da lista do Application Manager, clique em Tools / Find Applications do menu principal Application Manager.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-22
Módulo 1 – Introdução A caixa de diálogo Browse for Folder é exibida:
d. Localize o diretório para busca e clique em OK. O InTouch Application Manager reabrirá e exibirá os ícones para todos os aplicativos que foram encontrados dentro do diretório selecionado.
Visualização das propriedades de um aplicativo a. Destacar o aplicativo na lista. b. Clique com o botão direito do mouse e escolha Properties.
Treinamento Wonderware
Seção 2 – Introdução ao InTouch
1-23
A caixa de diálogo Properties é exibida:
c. Clique em OK ou Cancel para sair da caixa de diálogo Properties .
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
1-24
Módulo 1 – Introdução
– Deixado em branco intencionalmente –
Treinamento Wonderware
Módulo 2
Ambiente de desenvolvimento Seção 1 – Introdução Seção 2 – Como usar o WindowMaker Laboratório 2–Criação de um novo aplicativo, janelas e gráficos
2-3 2-27 2-65
2-2
Módulo 2 – Ambiente de desenvolvimento Objetivos do módulo z
Descrever os recursos no Ambiente de desenvolvimento
z
Usar o WindowMaker para criar janelas e manipular objetos
Treinamento Wonderware
Seção 1 – Introdução
2-3
Seção 1 – Introdução Objetivos da seção z
Identificar os recursos do WindowMaker e o Application Explorer
z
Identificar os elementos de interface do WindowMaker
z
Usar o WindowMaker
Esta seção identificará os recursos do WindowMaker e o ambiente de desenvolvimento do Application Explorer, incluindo a definição de barras de ferramentas e os botões na interface do WindowMaker. Interface do WindowMaker a. Selecionar o novo aplicativo criado durante a discussão orientada pelo instrutor em “Criação de um novo aplicativo” na página 1-17. b. Lançar o WindowMaker.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-4
Módulo 2 – Ambiente de desenvolvimento Um aplicativo em branco será exibido no ambiente de desenvolvimento:
A interface do usuário do WindowMaker (UI) é compatível com os padrões do Windows 2000 e do Windows XP. O WindowMaker suporta recursos incluindo (sem limitar-se) recursos como suporte com o botão direito do mouse, barras flutuantes e ancoradas, menus de seleção e ajuda sensível ao contexto. Os menus acionados ao clicar com o botão direito do mouse oferecem acesso rápido aos comandos freqüentemente usados e uma paleta de cores personalizadas que é compatível com 16,7 milhões de cores (limitado apenas pelo seu monitor de vídeo). O ambiente de desenvolvimento do WindowMaker é configurável. Ao abrir pela primeira vez o WindowMaker, a maioria dos elementos importantes são automaticamente exibidos incluindo as barras de ferramentas, o Application Explorer e a barra de status. É possível exibir ou ocultar qualquer um destes elementos. É possível mover as barras de ferramentas e o Application Explorer para qualquer local dentro da janela do WindowMaker. É possível também exibir a régua opcional e habilitar ou desabilitar as grades visíveis.
Treinamento Wonderware
Seção 1 – Introdução
2-5
A figura a seguir exibe os elementos do ambiente de desenvolvimento do WindowMaker usando o aplicativo ReactorDemo e o Conveyor Window. Ao criar um novo aplicativo e executar o WindowMaker pela primeira vez, os elementos deste programa serão exibidos automaticamente na configuração padrão como exibido:
Application Explorer O Application Explorer do WindowMaker é uma visualização gráfica hierárquica dos elementos do aplicativo. Ele exibe as janelas e os itens que foram configurados em seu aplicativo e oferece fácil acesso a eles. Oferece também rápido acesso a muitos dos comandos e funções mais comumente usados do WindowMaker. Além disso, o Application Explorer exibe todos os programadas complementares instalados como o SQL Access Manager, SPCPro e Recipe Manager. Oferece também um inicializador do aplicativo personalizado. Windows e outros elementos InTouch podem ser criados e configurados a partir do Application Explorer.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-6
Módulo 2 – Ambiente de desenvolvimento
Obs.: É possível configurar o Application Explorer para iniciar qualquer outro programa ArchestrA® ou programa Windows. Este potente recurso permite alternar rapidamente entre sua configuração IHM, configuração I/O Server e outras configurações de controle. Advertência: Não adicione o WindowViewer (view.exe) ao Application Explorer. Se adicionar o WindowViewer, as novas janelas criadas no WindowMaker podem não ser sincronizadas com as janelas no WindowViewer. O modo correto de iniciar o WindowViewer é executando o comando WindowViewer do menu File ou ao clicar na chave rápida Runtime na barra de menu do WindowMaker.
Como usar o Application Explorer A janela Application Explorer é configurável de dentro do WindowMaker. a. Para ocultar ou exibir o Application Explorer, clique na ferramenta Application Explorer na barra de ferramentas View ou o comando View / Application Explorer. As barras de ferramentas do Application Explorer dentro do WindowMaker podem ser "ancoradas" a qualquer borda da janela do WindowMaker ou ficar "flutuando" em qualquer local da janela do WindowMaker. Quando o Application Explorer é ancorado na borda da janela do WindowMaker, ele automaticamente se dimensiona e, se necessário, as barras de rolagem são exibidas. b. Mova o painel do Application Explorer selecionando sua borda e arrastando-a para uma área dentro da janela principal do WindowMaker. Quando o Application Explorer está flutuando dentro da janela do WindowMaker, sua barra de título é exibida e seu tamanho pode ser modificado.
Não ancorada e flutuante
Treinamento Wonderware
Seção 1 – Introdução
2-7
Navegação no Application Explorer É possível expandir ou minimizar os grupos listados na visualização gráfica hierárquica do Application Explorer. Por exemplo, se clicar duas vezes com o botão do mouse em um grupo, o ícone expande e exibe os membros do grupo. Ao clicar duas vezes com o mouse em um membro, ele abrirá. Todos os grupos que contêm membros são precedidos de um sinal de mais . Clique em para expandir o grupo e visualizar seus membros ou clique em para minimizar o grupo e ocultar seus membros. Como adicionar aplicativos ao Application Explorer Um dos recursos mais potentes do Application Explorer do WindowMaker é sua habilidade de iniciar outros aplicativos ArchestrA e aplicativos Windows de terceiros de dentro do WindowMaker. Por exemplo, é possível executar/configurar um programa I/O Server e desenvolver seu aplicativo simultaneamente. É possível iniciar os programas Windows de terceiros que são freqüentemente usados como Windows Notepad, Wordpad, Microsoft Excel, Microsoft Word, Microsoft Paint entre outros. É possível também configurar o Application Explorer para abrir um documento ou planilha específica em um programa. Dica: Os programas complementares InTouch, SQL Access, SPC Pro e Recipe Manager são automaticamente adicionados ao Application Explorer uma vez que estejam instalados. Para adicionar um aplicativo ao Application Explorer a. Clique com o botão direito do mouse em Applications e selecione New.
A caixa de diálogo Application Properties é exibida:
b. No campo Name, insira o nome a ser exibido no Application Explorer. Para este exemplo, insira Notepad.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-8
Módulo 2 – Ambiente de desenvolvimento
c. Clique no botão ellipsis e selecione um aplicativo. O caminho para o aplicativo Notepad é C:\WINDOWS\system32\notepad.exe neste exemplo.
d. Clique em Open. A caixa de diálogo Application Properties é exibida novamente:
e. Clique na lista drop-down Start Style para selecionar como o aplicativo será exibido quando é iniciado no WindowMaker. Neste exemplo, Normal window deve estar selecionado.
f.
Clique em OK.
Treinamento Wonderware
Seção 1 – Introdução
2-9
O aplicativo é adicionado ao Application Explorer sob o ícone Applications. É possível agora executar o aplicativo a qualquer momento a partir do WindowMaker. g. Clique com o botão direito do mouse no aplicativo e selecione Properties do submenu para fazer mudanças nas propriedades do aplicativo.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-10
Módulo 2 – Ambiente de desenvolvimento Criação de uma nova janela Seu aplicativo InTouch é formado de janelas que contêm gráficos, objetos de texto, animações e scripts de ações. Ao criar a janela pela primeira vez, você definirá as propriedades da própria janela como cor de fundo, título e posição na tela. O General Toolbar contém botões para a maioria dos comandos do menu File. a. Clique com o botão direito do mouse em Windows e escolha New...
A caixa de diálogo Window Properties é exibida:
b. Insira Scratch no campo Name. O nome pode ter até 32 caracteres de comprimento. Ele pode incluir espaços incorporados, marcas de pontuação e qualquer outro caractere no teclado, exceto por aspas ("). Obs.: Por padrão, os ajustes de parâmetro nesta caixa de diálogo refletirão os ajustes das janelas criadas anteriormente. Se selecionar este comando enquanto uma janela estiver aberta no WindowMaker, os ajustes de parâmetro refletirão os ajustes da janela ativa. Se um Window script(s) estiver anexado à janela ativa, uma caixa de mensagem será exibida perguntando se deseja que o window script(s) seja copiado para a nova janela. c. Clique com o botão direito do mouse em qualquer parte dos campos de entrada de texto na caixa de diálogo. Um submenu é exibido com os comandos que podem ser aplicados ao texto selecionado. Os comandos habilitados dependem de uma entrada no campo de texto.
d. Na caixa Comment, insira qualquer comentário que deseja associar à janela (opcional). Esta informação serve para fins de documentação apenas e não é usada pelo aplicativo.
Treinamento Wonderware
Seção 1 – Introdução
2-11
e. Clique na caixa Window Color para selecionar a cor de fundo para a janela. A paleta de cores é exibida:
Clique para expandir para a Classic Colors Palette
A paleta de cor do WindowMaker é usada para aplicar cor às propriedades estáticas e dinâmicas de linhas, retângulos, retângulos com bordas redondas, elipses, polígonos e texto. Ela é usada também para selecionar uma cor de fundo de janela e a cor transparente para bitmaps, permitindo que os objetos sejam visualizados atrás de bitmaps. A paleta de cor é exibida ao clicar em um quadrado colorido na caixa de diálogo ou quando uma das ferramentas de cor é usada para aplicar linha, preenchimento ou cor de texto a um objeto selecionado. Criação de uma cor personalizada A paleta de cor do WindowMaker permite definir cores personalizadas e adicioná-las à sua paleta. As paletas criadas em outros aplicativos Windows podem ser importadas e adicionadas à paleta padrão. É possível também exportar as paletas personalizadas para outros aplicativos Windows. a. Com a paleta de cor aberta, clique com o botão direito do mouse em um dos quadrados em branco na Custom Palette.
b. Clique em Edit Custom Color.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-12
Módulo 2 – Ambiente de desenvolvimento A caixa de diálogo Add a Color é exibida:
c. É possível selecionar uma cor usando a cruz na caixa de cor principal ou com a seta à direita. A cor selecionada é exibida na caixa Color|Solid. Clique em OK para adicionar a cor à seção Custom Palette. d. Ou clique na ferramenta conta-gotas e clique na cor para adicioná-la à seção Custom Palette da paleta de cor. É possível selecionar qualquer cor em qualquer local dentro da janela do WindowMaker ou fora do WindowMaker.
Treinamento Wonderware
Seção 1 – Introdução
2-13
Propriedades adicionais da janela
Tipo de janela: Três opções estão disponíveis. z
Replace: fecha automaticamente qualquer janela com a qual faça intersecção quando é exibida na tela, incluindo janelas do tipo popup e de substituição.
z
Overlay: é exibida sobre a janela exibida no momento e pode ser maior do que a janela que está sobrepondo. Clicar na porção visível de uma janela atrás de uma janela de sobreposição fará com que tal janela fique ativa.
z
Popup: similar à janela de sobreposição, embora sempre fique sobre todas as outras janelas (mesmo se outra janela for clicada). As janelas popup geralmente requerem uma resposta do usuário a fim de serem removidas.
e. O ajuste de parâmetro padrão (Replace) é usado para a janela Scratch. Estilo de borda: Três estilos estão disponíveis.
f.
z
Single: exibe uma única linha em torno da janela. Title bar está disponível; Size controls estão disponíveis.
z
Double: Exibe uma borda de efeito 3-D em torno da janela. Title bar não está disponível; Size controls estão disponíveis.
z
None: uma janela sem borda. Title bar não está disponível; Size controls estão disponíveis.
O ajuste de parâmetro padrão (Single) é usado para a janela Scratch.
Barra de título: A barra de título pode ser usada para mover a janela clicando e arrastando-a. g. O ajuste de parâmetro padrão (Habilitado) é usado para a janela Scratch. Controles de dimensões: Habilita o usuário a redimensionar a janela no WindowMaker. h. O ajuste de parâmetro padrão (Habilitado) é usado para a janela Scratch.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-14
Módulo 2 – Ambiente de desenvolvimento Dimensões: Insira a localização de pixel para cada uma das coordenadas da janela. z
Localização X: O número de pixels entre a borda esquerda da área de projeto do WindowMaker e a borda esquerda da janela que está sendo definida.
z
Localização Y: O número de pixels entre a borda superior da área de projeto do WindowMaker e a borda superior da janela que está sendo definida.
z
Largura da janela: A largura da janela em pixels.
Obs.: O Windows limita a largura mínima de uma janela de acordo com seu monitor. Por exemplo, para padrão VGA, o mínimo é de 102 pixels. z
Altura da janela: A altura da janela em pixels. (A altura mínima de uma janela varia de acordo com seu monitor.)
Obs.: Por padrão, os valores nestes campos serão ajustados com as dimensões da janela criada previamente. Eles também são modificados automaticamente quando a dimensão da janela é mudada manualmente no WindowMaker. i.
Os ajustes de parâmetro padrões Dimensions são usados para a janela Scratch.
Botão Scripts...: Abre o editor Window Script . Três tipos de scripts podem ser aplicados: z
On Show: Executa uma vez quando a janela é aberta inicialmente.
z
While Showing: Executa continuamente na freqüência especificada enquanto a janela está aberta/ativa.
z
On Hide: Executa uma vez quando a janela é fechada.
Obs.: Se um Window Script é anexado a uma janela ativa e uma nova janela é criada, o script da janela ativa pode ser copiado para a nova janela. j.
Clique em OK. A nova janela é exibida no WindowMaker e os ícones da barra de ferramentas estão ativos:
Treinamento Wonderware
Seção 1 – Introdução
2-15
Barras de ferramentas WindowMaker Os ícones nas barras de ferramenta WindowMaker são agrupados por funcionalidades em comum. Por exemplo, a barra de ferramentas Arrange contém ferramentas que podem ser usadas para aplicar rapidamente a maioria dos comandos encontrados do menu Arrange. As barras de ferramentas do WindowMaker podem ser "ancoradas" a qualquer borda da sua janela ou ficar "flutuando" em qualquer local da janela do WindowMaker. Quando as barras de ferramenta estão flutuantes, o nome da barra de ferramentas é exibido na barra de título. Ao passar o cursor sobre um ícone, a caixa Tool Tips é exibida com o nome da ferramenta:
Barra de ferramentas General A barra de ferramentas General é formada por ícones que executam a maioria dos comandos de janela encontrados no menu File. Os ícones incluem também as ferramentas da área de transferência do Microsoft Windows encontradas do menu Edit.
Descrição do botão Executa o comando New Window do menu File e abre a caixa de diálogo Windows Properties para criar uma nova janela. Executa o comando Open Window do menu File para abrir a caixa de diálogo Windows to Open listando os nomes das janelas existentes que podem ser abertas. Executa o comando Close Window do menu File para abrir a caixa de diálogo Windows to Close listando os nomes das janelas abertas no momento que podem ser fechadas. Executa o comando Save Window do menu File para abrir a caixa de diálogo Windows to Save listando os nomes de todas as janelas abertas no momento que foram modificadas desde a última vez em que foram salvas. Salva automaticamente todas as janelas abertas no momento que foram modificadas desde a última vez em que foram salvas. A ferramenta não pede confirmação para cada janela. Ela salva automaticamente todas as janelas modificadas. Executa o comando Duplicate do menu File para duplicar o objeto selecionado no momento na janela. Executa o comando Cut do menu Edit para recortar os objetos selecionados no momento a partir da janela e os copia na área de transferência do Windows. Executa o comando Copy do menu Edit para copiar os objetos selecionados no momento e os copia na área de transferência do Windows. (eles não são apagados da janela.) Executa o comando Paste do menu Edit para colar qualquer objeto que foi recortado ou copiado para a área de transferência do Windows. (O cursor muda para o modo colar. Clique na janela para colar o objeto recortado ou copiado.) Executa o comando Undo do menu Edit para reverter (desfazer) a última ação ou comando aplicado ao objeto. Executa o comando Redo do menu Edit para reverter (refazer) a última ação ou comando desfazer aplicada ao objeto. Executa o comando Print do menu File para abrir a caixa de diálogo WindowMaker Printout usada para imprimir informações do banco de dados e da janela e QuickScripts.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-16
Módulo 2 – Ambiente de desenvolvimento Barra de ferramentas Wizards A barra Wizards tem a ferramenta para acessar a caixa Selection dialog e SmartSymbol Wizard. É possível adicionar qualquer assistente instalado ou controle ActiveX à barra.
Descrição do botão Exibe a caixa de diálogo Wizard Selection usada para selecionar assistentes a serem colados em seu aplicativo. Exibe o SmartSymbol Wizard usado para selecionar SmartSymbols a serem posicionados em seu aplicativo.
Barra de ferramentas Format A barra Format tem as ferramentas que aplicam a maioria dos comandos de formatação do objeto texto do menu Text. Ela contém também as ferramentas para acessar a paleta de cor para selecionar linha, preenchimento, texto, fundo da janela e cor transparente para o objeto.
Descrição do botão Executa o comando Font do menu Text para abrir a caixa de dialogo Font usada para selecionar a fonte, seu tamanho e seu estilo. Executa o comando Bold do menu Text para aplicar o estilo negrito em seleções únicas ou diversas de texto e campos de valor numérico. Executa o comando Italic do menu Text para aplicar o estilo itálico em seleções únicas ou diversas de texto e campos de valor numérico. Executa o comando Underline do menu Text para aplicar o estilo sublinhado em seleções únicas ou diversas de texto e campos de valor numérico. Executa o comando Reduce Font do menu Text para reduzir o tamanho de ponto de uma fonte dimensionável. Selecione o string de texto e clique na ferramenta. Executa o comando Enlarge Font do menu Text para aumentar o tamanho de ponto de uma fonte. Selecione o string de texto e clique na ferramenta. Executa o comando Left Justified do menu Text para alinhar a borda esquerda de seleções únicas ou diversas de string de texto e de campos de valor numérico. Executa o comando Centered do menu Text para centralizar as seleções únicas ou diversas de texto e os campos de valor numérico. Executa o comando Right Justified do menu Text para alinhar a borda direita de seleções únicas ou diversas de string de texto e de campos de valor numérico. Abre a paleta de cores usada para selecionar a cor de uma linha de objeto ou o perfil do objeto. Abre a paleta de cor usada para selecionar uma cor de preenchimento de objeto. Abre a paleta de cor usada para selecionar a cor de um objeto de texto. Abre a paleta de cor para selecionar uma cor de fundo de uma janela. Abre a paleta de cor usada para selecionar a cor transparente de um objeto bitmap.
Treinamento Wonderware
Seção 1 – Introdução
2-17
Barra de ferramentas Drawing A barra de ferramentas Drawing é agrupada com todas as ferramentas usadas para desenhar objetos gráficos simples (retângulos, elipses, linhas ou objetos de texto) e objetos complexos ( tendência em tempo real, tendências de histórico, bitmaps e botões tridimensionais com legendas).
Descrição do botão Modo seletor usado para selecionar objetos na janela. Ferramenta retângulo usada para desenhar retângulos ou quadrados. Ferramenta de retângulos com cantos arredondados usada para desenhar retângulos ou quadrados com cantos arredondados. Ferramenta elipse usada para desenhar elipses ou círculos. Ferramenta linha usada para desenhar linhas em qualquer ângulo. Ferramenta linha usada para desenhar linhas horizontais ou verticais. Ferramenta linha usada para desenhar polilinhas. Ferramenta formas usada para desenhar polígonos. Ferramenta de texto usada para inserir objetos de texto. Ferramenta bitmap usada para desenhar um contêiner de bitmap para colar um bitmap diretamente a partir da área de transferência do Windows ou um dos seguintes tipos de arquivo: .BMP, .JPG, .PCX ou .TGA. Ferramenta de tendência em tempo real usada para desenhar objetos de tendência em tempo real. Ferramenta de tendência de histórico usada para desenhar objetos de tendência de histórico. Ferramenta de botão usada para desenhar um botão tridimensional com uma legenda.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-18
Módulo 2 – Ambiente de desenvolvimento Barra de ferramentas View A barra View tem as ferramentas que aplicam a maioria dos comandos da janela encontrados no menu View. Estes comandos são usados para controlar o estado da janela WindowMaker.
Descrição do botão Exibir/ocultar o Application Explorer. Alterna o comando Hide All no menu View como habilitado e desabilitado para exibir/ ocultar todas as barras de ferramenta ancoradas. Quando o modo Hide All está ativo, o tamanho geral do WindowMaker permanece o mesmo. Para retornar ao modo normal, clique na ferramenta Hide/Restore All na barra de ferramentas flutuante View ou clique no comando View / Hide All . No modo Hide All, todas as barras flutuantes permanecem visíveis e a barra View flutua automaticamente na parte superior do WindowMaker. Se alguma barra de ferramentas flutuante estiver ancorada no modo Hide All, o modo é automaticamente interrompido. Alterna o comando Full Screen do menu View como habilitado e desabilitado para mudar o modo de exibição de visualização normal para toda a tela. Para retornar ao modo normal, clique na ferramenta Full Screen na barra de ferramentas flutuante View ou clique no comando View / Full Screen. No modo Full Screen, todos os elementos do programa WindowMaker são ocultados, exceto se alguma janela estiver aberta. A barra Restore flutua automaticamente na parte superior do WindowMaker. No modo Full Screen, as coordenadas da área do cliente permanecerão as mesmas. Por exemplo, a parte superior esquerda é 0,0. O modo Full Screen automaticamente ajusta as coordenadas após maximizar a área do cliente, oculta a barra de título e a barra de menu e ajusta a área do cliente para repetir o modo de visualização de toda a tela. Alterna o comando Snap to Grid do menu Arrange entre habilitado e desabilitado para exibir/ocultar as grades visíveis usadas para alinhar os objetos. Ele funciona com o comando Arrange / Snap to Grid. Alterna o comando Ruler do menu View entre habilitado e desabilitado para exibir/ocultar a régua.
Ajustar à grade Ao distribuir os objetos em suas janelas, habilite a grade para que seu gráfico se ajuste no intervalo com pixel na parte esquerda superior à grade. Se selecionar diversos objetos, o ajuste será aplicado ao canto superior esquerdo do primeiro objeto selecionado no grupo. Com o Snap to Grid habilitado, você pode selecionar um objeto e manter pressionada a tecla ou CTRL, pressione a tecla de seta de direção (para cima, para baixo, para direita ou para esquerda) a fim de mover um objeto em incrementos de 20 pixels (SHIFT) ou incrementos do 40 pixels (CTRL). Use as teclas de direção isoladamente para mover um objeto 10 pixels por vez. SHIFT
Se o Snap to Grid estiver desabilitado, você pode selecionar um objeto e manter pressionada a tecla SHIFT ou CTRL, pressione a tecla de seta de direção (para cima, para baixo, para direita ou para esquerda) a fim de mover um objeto em incrementos de 10 pixels (SHIFT) ou incrementos do 50 pixels (CTRL). Use as teclas de direção sozinhas para mover um objeto 1 pixel por vez. Estes recursos podem ser úteis ao fazer o alinhamento fino e os ajustes de localização.
Treinamento Wonderware
Seção 1 – Introdução
2-19
Dica: Por padrão, a grade é ajustada para 10 pixels e é visível quando inicia pela primeira vez o WindowMaker. É possível configurar o intervalo de pixel para a grade através da caixa de diálogo WindowMaker Properties . Clique na ferramenta Snap to Grid View para habilitar ou desabilitar o ajuste à grade.
na barra de ferramentas
Como configurar a grade a. Selecione Special / Configure / WindowMaker.
A caixa de diálogo WindowMaker Properties é exibida:
b. Insira o número de espaços em pixel na caixa Spacing. c. Selecione a opção Show Grid se desejar uma grade visível em suas janelas quando habilitar a função Ajustar à grade do WindowMaker. d. Selecione OK para salvar as alterações ou Cancel para sair da caixa de diálogo WindowMaker Properties .
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-20
Módulo 2 – Ambiente de desenvolvimento Régua A régua do WindowMaker pode ser usada para o alinhamento preciso dos objetos em suas janelas e ao determinar o movimento de um objeto durante uma seqüência de animação. As pequenas marcas são espaçadas com uma distância de 5 pixels. As marcas médias são espaçadas com uma distância de 10 pixels. As marcas grandes numeradas são espaçadas com uma distância de 50 pixels.
Barra de ferramentas Pan and Zoom A barra de ferramentas Pan and Zoom permite mover rapidamente em torno de um janela e aumentar ou reduzir o nível de ampliação.
Descrição do botão Diminui o zoom da área onde você clicar. Aumenta o zoom da área onde você clicar. Zoom normal retorna ao nível de ampliação padrão (100%). Rubber Band Zoom usa o mouse para selecionar uma área específica para aplicar o zoom. Exibe / oculta miniaturas de sua janela onde é possível arrastar uma caixa vermelha em torno do painel ou redimensionar a caixa vermelha para aplicar ou remover zoom. Pan move a posição da área de visualização. . . . . . . .Use Zoom Entry Box para selecionar ou inserir um nível de ampliação.
Se seu mouse tiver rodízio, é possível manter pressionada a tecla Ctrl e rolar para cima para aplicar o zoom e rolar para baixo para remover o zoom
Treinamento Wonderware
Seção 1 – Introdução
2-21
Barra de ferramentas Arrange A barra de ferramentas Arrange é agrupada com ferramentas que executam a maioria dos comandos de distribuição de objeto encontrados no menu Arrange. Os ícones dos elementos da barra de ferramentas Arrange são ativados se um ou mais objetos são selecionados.
Descrição do botão Comando Align Left do submenu Arrange / Align. Alinha a borda esquerda de todos os objetos selecionados com a borda esquerda do objeto selecionado mais à esquerda. Comando Align Center do submenu Arrange / Align. Alinha a linha de centro vertical de todos os objetos selecionados com a linha de centro do grupo de objetos selecionados. Comando Align Right do submenu Arrange / Align. Alinha a borda direita de todos os objetos selecionados com a borda direita do objeto selecionado mais à direita. Comando Align Top do submenu Arrange / Align. Alinha a borda superior de todos os objetos selecionados com a borda superior do objeto selecionado na posição mais elevada. Comando Align Middle do submenu Arrange / Align. Alinha o meio de todos os objetos selecionados com o meio do grupo de objetos selecionados. Comando Align Bottom do submenu Arrange / Align. Alinha a borda inferior de todos os objetos selecionados com a borda inferior do objeto selecionado na posição mais baixa. Comando Align Centerpoints do submenu Arrange / Align. Alinha o ponto central de todos os objetos selecionados com o ponto central do grupo de objetos selecionados. Comando Send to Back do menu Arrange para posicionar todos os objetos selecionados atrás dos objetos que não estão selecionados. Comando Bring to Front do menu Arrange para posicionar todos os objetos selecionados à frente dos objetos que não estão selecionados. Comando Space Horizontal do menu Arrange para espaçar uniformemente na horizontal os objetos selecionados entre os objetos selecionados mais à esquerda e mais à direita. Comando Space Vertical do menu Arrange para espaçar modo uniformemente na vertical os objetos selecionados entre os objetos selecionados na posição mais elevada e mais inferior. Comando Make Symbol do menu Arrange para combinar diversos objetos em uma única unidade denominada símbolo. Comando Break Symbol do menu Arrange para desagrupar um símbolo em componentes individuais. Comando Make Cell do menu Arrange para combinar diversos objetos selecionados em uma única unidade denominada célula. Ao combinar células, cada célula será mantida. Quando uma célula combinada é desagrupada, as células originais são restauradas. Comando Break Cell do menu Arrange para desagrupar uma célula selecionada. Ao combinar células, cada uma será mantida. Quando uma célula combinada é desagrupada, as células originais são restauradas. Comando Rotate Clockwise do menu Arrange para girar 90 graus no sentido horário os objetos selecionados. Comando CounterClockwise do menu Arrange para girar 90 graus no sentido antihorário os objetos selecionados. Comando Flip Horizontal do menu Arrange para inverter horizontalmente os objetos selecionados. Comando Flip Vertical do menu Arrange para inverter verticalmente os objetos selecionados.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-22
Módulo 2 – Ambiente de desenvolvimento Descrição do botão Comando Reshape Object do menu Edit para mudar o formato de um polígono ou polilinhas.
Barra de status WindowMaker Ao selecionar um objeto em uma janela, a barra de status do WindowMaker exibe as coordenadas superior esquerda X e Y, e a altura e a largura do objeto em pixel. As coordenadas X e Y em pixel são da janela onde o objeto está, ao invés do espaço geral do WindowMaker.
Quando diversos objetos são selecionados, a barra exibe a largura e a altura de todo o grupo.
Quando uma área em branco de uma janela é clicada, a barra de status exibe as coordenadas X e Y da localização atual do cursor na janela.
Posicionamento e dimensionamento manuais Na barra WindowMaker, há controles para o posicionamento e o dimensionamento manuais dos objetos. Selecione um objeto e clique nos controles para inserir as coordenadas X,Y exatas e os valores de L,A. Selecione objetos diversos para movê-los ou dimensioná-los como um grupo. Clique para editar a coordenada X ou Y Clique para editar os valores L ou A Mantenha a tecla Shift pressionada enquanto desenha retângulos, retângulos com cantos arredondados e elipses para limitar a altura e a largura e criar quadrados e círculos exatos. Obs.: Deve-se pressionar ENTER para aceitar e aplicar o posicionamento e dimensionamento.
Clique com o botão direito do mouse nos menus de janela Para acessar diversos comandos que podem ser aplicados a uma janela, clique com o botão direito do mouse em uma área em branco da janela aberta e clique no comando apropriado do menu.
Treinamento Wonderware
Seção 1 – Introdução
2-23
Abertura de janelas Ao desenvolver seu aplicativo, é possível abrir o número de janelas que a memória de seu computador suportar. a. Clique na ferramenta Open Window
.
A caixa de diálogo Windows to Open é exibida, listando os nomes de todas as janelas em seu aplicativo. Por padrão, todas as janelas abertas no momento serão selecionadas. b. Clique na caixa de seleção próxima ao nome da(s) janela(s) a ser(em) aberta(s). c. Clique em OK para fechar a caixa de diálogo e abrir a janela selecionada.
Obs.: Para abrir uma janela rapidamente, no Application Explorer, clique 2 vezes com o botão do mouse em Windows para expandir a lista de todos os nomes de janela. Clique duas vezes com o botão do mouse na janela. Ou clique com o botão direito do mouse na janela e selecione Open. Como salvar janelas Uma vez criada uma janela, será necessário salvá-la antes de fechá-la ou de sair do aplicativo. Todos os gráficos, QuickScripts, propriedades, etc. associados à janela também são salvos. a. Clique em Save Window . A caixa de diálogo Windows to Save é exibida, listando os nomes de todas as janelas a serem salvas. b. Clique na caixa de seleção próxima ao nome da(s) janela(s) a ser(em) salvas. c. Clique em OK para salvar a janela Scratch . Obs.: Se tentar fechar a janela que foi modificada desde a última ação de salvar, será solicitado que salve as mudanças antes que o WindowMaker feche a janela. Obs.: Para salvar rapidamente uma janela, no Application Explorer, clique com o botão direito do mouse na janela e selecione Save. Ou clique com o botão direito do mouse em qualquer área em branco da janela e clique em Save Window. Para salvar rapidamente todas as janelas abertas no momento, clique na ferramenta Save All Windows
ou selecione File / Save All Windows.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-24
Módulo 2 – Ambiente de desenvolvimento Como fechar as janelas a. Clique na ferramenta Close Window . A caixa de diálogo Windows to Close é exibida, listando os nomes de todas as janelas abertas no momento. b. Clique na caixa de seleção próxima ao nome da janela a ser fechada. c. Clique em OK para fechar a caixa de diálogo e fechar a janela selecionada. Obs.: Para fechar uma janela, no Application Explorer, clique com o botão direito do mouse nela e em Close. Ou clique com o botão direito do mouse em qualquer área em branco da janela e clique em Close Window. Como excluir janelas As janelas excluídas não podem ser restauradas, a menos que elas tenham sido salvas. Será solicitado que confirme a exclusão de cada nome de janela selecionado. a. Selecione File / Delete Window. A caixa de diálogo Windows to Delete é exibida, listando os nomes de todas as janelas abertas no momento. Clique na caixa de seleção próxima ao nome da janela a ser excluída. Clique em OK para fechar a caixa de diálogo e excluir a janela selecionada. b. Para este exemplo, clique em Cancel para sair da caixa de diálogo Windows to Delete sem excluir qualquer janela. Obs.: Para excluir uma única janela, no Application Explorer, clique com o botão direito do mouse na janela e selecione Delete. Ou clique com o botão direito do mouse em qualquer área em branco da janela e em Delete Window. Como duplicar janelas Para criar uma cópia de uma janela existente, a janela a ser duplicada deve estar aberta. a. Selecione File / Save Window As do menu principal WindowMaker. A caixa de diálogo Window to save under new name é exibida, listando os nomes de todas as janelas abertas no momento. b. Selecione a janela que deseja duplicar (somente um nome de janela pode ser selecionado). Para este exemplo, selecione Scratch. A caixa de diálogo Save Window é exibida: c. Insira um nome válido para a nova janela na caixa New Name .
d. Clique em OK para fechar a caixa de diálogo e criar a janela duplicada. Para este exemplo, clique em Cancel para sair da caixa de diálogo Save Window . Obs.: Para duplicar uma janela, no Application Explorer, clique com o botão direito do mouse na janela e clique em Save as. Usando este método, a janela ainda precisa estar aberta. Ou clique com o botão direito do mouse em qualquer área em branco da janela e em Save Window As.
Treinamento Wonderware
Seção 1 – Introdução
2-25
Outras propriedades do WindowMaker Níveis de Desfazer: Insira o número de níveis de desfazer/repetir a ser salvo (até 25 níveis). Insira zero (0) para desabilitar a funcionalidade desfazer/repetir.
Ajuste o número total de níveis de desfazer
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-26
Módulo 2 – Ambiente de desenvolvimento
– Deixado em branco intencionalmente –
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-27
Seção 2 – Como usar o WindowMaker Objetivos da seção z
Criar e manipular objetos no ambiente de desenvolvimento
z
Instalar e configurar assistentes
Esta seção aborda a criação e a manipulação de objetos gráficos, linhas e contornos, objetos de texto, imagens e bitmaps.
Objetos gráficos Após criar uma nova janela, ela pode ser preenchida com objetos gráficos. O WindowMaker oferece diversas ferramentas para edição e distribuição de vários objetos gráficos.
Como desenhar objetos a. Maximize o WindowMaker. b. Clique no ícone Rectangle
na barra de ferramentas Drawing .
Mova o cursor sobre a janela Scratch. O cursor muda para o formato (©). c. Clique na janela Scratch e desenhe um pequeno retângulo (clique e mantenha pressionado o botão esquerdo do mouse e arraste-o para baixo, para a esquerda ou para a direita). Solte o botão do mouse quando o tamanho estiver adequado. d. Clique em qualquer local da janela fora do objeto retângulo para desmarcar o novo retângulo.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-28
Módulo 2 – Ambiente de desenvolvimento Como selecionar e dimensionar objetos O termo selecionado é um conceito chave da edição de objeto e de gráfico do WindowMaker. Posicione o cursor sobre um objeto e clique com o botão esquerdo do mouse diretamente no objeto para selecioná-lo. Clique em uma área em branco da janela para desmarcar qualquer objeto selecionado no momento naquela janela. Quando um objeto é selecionado, pequenas caixas são exibidas em torno das bordas. As caixas são alças de dimensionamento e são usadas para redimensionar e/ou reformatar o objeto. Em geral, qualquer comando que você execute é aplicado a todos os objetos (presumindo-se que o comando seja válido para o objeto). a. Clique em qualquer lugar dentro do retângulo. Ele agora está selecionado.
b. Pressione CTRL+D duas vezes (o atalho de teclado para Duplicate). Três retângulos devem estar visíveis agora.
Lembretes de atalho de teclado
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-29
Como selecionar todos os objetos em uma Janela a. Selecione todos os objetos na janela ativa usando um dos seguintes métodos. z
Clique no comando Edit / Select All
z
Clique com o botão direito do mouse em uma área em branco da janela e em Select All
z
Pressione a tecla F2
b. Desmarque os objetos clicando em qualquer local em uma área em branco da janela. Como selecionar objetos diversos a. Para selecionar objetos diversos, selecione seu primeiro objeto. Mantenha a tecla SHIFT pressionada e clique nos outros objetos a serem selecionados. Para desmarcar um objeto específico de um grupo de objetos selecionados, com todos os objetos selecionados, deixe pressionada a tecla SHIFT e clique no objeto a ser desmarcado. Como selecionar um grupo de objetos a. Mova o cursor para uma área em branco de sua janela. b. Clique com o botão esquerdo do mouse e o arraste. Um retângulo de seleção pontilhado com uma cruz é exibido:
c. Arraste o mouse até circundar todos os objetos que deseja selecionar. d. Solte o botão do mouse. Todos os objetos que estavam totalmente dentro do retângulo serão selecionados.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-30
Módulo 2 – Ambiente de desenvolvimento Como desmarcar um grupo de objetos selecionados Se mantiver pressionada a tecla SHIFT enquanto desenha um retângulo de seleção, todos os objetos selecionados contidos no retângulo serão desmarcados. Esta técnica pode também ser usada para iniciar um retângulo de seleção sobre outro objeto.
Outras notas de desenho Retângulos com cantos arredondados: É possível ajustar o raio no canto de objetos retângulo com canto arredondado. Mantenha pressionada a tecla SHIFT e use a tecla (+) do teclado numérico para aumentar o raio ou a tecla (-) no teclado numérico para diminuir o raio.
É possível ajustar o raio no canto de retângulo com canto
Polilinhas: É possível desenhar linhas complexas clicando em diversos locais dentro da janela. Clique duas vezes para concluir o formato, solte o mouse e exiba as alças de dimensionamento. Cada alça de dimensionamento é móvel até que clique fora do objeto. Após clicar fora do objeto, as alças de dimensionamento exibem apenas todo o objeto (altura e largura total).
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-31
Para editar a polilinha após clicar fora do objeto, selecione Edit / Reshape Object ou clique com o botão direito do mouse na polilinha e selecione Reshape Object ou selecione o objeto e clique em Ctrl-R para exibir as alças de dimensionamento nos pontos do objeto. Polígonos: É possível desenhar formas complexas clicando em diversos locais dentro da janela. Clique duas vezes para concluir o formato, soltar o mouse e exibir as alças de dimensionamento.
Cada alça de dimensionamento é móvel até que clique fora do objeto. Após clicar fora do objeto, as alças de dimensionamento exibem apenas todo o objeto (altura e largura total). Para editar o polígono após clicar fora do objeto, selecione Edit / Reshape Object ou clique com o botão direito do mouse no polígono e selecione Reshape Object ou selecione o objeto e clique em CtrlR para exibir as alças de dimensionamento nos pontos do objeto. Use a ferramenta polígono para criar imagens de válvula de formato triangular no seguinte laboratório. Faça testes com os botões da barra de ferramentas Drawing listada na página página 2-17 deste manual.
Exclusão de objetos a. Selecione o objeto a ser excluído. b. Clique em Edit / Erase ou selecione o objeto e pressione a tecla DEL . Obs.: Os objetos excluídos não são copiados na área de transferência do Windows.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-32
Módulo 2 – Ambiente de desenvolvimento Linhas e contornos O estilo e a largura de um objeto de linha podem ser alterados, incluindo contornos em elipses, retângulos, polígonos, bitmaps ou imagens. Uma mudança de estilo ou de largura de linha pode ser aplicada a um único objeto selecionado ou a diversos objetos selecionados. O menu Line é dividido em duas seções. A seção superior contém largura de linhas e a seção inferior contém estilos de linha:
Como aplicar um comando Line a. Selecione o objeto e, em seguida, clique no estilo ou na largura de linha desejada no menu Line . Dica: Se não selecionar um objeto ao selecionar estilo, largura ou cor de linha, a mudança será aplicada aos ajustes de parâmetro padrões para todas as linhas, formas e ferramentas de texto na barra de ferramentas Drawing . Obs.: Somente a largura de linhas sólidas pode ser alterada. Linhas interrompidas têm um único pixel de largura. Linhas mais largas levam mais tempo para serem desenhadas em Runtime. Como remover um contorno de objeto a. Selecione um (ou mais) objeto(s) retângulo(s). b. Selecione Line / No Line do menu principal WindowMaker. O contorno do objeto é removido.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-33
Distribuição de objetos O WindowMaker fornece ferramentas para distribuir objetos em suas janelas. A barra Arrange contém ferramentas para aplicar rapidamente a maioria dos comandos do menu Arrange.
Alinhamento de objetos Os objetos podem ser alinhados pelas suas bordas esquerda ou direita, centro, pontos centrais, bordas superior, inferior ou pelo meio. Ferramentas de alinhamento a. Selecione um objeto retângulo e arraste-o para outro local. b. Repita a etapa anterior de forma que os objetos retângulos estejam alinhados aleatoriamente.
c. Selecione todos os objetos. d. Clique nos ícones de alinhamento Space Horizontal ou Space Vertical.
Os objetos na figura a seguir foram distribuídos uniformemente na vertical e na horizontal.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-34
Módulo 2 – Ambiente de desenvolvimento e. Clique nos ícones de alinhamento Align Left, Align Center ou Align Right.
Na próxima figura, a ferramenta Align Right foi selecionada e os objetos retângulo foram movidos para que se alinhem com o lado direito do objeto mais à direita.
Distribuição de objetos em camadas Os objetos podem ser distribuídos em camadas em sua janela posicionando-os em frente ou atrás uns dos outros. Posicionamento de um objeto atrás de outro objeto a. Selecione um objeto retângulo. b. Clique no ícone da ferramenta Send to Back ou selecione Arrange / Send to Back do menu principal WindowMaker. O objeto selecionado será redesenhado atrás do objeto não selecionado em sua janela.
Posicionamento de um objeto na frente de outro objeto a. Selecione o objeto. b. Clique na ferramenta Bring to Front ou clique em Arrange / Bring to Front. O objeto selecionado será redesenhado na frente do objeto não selecionado em sua janela.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-35
Como girar objetos A maioria dos objetos (incluindo imagens .bmp, .jpg, .pcx, .tga e objetos de texto) podem ser girados no WindowMaker com a barra Arrange . Eles podem ser girados no sentido horário ou no sentido anti-horário em incrementos de 90 graus. Links anexados ao objeto são girados com ele. Obs.: Girar objetos no WindowMaker é diferente de girar objetos de forma dinâmica em Runtime. Os objetos de texto não podem ser girados em Runtime. Os bitmaps ou as imagens podem ser girados atribuindo-se a eles um link de animação Orientation. Como girar objetos e texto usando a barra de ferramentas Arrange a. Selecione o(s) objeto(s) ou texto. b. Selecione o botão Rotate Clockwise ou o botão Rotate CounterClockwise na barra de ferramentas Arrange . O objeto selecionado será girado em 90 graus na direção escolhida. A rotação do objeto também é obtida a partir do menu principal selecionando Arrange / Rotate Clockwise ou CounterClockwise. Dica: Para girar um objeto 180 graus, repita este procedimento. Como espelhar e virar objetos A maioria dos objetos WindowMaker podem ser virados horizontalmente e verticalmente (incluindo bitmaps, imagens JPEG, PCX e TGA — texto não pode ser virado, mas pode ser girado). Quando um objeto é virado, ele é transformado em sua imagem espelhada na horizontal ou vertical. Quaisquer links anexados ao objeto são virados com o objeto. a. Selecione o(s) objeto(s). b. Clique no botão da ferramenta Flip Horizontal ou na ferramenta Flip Vertical na barra de ferramentas Arrange ou selecione Arrange / Flip Horizontal (ou Flip Vertical) do menu principal do WindowMaker. O(s) objeto(s) selecionado(s) será(ão) virado(s).
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-36
Módulo 2 – Ambiente de desenvolvimento Como criar símbolos e células Objetos diversos podem ser combinados em 2 tipos diferentes de unidades únicas: z
Símbolos: unem diversos objetos simples ou outros símbolos em um objeto. Se um dos objetos selecionados tiver links de animação anexados, esses serão anexados ao novo símbolo. (Se o link colar buffer tiver links, será perguntado se deseja colar os links.)
z
Células: suportam links de animação em cada elemento da célula (mas não na própria célula). Diversas células podem ser combinadas em uma única célula. Os objetos de uma célula mantêm um relacionamento espacial fixo entre os elementos gráficos individuais. As células não podem ser giradas; os símbolos podem. Os atributos dos objetos: texto, fonte, largura de linha, raio e posições dentro de uma célula não podem ser dimensionados até que a célula seja desagrupada. Ao combinar células, cada uma é mantida. Quando uma célula combinada é desagrupada, as originais são restauradas.
Símbolo
Célula
Cada link de animação aplica-se a todos os objetos no Símbolos mantêm seus links de animação símbolo; links de animação diferentes podem ser anexados a individuais. tags diferentes (as cores de linha são anexadas à tag Status, e todos os links de animação Piscar são anexados à Hazard). Não podem conter bitmaps, tendências, botões, assistentes ou células
Podem ter os objetos: bitmaps, tendência, botões, assistentes e outras células
Podem conter apenas objetos simples
Podem conter outras células
Podem ser redimensionados e têm pequenas alças de dimensionamento
Não podem ser redimensionados e têm grandes alças de dimensionamento
Obs.: Não é possível fazer um símbolo se mais de um dos objetos selecionados tiver links de animação. Se combinar dois símbolos em um novo, a estrutura do original é perdida. Portanto, se desagrupar o novo símbolo, ele será desagrupado em componentes individuais de cada símbolo original. Os dois símbolos originais são perdidos. Criação de um símbolo ou célula a. Selecione os objetos para incluir no símbolo ou na célula. b. Clique no botão Make Cell
ou no botão Make Symbol
.
Dica: Clique duas vezes com o mouse na célula para exibir a caixa de diálogo Substitute Tagnames (não a caixa de diálogo Animation Links como ocorre com objetos e símbolos). Como desagrupar um símbolo ou célula a. Selecione o símbolo ou a célula. b. Clique no botão Break Cell
ou no botão Break Symbol
.
Dica: Para criar um símbolo ou célula, selecione todos os objetos, clique com o botão direito do mouse em um desses objetos, aponte para Cell / Symbol e clique no comando apropriado. Dica: Para desagrupar rapidamente um símbolo ou célula, clique com o botão direito do mouse na célula ou no símbolo e aponte para Cell/Symbol, em seguida, clique no comando apropriado. Obs.: Se o símbolo tiver links definidos, eles serão salvos automaticamente no buffer Colar link.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-37
Objetos de texto A fonte, estilo de fonte, tamanho de fonte, justificar e girar qualquer objeto de texto selecionado podem ser configurados no WindowMaker. Os objetos de texto podem também ser girados 360 graus em incrementos de 90 graus. Obs.: Os links de animação de direção não podem ser aplicados a objetos de texto. Portanto, os objetos de texto não podem ser girados no WindowViewer com base no tagname. A barra de ferramentas Format Tools contém ferramentas usadas para aplicar rapidamente a maioria dos comandos encontrados do menu Text para objetos selecionados.
Como formatar objetos de texto Os comandos de texto WindowMaker operam em seleções de string simples ou diversas e campos de valores numéricos. Se nenhum texto for selecionado quando um comando do menu Text é executado, ele é automaticamente aplicado ao ajuste de parâmetro padrão da ferramenta de texto na barra Format e ao ajuste da ferramenta Text na barra Draw Object . Os ajustes de atributo para justificar texto são particularmente importantes para esses objetos que exibem valores dinâmicos, pois define a exibição dos campos de comprimento variável em Runtime. Exemplo: se estiver exibindo um valor numérico no final de um string de texto que deve aparecer centralizado ou justificado à direita, todo o string de texto (incluindo o valor) será centralizado ou justificado novamente cada vez que houver uma mudança no número de dígitos exibidos.
Criação de um objeto de texto a. Clique na ferramenta Text
na barra de ferramentas Drawing .
b. Selecione um local para o texto na janela. O cursor será modificado para uma linha vertical. c. Insira o string de texto. d. Clique fora do texto. O texto é agora circundado por alças de dimensionamento, indicando que está agora selecionado e é configurável.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-38
Módulo 2 – Ambiente de desenvolvimento Mudança de fonte, estilo de fonte e tamanho de fonte a. Selecione o texto que deseja mudar e, em seguida, clique na ferramenta Fonts de ferramentas Format .
na barra
A caixa de diálogo padrão Font do Windows é exibida.
b. Selecione a fonte desejada da lista Font (o nome da fonte aparecerá no campo Font). Quando um tamanho de fonte é selecionado, uma amostra da fonte no estilo e no tamanho selecionados é exibida no campo Sample (consulte o exemplo acima). c. Clique em OK. Obs.: O tamanho de ponto de uma fonte será aumentado ou reduzido de acordo com o alcance dos tamanhos de ponto disponíveis para a fonte selecionada. A fonte System, por exemplo, não pode ser dimensionada. Escolha uma fonte do Windows tipo True-Type como Arial antes de mudar o tamanho. Edição de objetos de texto a. Selecione o objeto de texto. b. Escolha Special / Substitute Strings ou clique com o botão direito do mouse no objeto de texto e selecione Substitute Strings ou pressione as teclas Ctrl+L . A caixa de diálogo Substitute Strings é exibida:
c. Na caixa New String, insira o novo string de texto. d. Clique em OK.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-39
O novo string de texto é exibido na janela:
Dica: É possível usar o comando Substitute String em strings que estão incluídas em um símbolo ou célula e mudar o rótulo nos botões desenhados com a ferramenta Button.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-40
Módulo 2 – Ambiente de desenvolvimento Substituição de uma parte de um objeto de texto Se mudar uma parte do texto de um objeto de texto, o InTouch pode mudar globalmente todos os objetos de texto selecionados usando o mesmo texto. a. Selecione todos os objetos de texto.
b. Selecione Special / Substitute Strings. A caixa de diálogo Substitute Strings é exibida:
c. Clique em Replace. A caixa de diálogo Replace Text é exibida:
d. Insira a parte do string a ser substituída no campo Old Text. e. Insira o novo texto de substituição no campo New Text. f.
Clique em OK.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-41
A caixa de diálogo Substitute Strings é exibida novamente mostrando a mudança feita nos strings de texto selecionados:
g. Clique em OK. Os objetos de texto selecionados serão modificados automaticamente. Dica: Se você clicar com o botão direito do mouse em qualquer caixa de entrada de texto em uma caixa de diálogo, um menu é exibido mostrando os comandos que podem ser aplicados ao texto selecionado.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-42
Módulo 2 – Ambiente de desenvolvimento Como configurar fontes padrões É possível configurar o WindowMaker para usar fontes padrões para objetos de texto e strings de botão. A fonte padrão e suas características (estilo, cor, tamanho) é usada automaticamente ao criar novos objetos de texto ou botões. a. Clique com o mouse duas vezes em Configure / WindowMaker no Application Explorer.
A caixa de diálogo WindowMaker Properties é exibida:
Ajuste as fontes padrões para objetos de texto e objetos de botão
b. Selecione Text ou Button.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-43
A janela Font é exibida:
c. Selecione uma fonte do Windows tipo True-Type para atribuir a uma fonte padrão que pode ser redimensionada. d. Selecione OK para salvar as alterações ou Cancel para sair da caixa de diálogo WindowMaker Properties .
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-44
Módulo 2 – Ambiente de desenvolvimento
Imagens e Bitmaps Todas as imagens e os formatos gráficos como figuras, capturas de telas e tipos de arquivo .jpg, .pcx e .tga criados em outros programas Windows devem ser colados no contêiner bitmap no WindowMaker. Alguns pontos chaves a serem lembrados: z
WindowMaker vê um bitmap como um objeto único
z
Não é possível incluir bitmaps em símbolos
z
É possível incluir bitmaps em uma célula
z
É possível configurar um bitmap com uma cor transparente de forma que ele possa flutuar sobre outros objetos
z
Ao fazer isto, a cor de fundo da janela ou qualquer objeto atrás do bitmap será transparente em áreas onde o filtro de cor transparente é aplicado. (Somente uma cor transparente pode ser usada por bitmap.)
É possível editar um bitmap usando o programa Microsoft Paint incluído no Windows sem sair do WindowMaker
Clique com o botão direito do mouse em um bitmap e selecione Edit Bitmap para iniciar o Microsoft Paint e editar o bitmap
Obs.: Não é possível usar o WindowMaker enquanto estiver editando o bitmap no Paint. Para retornar ao WindowMaker, saia do Microsoft® Paint. Suas mudanças são salvas no objeto bitmap no WindowMaker, não no arquivo bitmap original que foi importado. Importação de um arquivo Bitmap, JPEG, PCX ou TGA a. Clique na ferramenta Bitmap
. O cursor se transforma em um símbolo de + .
b. Desenhe o contêiner do bitmap em sua janela (qualquer tamanho). A seguinte figura exibe o objeto bitmap na janela Scratch:
c. Clique com o botão direito do mouse no contêiner do bitmap.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-45
Um menu drop-down é exibido:
d. Selecione Import Image para colar uma imagem no contêiner. A caixa de diálogo Select Image File é exibida:
e. Selecione o arquivo a ser importado como um bitmap. Na figura anterior, a imagem setup.bmp é selecionada da pasta WINNT/System32 no drive C: . f.
Clique em Open.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-46
Módulo 2 – Ambiente de desenvolvimento A imagem é colada no objeto bitmap:
g. Para retornar o bitmap ao seu tamanho original, clique com o botão direito do mouse nele e selecione Bitmap - Original Size. O bitmap é redesenhado em seu tamanho original:
h. Exclua um objeto bitmap. Colar um bitmap a partir da área de transferência do Windows Os arquivos gráficos podem ser copiados diretamente da área de transferência do Windows para dentro do objeto bitmap do InTouch. Este exemplo usará a tela de abertura do InTouch. a. Abra o Microsoft Paint (Programs / Accessories / Paint). b. Selecione File / Open do menu principal Paint.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-47
c. Navegue para Program Files / Wonderware / InTouch e localize o arquivo intouch.bmp.
d. Clique em Open. O gráfico é exibido na janela Paint com as alças de dimensionamento:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-48
Módulo 2 – Ambiente de desenvolvimento e. Pressione Ctrl+A para selecionar a imagem gráfica. f.
Pressione Ctrl+C para copiar a imagem para a área de transferência do Windows. Obs.: Par salvar o bitmap ainda no Microsoft Paint e retornar ao WindowMaker, clique em File / Save ou File / Exit. Os dois comandos têm a mesma função.
g. Alterne para o WindowMaker. h. Use a ferramenta Bitmap
para criar um contêiner de bitmap na janela Scratch .
i.
Selecione o contêiner do bitmap.
j.
Clique com o botão direito do mouse no contêiner e selecione Paste Bitmap do submenu. O bitmap da área de transferência do Windows é colado dentro do contêiner do bitmap. Obs.: O comando Paste Bitmap somente está disponível quando há uma imagem na área de transferência do Windows.
O bitmap está agora disponível para redimensionamento manual ou com o Bitmap - Original Size.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-49
Criar um bitmap transparente Um bitmap ou imagem pode ser definido com uma cor transparente de forma que os objetos de fundo ou gráficos atrás deles serão visíveis. Ao definir uma cor transparente, a cor de fundo da janela ou qualquer objeto atrás do bitmap será transparente em áreas onde o filtro de cor transparente é usado. Use a imagem intouch.bmp que acaba de colar. a. Clique com o botão direito do mouse no objeto e selecione Bitmap - Original Size. O bitmap muda para seu tamanho original: b. Reposicione o bitmap e dimensione a janela para garantir que esteja totalmente visível.
c. Selecione o bitmap. d. Clique na ferramenta Transparent Color cores é exibida:
na barra de ferramentas Format. A paleta de
e. Clique com o botão direito do mouse em uma quadrado de cor em branco na seção Custom Palette na parte inferior da paleta de cor. O menu Edit Custom Color é exibido. f.
Selecione o ícone Blotter .
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-50
Módulo 2 – Ambiente de desenvolvimento O menu Edit Custom Color é fechado:
g. Clique na caixa em branco dentro do gráfico InTouch. A cor é copiada para o quadrado de cor selecionado na paleta de cor transparente. h. Clique no quadrado em branco dentro de Palette para aplicar a cor transparente ao bitmap. O bitmap muda para refletir a seleção da cor transparente:
Obs.: (Somente uma cor transparente pode ser aplicada por bitmap.)
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-51
Edição de imagens de bitmap É possível editar um bitmap usando o programa Microsoft Paint incluído no Windows sem sair do WindowMaker O Microsoft Paint pode ser ativado automaticamente ao clicar com o botão direito do mouse no objeto bitmap. Enquanto estiver no Microsoft Paint, o bitmap pode ser editado. Obs.: Não é possível usar o WindowMaker enquanto estiver editando o bitmap no Paint. Para retornar ao WindowMaker, saia do Microsoft Paint e salve a imagem em seu disco rígido. a. Exclua a imagem bitmap com a transparência criada acima. b. Posicione um novo contêiner de bitmap na janela Scratch. c. Importe o arquivo Program Files / Wonderware / InTouch intouch.bmp novamente. d. Selecione Bitmap - Original Size e centralize o bitmap na janela Scratch. e. Selecione Edit / Edit Bitmap ou clique com o botão direito do mouse na imagem bitmap e selecione Edit Bitmap.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-52
Módulo 2 – Ambiente de desenvolvimento O Microsoft Paint inicia com um nome de arquivo temporário atribuído automaticamente:
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker f.
2-53
Use diversos recursos do Microsoft Paint para personalizar o arquivo bitmap. Neste exemplo, adicione Company Logo Here com a ferramenta de texto e modifique as propriedades da fonte.
g. Feche o Microsoft Paint. Será solicitado que salve o arquivo temporário.
h. Clique em Yes. Suas mudanças são salvas no objeto bitmap no WindowMaker, não no arquivo bitmap original que foi importado. i.
Retorne para o WindowMaker.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-54
Módulo 2 – Ambiente de desenvolvimento Sua janela deve ser semelhante a esta figura:
Dica: Para tornar o bloco em branco original transparente, mas não o texto branco transparente, edite o bitmap, preencha a caixa com uma única cor não usada em outro local do logo e uso esta cor única como a cor transparente em sua janela InTouch.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-55
Assistentes Os assistentes são componentes gráficos individuais pré-desenhados embutidos na janela InTouch durante o desenvolvimento para uso em um aplicativo Runtime. Os assistentes economizam um tempo considerável durante o desenvolvimento do aplicativo porque eles são fáceis de usar e configurar. Ao usar Assistentes, não é necessário gastar muito tempo desenhando componentes individuais para o objeto, inserindo faixas de valores para o objeto ou animando o objeto. Por exemplo, no caso de um assistente Slider, opções de configuração incluem itens como link para o nome de tags, etiquetas para as faixas mínima e máxima para o slider, a cor de preenchimento, etc. Uma vez que as informações de configuração requeridas são inseridas, o assistente está pronto para ser usado em Runtime. Os assistentes complexos podem ser desenvolvidos para fornecer tipos de operações "em segundo plano". Estas operações podem incluir a criação de janelas de exibição completas, a criação ou conversão de um banco de dados e a configuração de outros aplicativos como os programas complementares InTouch Recipe Manager e SPCPro.
Como instalar ou remover Assistentes A instalação e a remoção de assistentes não é o mesmo que colá-los na InTouch, mas incluí-los em uma lista ativa de objetos disponíveis. a. Selecione Special / Configure / Wizard/ActiveX Installation do menu WindowMaker.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-56
Módulo 2 – Ambiente de desenvolvimento A caixa de diálogo Wizard/ActiveX Installation é exibida com a folha de propriedade Wizard Installation ativa:
Obs.: O uso de aplicativos de terceiros pode requerer que assistentes adicionais sejam instalados. O painel superior contém a lista de objetos Assistente disponíveis e o painel inferior contém qualquer objeto Não Instalado. Na lista Installed Wizards, selecione um assistente para ser removido de seu aplicativo e clique no botão Remove. Os objetos não instalados estão disponíveis para instalação, basta destacá-los e clicar no botão Install (ele torna-se ativo após o objeto ser selecionado).
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-57
b. Selecione a guia ActiveX Control Installation . A lista Available também está no painel inferior.
c. Use o botão Remove para excluir um Controle ActiveX e movê-lo para a lista de Controles ActiveX disponíveis. (Não exclua nenhum assistente neste exemplo.) d. Clique em Cancel para retornar ao WindowMaker.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-58
Módulo 2 – Ambiente de desenvolvimento Posicionamento de objetos de assistente em uma janela a. Clique no ícone da barra de ferramentas Wizard Hat
.
A caixa de diálogo Wizard Selection é exibida:
Dica: Para adicionar o assistente à barra de ferramentas Wizards/ActiveX , clique em Add to toolbar. Uma vez que um assistente é adicionado à barra de ferramentas Wizards/ActiveX , ele pode ser selecionado e colado em sua janela aberta a qualquer momento. b. Selecione Switches.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-59
Os assistentes de chave disponíveis são exibidos no painel de visualização principal:
c. Selecione o assistente Fixture Switch. d. Clique em OK. A caixa de diálogo fecha e a janela Scratch é exibida. O cursor muda para um símbolo de canto ao retornar para a janela.
e. Clique no local da janela em que deseja colar o assistente.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-60
Módulo 2 – Ambiente de desenvolvimento O assistente é exibido com suas alças de dimensionamento:
f.
Clique duas vezes com o mouse no assistente para visualizar seus atributos de configuração.
g. Clique em Cancel para sair da caixa de diálogo Discrete Switch Wizard. Os assistentes e os objetos de ActiveX serão configurados com mais detalhes posteriormente neste curso. Obs.: Algumas funções da barra de ferramentas podem ser usadas para modificar assistentes aplicáveis diretamente, como as ferramentas Reduce Font, Line Color, Fill Color entre outras.
Treinamento Wonderware
Seção 2 – Como usar o WindowMaker
2-61
Remoção de assistentes de uma barra de ferramentas Após adicionar Assistentes e controles ActiveX à barra de ferramentas Wizard, o botão Remove from toolbar na caixa de diálogo principal Wizard Selection fica ativa.
a. Clique em Remove from Toolbar para exibir a caixa de diálogo Remove Wizard from Toolbar .
b. Selecione o assistente a ser excluído da barra de ferramentas. c. Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-62
Módulo 2 – Ambiente de desenvolvimento
– Deixado em branco intencionalmente –
Treinamento Wonderware
Laboratório 1 –
2-63
Laboratório 1 –
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-64
Módulo 2 – Ambiente de desenvolvimento
Treinamento Wonderware
Laboratório 2 – Criação de um novo aplicativo, janelas e gráficos
2-65
Laboratório 2 – Criação de um novo aplicativo, janelas e gráficos Introdução Este laboratório explica como criar e manipular objetos dentro do WindowMaker, incluindo a criação de um aplicativo, uma nova janela e novos gráficos.
Objetivos Ao final deste laboratório, você: z
Criará um novo aplicativo
z
Criará uma nova janela
z
Criará novos gráficos
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-66
Módulo 2 – Ambiente de desenvolvimento Criação de um novo aplicativo Obs.: O aplicativo exibido nas etapas a seguir foi criado durante as etapas orientadas pelo Instrutor, anteriormente, neste módulo. Se ainda não o criou, faça agora. Caso contrário, vá para a seção deste laboratório denominada, “Criação de uma nova janela” na página 2-68.
1. Selecione Start / Programs / Wonderware / InTouch
.
O Application Manager é exibido:
2. Clique na ferramenta New
na barra de ferramentas Application Manager.
A caixa de diálogo Create New Application é exibida, permitindo especificar um diretório padrão para armazenar os aplicativos. 3. Insira c:\applications no campo do diretório. 4. Clique na caixa de seleção Set As Default Directory.
5. Clique em Next.
Treinamento Wonderware
Laboratório 2 – Criação de um novo aplicativo, janelas e gráficos
2-67
6. Crie um diretório em que o aplicativo será criado.
7. Clique em Next. 8. Insira InTouch Basic no campo Name: e uma descrição (opcional) na caixa Description. Obs.: Confirme se a opção InTouchView Application está desmarcada. Isto somente é aplicável no ambiente ArchestrA, com o Industrial Application Server.
9. Clique em Finish.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-68
Módulo 2 – Ambiente de desenvolvimento A janela InTouch - Application Manager é reexibida mostrando um ícone, o caminho e a Versão, Modo e Descrição do aplicativo:
Obs.: Quando o aplicativo é exibido pela primeira vez no Application Manager, a resolução e a versão são exibidas como 0. Após serem abertos, os detalhes de resolução e de versão são atualizados.
Criação de uma nova janela Obs.: A janela exibida nas etapas a seguir foi descrita durante as etapas orientadas pelo Instrutor, anteriormente, neste módulo. Se ainda não o criou, faça agora. Caso contrário, vá para a seção deste laboratório denominada, “Clique no canto inferior direito da janela e arraste-a para redimensionar a janela.” na página 2-70. 10. Clique duas vezes com o mouse no aplicativo InTouch Basic.
Treinamento Wonderware
Laboratório 2 – Criação de um novo aplicativo, janelas e gráficos
2-69
Um aplicativo em branco será exibido no ambiente de desenvolvimento:
11. Clique no ícone New Window
.
A caixa de diálogo Window Properties é exibida:
12. Insira Scratch no campo Name: . 13. Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-70
Módulo 2 – Ambiente de desenvolvimento A nova janela é exibida no WindowMaker:
14. Clique no canto inferior direito da janela e arraste-a para redimensionar a janela.
Criação de novos gráficos Esta tarefa demonstra como criar um objeto de válvula simples e um botão dentro da nova janela. Abra a janela Scratch se ainda não estiver aberta. 15. Clique no ícone Polygon da barra de ferramentas
Treinamento Wonderware
e desenhe um triângulo.
Laboratório 2 – Criação de um novo aplicativo, janelas e gráficos 16. Selecione o triângulo e clique no ícone da barra de ferramentas Duplicate
17. Clique nas ferramentas Rotate / Flip na barra de ferramentas Arrange
2-71
.
.
Dica: Mantenha a tecla SHIFT pressionada ao clicar em um objeto para evitar que ele se mova. A seguir, posicione as duas metades da válvula como exibido, usando as setas de direção ou o mouse. 18. Mantenha a tecla SHIFT pressionada ou a tecla CTRL e use as setas de direção para mover o objeto 10 ou 50 pixels respectivamente.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-72
Módulo 2 – Ambiente de desenvolvimento 19. Selecione o ícone Rectangle na barra de ferramentas
.
20. Desenhe um retângulo comprido e posicione-o de forma similar à figura a seguir.
21. Expanda o menu Arrange da janela WindowMaker principal. Observe que o comando do menu Snap to Grid está marcado:
Desmarcar a propriedade Snap to Grid faz com que seja possível distribuir seus objetos mais precisamente. O padrão pontilhado na janela Scratch desaparece quando Snap to Grid é desabilitado, permitindo que um objeto mova-se um pixel. Alterne a grade entre habilitada e desabilitada com o menu Arrange ou ao clicar no botão da grade View.
na barra de ferramentas
22. Selecione o objeto principal e clique em Send to Back . Isto posiciona o objeto principal atrás dos outros objetos e gera um projeto mais limpo. 23. Clique no ícone Ellipse
Treinamento Wonderware
da barra de ferramentas.
Laboratório 2 – Criação de um novo aplicativo, janelas e gráficos
2-73
24. Adicione a manopla da válvula usando uma forma de elipse e posicione-a assim:
25. Selecione o ícone da barra de ferramentas Text
.
26. Adicione o texto Valve1 em local logo abaixo do objeto válvula.
27. Clique com o botão direito do mouse no objeto de texto e selecione Fonts. A caixa de diálogo Font é exibida:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-74
Módulo 2 – Ambiente de desenvolvimento 28. Selecione a fonte Arial, Negrito, 12 pontos. A escolha de uma fonte True-Type garante que o texto permanecerá consistente se for executado em outro sistema ou se for redimensionado. 29. Clique em OK. A válvula está agora composta de quatro objetos separados e de um objeto de texto. 30. Pressione a tecla F2 para selecionar todos os objetos na janela.
31. Clique no ícone da barra de ferramentas Make Symbol . Todo o símbolo pode agora ser redimensionado clicando e arrastando as alças de dimensionamento.
32. Clique no ícone Button da barra de ferramentas da válvula.
33. Selecione o botão e pressione Ctrl+L.
Treinamento Wonderware
e desenhe um botão abaixo do símbolo
Laboratório 2 – Criação de um novo aplicativo, janelas e gráficos
2-75
A caixa de diálogo Substitute Strings é exibida:
34. No campo New String, insira DiscTag1. 35. Clique em OK. 36. Edite as propriedades da Fonte do botão para corresponder ao string de texto: Selecione fonte Arial, Negrito,12 pontos. A janela Scratch deve ser semelhante à seguinte figura:
37. Salve a janela Scratch
.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
2-76
Módulo 2 – Ambiente de desenvolvimento
– Deixado em branco intencionalmente –
Treinamento Wonderware
Módulo 3
Dicionário Tagname Seção 1 – Tags e recursos de tag Laboratório 2–Criação de tags
3-3 3-17
3-2
Módulo 3 – Dicionário Tagname Objetivos do módulo z
Explicar as tags InTouch e o Dicionário Tagname
z
Definir os tipos de tag
z
Criar tags com o Editor de Tag
z
Modificar uma tag e as configurações de filtro do Tagname Browser
Treinamento Wonderware
Seção 1 – Tags e recursos de tag
3-3
Seção 1 – Tags e recursos de tag Objetivos da seção z
Apresentar o dicionário Tagname
z
Criar, definir e modificar tags
z
Definir e configurar filtros Tagname Browser
z
Imprimir o Dicionário Tagname
Esta seção definirá tags, tipos de tag, criação de tag e modificação de tag. Ela também demonstrará os filtros Tagname Browser e a impressão do dicionário Tagname.
Tags Uma tag é definida simplesmente como um valor. O valor representa um nível de tanque, temperatura, status de comunicação, posição de chave e outros valores em tempo real em seus processos. Cada tag tem uma variedade de atributos como tagname, valores mín/máx e nome de acesso. O InTouch precisa de informações diferentes para tipos de tags diferentes. Por exemplo, para tags do tipo E/S, o InTouch requer mais informações a fim de poder adquirir o valor da fonte de dados externa e convertê-lo para uso interno. As informações sobre a tag estão contidas dentro do dicionário Tagname. O Dicionário Tagname (banco de dados Runtime) é a parte central do InTouch. Ele contém o valor atual de todas as tags no banco de dados. Para criar o banco de dados Runtime, o InTouch requer informações sobre todas as variáveis que estão sendo criadas. Cada tag deve ter um tagname e um tipo atribuídos. Durante o Runtime, um aplicativo InTouch acessa o Dicionário Tagname e fornece informações específicas da tag via links de animação, scripting, etc. Quando as tags mudam (ex.: criada, troca de valor, troca de configuração), as mudanças são armazenadas no Dicionário Tagname. A criação e a configuração manual de tags são feitas usando duas interfaces do Dicionário Tagname: O Tag Editor e o Tag Browser.
Convenções de nomeação de tags Um tagname identifica uma tag para o InTouch e para o usuário. Os tagnames podem conter até 32 caracteres de comprimento e podem começar com caractere alfanumérico (A-Z ou a-z) ou caractere numérico (0-9). Os caracteres restantes podem ser A-Z, a-z, 0-9, !, @, -, ?, #, $, %, _, \ e &. Se um tagname começa com um caractere numérico, ele deve ser seguido por, pelo menos, um caractere alfanumérico diferente de “e” ou “E” ou “x”. Os tagnames não podem conter espaços. Obs.: O caractere barra invertida (\) é válido apenas para Supertags (discutidas em Module 9, “Advanced Tag Functionality,”). Os tagnames não podem ter a forma de qualquer expressão numérica válida. Por exemplo, 123E4 ou strings que podem ser números hexadecimais como 0xABCDEF não são permitidos.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
3-4
Módulo 3 – Dicionário Tagname Indexação Os tagnames podem ser indexados automaticamente, desde que o tagname inclua um número. Por exemplo, se inserir e salvar um tagname R4001 e clicar em New, o tagname será automaticamente indexado como R4002.
Separadores de caractere Se um tagname contiver um caractere usado para separar números, ele também é auto indexado pelo primeiro número inteiro que o InTouch encontrar, por exemplo, N7-0 seria indexado como N7-1. Somente mudanças positivas (incrementos) são permitidas, como R4002 para R4003 seguido de R4003 para R4004. Cuidado ao incluir travessões (-) em tagnames. Travessões são válidos para uso em tagnames que não comecem com números, mas eles também são usados como operação de negativo e subtração em expressões matemáticas ou lógicas. Ele pode criar ambigüidade em algumas situações: se usar A=B-C em uma expressão significa que A é igual a B menos C. Entretanto, o InTouch presume que você deseja atribuir um tagname nomeado B-C a um tagname nomeado A. É possível evitar esta confusão separando os tagnames dos operadores com espaços em branco, por exemplo, A = B - C. Considere este exemplo: X-101=FT-101*SP-101. Na expressão, FT-101 está sendo multiplicada por SP-101 e atribuída a X-101 porque nenhum espaço foi usado.
Tipos de tag As tags InTouch são tags do tipo memória ou tags do tipo E/S. Por exemplo, se a tag lê ou escreve valores que vêm ou vão para um aplicativo externo, como ou servidor de E/S, ela é uma tag do tipo E/S. Quando estiver definindo tags no banco de dados InTouch, é necessário atribuir um tipo específico para cada tag de acordo com seu uso.
Tipo memória As tags do tipo memória são usadas internamente (dentro de seu aplicativo InTouch) para criar constantes de sistema e simulações. Elas também podem ser usadas para criar variáveis calculadas que são acessadas por outros programas do Windows. Por exemplo, em uma simulação de processo, as tags de memória controlam as ações de um QuickScript de fundo pela definição da tag de memória COUNT modificada por um Action QuickScript. O Quick Script gera vários efeitos de animação para a ETAPA atual do processo. Obs.: QuickScripts são explicados em Módulo 5, “InTouch QuickScripts.” Há quatro tipos de Memória. Memoria Discreta: Tag discreta interna com um valor de 0 (Falso, Desativado ou Baixo) ou 1 (Verdadeiro, Ativado ou Alto). Memória Inteira (analógica): Um valor inteiro com sinal de 32 bits entre -2,147,483,648 e 2,147,483,647. Memória Real (Analog): Valor de ponto flutuante (decimal). O valor de ponto flutuante pode ser entre -3.4e38 e 3.4e38. Todos os cálculos de ponto flutuante são realizados com uma resolução de 64 bits, mas o resultado é armazenado em 32 bits. Memória de Mensagem: Tag de string de texto que pode ter até 131 caracteres de comprimento.
Treinamento Wonderware
Seção 1 – Tags e recursos de tag
3-5
Tipo de E/S Todas as tags que lêem ou escrevem seus valores de uma fonte externa são tagnames do tipo E/ S. Isto inclui todas as entradas e saídas de controlador programável, computadores de processo e dados de nós de rede. As tags de E/S são acessadas através de protocolos de comunicação de Troca de Dados Dinâmica da Microsoft (DDE) ou Wonderware SuiteLink (recomendado para comunicação de rede e diagnósticos). Quando o valor de um tagname do tipo leitura/escrita E/S muda, ele é imediatamente escrito para o aplicativo remoto. A tag pode também ser atualizada do aplicativo remoto quando o item com o qual o tagname está vinculado muda no aplicativo remoto. Por padrão, todo tagname de E/S é definido como Leitura/Escrita. Entretanto, é possível restringílo para somente leitura através da opção Read Only na caixa de diálogo Tagname Dictionary. Há quatro tipos de E/S. E/S discreta: Tag de entrada/saída discreta com um valor de 0 (Falso, Desativado) ou 1 (Verdadeiro, Ativado). E/S Inteira (analógica): Um valor inteiro com sinal de 32 bits entre -2,147,483,648 e 2,147,483,647. E/S Real (analógica): Tag de ponto flutuante (decimal). O valor de ponto flutuante pode ser entre -3.4e38 e 3.4e38. Todos os cálculos de ponto flutuante são realizados com uma resolução de 64 bits, mas o resultado é armazenado em 32 bits. E/S de mensagem: Tag de string de texto de entrada/saída que pode ter até 131 caracteres de comprimento.
Tipos diversos de tag Há diversos tipos especiais de tags que podem ser atribuídos a tags que realizam funções complexas, como criar telas de alarme dinâmicas, tendências de histórico, monitoração ou controle de tag que cada pena de tendência de histórico esteja imprimindo, etc. Obs.: Group Var (Alarmes), HistTrend/Tag ID, Indirect Tags, e SuperTags estão incluídas no Módulo 6, “Alarmes,” Módulo 7, “Tendência de histórico em de tempo real,” e Módulo 9, “Funcionalidade de tag avançada,” respectivamente. Elas são apresentadas aqui como contexto. Group Var O tipo Group Var é usado para uma tag com um Alarm Group atribuído para criar telas de alarme dinâmicas, registros de disco e registros de impressão. As tags do tipo Group Var são usadas para criar janelas de alarme ou registros de alarme que exibem todos os alarmes associados com uma variável de grupo específica. É possível também controlar os alarmes que são exibidos ou registrados atribuindo um Alarm Group diferente à tag Group Var . É possível também usar uma tag do tipo Group Var para criar botões de aplicativo em que o operador pode clicar para exibir seletivamente alarmes para áreas diferentes de uma fábrica dentro da mesma janela de alarme Todos os .fields associados ao Alarm Groups podem ser aplicados aos tagnames Group Var . Hist Trend O InTouch requer uma tag do tipo Hist Trend quando uma tendência de histórico for criada. Todos os .fields associados ás tendências de histórico podem ser aplicados aos tagnames Hist Trend.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
3-6
Módulo 3 – Dicionário Tagname Tag ID Este é um tipo especial usado com os objetos de tendência de histórico. Usam-se tagnames do tipo Tag ID para recuperar informações sobre tagnames impressos em uma tendência de histórico. Na maioria dos casos, seriam usados tagnames Tag ID para exibir o nome de um tagname atribuído a uma pena específica ou para mudar o tagname atribuído à pena. É possível processar uma declaração em um QuickScript para atribuir um novo tagname a qualquer pena em qualquer tendência de histórico. Por exemplo, a seguinte declaração poderia ser usada em seu QuickScript: MyHistTrendTag.Pen1=MyLoggedTag.TagID;
Quando este QuickScript é executado, Pen1 na tendência de histórico associada ao tagname Hist Trend "MyHistTrendTag" começaria o tendenciamento de dados armazenados no histórico para o "MyLoggedTag." Tags indiretas e super tags As tags indiretas e as super tags são mais dois tipos de tags explicados detalhadamente no Módulo 9 deste manual.
Criação de tags As tags e seus tagnames (e outros atributos) são criados usando o Tagname Editor do Tagname Dictionary. a. Selecione Special / Tagname Dictionary do menu principal WindowMaker ou clique duas vezes com o mouse no Tagname Dictionary no Explorer.
A primeira vez que acessar o Tagname Dictionary, a definição para o tagname interno do sistema $AccessLevel é exibido. Esta é a primeira tag na lista Tag Browser. Após salvar a definição de tag no Tagname Editor, a última definição de tagname editada é exibida.
Treinamento Wonderware
Seção 1 – Tags e recursos de tag
3-7
b. Clique nos botões << ou >> para navegar através das definições de tagname atualmente armazenadas em seu Tagname Dictionary (Os botões do navegador são inativos quando não há tagnames anteriores ou próximos a serem exibidos). c. Clique em New. O campo Tagname é apagado:
d. No campo Tagname: insira RealTag. e. Clique no botão Type:... . A caixa de diálogo Tag Types é exibida:
f.
Selecione Memory Real.
g. Clique em OK. h. Defina RealTag detalhadamente com estes valores: z
Insira 250 no campo Initial Value
z
Insira 0 no campo Min Value
z
Insira 500 no campo Max Value
z
Não altere os outros valores
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
3-8
Módulo 3 – Dicionário Tagname A caixa de diálogo Tagname Dictionary deverá agora estar semelhante à seguinte figura:
i.
Clique em Save. O Tagname Dictionary está agora pronto para que outra tag seja definida. Observe que os valores de tag anteriores permanecem em seus respectivos campos. Substitua os valores existentes pelas novas informações de tag.
Treinamento Wonderware
Seção 1 – Tags e recursos de tag
3-9
Opções de configuração do Tagname Editor Tagname: Tagnames têm um limite de 32 caracteres. Um tagname pode começar com um caractere numérico que não é seguido de uma letra E, ou o InTouch lerá como um exponencial. Group: Atribuir a tag a um Alarm Group específico. Ao clicar neste botão é exibida a caixa de diálogo Alarm Group, a partir da qual o Alarm Group é selecionado. (Alarmes e grupos de alarmes são configurados no Módulo 6, “Alarmes.”) Se não atribuir uma tag a um Alarm Group específico, o InTouch a atribui ao grupo raiz, $System por padrão. Ao criar e atribuir a tag a um Alarm Group, se você não fechar a caixa de diálogo, todas as tags seguintes definidas serão atribuídas ao mesmo Alarm Group, a menos que mudado. Para as tags de E/S, selecione Read Only se deseja restringir a tag aos recursos de somente leitura em Runtime ou Read Write para atribuir as capacidades de leitura e de escrita. Comment: Contém qualquer comentário que deseja que o sistema armazene com relação à tag (até 50 caracteres). Alarm Comment: É possível configurar suas janelas de alarme para exibir estes comentários quando a tag está em alarme. O sistema de alarme distribuído pode ser configurado para armazenar comentários do operador referentes ao alarme identificado no campo Alarm Comment. Log Data: Armazena os dados de tag no arquivo de armazenamento de histórico durante o Runtime quando seu valor de unidade de medida muda mais do que o valor Log Deadband especificado ou, por padrão, uma vez a cada hora, independente de mudança. Para valores de tag serem registrados, o armazenamento de histórico deve ser habilitado selecionado Special / Configure Historical Logging do menu principal WindowMaker. Se esta opção for desabilitada depois (valor de tag NÃO armazenado), os dados salvos anteriormente estarão inacessíveis pelo InTouch nas telas de tendência de histórico. Se esta opção for habilitada novamente, todos os dados armazenados serão acessíveis, mas a tendência de histórico exibiria um intervalo no traço de tendência. Além disso, se fizer mudanças de armazenamento no WindowMaker enquanto o WindowViewer está executando, as mudanças não terão efeito até que ele seja reiniciado. Log Events: Armazena todas as mudanças de dados da tag que são iniciadas pelo operador, E/ S, um QuickScript ou pelo sistema. Ao definir um tagname para monitorar o evento, uma mensagem de evento é armazenada no Alarm System sempre que o valor do tagname mudar. A mensagem de evento armazena como o valor mudou e se a mudança foi iniciada pelo operador, E/S, scripts ou pelo sistema. Quando a opção Log Events é selecionada, o campo Priority torna-se ativo. Entradas válidas neste campo são 1 a 999, onde 1 é a mais alta prioridade e 999 é a mais baixa. Retentive Value: Retém o valor atual da tag quando o WindowViewer é fechado. Este valor será usado como o valor inicial para a tag quando ele for reiniciado. Os valores retentivos não podem ser selecionados ou apagados para as tags novas ou existentes quando ele estiver executando. Retentive Parameters: Retém qualquer mudança que o operador faça no valor de qualquer campo de limite de alarme para a tag. Este valor será usado como o valor inicial para o alarme quando o WindowViewer for reiniciado. Obs.: Uma vez que as mudanças são armazenadas imediatamente, recomenda-se selecionar somente as duas opções retentivas acima para valores que não são mudados freqüentemente.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
3-10
Módulo 3 – Dicionário Tagname Detalhes de tag Muitas tags requer um nível maior de detalhe para serem manuseadas corretamente. Uma área Details específica é exibida para cada tipo de tag para definir os detalhes e os tipos de alarme para o tipo de tag.
Obs.: NÃO clique em Cancel ou Close neste momento. Initial Value: Valor da tag na inicialização até que ela receba um valor diferente ou seja suprimida por um valor Retentivo. Eng Units: Unidades de medida. Uma anotação para a tag reservada para indicar uma unidade de medida, por exemplo. PSI. Min/Max Value: Faixa esperada para a tag. Obs.: Os valores mínimo/máximo de Memory Tags não limitam a faixa da tag. A limitação de uma tag deve ser feita por meio de links de Entrada de Animação. Deadband: Valor mínimo para o qual a tag deve ser alterada para que seu valor seja atualizado. Isto geralmente é usado para as tags de E/S atualizadas freqüentemente. Log Deadband: Valor mínimo para o qual a tag deve mudar para que seu valor seja armazenado no histórico. Outras observações Os nomes de qualquer SuperTag criada no TemplateMaker também são exibidos na área Tag Details e as tags membro podem ser selecionadas como o tipo de tag. Observe que as SuperTags podem conter até 64 tags membros usando 2 níveis de encadeamento). Para SuperTags NÃO criadas usando o SuperTag TemplateMaker, por exemplo SuperTags criadas em um tagname link de animação ou caixa de entrada de expressão, um QuickScript, ou criadas em um arquivo externo e carregadas no utilitário DBLoad, o nome SuperTag é exibido no campo Type . Obs.: Se uma tag estiver vinculada a um objeto no momento ou for usada em um QuickScript, ela não pode ser alterada. As SuperTags são explicadas em Módulo 9, “Funcionalidade de tag avançada.”
Treinamento Wonderware
Seção 1 – Tags e recursos de tag
3-11
Tag Browser O Tag Browser exibe todas as tags contidas no dicionário Tagname. O Tag Browser é sua principal ferramenta para visualização e seleção local e remota de tagnames e de tagname .fields dos aplicativos FactorySuite ou qualquer outra fonte de tag que seja compatível com a interface do InTouch Tagname Dictionary. Ele permite selecionar as tags existentes, incluir novas tags e visualizar as informações básicas do Tagname Dictionary. O navegador de tags também é usado para acessar o Tag Editor para realizar a edição, replicação e configuração de referências remotas para as fontes de tag remotas. A primeira vez que o navegador de tags é acessado, por padrão,
será selecionado como a fonte de tag. Isto significa que os tagnames no Tagname Dictionary do aplicativo local serão exibidos. Portanto, a última fonte de tag acessada será exibida. O navegador de tag opera no modo dicionário ou seleção. O modo é determinado pelo método usado para acessá-lo. Obs.: O modo de seleção ilimitado é discutido em mais detalhes em “Seleção de arquivos Dot do Tag Browser” na página 5-26. j.
Clique em Select... na janela Tagname Dictionary. A caixa de diálogo Select Tag é exibida no modo Dictionary:
Tagnames exibidos em Details View, com informações de
k. Clique no botão List View para ver uma lista das tags sem Details.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
3-12
Módulo 3 – Dicionário Tagname A janela Select Tag é exibida sem detalhes de tag :
Tagnames exibidos em List View, sem Details
Modo de seleção filtrado Se clicar em Select na caixa de diálogo Tagname Dictionary, os tagnames exibidos (e disponíveis para seleção) são limitados para o aplicativo InTouch atual. A mesma condição é verdadeira se, durante o Runtime, um operador selecionar uma nova tag para uma pena de tendência de histórico. a. Clique no botão Select... em Tagname Dictionary. Quando o Tag Browser é acessado do Tagname Dictionary e um tagname é selecionado da lista, seu Tagname Dictionary Tag Editor é exibido após clicar em OK. Os métodos principais que são exibidos no navegador de tags no modo de seleção filtrado inclui: z
Clicar no botão Select no Tagname Dictionary ao adicionar ou editar tags
z
Quando o WindowMaker está em execução, clicar duas vezes com o mouse em uma célula na coluna Unit# em uma definição Recipe Manager Unit Template
z
Em Runtime, clicar em qualquer botão Pen# na caixa de diálogo Historical Trend Setup
z
Neste exemplo, o Tag Browser somente exibe as tags que estão definidas com a opção Log Data selecionada em Tagname Dictionary
Esta funcionalidade somente é habilitada quando a opção Allow Runtime Changes foi selecionada para a tendência de histórico durante o desenvolvimento
Em Runtime, clicar em qualquer objeto vinculado à função HTSelectTag()
Treinamento Wonderware
Seção 1 – Tags e recursos de tag
3-13
Definição de filtros de Tag Browser Ao definir filtros, pode-se classificar uma lista de tagname e exibir apenas as tags que atendam critérios específicos. Elas podem ser: Tagname, Tipo de Tag, Nome de Acesso, Grupos de Alarme e Comentários. É possível usar um item ou uma combinação de itens para ajustar o critério de exibição ou salvar cada instância de filtro e reutilizá-lo em qualquer momento. Por exemplo, se tiver 40.000 tags definidas em seu Tagname Dictionary e deseja ver as 20 que estão atribuídas a um Access Name em particular, crie um filtro para especificar o Access Name e/ou Alarm Group como o critério que as tags devem atender para exibidação no Tag Browser. Use estes procedimentos para definir os filtros (como critérios) para preencher o Tag Browser. a. Na parte inferior da janela Select Tag, clique no botão Define Filter
.
A caixa de diálogo Define Tag Filter é exibida:
Filter Name: Um único nome que identifica o filtro que você está definindo. Ao definir filtros, o Filter Name que você inserir é adicionado à lista drop-down Filter Name . Tagname: Expressão tagname a ser usada como um filtro. Se deixado em branco, o sistema ignora este campo nesta definição de filtro. Access Name: A expressão de Access Name local para usar como um filtro. Se deixado em branco, o sistema ignora este campo nesta definição de filtro. Alarm Group: O nome da expressão de Alarm Group para usar como um filtro. Se deixado em branco, o sistema ignora este campo nesta definição de filtro. Comment: Expressão comentário a ser usada como um filtro. Se deixado em branco, o sistema ignora este campo nesta definição de filtro. OK: Sair da caixa de diálogo. O Filter Name é exibido na lista Filter no Tag Browser e é possível selecioná-lo para que exiba apenas os tagnames que atendem os critérios especificados no filtro. Obs.: Todos os campos Filter Option (Tagname, Tag Type, Access Name, Alarm Group e Comment) são compatíveis com expressões coringas para limitar o escopo de sua busca. Se não for usado filtro, todos os tagnames na fonte de tag disponíveis no momento serão exibidas.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
3-14
Módulo 3 – Dicionário Tagname Exclusão de um filtro de busca a. Abra a lista drop-down Filter e selecione o nome do filtro na lista que deseja excluir. b. Clique em Delete. O filtro é imediatamente excluído.
Impressão do dicionário Tagname Imprimir os detalhes do Tagname Dictionary pode ajudar a determinar o uso do tagname. Além de imprimir em um arquivo .CSV (valores separados por vírgula), é possível imprimir listas de detalhes de Tagname Dictionary, informações de alarme, detalhes de link e scripts. a. Clique em File / Print do menu principal WindowMaker. A caixa de diálogo WindowMaker Printout é exibida:
b. Marque Database Entries para imprimir todas as informações do banco de dados. Quando selecionado, as seguintes opções tornam-se ativas: z
Details: Incluir os detalhes do banco de dados em seu relatório.
z
Alarm Information: Incluir os detalhes das informações de alarme em seu relatório.
z
With Window Cross-Reference: Imprimir todas as entradas do banco de dados com referências cruzadas de janelas.
z
Nível de detalhe:
LinkDetails para imprimir os detalhes do local e do link de animação onde o tagname foi usado
Window Names Only para imprimir somente o nome da janela de referência cruzada
Treinamento Wonderware
Seção 1 – Tags e recursos de tag
3-15
c. Marque Windows para imprimir uma lista das entradas do banco de dados usadas nas janelas de aplicativo. As seguintes opções tornam-se ativas: z
All Imprimir as entradas do banco de dados para todas as janelas no aplicativo.
z
Selected Imprimir apenas as entradas do banco de dados para janelas específicas. Ao assinalar Selected, a caixa de diálogo Windows to Print é aberta. Selecione as janelas a serem impressas e clique em OK (Por padrão, todos os nomes de janela serão selecionados quando a caixa de diálogo é exibida).
z
With Link Details: Imprimir os detalhes de link para a janela.
z
Window Scripts: Imprimir os scripts associados à janela.
z
Database entries used in window: Imprimir os tagnames usados na janela.
z
All Scripts: Imprimir todos os scripts para a janela selecionada.
z
Application Scripts: Imprimir os scripts do aplicativo.
z
Condition Scripts: Imprimir os scripts de condição associados à janela.
z
Data Change Scripts: Imprimir os scripts de mudança de dados associados à janela.
z
Key Scripts: Imprimir os scripts chaves associados à janela.
z
Quick Functions: Imprimir seus QuickFunctions.
z
ActiveX Event Scripts: Imprimir qualquer ActiveX Event Scripts usado.
d. Clique em Next na janela WindowMaker Printout. A caixa de diálogo Select Output Destination é exibida, permitindo selecionar seu destino de saída (para Impressora ou para Arquivo de Texto):
e. Se enviar a saída para um Text File, navegue com o ícone de elipse arquivo e o string do diretório. f.
ou digite o nome do
Se enviar a saída para uma Impressora, navegue para selecionar a impressora correta.
Obs.: Imprimir a janela deste modo NÃO produzirá uma representação gráfica da janela. Ao invés disso, imprimirá uma descrição textual/detalhada da janela.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
3-16
Módulo 3 – Dicionário Tagname
– Deixado em branco intencionalmente –
Treinamento Wonderware
Laboratório 2 – Criação de tags
3-17
Laboratório 2 – Criação de tags Introdução Este laboratório demonstra como usar o Tag Editor para criar, identificar e definir novas tags.
Objetivos Ao final deste laboratório, você: z
Criará uma tag de memória real
z
Criará uma tag de memória inteira
z
Criará tags discretas de memória
z
Criará uma tag de memória de mensagem
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
3-18
Módulo 3 – Dicionário Tagname Criação de uma tag de memória real 1. Clique em Special / Tagname Dictionary na barra do menu WindowMaker. 2. Certifique-se de que Details esteja selecionado. 3. Clique em New. Obs.: Se criar uma RealTag durante a parte orientada pelo instrutor, não clique em New. Ao invés disso, clique em Select... para localizar e modificar sua RealTag existente. 4. Insira RealTag no campo Tagname: . 5. Configure o tipo de tag e os detalhes para corresponder à seguinte figura:
6. Clique em Save.
Criação de uma tag de memória inteira 7. Clique em New. 8. Insira IntTag no campo Tagname. 9. Configure o tipo de tag e os detalhes para corresponder à seguinte figura:
10. Clique em Save. O tagname IntTag está agora criado e definido como uma tag Memory Integer .
Treinamento Wonderware
Laboratório 2 – Criação de tags
3-19
Criação de tags discretas de memória 11. Clique no botão New no Tagname Dictionary. 12. Criar uma tag Memory Discrete com os atributos exibidos nas seguintes figuras:
13. Clique em Save. 14. Clique em New. O tagname é automaticamente modificado para DiscTag2:
15. Clique em Save.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
3-20
Módulo 3 – Dicionário Tagname Criação de uma tag de memória de mensagem 16. Usando as etapas anteriores, crie uma tag Memory Message com os atributos exibidos nas seguintes figuras:
17. Clique em Save. 18. Clique em Close. Obs.: Clicar em Close também salva a configuração da tag.
Treinamento Wonderware
Módulo 4
Links de animação Seção 1 – Características gerais dos links de animação
4-3
Seção 2 – Animação de objetos
4-9
Seção 3 – Links de animação – Referência rápida Laboratório 3–Configuração de links de animação
4-45 4-49
Seção 4 – Uso de SmartSymbols
4-63
Laboratório 4–Uso de SmartSymbols
4-81
4-2
Módulo 4 – Links de animação Objetivos do módulo z
Identificar os recursos de link de animação básicos
z
Definir tipos de link de animação
z
Acessar Tag Browser e campos ponto tagname
z
Animar objetos
z
Gerar e editar SmartSymbols
Treinamento Wonderware
Seção 1 – Características gerais dos links de animação
4-3
Seção 1 – Características gerais dos links de animação Objetivo da seção z
Identificar recursos de link de animação básicos
z
Definir tipos de link de animação
z
Acessar Tag Browser e campos ponto tagname
Esta seção identificará e definirá os recursos de link da animação básicos como os tipos de link de animação, e também como acessar o Tag Browser e os campos ponto tagname.
Introdução Os objetos gráficos ou símbolos são "trazidos para vida" em Runtime ao usar links de animação. Os links de animação fazem com que um objeto ou um símbolo mude de aparência para refletir mudanças no valor de uma tag ou uma expressão. Por exemplo, é possível criar um símbolo de bomba que aparece em vermelho quando está desativado e verde quando está ativado. Ou fazer o símbolo de uma bomba com uma botoeira sensível a toque no qual o operador pode clicar com o mouse para ativar e desativar. Use estes e muitos outros efeitos especiais definindo links de animação para seus objetos ou símbolos. InTouch é compatível com dois tipos básicos de links: Touch Links e Display Links. z
Touch Links: Habilitar entrada do operador no sistema. Sliders de valor ou botoeiras são exemplos de Touch Links.
z
Display Links: Habilitar saída para o operador. Preenchimento de cor, localização ou links para piscar são exemplos de Display Links.
A maioria dos links de animação compartilham os seguintes recursos comuns: z
Caixa de diálogo Object Type
z
Paleta de cor comum
z
Acesso rápido ao Tag Browsers
z
Acesso rápido ao Tagname .Fields
z
Compatível com equivalentes de teclas (somente Touch Links)
z
Clique com o botão direito do mouse nas caixas de entrada Tagname ou Expression (exibe um menu com comandos que podem ser aplicados ao texto selecionado)
Caixa de diálogo Object Type A caixa Object Type é exibida na parte superior da caixa de diálogo de link de animação. É comum a todos os links criados. Ela exibe a descrição do tipo de objeto que foi selecionado para o link de animação anexado. A caixa abaixo é para o tipo de objeto Round Rectangle.
Se diversos links foram anexados a um objeto, Prev Link e Next Link são habilitados a fim de rolar para frente e para trás rapidamente através das caixas de diálogo de link para cada link anexado ao objeto. Obs.: Os links são armazenados na ordem em que foram originalmente anexados ao objeto.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-4
Módulo 4 – Links de animação Caixa de diálogo de seleção de link de animação Os diversos links podem ser definidos para seus objetos ou símbolos, habilitando a criação da praticamente qualquer efeito de animação de tela imaginável. Você anima mudanças como cor, tamanho, localização, nível de preenchimento e visibilidade. a. Adicionar um objeto Ellipse à janela Scratch. b. Clique duas vezes com o mouse no objeto Ellipse na janela Scratch. A caixa de diálogo Animation Link Selection é exibida. Configure todos os tipos de objeto e animação gráfica.
c. Clique em Cancel para sair da caixa de diálogo. (Você usará mais tarde nos laboratórios.) d. Como resultado de clicar em Cancel, nenhuma modificação no objeto Ellipse será mantido.
Aplicação de links de cor A cor pode ser aplicada às propriedades dinâmicas de linhas, retângulo, retângulo com cantos arredondados, elipses, polilinhas, polígonos e texto. A paleta de cor é usada para selecionar as cores a serem vinculadas ao valor do tagname ou o estado de alarme de tagname, entre outros recursos. É possível também criar paleta de cor personalizadas. Quando um link de cor é anexado a um objeto ou símbolo, clique em uma caixa de cor em uma caixa de diálogo de link para abrir a paleta de cor. Clique a cor desejada na paleta. A palete fecha e a cor selecionada aparecerá na caixa cor.
Clique para expandir para a Classic Colors Palette
Treinamento Wonderware
Seção 1 – Características gerais dos links de animação
4-5
Como acessar o Tag Browser Ao criar links de animação, acesse o Tag Browsers para visualizar rapidamente todas as tags definidas em seu aplicativo. Se selecionar a tag a ser atribuída ao seu link do Tag Browsers, ela é automaticamente inserida na caixa Tagname ou Expression . a. Clique duas vezes com o mouse no objeto Button na janela Scratch. A caixa de diálogo Animation Links Selection é exibida:
b. Clique no botão Touch Pushbuttons / Discrete Value.
A caixa de diálogo Object Type é exibida:
c. Clique no botão Clear para remover qualquer texto no campo Tagname. d. Clique duas vezes com o mouse no campo Tagname.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-6
Módulo 4 – Links de animação O Tag Browser é exibido:
e. Selecione a tag alvo e clique em OK. A tag será inserida na caixa Tagname ou Expression. Obs.: Esta animação, Discrete Value, requer uma tag discreta a ser selecionada.
Como recortar, copiar, colar e limpar links de objetos O buffer para colar link do WindowMaker é uma área de armazenagem temporária, armazenar links que podem ser recortados ou copiados de um objeto. (O buffer somente armazena os links para suas ações mais recentes de recortar e copiar.) Os links armazenados no buffer de colar link podem ser colados em qualquer objeto ou símbolo. Se os objetos diversos são selecionados, os links são colados para cada objeto individual. Se um link colado não tiver valor aparente o objeto (ex. um link de cor de linha em um objeto de texto), o link não é colado. a. Selecione o objeto para o qual deseja aplicar os links. b. A partir do WindowMaker, clique em Edit / Links e selecione Cut, Copy, Paste ou Clear.
Treinamento Wonderware
Seção 1 – Características gerais dos links de animação
4-7
Acesso aos campos ponto tagname Um Campo Ponto contém propriedades de uma tag que se estende além de propriedades como tagname ou valor. Obs.: Campos Ponto são usados extensivamente em Módulo 6, “Alarmes”. Eles são incluídos aqui como parte de características gerais de interface Tag Browsers. Para usar um .field com o tagname selecionado, abra a lista drop-down Dot Field, selecione o .field e clique em OK. A lista Dot Field é acessada através de Tag Browser ao configurar links de animação ou durante a edição de script. A figura a seguir exibe a lista drop-down Dot Field: a partir do Tag Browser:
Para exibir uma definição de banco de dados de tag, insira o tagname na caixa Tagname ou Expression da caixa de diálogo Object Type e clique duas vezes com o mouse nela. A caixa de diálogo Tagname Dictionary será exibida com a definição do tagname.
Acesso aos campos ponto tagname através da caixa de diálogo Choose Field Name a. Clique duas vezes com o mouse no objeto Ellipse na janela Scratch. A caixa de diálogo Animation Link Selection é exibida. b. Clique no botão Miscellaneous / Visibility. A caixa de diálogo Object Type é exibida: c. Insira $AccessLevel. (inclua o ponto) no campo Expression.
d. Clique duas vezes com o mouse à direita do ponto (.) no campo Expression: .
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-8
Módulo 4 – Links de animação A caixa de diálogo Choose field name... é exibida:
Esta caixa de diálogo exibe todos tagname .fields. Observe que nem todos os .fields são válidos para todas as tags. e. Selecione AlarmEnabled .field. A caixa de diálogo fechará e o .field selecionado é automaticamente inserido na caixa de entrada Tagname ou Expression .
f.
Clique no botão superior Cancel para sair da caixa de diálogo Object type .
g. Como resultado de clicar em Cancel, nenhuma modificação no objeto Ellipse será mantido. (Nenhuma modificação é necessária neste momento. Você fará mudanças durante um laboratório posterior.)
Treinamento Wonderware
Seção 2 – Animação de objetos
4-9
Seção 2 – Animação de objetos Objetivos da seção z
Identificar as opções de link de animação
z
Animar os objetos ao aplicar links
z
Importar e compartilhar animações em diversas janelas
Esta seção descreve as opções de link de animação InTouch. Ela também demonstra a importação de janelas e o compartilhamento de animações em diversas janelas.
Introdução As seguintes informações descrevem as opções de animação InTouch. Seu instrutor demonstrará as diversas opções de link de animação. Ao final desta seção, você importará uma janela pré-configurada InTouch durante uma tarefa orientada pelo instrutor. A janela é usada para configurar e compartilhar links de animação através de janelas em laboratórios subseqüentes.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-10
Módulo 4 – Links de animação Como usar a caixa de diálogo Animation Links Selector Os links de animação são configurados através da caixa de diálogo Animation Links Selection.
z
Botões de link anexam seu link ao objeto selecionado
z
Se um link não for aplicável ao objeto selecionado, o botão é desabilitado
z
Somente marcar a caixa de seleção de link não resulta em um link configurado
Clique no botão de nome de link para selecionar o link e abrir sua caixa de diálogo Detail Definition
z
Desmarque a caixa de seleção de link para remover um link configurado do objeto selecionado
z
A caixa de seleção é automaticamente selecionada ao clicar no botão de nome de link e aceitar a configuração de link
Obs.: Não será possível modificar a definição do link padrão a menos que clique no botão. z
Clique em OK para aceitar todos os links de objetos e feche a caixa de diálogo.
z
Ao criar links de animação, o tagname inserido no campo de link de animação Tagname ou Expression já deve estar definido no Tagname Dictionary
Se não estiver definido, uma caixa de mensagem aparecerá pedindo que defina a tag. Se clicar em Yes, o Tagname Dictionary será exibido e a tag pode ser definida.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-11
Touch Links
Os Touch Links são usados em objetos ou símbolos para torná-los "sensíveis ao toque" (ex. ativos) em Runtime. Eles habilitam a entrada do operador no sistema. Por exemplo, o operador pode abrir ou fechar uma válvula, inserir um novo valor de configuração de alarme novo, executar um script lógico complexo, conectar-se usando strings de texto, etc. Os Touch Links são facilmente identificados em Runtime. Uma auréola contorna um objeto sensível ao toque quando o cursor passa sobre ele. A tecla TAB pode ser usada para mover-se de um objeto sensível ao toque para outro objeto sensível ao toque. Se um objeto touch link ou símbolo contiver objetos de texto que são posicionados uns sobre os outros, o objeto de texto na área superior será usado para mostrar o valor de dados. O operador ativa uma botoeira sensível ao toque ao clicar nela, tocando o objeto (quando usa uma tela touch screen,), pressionando uma tecla equivalente atribuída ou pressionando a tecla Enter quando o objeto está ativo. Obs.: Se o objeto ou símbolo usado para estes links (com exceção dos botões tridimensionais) contiver um campo de texto, todos os atributos configurados para o texto no momento, (como justificar, estilo, fonte) são aplicados quando o objeto de texto é exibido no WindowViewer. Quando um campo de texto é usado para inserir o valor, o valor de saída também será exibido a menos que a opção Input Only na área Detail do tag respectivo da caixa de diálogo Tagname Editor é habilitada.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-12
Módulo 4 – Links de animação Entradas do usuário Usada para criar objetos sensíveis ao toque que permitem ao operador entrar no sistema. Exemplos: Botoeiras para mudar estados discretos, valores analógico ou conexão de segurança. Há três tipos de touch links User Input. Entradas do usuário
Descrição
Discreta
Usada para controlar o valor de uma tag discreta. Com o link ativado, uma caixa de diálogo é exibida solicitando ao operador uma escolha.
Analógica
Usada para inserir o valor de uma tag analógica (inteiro ou real). Quando o link é ativado, uma caixa de entrada para entrada do valor será exibida ou um teclado opcional na tela será exibido.
String
Usado para criar um objeto no qual uma mensagem string pode ser inserida. Com o link ativado, uma caixa de entrada para a entrada do valor de mensagem ou um teclado opcional na tela será exibido.
Entradas do usuário – discreta
Tagname: Inserir um tagname do tipo discreto. Área Key equivalent: Atribua um equivalente do teclado ao link. Clicar no botão Key duas vezes no botão exibe a caixa de diálogo Choose key....
Obs.: Selecione CTRL e/ou SHIFT se o operador precisa manter pressionada uma ou ambas as teclas ao pressionar o equivalente no teclado. Msg to User: Inserir a mensagem a ser exibida na caixa de diálogo de entrada quando o link de entrada é ativado.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-13
Set Prompt e Reset Prompt: Inserir mensagens que o operador verá nos botões da caixa de diálogo de valor discreto On e Off . On Message e Off Message: Inserir as mensagens a serem exibidas no campo de texto (se houver) associadas ao objeto quando o objeto está no estado ativado ou desativado. Input Only: Evitar que a entrada seja exibida em um campo de texto associado com o objeto. Esta opção somente aplica-se a um objeto que tem um campo de texto associado a ele. Entrada do usuário – analógica
Obs.: Se um campo de texto está sendo usado para este link, ele deve ser formado corretamente a fim de exibir corretamente o valor de saída analógico (inteiro ou real). Tagname: Inserir um tagname do tipo analógico (inteiro ou real). Área Key equivalent: Atribuir um equivalente ao link no teclado. Msg to User: Se estiver exibindo o teclado opcional quando este link é ativado, insira a mensagem de solicitação que será exibida no teclado. Keypad? Área: Yes: Exibir teclado numérico na tela para a entrada de novos valores de string. Obs.: Se uma tela touch screen está sendo usada e o teclado não está disponível para usuários, você deve selecionar Yes na área Keypad? . Min Value: Inserir o valor de entrada mínimo para a tag. Max Value: Inserir o valor de entrada máximo para a tag. Os valores Min/Max limitam a faixa dos valores que o operador poderá inserir nos valores de tag real. Input Only: Evitar que a entrada seja exibida em um campo de texto associado com o objeto. Esta opção somente aplica-se a um objeto que tem um campo de texto associado a ele, como um botão tridimensional.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-14
Módulo 4 – Links de animação Entradas do usuário – String
Tagname: Inserir um tagname do tipo mensagem. Área Key equivalent:Atribuir um equivalente de tecla ao link. Keypad? Área: Yes: Exibir um teclado na tela para a entrada do novo string. Msg to User: Se estiver exibindo o teclado opcional quando este link é ativado, insira a mensagem de solicitação que será exibida no teclado. Echo Characters? Se desejar que o string de entrada seja exibido na tela na medida em que for digitado, selecione Yes. Se os dados forem sensíveis (por exemplo, uma senha) e não podem ser visíveis na tela, selecione No. Password Char: Atribuir um caractere que deveria ser exibido para ocultar a entrada da senha. Input Only: Evitar que a entrada seja exibida em um campo de texto associado com o objeto. Esta opção somente aplica-se a um objeto que tem um campo de texto associado a ele, como um botão tridimensional. Obs.: Quando o WindowViewer é iniciado, o string exibirá o texto que foi inserido na caixa Initial Value quando foi definido o link de tag para este objeto. Encrypt: Não deve ser marcado para um tag que deve ser usado como uma entrada para a caixa de diálogo de conexão. Se a tag for encriptada e usada como senha para segurança, não funcionará. Quando o usuário inserir o valor da tag ele é encriptado e quando um string encriptado é usado para conexão, ele falhará. Dica: É possível usar a função script StringCompareEncrypted() para comparar strings de senha para segurança adicional.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-15
Teclados na tela (e teclado) Três teclados diferentes são suportados pelo InTouch: o teclado InTouch tradicional, um novo teclado redimensionável Wonderware que também suporta fontes configuráveis e o teclado Windows fornecido pela Microsoft. Os teclados na tela são configurados na guia General da caixa de diálogo WindowViewer Properties.
Obs.: O teclado selecionado aplica-se também ao teclado numérico para links analógicos de entrada do usuário. Por exemplo, se escolher o novo teclado redimensionável Wonderware, o teclado também será redimensionável. Se escolher o teclado Windows, nenhum teclado separado será usado porque está incluído no teclado padrão Windows.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-16
Módulo 4 – Links de animação Para usar um teclado na tela, siga as etapas semelhantes a estas: a. Configure qual teclado deve ser usado, na guia Special / Configure / WindowViewer / General. b. Posicione um objeto de texto em sua janela. c. Atribua o link de animação Touch Link / User Inputs / String. d. Configure a animação com uma guia Memory Message em Tagname e Keypad? Yes. e. Vá para Runtime f.
Clique no objeto Default Text. O teclado é exibido.
Teclado InTouch
Treinamento Wonderware
Seção 2 – Animação de objetos
4-17
Teclado InTouch
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-18
Módulo 4 – Links de animação Teclado Windows A vantagem de usar o teclado Windows é que ele suporta ajustes internacionais. Entretanto, ele não é redimensionável e pode ser muito pequeno para tela touch screen. Além disso, não é compatível com um teclado numérico separado.
Teclado redimensionável e teclado Configurar Special / Configure / WindowViewer
Clique no botão Options ao configurar Resizeable Keyboard para abrir a caixa de diálogo Font em que é possível definir a fonte que o teclado usará. Redimensionável em Runtime
Treinamento Wonderware
Seção 2 – Animação de objetos
4-19
Sliders Slider Touch Links são usados para criar objetos ou símbolos que podem ser movidos em torno de uma janela sem um mouse ou outro dispositivo de indicação (ex.: dedo ou touch screen). Como o objeto ou o símbolo é removido, ele altera o valor da tag vinculada a ele. Este link fornece a habilidade de criar equipamentos para ajustar valores de sistema. Um objeto pode ter um link slider touch horizontal, vertical ou ambos. Ao usar os dois links em um único objeto, o valor de duas tags analógicas pode ser alterado simultaneamente. Sliders verticais e horizontais
At Top / At Bottom: Inserir o valor da tag na posição mais distante Up / Down: Inserir o número de pixels que o slider pode mover
At Left End / At Right End: Inserir o valor da tag na posição mais distante To Left / To Right Inserir o número de pixels que o slider pode mover Tagname: Inserir um tagname do tipo analógico (inteiro ou real). Reference Location: Localização no objeto onde o cursor travará ao mover o objeto. Dica: Clique em Ruler para ter uma indicação visual do número de pixels para mover o objeto.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-20
Módulo 4 – Links de animação Botoeiras Touch Touch Pushbutton - Touch Links são usados para criar links de objeto que imediatamente realizam operações quando clicados com o mouse ou tocados (tela touch screen). Estas operações podem ser execuções Discrete Value Changes, Action Script, Show ou comandos Hide Window . Há quatro tipos de links Botoeiras Touch . Entrada do usuário
Descrição
Valor discreto
Usado para transformar um objeto ou símbolo em uma botoeira que controla o estado de um tagname discreto. Ações de botoeiras incluem Direta (momentaneamente ativados), Reversa (momentaneamente desativado), Alternar, Reinicializar e Configurar.
Ação
Permite que qualquer objeto, símbolo ou botão tenha até treze scripts de ação diferentes vinculados (consulte Módulo 5, “InTouch QuickScripts,” página 4-11.) Os scripts de ação são usados para configurar tags com valores específicos, exibir e/ ou ocultar janelas, iniciar e controlar outros aplicativos, executar funções, etc.
Exibir janela
Permite que um objeto, símbolo ou botão abra uma ou mais janelas quando clicado.
Ocultar janela
Permite que um objeto, símbolo ou botão feche uma ou mais janelas quando clicado.
Botoeiras Touch – Valor Discreto
Tagname: Inserir um tagname do tipo discreto. Área Key equivalent: É possível atribuir uma tecla específica no teclado para ativar determinados links de animação. A tecla equivalente somente é operacional quando o objeto com o link está visível ou selecionado. Se o objeto tem um link Visibility ou Disable, a tecla equivalente não é ativa quando o objeto está invisível ou desabilitado. É possível definir a mesma tecla em várias janelas. Entretanto, a definição na janela aberta mais recentemente será a ativa. No caso de sobreposição de janelas, a tecla será ativada na janela do topo. Obs.: Se um objeto ou botoeira de ação na janela ativa é atribuída à mesma tecla usada para um Key Action Script, o link equivalente de tecla no teclado na janela ativa terá precedência sobre a execução do Key Action Script. Key: Atribuir uma equivalente de tecla ao link.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-21
Área Action: z
Direct: Configura o valor da tag como 1 (Verdadeiro, Ativo, Sim) desde que a botoeira seja pressionada e mantida pressionada. O valor automaticamente reinicia como 0 (Falso, Desativado, Não) quando o botão é liberado.
z
Reverse: Configura o valor da tag como 0 (Falso, Desativado, Não) quando a botoeira é pressionada e mantida pressionada. O valor automaticamente reinicia como 1 (Verdadeiro, Ativado, Sim, Desativado, Não) quando o botão é liberado.
z
Toggle: Reverte o estado da tag discreta quando é pressionado, ex.: se a tag é igual a 1 e o botão é pressionado, ela é configurada como 0 e vice-versa.
z
Reset: Configura o valor como 0 (Falso, Desativado, Não) quando a botoeira é pressionada.
z
Set: Configura o valor como 1 (Verdadeiro, Ativado, Sim) quando a botoeira é pressionada.
Botoeiras Touch – ação Os scripts de ação são abordados mais adiante no próximo capítulo. Isto é um exemplo da caixa de diálogo de script de ação exibida quando atribuir uma Botoeira Touch - ação. Os scripts são abordados em detalhes no Módulo 5, “Scripts Touch Action.”
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-22
Módulo 4 – Links de animação Botoeiras Touch– Exibir janela Quando atribuir a animação Touch Pushbutton - Show Window, a caixa de diálogo será exibida com uma lista de todas as janelas em seu aplicativo.
Botoeiras Touch– Ocultar janela Quando atribuir a animação Touch Pushbutton - Hide Window, a caixa de diálogo será exibida com uma lista de todas as janelas em seu aplicativo.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-23
Aparência de Hotlinks em Runtime O comportamento do hotlink permite que as “auréolas” em torno dos hotlinks em Runtime sejam habilitadas ou desabilitadas para serem exibidas em torno de controles ActiveX ou configuradas para seguir o formato do objeto de hotlink como exibido abaixo. Exibir auréola em torno do Hotlink
A auréola segue o formato do objeto
Obs.: As auréolas não seguem o formato de um objeto se o objeto for uma célula ou um símbolo. O comportamento do hotlink é configurado na guia General da caixa de diálogo WindowViewer Properties.
Configuraçã
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-24
Módulo 4 – Links de animação Display Links:
Display Links fornece saída para o operador. Há oito tipos de links de exibição como circulado na figura anterior.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-25
Linha, preenchimento e cor de texto Os links de cor são usados para animar os atributos Line Color, Fill Color e Text Color de um objeto. Obs.: É necessário usar cores sólidas para os links de cor de linha e de texto. Se selecionar uma cor indefinida (misturada), o WindowMaker selecionará a cor sólida mais próxima. Para evitar cores indefinidas, seu cartão de vídeo deve ter pelo menos 2MB e seus ajustes de profundidade de cor devem ser mais altos do que 256 cores, como 32K ou 65K (algumas vezes denominados de "alta cor” ou “cor real".) Cada um destes atributos pode se tornar dinâmico pela definição de um link de cor para o atributo. O atributo de cor pode ser vinculado ao valor de uma expressão discreta, expressão analógica, status de alarme discreto ou status de alarme analógico. Há quatro tipos de link de linha, preenchimento e de cor de texto: Entrada do usuário
Descrição
Discreta
Usada para controlar os atributos de preenchimento, linha e cor de texto de um objeto ou símbolo vinculado ao valor de uma expressão discreta.
Analógica
Cor de linha, preenchimento e texto de um objeto ou símbolo podem ser vinculados ao valor de uma tag analógica (inteiro ou real) ou uma expressão analógica. Dez faixas de valores são definidas ao especificar-se nove pontos de interrupção. Dez cores diferentes podem ser selecionadas e serão exibidas na medida em que a faixa de valor muda.
Alarme discreto
O texto, a linha e a cor de preenchimento de um objeto podem ser vinculados ao estado de alarme de uma tag, Grupo de alarme ou Variável de Grupo. Este link de cor permite uma escolha entre duas cores: uma para o estado normal e a outra para o estado de alarme da tag. Este link pode ser usado para tags analógicas e discretas. Se usada com uma tag analógica, ela responde a QUALQUER condição de alarme da tag.
Alarme analógico
O texto, a linha e a cor de preenchimento de um objeto podem ser vinculados ao estado de alarme de uma tag analógica, Grupo de alarme ou Variável de Grupo. Isto permite que uma cor específica seja configurada para o estado normal e uma cor diferente para cada condição de alarme definida para a tag.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-26
Módulo 4 – Links de animação Discrete Line / Fill / Text Color Obs.: Todos os links Line / Fill / Text Color são configurados da mesma forma.
Expression: Inserir um tagname discreto ou uma expressão que seja igual a Verdadeiro ou Falso. Uma expressão pode ter até 1023 caracteres. Se precisar usar uma expressão maior, crie um QuickFunction e chame-o na sua expressão. Expressões discretas podem também conter Tagnames Analógicos. Por exemplo, TankLevel >= 75. Quando o valor da TankLevel é maior ou igual a 75, a cor de preenchimento do objeto muda. Clique com o botão direito do mouse no campo Expression para visualizar os comandos que podem ser aplicados ao texto selecionado. Área Colors: Clique em cada caixa de cor e selecione a cor da paleta para cada estado de tag.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-27
Analog Line / Fill / Text Color
Expression: Insira um tagname analógico inteiro ou real ou uma expressão que se adeque a um valor analógico. Break Points: Especifique os valores de ponto de interrupção (decimais são válidos para tags de tipo real) onde o objeto mudará de cor Use a tecla Tab para mover de um valor para o próximo valor. Color: Clique em cada caixa de cor para selecionar a cor de cada ponto de interrupção. Discrete Alarm Line / Fill / Text Color
Tagname: Insira o tagname discreto cujo status de alarme deve ser associado com o objeto. Área Colors: Clique em cada caixa de cor para selecionar a cor de cada estado.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-28
Módulo 4 – Links de animação Analog Alarm Line / Fill / Text Color
Tagname: Insira o tagname analógico (inteiro ou real) cujo status de alarme deve ser associado com o objeto. Área Alarm Type: Selecione o tipo de alarme a ser associado ao objeto. Três tipos exclusivos mutuamente de links de cor analógico disponíveis. z
Value Alarm – Até cinco cores diferentes podem ser selecionadas, dependendo do status dos alarmes de valor definidos para a tag.
z
Deviation – Até três cores diferentes podem ser selecionadas, dependendo do status dos alarmes de valor desvio para a tag.
Treinamento Wonderware
Seção 2 – Animação de objetos z
4-29
ROC (Taxa de Mudança) – Duas cores diferentes podem ser selecionadas, dependendo do status do alarme de taxa de mudança definido para a tag.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-30
Módulo 4 – Links de animação Links de dimensão de objeto Links de dimensão de objeto são usados para variar a altura e/ou a largura de um objeto de acordo com o valor de uma tag analógica (inteira ou real) ou de uma expressão analógica. Links de dimensão oferecem a habilidade de controlar a direção na qual o objeto é ampliado em altura e/ou largura pelo ajuste de uma âncora para o link. Os links de altura e de largura podem ser conectados ao mesmo objeto. Obs.: Links de altura e largura são criados do mesmo modo. Links de altura ou de largura
Expression: Insira um tagname analógico (inteiro ou real) ou uma expressão que se adeque a um valor de tag analógico. Value at Max Height / Width: Insira o valor de tag ou a expressão que resultará no objeto atingir sua dimensão máxima. Value at Min Height / Width: Insira o valor de tag ou a expressão que resultará no objeto atingir sua dimensão mínima. Max % Height / Width: Insira um valor percentual (0-100) da dimensão que o objeto terá quando a tag ou a expressão atingir a dimensão máxima.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-31
Min % Height / Width: Inserir um valor percentual (0-100) da dimensão que o objeto terá quando a tag ou a expressão atingir a dimensão mínima. Obs.: Os valores percentuais de altura são expressos como um percentual da dimensão desenhada real do objeto, que é 100%. Anchor: O ponto a partir do qual o objeto será ampliado em dimensão.
Localização Links de localização são usados para fazer um objeto mover-se automaticamente na horizontal, na vertical ou em ambas as direções em resposta às mudanças no valor de uma tag analógica ou expressão. Obs.: Links de Localização Horizontal e Vertical são criados do mesmo modo. Vertical ou Horizontal
Expression: Insira um tagname analógico (inteiro ou real) ou uma expressão que se adeque a um valor analógico. At Top / Left End: Insira o valor da tag quando o objeto está na posição mais distante. At Bottom / Right End: Insira o valor da tag quando o objeto está na posição mais distante. Up / To Left: Insira o número de pixels que o objeto pode distanciar-se da posição desenhada. Down / To Right: Insira o número de pixels que o objeto pode distanciar-se da posição desenhada.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-32
Módulo 4 – Links de animação Links de preenchimento em percentual Links de preenchimento percentual são usados para variar o nível de preenchimento de uma forma (ou um símbolo que contenha formas preenchidas) de acordo com o valor de um tagname analógico ou de uma expressão que calcule um valor analógico. Por exemplo, este link pode ser usado para exibir o nível de líquidos em um reservatório. Um objeto ou símbolo pode ter um link de preenchimento horizontal, um link de preenchimento vertical ou ambos. Obs.: Links de Preenchimento de Porcentagem Vertical e Horizontal são criados da mesma maneira. Vertical ou Horizontal
Expression: Insira um tagname analógico (inteiro ou real) ou uma expressão que se adeque a um valor analógico. Value at Max Fill: Insira o valor de tag que resultará no preenchimento do objeto até seu nível máximo. Value at Min Fill: Insira o valor de tag que resultará no preenchimento do objeto até seu nível mínimo. Max % Fill: Insira o valor percentual (0-100) com o qual o objeto será preenchido quando a expressão atingir o nível ajustado na caixa Value at Max Fill. Se o valor da expressão é maior do que este número, ele será ignorado.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-33
Min % Fill: Inserir um valor percentual (0-100) com o qual o objeto será preenchido quando a expressão atingir o nível ajustado na caixa Value at Min Fill. Se o valor da expressão é menor do que este número, ele será ignorado. Direction: O preenchimento começa aqui e acontece de baixo para cima / de cima para baixo / da esquerda para a direita / da direita para a esquerda Background Color: Selecione uma cor. Esta seleção Background Color é para a cor de parte não preenchida do objeto. A cor de preenchimento real é selecionada para o objeto quando ele é desenhado. Se os links Vertical Percent Fill e Horizontal Percent Fill são vinculados ao mesmo objeto, a última cor selecionada em qualquer uma das caixas de diálogo de link será usada como a cor do fundo.
Links diversos Há cinco links diversos: Links diversos
Descrição
Visibility
Usado para controlar a visibilidade de um objeto com base no valor de uma tag discreta e expressão.
Blink
Usado para fazer um objeto piscar com base no valor de uma tag discreta e expressão.
Orientation
Usado para fazer um objeto girar com base no valor de uma tag ou expressão.
Disable
Usado para desabilitar a funcionalidade toque de objetos com base no valor de um tagname ou expressão.
Tooltip
Usado para exibir uma dica de ferramenta padrão Windows em Runtime quando o cursor passa sobre um objeto. É possível usar uma Memory Message ou Static Text para dica de ferramenta.
Visibility
Expression: Inserir um tagname discreto ou uma expressão que seja igual a um valor discreto. Visible State: On: O objeto é visível quando o valor da expressão é VERDADEIRO. Off: O objeto será visível quando o valor da expressão é FALSO.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-34
Módulo 4 – Links de animação Blink
Expression - Blink When: Inserir um tagname discreto ou uma expressão que seja igual a um valor discreto. Área Blinked Attributes: z
Blink Invisible: Objeto/símbolo pisca aparecendo e desaparecendo da janela.
z
Blink visible with these attributes: Objeto/símbolo permanece visível na janela e os atributos de mudança de cor selecionados cria o efeito intermitente.
z
Text Color, Line Color e Fill Color: Selecione uma cor. Selecionar uma cor intermitente de preenchimento que seja igual a cor de preenchimento do objeto não permitirá que o objeto pisque.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-35
Blink Speed: Velocidades Slow, Medium e Fast são configuráveis ao selecionar o comando Special / Configure / WindowViewer. A caixa de diálogo WindowViewer Properties, campo da guia General, contém o grupo Blink Frequency.
Obs.: Qualquer mudança feita a estes ajustes são globais e afetarão as velocidades intermitentes de todos os links Blink em toda sua aplicação.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-36
Módulo 4 – Links de animação Orientation
Expression: Inserir um tagname analógico (inteiro ou real) ou uma expressão que se adeque a um valor analógico. Value at Max CCW: Inserir o valor que a expressão deve ter para que o objeto seja girado ao máximo no sentido anti-horário. Se o valor da expressão é maior do que este número, ele será ignorado. Value at Max CW: Inserir o valor que a expressão deve ter para que o objeto seja girado ao máximo no sentido horário. Se o valor da expressão é maior do que este número, ele será ignorado. CCW Rotation: Inserir o grau em que o objeto girará no sentido anti-horário quando Value at Max CCW é atingido. CW Rotation: Inserir o grau em que o objeto girará no sentido horário quando o Value at Max CW for atingido. Os objetos são girados no sentido horário ou anti-horário com base na posição original na qual eles foram desenhados no WindowMaker. Dica: Para forçar um objeto a um ângulo específico, simplesmente ajuste o Value at Max CCW em 360, Value at Max CW como 0, CCW Rotation em 360 e CW Rotation em 0. Insira o valor do ângulo (ex. 90) na caixa Expression. Lembre-se, sem um tagname, esta expressão nunca mudará e o objeto manterá sempre a posição de 90 graus. Obs.: O sentido do objeto de texto pode ser ajustado no WindowMaker com incrementos de 90 graus, mas não girado em WindowViewer em um valor de tagname. X Position: Insira o número de pixels do ponto central de rotação que deve ser movido horizontalmente a partir do ponto central do objeto. Os valores positivos estão à direita do centro. O link de direção usa o centro do objeto ou símbolo como o centro de rotação. Y Position: Insira o número de pixels do ponto central de rotação que deve ser movido verticalmente a partir do ponto central do objeto. Os valores positivos estão abaixo do ponto central. Os valores negativos estão acima do ponto central.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-37
Disable O link desabilitado é muito útil para aplicar segurança ao seu aplicativo. Por exemplo, é possível desabilitar objetos com base no nível de acesso ou o nome do operador conectado. Quando Disable é usado, qualquer link InTouch será desabilitado enquanto a condição Disable é verdadeira. O link Disable é usado em Module 10, “Security.”
Exemplo: $AccessLevel == 0 OR $Operator == “None” Expression: Insira um tagname discreto ou uma expressão que seja igual a um valor discreto. Usar a expressão exibida na figura anterior, quando ninguém está conectado, faz com que o objeto ou botão seja protegido contra violação. Disabled State: Ativa ou desativa a funcionalidade do objeto quando a tag discreta ou a expressão for verdade. Um estado desabilitado On significa que a funcionalidade touchscreen do objeto ou botão é desligada e eles não podem ser clicados enquanto a expressão for verdadeira. Um estado desabilitado Off significa que a funcionalidade touchscreen do objeto ou botão é desligada e eles não podem ser clicados enquanto a expressão for falsa.
Tooltip
A animação Tooltip exibe uma dica de ferramenta padrão Windows em Runtime quando o cursor passa sobre um objeto. É possível atribuir uma tag Message no campo Expression ou um Static text para a dica de ferramenta.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-38
Módulo 4 – Links de animação Links de exibição de valor Os links de exibição de valor permitem que objetos de texto exibam o valor de um tagname discreto, analógico ou string. Há três tipos: Tipo de exibição de valor
Descrição
Discreto
Usa o valor de uma tag discreta ou de uma expressão discreta para exibir uma mensagem On ou Off definida pelo usuário em um objeto de texto.
Analógico
Exibir o valor de uma tag analógica ou de uma expressão analógica em um objeto de texto.
String
Exibir o valor de uma tag de mensagem ou de uma expressão string em um objeto de texto.
Exibir valor - Discreto
Expression: Inserir um tagname discreto ou uma expressão que seja igual a um valor discreto. On Message: Inserir a mensagem que será exibida quando o valor de uma expressão discreta corresponder a 1 (VERDADEIRO, Habilitado, Sim). Off Message: Inserir a mensagem que será exibida quando o valor de uma expressão discreta corresponder a 0 (FALSO, Desabilitado, Não). As mensagens serão exibidas no ponto de referência do objeto de texto original usando fonte, dimensão, cor, alinhamento e atributos vinculados ajustados para o objeto. Os conteúdos originais do campo não têm efeito na mensagem exibida em Runtime. É possível também usar um link Value Display Output -> String Expression para exibir as mensagens habilitadas e desabilitadas de uma tag discreta. Para o link, seria necessário inserir a expressão a seguir: DText (Pump, Pump.OnMsg, Pump.OffMsg);
Nesta expressão, os strings .OnMsg e .OffMsg serão extraídos da definição do InTouch Tagname Dictionary para a tag discreta Pump.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-39
Analógico
Expression: Inserir um tagname analógico (inteiro ou real) ou uma expressão que se adeque a um valor analógico. É possível também usar uma tag do tipo discreta nesta expressão. Ela exibirá simplesmente 1 ou 0.
String
Exemplo: “The Tank Level is:” + Text(TankLevel, “#”) Expression: Inserir um tagname de mensagem ou uma expressão que corresponda a uma tag de mensagem. No exemplo acima, o script Text() é usado para converter o valor de uma tag inteira TankLevel em um string.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-40
Módulo 4 – Links de animação Importação e exportação de janelas Importar janelas do aplicativo InTouch para seu aplicativo atual pode economizar tempo de desenvolvimento. Importar janelas também representa um método rápido e fácil de criar referências de tagname remoto. Isto permite reutilizar qualquer janela criada anteriormente, objetos e scripts de janela. Quando mover janelas de um aplicativo InTouch para outro, você deve usar o comando File / Import. Obs.: Se tentar copiar arquivos de janela InTouch usando qualquer outro método (ex.comandos de cópia Windows Explorer), você pode corromper o Dicionário Tagname de seu aplicativo. a. Feche qualquer janela aberta. b. Clique em File / Import no menu WindowMaker. A caixa de diálogo Import from directory é exibida. Para este exemplo, você importará uma janela incluída com o aplicativo pré-configurado em wwimport (seu instrutor fornecerá o nome do nó de uma máquina na qual o arquivo wwimport reside).
c. Clique em OK.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-41
A caixa de diálogo Application Data Import Options é exibida:
d. Selecione Windows da área Import Options . Cada opção de importação tem listas de importação detalhadas. e. Clique no botão Select para a opção Windows. A janela Windows to Import... é exibida:
f.
Selecione a janela Links . (A janela Links é usada na guia a seguir.)
g. Clique em OK. A caixa de diálogo Application import é exibida novamente: h. Clique em Import.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-42
Módulo 4 – Links de animação A janela Links é importada com sucesso para seu aplicativo InTouch:
Exportação de janelas Exportar janelas é muito útil ao criar ou manter um aplicativo de biblioteca ou para criar rapidamente de forma remota referências de tag em outro aplicativo. Quando uma janela é exportada, o arquivo de janela é copiado para o diretório selecionado juntamente com o arquivo índice. Este diretório pode ser usado como uma fonte para importar janelas para seu aplicativo. Obs.: Se tentar copiar arquivos de janela InTouch usando qualquer outro método (ex.comandos de cópia Windows Explorer), você pode corromper o Dicionário Tagname de seu aplicativo. Feche todas as janelas em seu aplicativo atual. a. Clique em File / Export Window. A caixa de diálogo Export to directory... é exibida.
b. Selecione o diretório (pasta) do aplicativo para o qual deseja exportar a janela. A caixa de diálogo Windows to Export é exibida, permitindo a seleção de janelas em seu aplicativo. c. Selecione a(s) janela(s) a serem exportadas e clique em OK.
Treinamento Wonderware
Seção 2 – Animação de objetos
4-43
Conversão de Tagnames A informação a seguir está incluída porque a conversão de tag é normalmente parte de uma operação de importação InTouch. A janela Links recém importada é formada apenas de gráficos e não inclui tags, portanto não é necessário fazer conversão. Obs.: A conversão de tag é demonstrada em Laboratório , “Usar funções QuickScript.” Quando as janelas são importadas/exportadas de/para seu aplicativo atual, ou tags indexadas (para tirá-las de operação), todas as tags associadas com esta janela são transferidas com a janela. Elas não são, entretanto, adicionadas ao novo banco de dados do aplicativo. Ao invés disto, os tagnames são identificados como tags placeholder (índice). Obs.: Se as tags não são definidas em seu Dicionário Tagname local quando uma janela é importada, será solicitado que as defina antes delas serem convertidas. Clique em OK se este for o caso. A caixa de diálogo Tagname Dictionary será exibida e cada tagname pode ser identificado. Os placeholders ?d:, ?i:, ?r:, ?m:, ?g:, ?h:, e ?t: que precedem os tagnames indicam o tipo com o qual o tagname foi definido originalmente como: dTipo discreto iTipo inteiro rTipo real mTipo mensagem gTipo grupo hTipo tendência de histórico tTipo ID de tag
Substituição de tagnames Quando um objeto é duplicado, ele se torna uma réplica exata do original incluindo links, animação e scripts. Entretanto, se precisar usar uma tag diferente para um objeto que foi duplicado, será necessário mudar o tagname. No WindowMaker, esta operação é denominada substituir tagname. Tagnames para objetos podem ser mudados a qualquer hora, individualmente ou em grupo a. Selecione o objeto cujo tagname deseja mudar. b. Pressione Ctrl+E (Special / Substitute Tags...).
c. Insira um novo tagname na caixa New Name e clique em OK. O tagname associado ao objeto selecionado será mudado automaticamente.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-44
Módulo 4 – Links de animação
– Deixado em branco intencionalmente –
Treinamento Wonderware
Seção 3 – Links de animação – Referência rápida
4-45
Seção 3 – Links de animação – Referência rápida Este guia de referência rápida resume a funcionalidade básica cada link de animação.
Touch Links Touch Link
Tipos
Entradas do usuário
Discreto, analógico, string
Sliders
Vertical, Horizontal
Botoeiras Touch
Valor discreto, ação, exibir janela, ocultar janela
Entrada do usuário
Descrição
Discreto
Usada para controlar o valor de um tagname discreto. Quando este link é ativado, uma caixa de diálogo será exibida e solicita que o operador faça uma escolha.
Analógico
Usada para inserir o valor de uma tagname analógico (inteiro ou real). Quando o link é ativado, uma caixa de entrada será exibida e o valor pode ser inserido a partir de um teclado padrão ou em um teclado na tela opcional.
String
Usado para criar um objeto no qual uma mensagem string pode ser inserida. Quando o link é ativado, uma caixa de entrada para entrada do valor de menagem ou um teclado opcional na tela será exibido.
Link Slider Touch
Descrição
Vertical / Horizontal
Usado para criar objetos ou símbolos que podem ser movidos em torno de uma janela, vertical ou horizontalmente, com um mouse ou outro dispositivo de indicação (ex. dedo ou uma tela touch screen). Como o objeto ou o símbolo é removido, ele altera o valor do tagname vinculado a ele. Isto fornece a habilidade de criar equipamentos para ajustar valores no sistema.
Botoeiras Touch
Descrição
Valor discreto
Usado para transformar um objeto ou símbolo em uma botoeira que controla o estado de um tagname discreto. Ações de botoeiras incluem Direta (momentaneamente ativados), Reversa (momentaneamente desativado), Alternar, Reinicializar e Configurar.
Ação
Permite que qualquer objeto, símbolo ou botão tenha até treze scripts de ação diferentes vinculado a ele (consulte Módulo 5, “InTouch QuickScripts,” página 4-11.) Os scripts de ação são usados para configurar tags com valores específicos, exibir e/ou ocultar janelas, iniciar e controlar outros aplicativos, executar funções, etc.
Exibir janela
Permite que um objeto, símbolo ou botão abra uma ou mais janelas quando clicado.
Ocultar janela
Permite que um objeto, símbolo ou botão feche uma ou mais janelas quando clicado.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-46
Módulo 4 – Links de animação Display Links: Display Links:
Tipos
Linha, preenchimento e cor de texto
Discreto, analógico, alarme discreto, alarme analógico
Dimensão do objeto
Altura, largura
Localização
Horizontal, Vertical
Percentual de preenchimento
Horizontal, Vertical
Diversos
Visibilidade, direção, piscar, desabilitar, dica de ferramenta
Exibir valor
Discreto, analógico, string
Link de cor
Descrição
Discreto
Usado para controlar os atributos de preenchimento, linha e cor de texto de um objeto ou símbolo vinculado ao valor de uma expressão discreta. Duas cores podem ser selecionadas, uma para o estado Verdadeiro e uma para o estado Falso.
Analógico
Cor de linha, preenchimento e texto de um objeto ou símbolo pode ser vinculado ao valor de um tagname analógico (inteiro ou real) ou uma expressão analógica. Dez faixas de valores são definidas aos noves pontos de interrupção. Dez cores diferentes podem ser selecionadas e serão exibidas conforme a mudança da faixa de valor.
Alarme discreto
Texto, linha e cor de preenchimento de um objeto podem ser vinculados ao estado de alarme de um tagname, Grupo de alarme ou Variável de grupo. Este link de cor permite uma escolha entre duas cores: uma para o estado normal e a outra para alarme do tagname. Este link pode ser usado para tagnames analógicos e discretos. Se usada com um tagname analógico, ela responde a qualquer condição de alarme do tagname.
Alarme analógico
Texto, linha e cor de preenchimento de um objeto podem ser vinculados ao estado de alarme de um tagname analógico, Grupo de alarme ou Variável de grupo. Isto permite que uma cor específica seja configurada para o estado normal e uma cor diferente para cada condição de alarme definida para o tagname.
Dimensão do objeto
Descrição
Tagname analógico (inteiro ou real) ou expressão analógica
Usadas para variar a altura e/ou a largura de um objeto de acordo com o valor de um tagname analógico (inteira ou real) ou de uma expressão analógica. Os links de dimensão controlam a direção na qual o objeto é ampliado em altura e/ou largura pelo ajuste de uma âncora para o link. Os links de altura e de largura podem ser conectados ao mesmo objeto.
Links de ponto de referência
Descrição
Analógico
Usados para fazer um objeto mover-se automaticamente na horizontal, na vertical ou em ambas as direções em resposta a mudanças no valor de um tagname analógico ou expressão.
Treinamento Wonderware
Seção 3 – Links de animação – Referência rápida
4-47
Percentual de preenchimento
Descrição
Preenchimento horizontal/ vertical
Usado para variar o nível de preenchimento de uma forma (ou um símbolo com formas preenchidas) de acordo com o valor de um tagname analógico ou de uma expressão que calcule um valor analógico. Por exemplo, este link pode ser usado para exibir o nível de líquidos em um reservatório. Um objeto ou símbolo pode ter um link de preenchimento horizontal, vertical ou ambos.
Links diversos
Descrição
Visibility
Usado para controlar a visibilidade de um objeto com base no valor de um tagname discreto e expressão.
Blink
Usado para fazer um objeto piscar com base no valor de um tagname discreto e expressão.
Orientation
Usado para fazer um objeto girar com base no valor de um tagname analógico ou expressão.
Disable
Usado para desabilitar a funcionalidade toque de objetos com base no valor de um tagname discreto ou expressão.
Tooltip
Usado para exibir uma dica de ferramenta padrão Windows em Runtime quando o cursor passa sobre um objeto.
Exibir valor
Descrição
Discreto
Usa o valor de uma tag ou de uma expressão discreta para exibir uma mensagem On ou Off definida pelo usuário em um objeto de texto.
Analógico
Exibe o valor de uma tag ou de uma expressão analógica em um objeto de texto.
String
Exibe o valor de uma tag ou de uma expressão string em um objeto de texto.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-48
Módulo 4 – Links de animação
– Deixado em branco intencionalmente –
Treinamento Wonderware
Laboratório 3 – Configuração de links de animação
4-49
Laboratório 3 – Configuração de links de animação Introdução Neste laboratório, você usará a caixa de diálogo Animation Selection para criar links de animação e configurar ações específicas que ocorrerão de acordo com o status de determinados eventos.
Objetivos Ao final deste laboratório, você: z
Abrirá janela Links
z
Compartilhará gráficos entre janelas
z
Animará o símbolo Valve1
z
Animará o botão Disc1
z
Animará um Slider
z
Animará o campo RealTag Text
z
Adicionará a um link de percentual de preenchimento
z
Configurará links de objeto elipse
z
Configurará links de objeto ampliador
Preparação A janela Links deverá ter sido importada para seu aplicativo do diretório wwimport na máquina do instrutor (ou outra máquina). Se concluiu esta etapa, siga as instruções da tarefa orientada pelo instrutor “Importação e exportação de janelas” na página 4-40.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-50
Módulo 4 – Links de animação Abertura de janela Links 1. Na estrutura da árvore Application Explorer do WindowMaker, clique em + próximo à Windows para expandir a lista de janelas disponíveis. 2. Clique duas vezes com o mouse em Links para abrir a janela que foi importada recentemente.
A janela Links é exibida semelhante à figura a seguir .
Obs.: NÃO desagrupe nenhuma célula ou símbolo para concluir este laboratório.
Treinamento Wonderware
Laboratório 3 – Configuração de links de animação
4-51
Compartilhamento de gráficos entre janelas 3. Abra a janela Scratch. 4. Copie o símbolo Valve e seu botão.
Obs.: Se necessário, converta os objetos Valve, incluindo o objeto de texto, em um símbolo. Isto pode ser feito antes ou depois da operação copiar/colar. 5. Feche a janela Scratch . 6. Cole Valve e seu botão na janela Links . Seu ponteiro exibirá: 7. Clique uma vez na área superior esquerda da janela Links para posicionar a válvula. 8. Ajuste o posicionamento e a dimensão.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-52
Módulo 4 – Links de animação Animação do símbolo Valve1 9. Clique duas vezes com o mouse no símbolo Valve1. 10. Clique no botão Line Color – Discrete . A caixa de diálogo Object type: Symbol é exibida:
11. Clique duas vezes com o mouse no campo Expression. A caixa de diálogo Tag Browser é exibida:
12. Selecione a guia DiscTag1. 13. Clique em OK.
Treinamento Wonderware
Laboratório 3 – Configuração de links de animação
4-53
O tagname é exibido no campo Expression:
14. Clique na caixa de cor 1,TRUE,On: e atribua GREEN com a paleta de cor. 15. Clique na caixa de cor 0,FALSE,Off: e atribua RED com a paleta de cor.
16. Clique no botão OK inferior. 17. Conecte Fill Color e Text Color do símbolo à tag DiscTag1 usando as etapas anteriores.
18. Clique em OK quando concluir o link de animação e clique no OK superior quando as três estiverem atribuídas.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-54
Módulo 4 – Links de animação Animação do botão Disc1Tag1 19. Clique duas vezes com o mouse no botão DiscTag1 . 20. Defina como Touch Link / Touch Pushbutton / Discrete Value com a ação Direct.
21. Atribua a DiscTag1. 22. Clique no botão OK superior.
Animação de válvulas e botões 23. Selecione o símbolo Valve1 e o botão DiscTag1 . 24. Duplique o símbolo de válvula e o botão clicando no botão Duplicate válvulas lado a lado:
. Coloque as
25. Selecione a segunda válvula e seu botão e escolha Special / Substitute Strings (CTRL+L).
26. Mude o texto para DiscTag2 e o rótulo do botão para Valve2. 27. Clique em OK.
Treinamento Wonderware
Laboratório 3 – Configuração de links de animação
4-55
As válvulas e os botões devem estar semelhantes à figura a seguir:
28. Clique 2 vezes com o mouse em Valve2 e defina Line Color, Fill Color e Text Color como DiscTag2. Use BLUE para as cores 1,TRUE, On e BLACK para as cores 0,FALSE,Off .
Obs.: Uma vez que todos os links de animação do símbolo Valve1 e do botão DiscTag1 são mantidos nos novos objetos, clicar no OK inferior da caixa de diálogo Tag Editor retorna à caixa de dialogo Animation Links Selector , de onde é possível selecionar facilmente outro link de animação de tag. Quando os links de animação são concluídos, clique no OK superior na parte superior da caixa de diálogo para salvar os links e fechar a caixa de diálogo. 29. Defina o botão DiscTag2 como um User Inputs - Discrete e atribua-o a DiscTag2.
30. Ajuste Prompts e Messages como exibido e clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-56
Módulo 4 – Links de animação 31. Alterne para Runtime clicando uma vez em Runtime! no canto superior direito da tela.
32. Clique nas botoeiras DiscTag . As válvulas devem mudar de cor com base em seu status On/ Off.
33. Retorne para o modo Development clicando uma vez em Development!
Treinamento Wonderware
Laboratório 3 – Configuração de links de animação
4-57
Animação do slider 34. Clique duas vezes com o mouse no objeto indicador.
35. Clique no botão Horizontal na área Sliders da caixa de diálogo Animation Selection . 36. Configure o slider com os atributos exibidos na figura a seguir:
37. Clique em OK. 38. Para validar To Right / Horizontal Movement, selecione a barra indicadora. A largura da barra aparece na parte inferior da janela WindowMaker.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-58
Módulo 4 – Links de animação Animação do campo RealTag Text 39. Clique duas vezes com o mouse no campo de texto RealTag = #. 40. Clique no botão Analog na seção Touch Links / User Inputs da caixa de diálogo Animation Selection . 41. Configure o link para corresponderem à figura a seguir:
42. Clique em OK.
Adição de um link de percentual de preenchimento 43. Clique duas vezes com o mouse na barra azul Value Indicator no objeto Slider .
44. Selecione Percent Fill / Horizontal.
Treinamento Wonderware
Laboratório 3 – Configuração de links de animação
4-59
45. Definir o link Horizontal Percent Fill para corresponder à figura a seguir (cor de fundo é opcional).
46. Clique no botão OK superior. 47. Alterne para o Runtime. 48. Deslize o indicador clicando e mantendo pressionado o botão esquerdo do mouse. Os valores juntamente com a barra indicadora devem corresponder aos valores exibidos para a tag.
49. Clique na tela de valor. A moldura torna-se ativa e um campo de entrada é exibido:
50. Insira um valor diferente do exibido e pressione Enter (neste exemplo, o valor é ajustado como 200).
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-60
Módulo 4 – Links de animação O indicador de valor deve mover. Você deverá ver o link do percentual de preenchimento funcionar na barra indicadora. A tela RealTag = agora exibe 200.
51. Retorne para Development.
Configuração de links de objeto elipse 52. Clique duas vezes com o mouse no objeto Ellipse e atribua os seguintes atributos de Link: Seleção de link
Dimensão de objeto - Altura
Expressão
RealTag
Valor na altura máxima
1000
Valor na altura mínima
0
Altura máxima %
100
Altura mínima %
0
Âncora
Meio
Seleção de link
Dimensão de objeto - Largura
Expressão
RealTag
Valor na largura máxima
1000
Valor na largura mínima
0
Largura máxima %
100
Largura mínima %
0
Âncora
Centro
Seleção de link
Cor de preenchimento - analógico
Expressão
RealTag
Break Points:
100, 200, 300, 400, 500, 600, 700, 800, 900
Cores
9 cores a escolher
Treinamento Wonderware
Laboratório 3 – Configuração de links de animação
4-61
A figura a seguir exibe a configuração Fill Color - Analog:
53. Alterne para o Runtime. 54. Mova o indicador para frente e para trás com o slider. O círculo aumenta, diminui e muda as cores ao mover o indicador. 55. Alterne para o Desenvolvimento.
Configuração de links de objeto ampliador 56. Selecione o objeto Escalator.
57. Clique no botão Send to Back.
. Observe que a imagem contém diversos objetos.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-62
Módulo 4 – Links de animação 58. Selecione o objeto Steps (cubos diversos).
59. Configure o objeto Steps com os atributos de Link a seguir: Seleção de link
Ponto de referência - Vertical
Expressão
$Second MOD 10
Valor no máximo
10
No mínimo
0
Para cima
25
Para baixo
0
Seleção de link
Ponto de referência - Horizontal
Expressão
$Second MOD 10
Na extremidade esquerda
0
Na extremidade direita
10
Para a esquerda
0
Para a direita
25
60. Selecione o objeto Railing (célula grande). 61. Clique no botão Bring to Front. 62. Alterne para Runtime e observe a mudança das etapas.
Treinamento Wonderware
Seção 4 – Uso de SmartSymbols
4-63
Seção 4 – Uso de SmartSymbols Objetivos da seção z
Gerar um SmartSymbol
z
Editar um SmartSymbol
z
Usar o gerenciador SmartSymbol
Introdução SmartSymbols integram a tecnologia orientada ao objeto com os gráficos InTouch para transformá-los em modelos reutilizáveis. Mudanças feitas aos modelos automaticamente se propaguem por todo o aplicativo, mesmo em nós de microcomputador em rede diversos. Como resultado, os engenheiros gastam menos tempo criando, modificando e validando e revalidando aplicativos IHM. Com o uso do SmartSymbol Manager, os desenvolvedores de aplicativo podem criar modelos de gráficos que podem se conectar a Objetos ArchestrA, tags InTouch locais e tags InTouch através de referências remotas. Estes modelos de símbolo são salvos na Biblioteca SmartSymbol e podem ser iniciados selecionando-os e posicionando-os dentro de janela InTouch. Qualquer gráfico na janela InTouch que foi transformado em uma célula pode ser convertido em SmartSymbol. Além disso, bibliotecas de SmartSymbols podem ser exportados para outros aplicativos e fábricas, permitindo que empresas padronizem os gráficos em toda a organização. Uma vez que um exemplo de SmartSymbol é desenvolvido, se os usuários precisam mudar um exemplo, eles simplesmente modificam o modelo SmartSymbol e a mudança é propagada automaticamente em todo o aplicativo, para toda janela na qual um exemplo SmartSymbol foi usado. Isto torna a mudança, atualização e modificação de aplicativos muito fácil e rápido. Validar e revalidar aplicativos após a modificação também são simplificadas com SmartSymbols.
Geração de SmartSymbol Qualquer gráfico pode tornar-se um SmartSymbol, uma vez que ele seja convertido a célula. Entretanto, o SmartSymbol mais versátil tem referências de dados de tag e animação. É possível decidir percorrer seus aplicativos InTouch para identificar objetos gráficos semelhantes ou idênticos para determinar o que você deve construir em sua biblioteca SmartSymbol. Ou, pode decidir por criar todos seus SmartSymbols antes de construir qualquer aplicativo. De qualquer modo, você começar com um gráfico.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-64
Módulo 4 – Links de animação Configuração de gráfico a. Crie ou posicione um gráfico em uma janela. b. Atribua um tagname ou tagnames ao gráfico. c. Configure animação para o gráfico. d. Selecione todo o gráfico e escolha Make Cell.
Geração de um SmartSymbol a. Clique com o botão direito do mouse no gráfico e selecione SmartSymbol / Generate SmartSymbol. O novo símbolo será exibido na janela SmartSymbol - Management Mode, com o nome de NewSymbol.
b. Clique uma vez em NewSymbol e mude o nome. c. Clique em Close. O WindowMaker solicita que substitua a célula original pelo novo SmartSymbol:
d. Clique em Yes.
Treinamento Wonderware
Seção 4 – Uso de SmartSymbols
4-65
O SmartSymbol exibe agora alças de dimensionamento abertas em sua janela. Isto indica que ele é um SmartSymbol e não apenas uma célula.
Assistente do SmartSymbol a. Clique em no ícone SmartSymbol Wizard janela de aplicativo. Seu cursor muda
para colocar o SmartSymbol dentro de sua
.
b. Destaque o SmartSymbol que deseja posicionar em seu aplicativo na janela InTouch SmartSymbol - Select Mode e clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-66
Módulo 4 – Links de animação A caixa de diálogo SmartSymbol Properties é exibida:
Referência de modelo: O tagname associado com o SmartSymbol que foi criado originalmente (Modelo). Referência de exemplo: O tagname associado com o SmartSymbol posicionado em sua janela InTouch (Exemplo). c. Na janela SmartSymbol Properties, clique na caixa de seleção Show Text Strings . d. Clique no botão elipse Browser.
na coluna Instance References. Isto acessará o Tagname
e. Selecione o tagname apropriado. f.
Pressione a tecla tab após selecionar o Tagname para garantir que selecionou um Tagname aceito.
g. Clique em OK.
Treinamento Wonderware
Seção 4 – Uso de SmartSymbols
4-67
h. O SmartSymbol aparecerá em sua janela de aplicativo.
Substituir De forma alternativa, se diversos Tagnames e Strings de Texto requerem a mesma mudança de Instance Reference, use o recurso Replace. a. Clique no ícone SmartSymbol Wizard janela de aplicativo. Seu cursor muda para
para colocar o SmartSymbol dentro de sua
.
b. Na janela SmartSymbol - Select Mode destaque o SmartSymbol que deseja posicionar em seu aplicativo
3. Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-68
Módulo 4 – Links de animação A caixa de diálogo SmartSymbol Properties é exibida:
d. Clique no botão Replace. A caixa de diálogo Replace é exibida:
e. Insira o texto nos campos Find what e Replace with. f.
Clique em Replace All.
Treinamento Wonderware
Seção 4 – Uso de SmartSymbols
4-69
g. Clique em Cancel quando terminar. O Tagname e a String de texto Instance References foram alterados
h. Clique em OK. O SmartSymbol exibe o Tagname atualizado:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-70
Módulo 4 – Links de animação Edição de SmartSymbols e propagação de mudanças Uma vez que tenha posicionado diversos SmartSymbols em várias janelas do seu aplicativo, pode ser que precise fazer uma alteração ou uma adição. Ao invés de procurar cada instância do SmartSymbol e aplicar a mudança manualmente, é possível editar o SmartSymbol e propagar as mudanças em todas as janelas de seu aplicativo.
Iniciar a edição do SmartSymbol a. clique com o botão direito do mouse em uma área em branco de qualquer janela de aplicativo InTouch. b. Escolha Start SmartSymbol Edit. (Este exemplo mostra um SmartSymbol já na janela. Ao final do exemplo, você verá que ele muda para refletir as edições feitas.)
Treinamento Wonderware
Seção 4 – Uso de SmartSymbols
4-71
A caixa de diálogo InTouch SmartSymbol - Select Mode é exibida:
c. Selecione o SmartSymbol que deseja editar. d. Clique em OK. e. Clique com seu cursor em uma área aberta da janela para posicionar temporariamente o SmartSymbol durante a edição.
f.
Clique em Break Cell se necessário.
g. Faça as mudanças/inclusões desejadas no SmartSymbol.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-72
Módulo 4 – Links de animação h. Selecione todo o objeto.
Adicione elementos e aumente a dimensão total do SmartSymbol
Crie uma Célula quando concluir as
i.
Clique no ícone Make Cell para transformar novamente em uma célula. Alças de dimensionamento da célula são exibidas ao redor do SmartSymbol editado:
Treinamento Wonderware
Seção 4 – Uso de SmartSymbols
4-73
Conclusão da edição do SmartSymbol j.
Clique com o botão direito do mouse na célula e escolha SmartSymbol / End SmartSymbol Edit.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-74
Módulo 4 – Links de animação Envio da edição k. Uma lista de todas as janelas em seu aplicativo contendo o SmartSymbol é exibida. Verifique se a edição deve ser aplicada aos SmartSymbols nestas janelas e escolha Commit Edit.
Quando deseja atualizar a dimensão do SmartSymbol, selecione o Ponto de Âncora para iniciar a mudança
Obs.: Ao fazer a edição de um SmartSymbol, tenha em mente o seguinte: O aumento da dimensão ou do espaço total que o SmartSymbol ocupa na janela durante o modo de edição somente afetará a dimensão dos SmartSymbols indicados se selecionar Update Size of Symbols in Application. Se não selecionar Update Size, eles permanecerão com a dimensão original e a imagem se ajustará automaticamente para encaixar-se no espaço original.
A mudança aplica-se a cada instância do símbolo
Treinamento Wonderware
Seção 4 – Uso de SmartSymbols
4-75
Gerenciamento de SmartSymbols O SmartSymbol Manager é usado para diversos fins, incluindo: z
Visualizar os atributos SmartSymbol
z
Organizar seus SmartSymbols em pastas
z
Copiar e excluir SmartSymbols
z
Importar / Exportar SmartSymbols
Visualização dos atributos SmartSymbol Quando um SmartSymbol é gerado, ele tem determinados atributos atribuídos a ele, como Tagnames e texto (strings). Estes atributos podem ser modificados quando iniciar uma instância de um SmartSymbol. Para visualizar os atributos SmartSymbol a. Clique em Special / SmartSymbols / Manage SmartSymbol. b. Selecione SmartSymbol. c. Clique na guia Attribute List no painel inferior esquerdo da janela. Os atributos para o SmartSymbol selecionado são exibidos:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-76
Módulo 4 – Links de animação Organização de SmartSymbols SmartSymbols podem ser organizados em pastas por tipo, categoria, sala, linha de produto ou qualquer método de organização que seja significativo em sua empresa. Para organizar os SmartSymbols, comece acessando o SmartSymbol Manager. a. Clique em Special / SmartSymbols / Manage SmartSymbol. A janela SmartSymbol - Management Mode é exibida:
b. Clique em InTouch Symbols para destacar a pasta. c. Clique em File / New Folder. d. Nomeie a nova pasta com base no método de organização que escolheu.
Treinamento Wonderware
Seção 4 – Uso de SmartSymbols
4-77
e. Arraste o SmartSymbol da pasta InTouch Symbols para sua pasta apropriada.
Renomear, copiar, excluir e recuperar SmartSymbols Renomear, copiar, excluir e recuperar SmartSymbols podem ser realizados no SmartSymbol Manager. Para renomear um SmartSymbol a. Clique em SmartSymbol para destacá-lo. b. Clique em Edit / Rename. c. Digite o novo nome e pressione Enter. d. O SmartSymbol é exibido com o novo nome. Para copiar um SmartSymbol a. Clique em SmartSymbol em SmartSymbol Manager para destacá-lo. b. Clique em Edit / Copy. c. Clique na pasta onde deseja que o novo SmartSymbol seja exibido. d. Clique em Edit / Paste.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-78
Módulo 4 – Links de animação O novo SmartSymbol é exibido. Se colocado na mesma pasta do original, ele será nomeado como Cópia do .
Para excluir um SmartSymbol a. Clique em SmartSymbol para destacá-lo. b. Clique em File / Delete. A janela Confirm Symbol Delete é exibida.
Para recuperar um SmartSymbol excluído a. Clique em uma instância órfã desse SmartSymbol na janela do aplicativo InTouch. Obs.: Se um SmartSymbol excluído nunca foi aplicado em uma janela de aplicativo InTouch, ele não pode ser recuperado. b. Clique em Special / SmartSymbol / Recover SmartSymbol. c. O SmartSymbol será gerado e exibido na janela SmartSymbol - Management Mode, com o nome NewSymbol. Renomeie como apropriado.
Treinamento Wonderware
Seção 4 – Uso de SmartSymbols
4-79
Exportação da biblioteca SmartSymbol Sua biblioteca SmartSymbol pode ser exportada para uso em outros aplicativos InTouch. a. Acesse o SmartSymbol Manager. b. Clique em File / Export.
c. Nomeie seu arquivo SmartSymbol exportado como desejado e posicione-o no diretório apropriado. d. Clique em Save. A biblioteca SmartSymbol exportada está agora disponível para ser importada para qualquer aplicativo InTouch.
Importação da biblioteca SmartSymbol e. Abra o aplicativo InTouch para o qual deseja importar a biblioteca SmartSymbols. f.
Certifique-se de que todas as janelas InTouch Application estão fechadas.
g. Clique em Special / SmartSymbol / Manage SmartSymbols. h. Clique em File / Import. i.
Clique no arquivo .www que deseja importar e clique em Open. Se algum SmartSymbol existir em seu aplicativo com o mesmo nome dos que estão sendo importados, você pode escolher entre Ignorá-lo , Sobrescrevê-lo ou Renomeá-lo.
j.
Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-80
Módulo 4 – Links de animação
– Deixado em branco intencionalmente –
Treinamento Wonderware
Laboratório 4 – Uso de SmartSymbols
4-81
Laboratório 4 – Uso de SmartSymbols Introdução O laboratório a seguir explica a criação e a manipulação de SmartSymbols. Você criará um novo SmartSymbol, editará o SmartSymbol, gerenciará o SmartSymbol e outros. No Módulo 2, um Símbolo foi gerado com a criação de um objeto gráfico para representar o objeto físico da fábrica (uma válvula). No Módulo 3, um Tagname de Memória Discreto foi definido para a válvula denominada DiscTag1 para simular a abertura e o fechamento da válvula. No Módulo 4, foram usados links de animação para exibir graficamente a válvula nos status ativada ou desativada, enquanto a válvula DiscTag1 mudava de ativada para desativada. Você também copiou a válvula e atribuiu a DiscTag2 a ela. Agora precisa mudar os dois símbolos da válvula para exibir um sensor. Ao invés de editar cada símbolo, no laboratório a seguir você mudará um símbolo dentro de uma célula e dentro de um SmartSymbol e usará o novo SmartSymbol em sua janela Links.
Objetivos Ao final deste laboratório, você: z
Gerar um novo SmartSymbol
z
Aplicar o novo SmartSymbol
z
Editar o SmartSymbols e propagar mudanças
z
Gerenciar SmartSymbols
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-82
Módulo 4 – Links de animação Geração de SmartSymbol Geração de um SmartSymbol Neste laboratório, você começará a mudar o gráfico Valve1 existente dentro de um SmartSymbol. 1. Abra a janela Links em seu aplicativo InTouch, se ainda não estiver aberto. 2. Clique em no símbolo Valve1 para selecioná-lo. 3. Mantenha a tecla Shift pressionada e clique no botão DiscTag1. 4. Clique no ícone Make Cell
.
5. Clique com o botão direito do mouse na nova célula e selecione SmartSymbol / Generate SmartSymbol. 6. O novo SmartSymbol será exibido na janela SmartSymbol - Management Mode, com o nome de NewSymbol. 7. Clique em NewSymbol. O campo Name se tornará editável:
8. Mude o nome para Valve. 9. Clique em Close para fechar a janela SmartSymbol - Management Mode .
Treinamento Wonderware
Laboratório 4 – Uso de SmartSymbols
4-83
O WindowMaker solicita que substitua a célula original pelo novo SmartSymbol: 10. Clique em Yes.
11. Valve1 em sua janela Links é agora um SmartSymbol, exibindo as alças de dimensionamento de aberta quando selecionado.
Edição de SmartSymbols e propagação de mudanças Agora você mudará o SmartSymbol Valve para exibir um Sensor.
Iniciar a edição do SmartSymbol 12. Feche a janela Links e abra a janela Scratch . 13. Clique com o botão direito do mouse em uma área em branco da janela. 14. Escolha SmartSymbol / Start SmartSymbol Edit.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-84
Módulo 4 – Links de animação
15.
Clique com seu cursor em uma área em branco da janela para posicionar temporariamente o SmartSymbol durante a edição.
16. Selecione o SmartSymbol Valve e clique em OK. O SmartSymbol Valve é exibido.
17. Clique no ícone Wizards
.
18. Clique em Symbol Factory, selecione o Symbol Factory Wizard e clique em OK.
19. Clique com seu cursor logo acima do texto Valve 1. 20. Encontre Sensor1 dentro da Categoria Sensors. Dica: com a categoria selecionada, digite SEN. A Categoria destacada irá para Sensors.
Treinamento Wonderware
Laboratório 4 – Uso de SmartSymbols
4-85
21. Clique em Options.
22. Clique na caixa de seleção Flip Horizontal e clique no botão +90 . 23. Clique em OK na janela Symbol Options e em OK na janela Symbol Factory. O Sensor é exibido:
Obs.: É possível girar o Sensor após ele ser posicionado, desagrupando a célula e escolhendo girar, ou clicando duas vezes com o mouse em Sensor e movendo-se para Options. O último método girará o objeto dentro de sua dimensão original, o que pode não ser o efeito desejado. 24. Selecione os dois objetos e clique no ícone Make Cell.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-86
Módulo 4 – Links de animação Conclusão da edição do SmartSymbol 25. Clique com o botão direito do mouse na célula sobre SmartSymbol/End SmartSymbol Edit.
Propagação da edição Uma lista de todas as janelas em seu aplicativo contendo o SmartSymbol editado é exibida. Verifique se a edição deve ser propagada aos SmartSymbols nestas janelas. Qualquer mudança nos Tagnames são também exibidas para verificação na coluna New Symbol References. O valores da coluna Library Symbol References correspondem aos valores da coluna New Symbol References, portanto nenhuma mudança foi feita. 26. Clique no botão Commit Edit.
27. Feche a janela Scratch. Salve se solicitado. 28. Abra a janela Links. Observe que Valve2 não foi modificada.
Agora é com você. Por que Valve2 não exibiu o novo Sensor? Dica: Consulte “Substituir” na página 4-67.
Treinamento Wonderware
Laboratório 4 – Uso de SmartSymbols
4-87
Gerenciamento de SmartSymbols Nesta seção do laboratório, você: z
Visualizará os atributos SmartSymbol
z
Organizará SmartSymbols
z
Renomeará, copiará, excluirá e recuperará SmartSymbols
z
Importará e exportará SmartSymbols
Visualização dos atributos SmartSymbol 29. Acesse o SmartSymbol Manager (Special / SmartSymbol / Manage SmartSymbol). 30. Clique em Valve SmartSymbol para destacá-lo. 31. Clique na guia Attribute List. Os atributos para o Valve SmartSymbol são exibidos:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-88
Módulo 4 – Links de animação Organização de SmartSymbols 32. Clique na pasta InTouch Symbols para destacá-la (ainda dentro do SmartSymbol Manager). 33. Clique em File / New Folder. 34. Digite Valves e pressione Enter. 35. Arraste o símbolo Valve para a nova pasta Valves.
Treinamento Wonderware
Laboratório 4 – Uso de SmartSymbols
4-89
Renomear, copiar, excluir e recuperar SmartSymbols Renomear um SmartSymbol 36. Clique no SmartSymbol Valve para destacá-lo. 37. Clique em Edit / Rename. 38. Digite o novo nome a seguir: Valve with Sensor. 39. Pressione Enter. Valve é renomeado:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-90
Módulo 4 – Links de animação Copiar um SmartSymbol 40. Clique no SmartSymbol Valve with Sensor para destacá-lo. 41. Clique em Edit / Copy. 42. Clique em Edit / Paste. 43. Renomeie a nova válvula como o seguinte: Valve without Sensor. 44. Pressione Enter.
Agora é com você, Edite o novo SmartSymbol Valve Without Sensor , removendo o Sensor. Consulte “Edição de SmartSymbols e propagação de mudanças” na página 4-83 para ter uma referência. Dica: Use Break Cell durante a edição. Excluir um SmartSymbol 45. Acesse o SmartSymbol Manager. 46. Clique no SmartSymbol Valve with Sensor para destacá-lo. 47. Clique em File / Delete. 48. Clique em Yes na caixa de diálogo Confirm Symbol Delete .
Treinamento Wonderware
Laboratório 4 – Uso de SmartSymbols
4-91
Recuperação de um SmartSymbol excluído 49. Abra a janela Links em seu aplicativo InTouch. 50. Clique no gráfico Valve1 para colocá-lo em foco. 51. Clique em Special / SmartSymbol / Recover SmartSymbol. Um SmartSymbol será gerado a partir da célula e será exibido na janela SmartSymbol Management Mode, com o nome New Symbol. 52. Renomeie o novo SmartSymbol como Valve with Sensor e pressione Enter. 53. Mova o Valve with Sensor para a pasta Valves. Exportação de SmartSymbols. 54. Clique em File / Export do SmartSymbol Manager. 55. Salve sua biblioteca SmartSymbol como C:\Applications\MySmartSymbols.www —sua biblioteca SmartSymbol está agora pronta para ser importada para qualquer aplicativo InTouch.
Importação de SmartSymbols 56. Feche todas as janelas em seu aplicativo InTouch, salvando se necessário. 57. Clique em Special / SmartSymbol / Manage SmartSymbols. 58. Clique em File / Import. 59. Navegue para a pasta de localização fornecida por seu instrutor. 60. Se a janela Import Preferences for exibida, clique na caixa de seleção Rename imported symbol. 61. Preencha o Append to symbol name da seguinte forma: _Instructor. 62. Clique em OK. 63. Revise os SmartSymbols importador no SmartSymbol Manager.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
4-92
Módulo 4 – Links de animação
– Deixado em branco intencionalmente –
Treinamento Wonderware
Módulo 5
InTouch QuickScripts Seção 1 – Tipos de QuickScript
5-3
Seção 2 – Como trabalhar com o editor Script
5-13
Seção 3 – QuickScripts – Referência rápida
5-35
Laboratório 5–Uso do InTouch QuickScripts
5-39
5-2
Módulo 5 – InTouch QuickScripts Objetivos do módulo z
Apresentar QuickScripts
z
Apresentar os tipos QuickScript
z
Oferecer exemplos de QuickScript
z
Usar o editor de scripting para criar QuickScripts
z
Criar uma ampla variedade de funções de sistema personalizadas e automatizadas usando QuickScripts
Treinamento Wonderware
Seção 1 – Tipos de QuickScript
5-3
Seção 1 – Tipos de QuickScript Objetivo da seção z
Explicar e definir os diversos tipos de InTouch QuickScript
Esta seção explicará e definirá os diversos tipos de InTouch QuickScript.
Introdução QuickScript é o nome de uma linguagem e funcionalidade de scripting usada no ambiente InTouch. A linguagem de scripting em si é muito semelhante às linguagens de PLC como IEC61131 e Texto Estruturado. Os recursos do InTouch QuickScript Permitem executar comandos e operações lógicas com base no atendimento de critérios especificados, como quando uma tecla é pressionada, uma janela aberta ou um valor é modificado. Todos os InTouch QuickScripts são orientados a evento, como uma mudança de dados, uma condição, um clique com o mouse ou um temporizador. A ordem de processamento é específica para o aplicativo. Enquanto pode parecer que há uma ordem inerente no modo que diversos scripts iniciados pelo mesmo evento são programados, não há garantia de nenhuma ordem específica. Portanto, ao usar QuickScripts, você deve construir qualquer dependência na ordem de processamento. Tipo de Script
Descrição
Aplicativo
Scripts vinculados a todo um aplicativo
Janela
Scripts vinculado a uma janela específica
Tecla
Scripts vinculado a uma tecla ou combinação específica de teclas no teclado
Ação Touch
Scripts associados ao objeto vinculado a um link de animação Touch Link - Touch Pushbutton - Action
Mudança de dados
Scripts vinculados a um tagname e/ou tagname.field apenas
Condição
Scripts vinculados a um tagname discreto ou expressão
ActiveX Event
Scripts que executam eventos de controle ActiveX em Runtime
QuickFunctions
Scripts criados que podem ser chamados de outros InTouch QuickScripts ou de expressões de link de animação. QuickFunctions podem ser síncronos ou assíncronos, enquanto todos os outros tipos são apenas síncronos
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-4
Módulo 5 – InTouch QuickScripts Scripts de aplicativo Scripts de aplicativo são vinculados a todo o aplicativo. Eles podem ser usados para iniciar outros aplicativos, criar simulações de processo, calcular variáveis, etc. Há três tipos de Scripts de aplicativo
z
On Startup: Executa uma vez quando o aplicativo é iniciado. Executa antes de qualquer janela abrir ou que a inicialização de Runtime ocorra. Não é possível fazer referência a métodos ActiveX, propriedades ou eventos em um script On Startup. As comunicações de E/S são inicializadas após o script Application On Startup executar. As tags do tipo E/S ou referências de tagname remotas não podem ter referência em um script On Startup.
z
While Running: Executa repetidamente na freqüência especificada enquanto o aplicativo estiver em execução. Quando um script While Running é selecionado, o campo Every Msec torna-se ativo. O campo contém o número de milissegundos que devem ser transcorridos antes do script executar. O script executará repetidamente na freqüência especificada. Para executar o script imediatamente, crie um script On Startup idêntico. Desde que a condição ou evento para o script While Running for atendida, o script executará repetidamente na freqüência especificada.
z
On Shutdown: Executa uma vez quando o aplicativo é fechado. As tags do tipo E/S e as referências de tagname remotas não serão atualizadas em um script On Shutdown. Script On Shutdown não pode ser usado para iniciar outros aplicativos.
Treinamento Wonderware
Seção 1 – Tipos de QuickScript
5-5
Scripts Janela Scripts janela funcionam dentro de uma janela específica.
Há três tipos de Scripts de janela:
z
On Show: Executa uma vez quando a janela é aberta inicialmente.
z
While Showing: Executa repetidamente na freqüência especificada enquanto a janela estiver em exibição. Quando um script While Showing é selecionado, o campo Every Msec torna-se ativo. O campo contém o número de milissegundos que devem ser transcorridos antes do script executar. Para executar o script imediatamente, crie um script On Show idêntico. Desde que a condição ou evento para o script While Showing for atendida, o script executará repetidamente na freqüência especificada.
z
On Hide: Executa uma vez quando a janela é ocultada.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-6
Módulo 5 – InTouch QuickScripts Scripts de tecla Scripts de tecla executam com uma tecla ou combinação de teclas específica no teclado Eles podem ser usados para criar teclas globais para o aplicativo, como retornar à janela do menu principal, desconectar o operador, etc.
Há três tipos de Scripts de tecla z
On Key Down: Executa uma vez quando a tecla é pressionada inicialmente.
z
While Down: Executa repetidamente na freqüência especificada enquanto a tecla é mantida pressionada. Quando um script While Down é selecionado, o campo Every Msec fica ativo. O campo contém o número de milissegundos que devem ser transcorridos antes do script executar. Para executar o script imediatamente, crie um script On Key Down idêntico. Desde que a condição ou evento para o script While Down for atendida, o script executará repetidamente na freqüência especificada.
z
On Key Up: Executa uma vez quando a tecla é liberada.
Obs.: Os equivalentes de tecla usados nas janelas ativas locais para scripts Touch Pushbutton Action suprimem qualquer Script de tecla com os mesmos equivalentes de tecla.
Treinamento Wonderware
Seção 1 – Tipos de QuickScript
5-7
Scripts Touch Action Scripts Touch Action são semelhantes ao Scripts de tecla, exceto por serem associados a um objeto vinculado a um Touch Link - Touch Pushbutton - Action (acessa o editor script através da caixa de seleção de link de animação.) Eles são executados quando o operador clica ou pressiona o objeto ou botão atribuído ao link.
Há treze tipos de links Touch Action Scripts . Os Touch Action Scripts a seguir executam uma vez quando a tecla ou botão é inicialmente pressionado: z
On Left Click/Key Down
z
On Right Click
z
On Center Click
O Touch Action Scripts a seguir executa repetidamente na freqüência especificada enquanto a tecla ou botão for mantida pressionada. Quando ele é selecionado, o campo Every Msec fica ativo. O campo contém o número de milissegundos que devem ser transcorridos antes do script executar. z
While Left/Key Down
z
While Right Down
z
While Center Down
Os Touch Action Scripts a seguir executam uma vez quando a tecla ou botão é liberado: z
On Left/Key Up
z
On Right Up
z
On Center Up
Os Touch Action Scripts a seguir executam uma vez ao clicar duas vezes com o botão do mouse. O recurso de equivalente em tecla desabilita quando eles são selecionados, uma vez que não há equivalente no teclado para a ação clicar duas vezes com o botão do mouse. z
On Left Double Click
z
On Right Double Click
z
On Center Double Click
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-8
Módulo 5 – InTouch QuickScripts Os seguintes Touch Action Scripts executam um vez quando o cursor passa sobre um objeto. O script é atrasado com o campo After X msec. After X msec é o período de tempo que o cursor deve ficar sobre o objeto antes do script executar. O recurso de equivalente na tecla é desabilitado quando este tipo de condição é selecionado, uma vez que não há equivalente no teclado para mover o cursor do mouse sobre um objeto. z
On Mouse Over
Obs.: Se um objeto ou botoeira de ação na janela ativa é atribuída à mesma tecla usada para um Key Script, o link equivalente de tecla no teclado na janela ativa terá precedência sobre a execução do Key Script.
Atribuir um equivalente em tecla ao script O editor Key Script é diferente de outros editores QuickScript. Uma vez que você está criando scripts que se aplicam a uma tecla, é necessário especificar a(s) tecla(s) que o operador pressionará para executar o script. Atribuir equivalentes de tecla a scripts é discutido em Módulo 4 Seção 2, “Animação de objetos.”
Scripts de troca de dados Scripts de troca de dados são vinculados a um tagname e/ou tagname.field apenas
Eles são executados uma vez quando o valor de um tagname ou de um tagname.field muda com um valor maior do que a zona morta do valor definida no Dicionário de Tagname. Uma vez que Scripts de Troca de Dados são executados com base em uma mudança no valor de dados, é necessário especificar um tagname ou tagname.field na caixa Tagname[.field].
Condition Scripts Condition Scripts são vinculados a uma tag discreta ou uma expressão que seja igual a Verdadeiro ou Falso. Este tipo de script é o mais usado. As expressões discretas com tagnames analógicos também podem ser usadas.
Treinamento Wonderware
Seção 1 – Tipos de QuickScript
5-9
Uma vez que os Condition Scripts são executados com base no cumprimento de uma condição, é necessário especificar a condição (uma tag discreta ou expressão) na caixa Condition. A expressão resultaria em uma condição referente a uma tag ser VERDADEIRA ou FALSA.
Por exemplo: TankLevel >= 75. Quando o valor da TankLevel é maior ou igual a 75, o script executará. Obs.: O valor para a condição deve fazer a transição para tornar-se verdadeira ou falsa antes da execução do script. Por exemplo, se o valor inicial quando o WindowViewer é iniciado for verdadeiro, o valor deve tornar-se falso e, então, verdadeiro novamente para que um script On True execute. Há quatro tipos de scripts que podem ser aplicados a uma condição: z
On False: Executa uma vez quando a condição faz a transição para falso.
z
While False: Executa repetidamente quando a condição é falso. Freqüência de execução com base no valor do campo Every Msec .
z
On True: Executa uma vez quando a condição faz a transição para verdade.
z
While True: Executa repetidamente quando a condição é verdade. Freqüência de execução com base no valor do campo Every Msec .
Os scripts While True e While False começam a execução após o número de milissegundos especificado for transcorrido. Para gerar a execução imediata, crie scripts duplicados On True e/ ou On False. Todos os tipos de script podem ser aplicados a uma mesma condição.
Scripts ActiveX Event A maioria dos controles ActiveX têm eventos associados a eles. Por exemplo, clicar, clicar duas vezes com o mouse, pressionar o mouse e pressionar a tecla são eventos típicos usados em muitos controles ActiveX. Scripts InTouch ActiveX Event suportam ações de eventos. É possível associar um script de Evento ActiveX a cada evento. Executa eventos de controle ActiveX em Runtime (WindowViewer) Obs.: Implementação da funcionalidade ActiveX é detalhada no InTouch® HMI 9.5 Curso avançado de desenvolvimento do aplicativo.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-10
Módulo 5 – InTouch QuickScripts QuickFunctions QuickFunctions são scripts que são chamados a partir de outros scripts e de expressões de link de animação. O código é armazenado em um local, permitindo que todas as instâncias de script sejam atualizadas com uma sessão de edição Reutilizar QuickFunctions reduz a manutenção de seu aplicativo reduzindo a quantidade de códigos duplicados que são copiados e colados continuamente para os scripts. O código reutilizado é armazenado em um script e em um local, podendo assim atualizar todas as instâncias de script com uma sessão de edição. QuickFunctions podem ser definidos como assíncronos, de forma que, quando executados, eles executarão em segundo plano do processo principal WindowViewer (Runtime). Esta funcionalidade permite que o WindowViewer separe operações demoradas (como chamar um banco de dados SQL) do fluxo de programa principal. Quando uma operação que consome recursos precisa ser realizada, um QuickFunction assíncrono oferece um método eficiente para todos os links de animação e outras funcionalidades InTouch permanecerem ativas enquanto a operação é executada. Caixas de expressão de link de animação são limitadas a 1023 caracteres. Entretanto, é possível criar um QuickFunction mais complexo e chamá-lo de uma caixa de expressão de link de animação. Isto permite ao desenvolvedor usar a declaração CALL para chamar um script complexo que contém uma declaração RETURN que retorna o resultado de volta para a expressão. Por exemplo, quando diversos tagnames de 30 caracteres cada são adicionados (usando "&" e ":") , somente é possível usar 8 tagnames (mais espaços) na expressão. Entretanto, ao usar a declaração CALL MYSCRIPT($Second), na expressão, é possível executar um QuickFunction que pode conter centenas de tagnames com 30 caracteres. Este QuickFunction usará a declaração RETURN para fornecer um valor de volta à expressão. Obs.: Um tagname de "disparo" deve ser usado como um parâmetro para a QuickFunction para forçar a atualização do link de animação. Por exemplo, usando o tagname $Second como o parâmetro para o QuickFunction fará com que a expressão para o link de animação seja avaliada toda vez que o $Second mude de valor. Isto significa que o QuickFunction é chamado a cada segundo. Depois de criar e salvar um QuickFunction, é possível chamá-lo imediatamente de qualquer outro script ou expressão por seu nome.
O nome pode ter até 31 caracteres de comprimento. Espaços em branco e nomes duplicados não podem ser usados. Este é o nome que outros QuickScripts ou expressões usarão ao chamar o QuickFunction. Este nome será exibido também na caixa de diálogo Choose function quando clicar nos botões All ou Quick no editor QuickScript.
Treinamento Wonderware
Seção 1 – Tipos de QuickScript
5-11
Os campos Arguments contêm cada nome de argumento para seu QuickScript. Os tipos de dados válidos incluem o seguinte. Tipos de dados
Descrição
Integer
Usado para passar uma variável inteira, tagname ou valores constantes
Real
Usado para passar uma variável real, tagname ou valores constantes
Discreto
Usado para passar uma variável discreta, tagname ou valores constantes
Message
Usado para passar uma variável string, tagname ou valores constantes de até 131 caracteres
Veja a seguir as palavras chaves reservadas que não devem ser usadas como nomes de argumentos: Return, Call, Dim, As, Integer, Real, Discrete, Message. Nomes de argumentos são variáveis locais que existem somente dentro do QuickFunction no qual eles foram definidos. É possível usar até 16 argumentos por QuickFunction. Os nomes de argumento podem ter até 31 caracteres de comprimento e espaços não podem ser usados. Devem começar com um caractere alfa (A-Z). Nomes duplicados não podem ser usados. Não use tagnames como nomes de argumento. Os tagnames prevalecem sobre nomes de argumento iguais e seu QuickScript não executará corretamente. Um nome de argumento não consome uma contagem de tag porque eles são tratados como variáveis locais. Argumentos QuickFunction Parâmetros de Script são passados por valor. Expressões de argumento podem ser qualquer expressão de script que retorne um valor do tipo dados inteiro, real, discreto ou mensagem. Todos os valores de expressão de argumento são resolvidos chamando o script antes de executar o QuickFunction. Exemplos: CALL Stuff (5.6, 237, "PI");
Nesta expressão, a constante real 5.6 é passada como argument1, a constante inteira 237 como argumento 2 e a constante mensagem "PI" como argumento 3. CALL Temp (IntegerTag);
IntegerTag é passada como valor de expressão de argumento. CALL ValveOpen (Tag.MaxEU -5);
Valor calculado (Tag.MaxEU -5) é passado como um valor de expressão de argumento. Correspondência entre os tipos de dados de argumento Deve haver uma correspondência exata da esquerda para a direita entre os tipos de dados que chamam a lista de argumentos da declaração do QuickFunction gravada e chamada. Deve haver também um número exato de argumentos para corresponder ao número de argumentos na lista de argumento QuickFunction armazenada. Coerção é usada para valores Real type-cast para Integer, e Integer para Real. Esta habilidade de modificar o tipo de um valor permite que qualquer argumento analógico seja passado para qualquer outro tipo analógico. Por exemplo, se passar um valor Real de 1.23 para um argumento Integer ele usará apenas o 1 e o .23 será perdido. Da mesma forma, se passar um valor Inteiro de 1 para um argumento Real ele
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-12
Módulo 5 – InTouch QuickScripts promoverá o 1 para 1.0. Entretanto, apesar deste recurso de coerção, recomendamos que faça uma correspondência exata dos tipos de argumentos chamados com a lista QuickFunction. Sintaxe válida QuickFunction QuickFunctions retornam um valor. A sintaxe e a forma da declaração QuickFunction são as seguintes: CALLQuickFunctionName ( [arg1, ... arg16] );
onde: CALL é a palavra chave requerida em todos os QuickScripts e expressão para chamar um
QuickFunction. QuickFunctionName é um string de 1 a 31 caracteres que corresponde ao nome atribuído ao QuickFunction armazenado. ( [arg1, ...arg16] ) são 0 a 16 expressões de argumento separadas por vírgula entre
parênteses. Usar uma declaração de retorno Um QuickFunction é um script que pode ser chamado de outro script (script chamado). A seguir, um exemplo de um script que está chamando um QuickFunction: RETURNRESULT = CALL MyFunction( StartHour, EndHour);
A declaração RETURN é usada por um QuickFunction para forçar um valor a ser retornado chamando o script. Quando RETURN é encontrada, a execução do QuickFunction finaliza imediatamente. Neste ponto, o QuickFunction retorna um valor para o script que o chama. O tipo de dados retornado pode ser discreto, inteiro, real ou mensagem. No exemplo acima, a tag RETURNRESULT pode ser uma tag do tipo discreta, mensagem, inteira ou real para receber o valor transferido. No exemplo a seguir, se o tagname ConvertType for igual a 0, a expressão abs( (Max / Maxprogress) * 100 ) é calculada e este tipo de dados de resultado real é retornado ao script que chama. IF ConvertType == 0 THEN RETURN abs( (Max / Maxprogress) * 100 ); ELSE RETURN 0; ENDIF;
O tipo de dados do valor de retorno é determinado pelo contexto. Por exemplo: RETURN AnalogTag;
Se o Tagname, AnalogTag, é definido como Memory Integer, a declaração RETURN enviará um valor analógico de volta ao local que está chamando. Somente um valor pode ser retornado.
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script
5-13
Seção 2 – Como trabalhar com o editor Script Objetivos da seção z
Apresentar o QuickScript Editor
z
Identificar as diferentes funções script e suas palavras chaves
Esta seção descreve recursos e funções comuns do QuickScript Editor. Os recursos e as funções que são exclusivos para um tipo de script em particular são descritos mais adiante nesta seção.
Abertura do QuickScript Editor Abrir um QuickScript Editor para criar um novo script pode ser realizado do menu Special ou do Application Explorer. Do Application Explorer:
a. Clique com o botão direito do mouse no tipo de QuickScript e selecione Open ou New. Alguns tipos de QuickScript não incluem o comando New no submenu. Obs.: Os QuickScripts existentes são exibidos na visualização da hierarquia Application Explorer sob seus respectivos ícones típicos QuickScript .
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-14
Módulo 5 – InTouch QuickScripts O InTouch QuickScript Editor exibe a mesma interface básica para todos os tipos de script:
Barra de ferramentas QuickScript
A barra de ferramentas QuickScript realiza as funções de edição básicas. Ícones
Descrição Recortar o texto selecionado do script Copiar o texto selecionado do script Colar o texto dentro do script da área de transferência Inserir uma tag do Dicionário Tagname Inserir um nome de janela do aplicativo atual Inserir um Controle ActiveX através do Navegador de Controle ActiveX Imprimir o script
É possível aumentar o QuickScript Editor para a área para digitação de scripts. Arraste as bordas do editor ou clique no botão Maximize para maximizar o editor na tela do monitor.
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script
5-15
Comandos QuickScript Editor comuns Opções do menu Script
O menu Script contém os comandos de janelas comuns New, Save, Print e Exit. Além disso, o comando Erase é usado para excluir totalmente o script.
Opções do menu Script
Undo: Sua última operação é revertida. Select All: Todo o script é selecionado. Cut: Selecionar o texto a ser removido. O texto recortado é excluído do script e copiado para a área de transferência do Windows. É possível agora colar o texto recortado para outro local neste script ou dentro de outro script. Copy: Selecionar o texto a ser removido. O texto é copiado para a área de transferência do Windows. É possível agora colar o texto copiado para outro local neste script ou dentro de outro script. Obs.: Quando o texto é recortado ou copiado, ele é automaticamente escrito na área de transferência do Windows. Esta informação permanece na área de transferência até que o comando recortar ou copiar subseqüente seja realizado. Paste: O conteúdo da área de transferência do Windows é colado em seu script no local onde está o cursor. Clear: Todo texto no script é apagado. Entretanto, o script não é excluído de seu aplicativo. Se selecionar este comando, cancele o editor de script e abra-o novamente: o script abrirá. Para excluir completamente o script, é necessário usar o comando Script / Erase ou selecionar todo o script. Obs.: O comando Script / Erase está disponível para alguns tipos de QuickScript. O texto excluído não é escrito na área de transferência do Windows. Find: Ativa a caixa de diálogo Replace.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-16
Módulo 5 – InTouch QuickScripts Uso da tela Script Editor
IF, THEN, ELSE
Botões de equivalência e de operador matemático AND, OR, NOT
Botões de equivalência e de operador matemático Botões de equivalência e operador matemático estão localizados na parte inferior do QuickScript Editor. Os botões são usados para inserir rapidamente a palavra chave, função ou símbolo exibidos em seu script na posição do cursor. Tabular/Não tabular texto de Script Posicione o cursor no início da linha a ser tabulada e pressione a tecla TAB. Para remover a tabulação, mantenha pressionada a tecla shift e pressione a tecla TAB . Opções do menu Insert
AS funções podem ser acessadas e inseridas selecionando o comando Insert / Functions no menu Script Editor. Selecione o nome da categoria de função. É possível também inserir Tagnames, Windows e controles ActiveX do menu Insert.
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script
5-17
Funções incorporadas do Script O InTouch oferece diversas funções incorporadas que podem ser vinculadas a objetos ou a botoeiras ou usados em scripts para realizar uma variedade de tarefas. Por exemplo, reconhecer alarmes, ocultar janelas, mudar o tagname da tendência representada por uma pena, etc. Estas funções estão acessíveis através do menu principal Insert/Functions ou clicando nos diversos botões na seção Functions do Script Editor. Uma vez selecionada uma função em sua respectiva caixa de diálogo, a função e seus argumentos requeridos são automaticamente colados em seu script no local onde está o cursor. Após a função ser colada em seu script, destaque o argumento para modificar e inserir o novo valor. Cada função Script incorporada é explicada no Apêndice G. As funções estão listadas na ordem dos botões de comando no script editor.
Os botões de comando Functions disponíveis incluem o seguinte: Função
Descrição
All
A caixa de diálogo Choose function exibe todas as funções disponíveis incluindo as funções para cada programa complementar instalado (Recipe Manager, SPC Pro e SQL Access Manager).
String
A caixa de diálogo Choose function é exibida incluindo todas as funções de string disponíveis.
Math
A caixa de diálogo Choose function é exibida incluindo todas as funções de matemáticas disponíveis.
System
A caixa de diálogo Choose function é exibida incluindo todas as funções de sistema disponíveis. Por exemplo, as funções para iniciar e/ou ativar outro aplicativo, ler e/ou escrever arquivo e informações de disco, etc.
Complementares
A caixa de diálogo Choose function exibe todas as funções disponíveis para cada programa complementar instalado (Recipe Manager, SPC Pro e SQL Access Manager).
Diversos
A caixa de diálogo Choose function é exibida incluindo todas as funções de diversas disponíveis. Por exemplo, as funções de alarmes, tendência de histórico, controles de janela, controles ActiveX, etc.
Quick
A caixa de diálogo Choose function é exibida listando os nomes de todos os QuickFunctions disponíveis a serem chamados pelo script atual.
Ajuda
A caixa de diálogo Choose function to Obtain Help for é exibida listando todas as funções. Clique na função para abrir seu tópico de Ajuda respectivo.
Obs.: Funções de script individuais são descritas na ordem de exibição do botão (script editor) em Apêndice G, “Funções de script.”
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-18
Módulo 5 – InTouch QuickScripts Inserção de uma função em um Script a. Na área Functions do QuickScript Editor, clique no botão de função All. A caixa de diálogo Choose function é exibida:
b. Clique em Next Page para consultar as funções adicionais.
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script
5-19
O restante das funções disponíveis é exibido:
Após selecionar a função, a caixa de diálogo fecha e a função é inserida em seu script na posição do cursor.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-20
Módulo 5 – InTouch QuickScripts c. Para acessar rapidamente o Tag Browser, clique duas vezes com o mouse em uma área em branco na janela QuickScript.
Clique duas vezes com o mouse para ativar o Tag Browser
d. Para acessar uma definição de tagname específico, no Dicionário Tagname, insira o tagname na janela QuickScript e clique duas vezes com o mouse nela. Inserção de um campo Tagname Dot em um Script a. Selecione Insert / Tagname: O Tag Browser é exibido no modo de seleção ilimitado. Obs.: As tags definidas na última fonte de tag acessadas através do Tag Browser serão exibidas. Para mudar uma fonte de tag, clique na seta Tag Source e selecione uma fonte de tag diferente na lista. Clique no botão Define Tag Sources para adicionar ou remover uma fonte de tag da lista Tag Source. b. Selecione o tagname e clique na seta Dot Field. c. Selecione o .field para usar o tagname na lista. d. Clique em OK. O tagname.field selecionado será inserido em seu QuickScript na posição do cursor. Dica: Para inserir rapidamente um tagname .field, insira o tagname seguido de um ponto (.) e clique duas vezes com o mouse à direita do ponto. A caixa de diálogo Choose field name... abrirá Clique no .field que deseja usar. A caixa de diálogo fechará e o .field selecionado será automaticamente inserido em seu QuickScript na posição do cursor.
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script
5-21
Seleção de arquivos Dot do Tag Browser O modo de seleção ilimitado permite a seleção do tagname .fields para a tag selecionada. Quando uma tag e/ou seu campo Dot é selecionado, é automaticamente inserida no InTouch QuickScript, no tagname de link de animação ou na caixa de expressão ou outro local de onde acessou o Tag Browser. Os tagnames definidos em uma fonte de tag local ou remota podem ser exibidos e selecionados neste modo. O modo de seleção ilimitado é acessado clicando duas vezes com o mouse em uma área em branco em uma janela InTouch QuickScript, tagname de link de animação ou caixa expressão ou uma caixa New Name em branco na caixa de diálogo Substitute Tagnames. Ele permite também selecionar tags de fontes de tag definidas, ex.: Industrial Application Server.
Seleção de um campo Dot a. Clique em Special / Scripts / Windows Scripts. b. Clique duas vezes com o mouse em uma área em branco. c. Clique na seta Dot Field para abrir a lista de .fields que podem ser associados com o tipo de tag selecionado. Por padrão, será exibido inicialmente para todos os tipos de tagnames. d. Clique no .field na lista para acrescentar a tag selecionada. Os métodos principais que são exibidos no Tag Browser no modo de seleção ilimitado inclui: z
Clique duas vezes com o mouse no tagname do link de animação tagname ou na caixa de entrada de expressão.
z
Clique duas vezes com o mouse no controle ActiveX ou no tagname Assistente ou na caixa de entrada de expressão.
z
Clique duas vezes com o mouse em uma área em branco em qualquer janela InTouch QuickScript.
z
No editor InTouch QuickScript, selecione o comando Tagname no menu Insert.
z
Pressione as teclas ALT + N no editor InTouch QuickScript.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-22
Módulo 5 – InTouch QuickScripts z
Clique duas vezes com o mouse em uma caixa New Name em branco na caixa de diálogo Substitute Tagnames .
z
Clique duas vezes com o mouse na caixa de entrada Tagname.FieldName na caixa de diálogo Acesso SQL Bind List Configuration.
A barra de status do Tag Browser oferece o status dos seguintes itens para a fonte de tag exibida no momento: z
O número total de itens no aplicativo
z
O nome do item selecionado no momento
z
Tagname .field selecionado, se houver
z
O Access Name associado à fonte de tag
Obs.: Campos Dot serão implementados em Module 6, “Alarms.”
Localização ou substituição dentro de um Script a. Selecione Edit / Find. A caixa de diálogo Replace é exibida:
b. Insira o item a ser localizado (ou substituído) e clique em Find Next. c. Insira o novo item na caixa Replace with para substituir o tagname antigo e clique em Replace ou Replace All. d. A opção Match case localiza as instâncias específicas de letras maiúsculas ou minúsculas. e. Clique em Cancel quando terminar. Dica: Se deseja apenas substituir algumas instâncias de um item, clique em Find Next. O InTouch começará a buscar seu script para o item antigo. Quando o item antigo é localizado, ele será destacado. Clique em Replace para substituir pelo item novo ou clique em Find Next para ignorá-lo e continuar a localização. Para substituir todas as ocorrências de um item específico, clique em Replace All a qualquer momento durante a localização. Inserção de um nome de janela em um Script a. Selecione Insert / Window ou clique no ícone Insert Window . A caixa de diálogo Window Name to Insert exibe os nomes de todas as janelas.
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script
5-23
b. Clique no nome da janela desejada. A caixa de diálogo fecha e o nome da janela é automaticamente inserido em seu script na posição do cursor. Validação de um Script a. Clique em Validate para verificar se sua sintaxe de script é precisa. Isto pode ser feito a qualquer momento. A validação é realizada automaticamente ao clicar em OK ou Save. Se o sistema encontrar erros quando validar um script, uma caixa de mensagem de erro correspondente abrirá. Se nenhuma mensagem for exibida, o script está aceito. Como salvar um Script a. Clique em Save para salvar o primeiro script se vários scripts tiverem que ser configurados. b. Clique em Script / New para escrever um novo script. Scripts Action, Application e Window não são compatíveis com esta função. Restauração de um Script a. Se mudar um script e decidir limpar suas mudanças e restaurar o script original, clique no botão Restore . Um script não pode ser restaurado uma vez que ele tenha sido salvo Scripts Application e Window não são compatíveis com esta função. Como sair do editor de Script É possível sair de todos os editores de script clicando em OK ou clivando no botão X no lado superior direito da barra de legenda. z
Em alguns editores, selecionar Script / Exit fecha o editor script.
z
Clicar em OK ou Script / Exit fará com que o editor script feche e o script será validade e salvo a menos que um erro seja encontrado.
z
Clicar em X fará com que o editor de script feche. Qualquer mudança feita será descartada. Nenhuma validação ocorrerá.
Especificação de uma freqüência de execução Script Nas caixas While Running/Showing/Down Every 0 Milliseconds, insira o número de milissegundos que devem ser transcorridos antes do script ser executado. Ao criar um script Application While Running, scripts Window While Showing, scripts Condition While On True/On False ou scripts Key e Touch Pushbutton Action While Down, é necessário especificar a freqüência (em milissegundos) com que serão executados. Obs.: O WindowViewer fará todas as tentativas possíveis para executar estes tipos de scripts tão rápido quanto o tempo especificado. Entretanto, o desempenho não pode ser garantido. Além disso, os scripts não podem nunca executar mais rápido do que o ajuste Tick Interval especificado nas propriedades WindowViewer.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-24
Módulo 5 – InTouch QuickScripts IF-THEN-ELSE e comparações A declaração IF-THEN-ELSE é usada para executar condicionalmente diversas instruções com base no estado de uma expressão. Os seguintes operadores de comparação são usados para configurar as condições na declaração IF-THEN-ELSE. Greater than <=Less than ou Equal to >=Greater than ou Equal to ==Equivalency ("é igual a") <>Not Equal to Abaixo há alguns exemplos de scripts complexos usando operadores de comparação. Obs.: Cada IF deve ter um ENDIF correspondente e um ponto e vírgula deve ser inserido no final de cada linha de declaração. Declaração IF-THEN sem cláusula ELSE IF a <> 0 THEN a = a + 100; ENDIF;
Declaração IF-THEN-ELSE com uma cláusula ELSE IF temp Disc Real ELSE Disc Real ENDIF;
> 500 THEN = 1; = 43.7; = 0; = 93.4;
Declaração IF-THEN-ELSE com uma cláusula ELSE IF e sem cláusula ELSE IF temp > 500 THEN Disc = Disc * 10; ELSE IF temp > 250 THEN x = y / z; a = abc + def; ENDIF; ENDIF;
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script
5-25
Declaração IF-THEN-ELSE com uma cláusula ELSE IF e uma cláusula ELSE IF temp > 500 THEN Disc = Disc - 10; ELSE IF temp < 250 THEN Disc = Disc + 10; ELSE Disc = Disc + 50; Real = 100; ENDIF; ENDIF;
Declaração IF-THEN-ELSE com várias cláusulas ELSE IF e uma cláusula ELSE IF temp > 100 THEN temphihi = 1 Disc = 50; ELSE IF temp > 80 THEN temphi = 1; ELSE IF temp < 10 THEN templo = 1; ELSE IF temp < 30 THEN templolo = 1; ELSE tempok = l; ENDIF; ENDIF; ENDIF; ENDIF;
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-26
Módulo 5 – InTouch QuickScripts Declaração IF-THEN-ELSE que testa Condition 1 ou Condition 2 IF (pump1 < 50.0) OR (pump2 < 50.0) THEN alarm1 = 1; ELSE alarm1 = 0; ENDIF;
Declaração IF-THEN-ELSE que testa Condition 1 e Condition 2 IF (pump1 < 50.0) AND (pump2 < 50.0) THEN alarm2 = 1; ELSE alarm2 = 0; ENDIF;
Declaração IF-THEN-ELSE que testa equivalência: IF a > 50 THEN IF b == 100 THEN c = 0; ENDIF; ENDIF;
Observações – Funções de cálculo As funções de cálculo são usadas em tipos de tag inteiro ou real. Nas funções de cálculo, o ResultNumericTags e InputNumericTags podem ser Real ou Integer e intercambiáveis livremente. Lembre-se, entretanto, que retornar um resultado não inteiro de uma função para um tagname Integer resultará em truncar o resultado, ex. a porção à direita do ponto decimal será perdida (não arredondada).
Observações – Funções de sistema As funções de sistema são usadas para realizar funções como ativar outro aplicativo Windows, copiar, excluir ou mover arquivos e reter informações com relação ao seu aplicativo InTouch. As funções de sistema lêem e escrevem dados de três tipos de arquivo: Informação do Arquivo, informação de Aplicativo e informação de Sistema .
Observações – Funções WW I/O As funções relacionadas DDE não devem ser usadas como uma substituição das comunicações InTouch DDE normais. Sempre que possível, você deve criar uma tag do tipo E/S e enviar os dados ou obter os dados de um aplicativo externo. As funções WW DDE têm por objetivo ser compatíveis com aplicativos que não podem se comunicar usando os Alertas DDE compatíveis com InTouch. Por exemplo, alguns aplicativos são compatíveis apenas com DDE Executes ou Pokes. As funções WWExecute(), WWPoke() e WWRequest() usam as mesmas funções Windows como o Microsoft Visual Basic (DDEML). Uma única função faz na verdade diversas coisas. Por exemplo, um WWPoke() realizará um DDE Initiate, um DDE Poke e um DDE Terminate tudo em uma função. Isto torna as funções WW DDE menos passíveis de erro mas também menos eficientes no processamento de muitas mensagens DDE. Como uma orientação geral para usar estas funções, evite:
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script z
Fazer malha destas funções (chamá-las repetidamente).
z
Chamar diversas funções DDE na seqüência e no mesmo script.
z
Usá-las para chamar tarefas longas e outro aplicativo DDE.
5-27
Se o comando DDE executa uma tarefa longa em outro aplicativo, ele pode usar até todo o tempo de processador disponível. Ainda assim, se ocorrer dificuldade de comunicação, nenhuma perda de dados ocorre. Se o servidor de E/S não conseguir enviar as mensagens para o InTouch, ele continuará tentando.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-28
Módulo 5 – InTouch QuickScripts Importação de QuickScripts Importar QuickScripts de um aplicativo InTouch para outro pode economizar tempo de desenvolvimento. Isto permite reutilizar seu QuickScripts criados anteriormente. Para mover QuickScripts de um aplicativo InTouch para outro, você deve usar o comando File / Import . a. Feche todas as janelas em seu aplicativo atual. b. Clique em File / Import. A caixa de diálogo Import from directory é exibida.
c. Selecione o diretório (pasta) do aplicativo que contém o QuickScripts a ser importado. d. Clique em OK. A caixa de diálogo Application Data Import Options é exibida: e. Selecione Condition Scripts.
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script f.
5-29
Clique em Select. A caixa de diálogo Select a Condition Script é exibida:
g. Selecione os QuickScripts a serem importados e clique em OK para fechar a caixa de diálogo. h. Clique em Import. O sistema começará automaticamente para importar os QuickScripts selecionados para seu aplicativo atual.
Obs.: Placeholders (como ?d: no exemplo acima) são discutidos no “Conversão de Tagnames Placeholder” na página 5-30.
Importação de Scripts ActiveX Event Scripts ActiveX Event são usados para fazer algo acontecer como resultado de um evento de ActiveX Control. Por exemplo, clicar, clicar duas vezes com o mouse, pressionar o mouse e pressionar a tecla são eventos típicos usados em muitos controles ActiveX. Scripts InTouch ActiveX Event são fornecidos para dar suporte às ações de evento . É possível associar um script de ActiveX Event a cada evento. Executa eventos de controle ActiveX em Runtime (WindowViewer) É possível usar funções InTouch QuickScript para lidar com eventos de controle ActiveX, chamar métodos de controle de chamada e propriedades de controle. É possível executar métodos ActiveX através de funções InTouch QuickScript. É possível associar um ActiveX Event com um script ActiveX Event que executa quando o evento ocorre. Em Runtime, os tagnames e QuickScripts definidos no WindowMaker controlam o comportamento de seus controles ActiveX. Quando scripts ActiveX Event são importados de um aplicativo para outro, todos os scripts ActiveX Event são importados. Além disso, para que um script ActiveX Event importado funcione corretamente no novo aplicativo, o mesmo controle ActiveX e o mesmo evento para o qual o script foi criado originalmente devem também ser usados no novo aplicativo. Se a janela que contém um controle ActiveX é fechada, seus scripts ActiveX Event ou qualquer outro InTouch QuickScripts que contenha funções de script associados com o controle ActiveX não executarão corretamente. Obs.: Scripts de controles ActiveX e de evento são apresentados no Apêndice D deste manual e discutidos em detalhes na aula InTouch Avançado.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-30
Módulo 5 – InTouch QuickScripts Conversão de Tagnames Placeholder Quando um QuickScript é importado dentro de um novo aplicativo, todos os tagnames com referência no QuickScript são importados com ele, mas eles não são adicionados ao seu Dicionário Tagname. Ao invés disto, eles são automaticamente convertidos em tagnames placeholder . Você deve converter os tagnames placeholder a fim de usá-los. Eles não estão definidos no momento no Dicionário Tagname do aplicativo, será solicitado que define cada um deles. Quando os tagnames em um QuickScript importado são convertidos em tagnames placeholder, três caracteres de índice são adicionados ao começo de cada tagname. Por exemplo, quando um tagname discreto é importado, o tagname é prefixado com os seguintes três caracteres: ?d:. Quando um tagname de 30, 31 ou de 32 caracteres de comprimento é importado, os três caracteres de indexação ainda serão adicionados ao início de cada tagname. Entretanto, a inclusão destes três caracteres não truncarão o comprimento de seu tagname existente. Por exemplo, para os tagnames de placeholder somente um tagname de 32 caracteres é aumento para 35 caracteres. Estes três espaços adicionais são alocados apenas para tagnames placeholder. Este aumento do comprimento do tagname não é compatível com os tagnames padrões.
Script importado que contém placeholders
Placeholders conversíveis
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script
5-31
Quando selecionar um script para ser editado e clicar em Convert, a caixa de diálogo Convert é exibida:
Será solicitado que defina qualquer tag que não esteja em seu dicionário tagname no momento. Obs.: A conversão de tagname é demonstrada no seguinte laboratório.
Impressão do editor de script Um ícone de Impressão está disponível no editor de script para impressão do script atual. É necessário que tenha uma impressora conectada à sua rede. A função imprimir imprimirá todas as condições de scripts atribuídas.
Impressão de Scripts Todos os scripts em cada categoria InTouch QuickScript podem ser impressos. a. No WindowMaker, clique em File / Print. A caixa de diálogo WindowMaker Printout é exibida:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-32
Módulo 5 – InTouch QuickScripts Selecione quais entradas de banco de dados, janelas e/ou scripts serão impressos.
b. Para imprimir scripts de janela, selecione Windows e, a seguir, Window Scripts. c. Selecione All na área Which Windows? para imprimir os scripts de todas as janelas no aplicativo.
d. Selecione a opção Selected para imprimir o script de uma janela específica. A caixa de diálogo Windows to Print é exibida:
e. Selecione as janelas cujo script deseja imprimir e clique em OK. Obs.: Se selecionar uma janela que não tem um script vinculado a ele, o seguinte cabeçalho será impresso no relatório: Window Scripts for Window Name: none. f.
Para imprimir todos os scripts para um tipo QuickScript, selecione o tipo de QuickScript e clique em OK.
g. Após escolher todas as seleções de impressão, clique em Next.
Treinamento Wonderware
Seção 2 – Como trabalhar com o editor Script
5-33
h. A janela Save Application Data to File é exibida:
i.
Selecione uma saída para a impressora ou para o arquivo de texto.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-34
Módulo 5 – InTouch QuickScripts
– Deixado em branco intencionalmente –
Treinamento Wonderware
Seção 3 – QuickScripts – Referência rápida
5-35
Seção 3 – QuickScripts – Referência rápida Introdução Neste guia, a funcionalidade básica de cada tipo de QuickScript que pode ser criado é resumida.
QuickScripts Tipo de Script
Descrição
Aplicativo
Scripts vinculados a todo um aplicativo
Janela
Scripts vinculado a uma janela específica
Tecla
Scripts vinculado a uma tecla ou combinação específica de teclas no teclado
Ação Touch
Scripts associados ao objeto vinculado a um link de animação Touch Link - Touch Pushbutton - Action
Mudança de dados
Scripts vinculados a um tagname e/ou tagname.field apenas
Condição
Scripts vinculados a um tagname discreto ou expressão
ActiveX Event
Scripts que executam eventos de controle ActiveX em Runtime
QuickFunctions
Scripts criados que podem ser chamados de outros InTouch QuickScripts ou de expressões de link de animação. QuickFunctions podem ser síncronos ou assíncronos, enquanto todos os outros tipos são apenas síncronos
Scripts de aplicativo Os scripts de aplicativo são vinculados a todo o aplicativo. Eles podem ser usados para iniciar outros aplicativos, criar simulações de processo, calcular variáveis, etc. Tipo de Script
Descrição
On Startup
Executa uma vez quando o aplicativo é iniciado.
While Running
Executa repetidamente na freqüência especificada enquanto o aplicativo estiver em execução.
On Shutdown
Executa uma vez quando o aplicativo é fechado.
Scripts de janela Os scripts dejanela funcionam dentro de uma janela específica. Tipo de Script
Descrição
On Show
Executa uma vez quando a janela é aberta inicialmente.
While Showing
Executa repetidamente na freqüência especificada enquanto a janela estiver em exibição.
On Hide
Executa uma vez quando a janela é ocultada.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-36
Módulo 5 – InTouch QuickScripts Scripts Touch Action Os scripts Touch Action são semelhantes ao Key Scripts, exceto por eles serem associados a um objeto vinculado a um Touch Link - Touch Pushbutton - Action. O editor de script é acessado através da caixa de diálogo de seleção de link de animação. Eles são executados quando o operador clica ou pressiona o objeto ou botão atribuído ao link. Tipo de Script
Descrição
On Left Click/Key Down
Executar uma vez quando a tecla ou o botão é pressionado inicialmente
While Left/Key Down
Executar repetidamente na freqüência especificada enquanto a tecla ou o botão é mantido pressionado.
On Left/Key Up
Executar uma vez quando a tecla ou o botão é liberado.
On Left Double Click
Executar quando o botão do mouse é clicado duas vezes
On Right Click
Executar uma vez quando a tecla ou o botão é pressionado inicialmente
While Right Down
Executar repetidamente na freqüência especificada enquanto a tecla ou o botão é mantido pressionado.
On Right Up
Executar uma vez quando a tecla ou o botão é liberado.
On Right Double Click
Executar quando o botão do mouse é clicado duas vezes
On Center Click
Executar uma vez quando a tecla ou o botão é pressionado inicialmente
While Center Down
Executar repetidamente na freqüência especificada enquanto a tecla ou o botão é mantido pressionado.
On Center Up
Executar uma vez quando a tecla ou o botão é liberado.
On Center Double Click
Executar quando o botão do mouse é clicado duas vezes
On Mouse Over
Executar o script uma vez quando o cursor passar sobre um objeto
Scripts de troca de dados Scripts de troca de dados são vinculados a um tagname e/ou tagname.field apenas Eles são executados uma vez quando o valor de um tagname ou de um tagname.field muda com um valor maior do que o valor deadband definido no Dicionário Tagname.
Scripts de condição Condition Scripts são vinculados a uma tag discreta ou uma expressão que seja igual a Verdadeiro ou Falso. Este tipo de script é o tipo de script mais usado. Expressões discretas que contenham tagnames analógicos também podem ser usadas. Tipo de Script
Descrição
On False
Executa uma vez quando a condição faz a transição para falso.
While False
Executa repetidamente quando a condição é falso.
On True
Executa uma vez quando a condição faz a transição para verdade.
While True
Executa repetidamente quando a condição é verdade.
Scripts ActiveX Event A maioria dos controles ActiveX têm eventos associados a eles. Por exemplo, clicar, clicar duas vezes com o mouse, pressionar o mouse e pressionar a tecla são eventos típicos usados em muitos controles ActiveX. Scripts InTouch ActiveX Event suportam ações de eventos. É possível associar um script ActiveX Event a cada evento. Executa eventos de controle ActiveX em Runtime (WindowViewer).
Treinamento Wonderware
Seção 3 – QuickScripts – Referência rápida
5-37
QuickFunctions QuickFunctions são scripts que podem ser escritos ou chamados de outros scripts ou expressões. Eles são armazenados no aplicativo no qual foram criados. Chamar QuickFunctions de outros scripts ou expressões permite criar um script uma vez e reutilizá-lo. Tipos de dados válidos QuickFunction são os seguintes. Data Type
Descrição
Integer
Usado para passar uma variável inteira, tagname ou valores constantes
Real
Usado para passar uma variável real, tagname ou valores constantes
Discrete
Usado para passar uma variável discreta, tagname ou valores constantes
Message
Usado para passar uma variável string, tagname ou valores constantes de até 131 caracteres
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-38
Módulo 5 – InTouch QuickScripts
– Deixado em branco intencionalmente –
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-39
Laboratório 5 – Uso do InTouch QuickScripts Introdução Neste laboratório, você criará uma ampla variedade de funções de sistema personalizados e automatizados usando script InTouch.
Objetivos Ao final deste laboratório, você deverá ter uma compreensão de como importar um script básico, do processo de conversão de tag, de animação de botoeira e de como escrever scripts personalizados. Você também deverá ter uma compreensão sobre como os scripts podem afetar um aplicativo. Para isto, as seguintes tarefas devem ser realizadas com sucesso: z
Importar a janela Hopper
z
Converter as tags de janela Hopper
z
Animar as botoeiras da janela Hopper
z
Criar scripts de condição
z
Criar script GATE CONTROL Window
z
Usar funções QuickScript
z
Escrever um script de relatório personalizado
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-40
Módulo 5 – InTouch QuickScripts Importação da janela Hopper 1. Importe a janela Hopper usando o comando File / Import. 2. Selecione o diretório apropriado. Seu instrutor fornecerá o local do arquivo. Quando o diretório é selecionado, a caixa de diálogo Windows to Import é exibida.
3. Selecione a janela Hopper. 4. Clique em OK e, em seguida, em Import. A janela Hopper é exibida no Application Explorer:
5. Clique duas vezes com o botão do mouse na janela Hopper.
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-41
A janela Hopper é exibida no WindowMaker:
As seguintes informações descrevem os gráficos na janela Hopper. z
O gráfico hopper tem 419 pixels de altura.
z
O indicador azul (acima à direita) é um slider de valor que posiciona valores de 0-100 na tag HopperSetPoint quando ele é movido para cima e para baixo ao lado do hopper.
z
Uma tela de valor com um link de localização vertical exibe o valor atual do HopperSetpoint.
z
O indicador vermelho (abaixo à direita) tem um link de localização vertical no indicador e na tela de valor. Eles são atribuídos ao tag HopperLevel.
z
O hopper tem um polígono na frente com um link de preenchimento percentual atribuído para preencher 0-100% quando a tag HopperLevel aumenta ou diminui (0-100).
z
Os rodízios de transportador ( , ) têm links atribuídos a $Second e a tag discreta de memória Conveyor_on. Eles serão exibidos para girar quando Conveyor_on for 1.
z
O material de preenchimento é vinculado de forma muito semelhante aos rodízios do transportador.
z
A botoeira Conveyor_on Toggle totalmente vinculada nos permite ajustar e reinicializar na tag Conveyor_on.
z
Botões Gate Control, Calculator e Report. Os scripts de botões e outros elementos de janela habilitarão mais controle sobre os gráficos existentes, como aumentar o nível de hopper com um clique, disparar a abertura e o fechamento do gate de hopper, etc.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-42
Módulo 5 – InTouch QuickScripts Conversão de tags da janela Hopper 6. Pressione a tecla F2 para selecionar todos os objetos.
7. Clique em Special / Substitute Tags. 8. A caixa de diálogo Substitute Tagnames… é exibida. As tags importadas são consideradas Placeholders pelo InTouch e contêm os valores placeholder no início de tagnames.
9. Clique em Convert.
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-43
10. Clique em Local.
11. Os valores Placeholder de tags são removidos. Clique em OK.
12. Uma vez que as tags não existem ainda, o InTouch solicitará que as defina. Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-44
Módulo 5 – InTouch QuickScripts 13. Defina cada tag da seguinte maneira. Clique em Save, seguido por Close após ajustar cada atributo de tag. A definição da tag Conveyor_on será semelhante à figura a seguir:
Tag
Tipo
Valor inicial
Valor mín
Valor máximo
Conveyor_on
Memory Discrete
Desativado
N/D
N/D
Gate
Memory Discrete
Desativado
N/D
N/D
GateCount
Inteiro de memória
0
0
100
HopperLevel
Real de memória
0
0
100
HopperSetpoint
Real de memória
0
0
100
Após todas as tags serem definidas, a caixa de diálogo Substitute Tags é reexibida. 14. Clique em OK para sair da caixa de diálogo e salve a configuração da tag.
Animação das botoeiras da janela Hopper 15. Clique duas vezes com o mouse no botão HopperLevel = 0; .
A caixa de diálogo Animation Selection é exibida. 16. Selecione o link de animação Touchlinks - Touch Pushbutton - Action. Touch -> Action Script Editor é exibida. 17. Certifique-se que Condition Type = On Left Click/Key Down esteja selecionado. Este script fornece uma ação após o botão ser pressionado.
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-45
18. Configure o Action Script como segue:
19. Clique no botão Validate para verificar qualquer erro. 20. Clique em OK para sair do editor de script e salvar o script.
21. Clique em OK para fechar a caixa de diálogo Animation Selection. 22. Clique duas vezes com o mouse no botão HopperLevel + 10.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-46
Módulo 5 – InTouch QuickScripts A caixa de diálogo Animation Selection é exibida. 23. Selecione o link de animação Touchlinks - Touch Pushbutton - Action. O editor Touch -> Action Script é exibido. 24. Use Edit / Clear para remover o script anterior.
25. Insira o script exibido na figura a seguir. 26. Clique em Validate.
Use para adicionar o tagname
Use símbolos matemáticos Use os botões IF, THEN, ELSE e ENDIF
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-47
27. Selecione o tipo de condição: While Left/Key Down. 28. Insira o script exibido na figura a seguir.
29. Pressione Validate após cada script. 30. Clique em OK para sair do editor Touch -> Action Script. 31. Clique em OK para sair da caixa de diálogo Animation Links Selection . 32. Alterne para Runtime.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-48
Módulo 5 – InTouch QuickScripts 33. Clique no botão HopperLevel + 10 . O nível deve aumentar em 10 e o indicador vermelho e a tela de texto deve mudar. 34. Clique no botão HopperLevel = 0 . O botão deve reinicializar o nível de hopper como 0.
35. Retorne ao modo Development.
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-49
Criação de scripts de condição Para direcionar e animar o preenchimento do Hopper, scripts de condição são necessários para mudar o valor do Hopper_Level e para controlar quando este script operará. O primeiro script de condição aumenta a tag HopperLevel em 1 a cada décimo de segundo (100 milissegundos) em que a tag Conveyor_on é TRUE. 36. Expanda a lista Scripts clicando no sinal + em frente a Scripts. 37. Clique com o botão direito do mouse em Scripts / Condition e selecione New.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-50
Módulo 5 – InTouch QuickScripts O editor Condition Scripts é exibido. 38. Nomeie o novo Condition Conveyor_on. 39. Configure o Condition Script como segue:
40. Clique em Validate. 41. Clique em OK para salvar seu Condition Script. 42. Clique em OK para sair da caixa de diálogo Animation Links Selection .
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-51
43. Alterne para Runtime e clique no botão Conveyer_On Toggle para testar o script. Quando o botão Conveyor_On Toggle é pressionado, a imagem do transportador anima-se e o nível de preenchimento muda. Use o botão HopperLevel = 0; para reinicializar o nível de preenchimento do transportador.
O transportador precisa ser acionado automaticamente quando o valor HopperLevel é menor que HopperSetpoint, depois desliga quando o valor HopperLevel é igual ou superior a HopperSetpoint. Um conjunto de scripts de condição On True e On False para a Condição: HopperLevel < HopperSetpoint controla o estado Ativado/Desativado do transportador.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-52
Módulo 5 – InTouch QuickScripts 44. Crie novos Scripts de Condição com os tipos On True e On False como exibido nas figuras a seguir. Clique em Validate após cada um.
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-53
Agora, quando o Transportador estiver executando, o HopperLevel aumenta, mas excederá o nível de 100.
Excede 100
45. Crie ou modifique um script de condição para evitar que a tag HopperLevel aumente além de 100. Observe que há diversas soluções possíveis. Após concluir o script, seu instrutor fornecerá a resposta ideal. Dica: Modifique um script existente ao invés de criar um script de condição novo. 46. Alterne para Runtime e teste o script. O transportador deve parar quando o HopperLevel alcançar 100.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-54
Módulo 5 – InTouch QuickScripts Criação do script GATE CONTROL Window A janela Hopper inclui um botão indicado GATE CONTROL. Quando o botão é clicado, ele alterna a tag Gate True / False, mas nada mais acontece neste momento. O gráfico gate na parte inferior do hopper tem um link de localização horizontal atribuído à tag inteira de memória, GateCount. Quando o GateCount é igual a 0 (zero), o gate é exibido para ser fechado. Quando o GateCount é igual a 30, o gate é exibido para ser aberto. Precisamos criar um script que aumenta o GateCount até 30 quando Gate é TRUE, e Reduz GateCount para 0 (zero) quando Gate é FALSE. Somente podemos visualizar o hopper quando a janela Hopper está aberta, então precisamos inserir um script de janela While Showing. 47. Expanda o ícone Windows com o Application Explorer. 48. Clique com o botão direito do mouse Hopper e selecione Window Scripts.
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-55
49. Insira o script exibido na figura a seguir.
50. Valide o script.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-56
Módulo 5 – InTouch QuickScripts 51. Continue a edição do script exibido na figura a seguir para um segundo tipo de condição.
52. Clique em Validate, seguido por OK para fechar o editor Window Script. 53. Alterne para Runtime e teste o script. Quando a janela é aberta, todos os níveis e valores devem ser ajustados como 0. 54. Clique no botão Gate Control . O gráfico gate deve ser exibido para o slide aberto e fechado. A HopperLevel não diminui quando o gate é aberto. 55. Alterne para o modo Development.
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-57
56. Escreva um script para fazer o valor HopperLevel diminuir para 0 e ficar nesse valor quando o gate é aberto. Há diversas soluções possíveis. Após concluir o script, seu instrutor fornecerá a resposta ideal. Dica: Não baseie o script na tag GateCount. A figura a seguir fornece uma dica da solução ideal.
57. Alterne para Runtime e teste o script. z
O transportador deve parar quando o HopperLevel alcançar 100.
z
Quando o gate é aberto, o nível deve diminuir.
z
Quando o gate é deixado aberto, HopperLevel diminui para 0 e o gate deve fechar automaticamente.
z
Fechar o gate antes do HopperLevel atingir 0 deve interromper a redução do valor do nível.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-58
Módulo 5 – InTouch QuickScripts Uso das funções QuickScript O InTouch tem a habilidade de trabalhar com outros programas e para verificar se eles estão executando ou não. O script a seguir usa a função InfoAppActive QuickScript em um script para verificar se o programa Calculator está executando. Se não estiver, a função StartApp iniciará. Se estiver, a função ActivateApp trará o programa para o primeiro plano. 58. Selecione o botão Calculator na janela Hopper e crie um Touch Action Script como exibido na figura a seguir:
59. Valide o script e alterne para Runtime.
Treinamento Wonderware
Laboratório 5 – Uso do InTouch QuickScripts
5-59
60. Clique no botão Calculator. Se o Windows Calculator não estiver executando, ela aparecerá na tela. Se estiver executando, mas não no primeiro plano, ela é exibida no primeiro plano.
61. Feche a janela Calculator e alterne para o modo Development.
Escrever um script de relatório personalizado Gostaríamos de ver um relatório do status HopperLevel quando o botão REPORT é clicado. Este relatório precisa conter: z
A Data e Hora em que o botão foi clicado
z
O status do transportador e do gate
z
O HopperLevel e HopperSetpoint atuais
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
5-60
Módulo 5 – InTouch QuickScripts 62. Insira ou verifique o script ACTION a seguir para o botão rotulado REPORT. DIM ConveyorStatus AS MESSAGE; IF Conveyor_on == 1 THEN ConveyorStatus = "Conveyor Running"; ELSE ConveyorStatus = "Conveyor Stopped"; ENDIF; DIM GateStatus AS MESSAGE; IF Gate == 1 THEN GateStatus = "Gate is Open"; ELSE GateStatus = "Gate is Closed"; ENDIF; DIM ReportHeader AS MESSAGE; ReportHeader = "HopperLevel report for " + $DateString + ", " + $TimeString; DIM ReportLine1 AS MESSAGE; ReportLine1 = Text(HopperLevel, "HopperLevel is currently #"); DIM ReportLine2 AS MESSAGE; ReportLine2 = Text(HopperSetpoint, "HopperSetpoint is currently #"); FileWriteMessage( FileWriteMessage( FileWriteMessage( FileWriteMessage( FileWriteMessage( FileWriteMessage(
"C:\HopperReport.txt", "C:\HopperReport.txt", "C:\HopperReport.txt", "C:\HopperReport.txt", "C:\HopperReport.txt", "C:\HopperReport.txt",
-1, -1, -1, -1, -1, -1,
ReportHeader, 1); ConveyorStatus, 1); GateStatus, 1); ReportLine1, 1); ReportLine2, 1); " ", 1);
63. Alterne para Runtime e clique no botão Report. 64. Abra o arquivo HopperReport do local especificado usando o Notepad.
65. Feche o arquivo e alterne para o modo Development.
Treinamento Wonderware
Módulo 6
Alarmes Seção 1 – Alarmes e eventos
6-3
Seção 2 – Objeto de alarme distribuído
6-23
Laboratório 6–Criação de alarmes e eventos
6-39
6-2
Módulo 6 – Alarmes Objetivos do módulo z
Apresentar os diferentes tipos de alarme e de evento
z
Discutir o reconhecimento de alarmes e como os alarmes podem ser inibidos
z
Adicionar a funcionalidade alarme ao aplicativo
Treinamento Wonderware
Seção 1 – Alarmes e eventos
6-3
Seção 1 – Alarmes e eventos Objetivos da seção z
Explicar e definir Alarmes e Eventos
z
Identificar os diferentes tipos de alarme e de eventos e adicionar a funcionalidade alarme ao aplicativo
Esta seção explica e define os diferentes tipos de alarmes e de eventos e como adicionar a funcionalidade de alarme aos aplicativos.
Introdução O InTouch tem dois tipos de comunicações para informar os operadores sobre a atividade do processo: Alarmes e eventos. Alarmes representam advertências de condições de processo que podem causar problemas e requerer uma resposta do operador. Um alarme típico é disparado quando um valor de processo excede um limite definido pelo usuário, como um valor analógico excedendo um limite alto. Isto dispara um estado de alarme não conhecido que pode ser usado para notificar o operador sobre um problema. Uma vez que o operador reconhece o alarme, o sistema retorna um estado reconhecido. O InTouch pode ser configurado para requerer que um alarme seja reconhecido mesmo se a condição que causa o alarme tenha passado. Isto garante que um operador esteja ciente dos eventos que causaram um estado de alarme temporário que retornou ao normal. Eventos representam mensagens de status de sistema normal e não requerem uma resposta do operador. Um evento típico é disparado quando uma determinada condição do sistema ocorre, como um operador conectar-se ao InTouch. Se configurado para isto, o InTouch pode armazenar um evento no banco de dados de alarme e imprimí-lo em uma impressora. Qualquer tag pode ser configurada para fazer a monitoração de evento durante a definição da tag no Dicionário Tagname. Quando definir um tagname para fazer monitoração do evento, uma mensagem de evento é armazenada no sistema toda vez que o valor da tag muda. A mensagem de evento armazena como o valor mudou, se a mudança foi iniciada pelo operador, E/S, scripts ou pelo sistema.
Conceitos de alarme Há vários termos e conceitos que geralmente se aplicam a alarmes, independente de um sistema em particular no qual eles são usados ou como eles são implementados. Alarms: Em geral, um alarme é um tipo específico de condição – em particular um alarme é uma condição anormal. A intenção de um alarme é sinalizar que algo está errado ou que um estágio em particular do processamento foi atingido. Por exemplo, um alarme pode indicar que uma caldeira excedeu o limite de temperatura seguro. Priority: Um nível de prioridade associado ao alarme para indicar a severidade da situação ou da condição. No caso do limite de temperatura da caldeira, isto pode ser muito grave, requerendo atenção imediata para proteger a vida e a propriedade. Por outro lado, em outras situações (menos extremas) a severidade pode ser mínima.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-4
Módulo 6 – Alarmes A severidade de um alarme geralmente depende de circunstâncias – a aplicação de fábrica, a natureza do equipamento, segurança, disponibilidade de sistemas backup, custos potenciais de danos ou de tempo parado, etc. Sub-states: Uma condição de alarme pode também ter sub-condições, neste caso denominadas de alarme de estado múltiplo. Por exemplo, um alarme analógico geralmente tem diversos limites, com Alto e Baixo limitando a faixa de operação normal e HiHi e LoLo identificando os desvios extremos do normal. O nível de temperatura da caldeira mencionado acima pode estar na condição de alarme por causa de qualquer um destes sub-estados. Ele pode também transitar por quaisquer dois subestados ao mesmo tempo em que continua na condição de alarme geral. Events: Um evento é definido como uma ocorrência detectável, que pode ou não estar associada a um alarme. Uma transição para dentro ou fora de um estado de alarme constitui um tipo de evento. Um evento pode também identificar uma ação do operador, uma mudança na configuração do sistema ou algum tipo de erro de sistema. É importante distinguir entre uma condição de alarme e um evento. Uma condição pode persistir por minutos, horas, dias ou semanas. Um evento é momentâneo; ele ocorre e acaba imediatamente. Um alarme é uma condição; uma notificação de alarme é um evento. Acknowledgment: Um dos objetivos principais de um alarme é alertar alguém sobre uma condição. A pessoa ou sistema deve então reconhecer o alarme, indicando que ele foi visto. Reconhecimento (AcK) é diferente do tópico de tomar uma ação corretiva, que pode ou não acontecer imediatamente. Ele também é diferente da questão sobre a condição de alarme retornar ao normal – o que pode acontecer por conta própria, mesmo sem uma intervenção externa. Reconhecimento simplesmente indica que alguém observou uma ocorrência de alarme. Um alarme de alta ou média prioridade requer reconhecimento, enquanto que um alarme de prioridade muito baixa não requer. Embora a condição que gerou o alarme pode desaparecer (por exemplo, uma elevação muito alta de temperatura e então ela abaixa novamente), o próprio alarme não é considerado "resolvido" até que ele seja reconhecido. Groups: Alarmes podem ser organizados em grupos para facilitar rastreamento e gestão. Estes grupos podem representar áreas diferentes da fábrica, equipamentos, responsabilidade do operador ou uma funcionalidade específica. Os grupos podem também ser organizados em hierarquia de grupos parentes e subgrupos. Areas: Fábricas são geralmente organizadas em áreas, representando uma localização física, responsabilidade do operador, fases do processo, tipos de equipamento, etc. Como os grupos, as áreas podem ser hierárquicas – divididas em áreas principais e sub-áreas. Entretanto, áreas devem ser mencionadas separadamente dos grupos, porque algumas fábricas fazem uma distinção entre os dois. Obs.: O Sistema de Alarme Distribuído não oferece suporte explícito para Áreas. Entretanto, Grupos de alarme podem ser usados para dividir os alarmes em grupos que correspondem às Áreas.
Treinamento Wonderware
Seção 1 – Alarmes e eventos
6-5
Tipos de alarmes O InTouch classifica alarmes em diversas categorias gerais com base em suas características. Estas categorias são conhecidas como Classe e Tipo. O Sistema de Alarme Distribuído categoriza todos os alarmes em cinco condições gerais: Discreta, Desvio, Taxa de mudança, SPC e Valor. A tabela abaixo resume a condição de alarme para os dois sistemas. Condição de alarme
Classe distribuída
Tipo distribuído
Discreta
DSC
DSC
Desvio – Grave
DEV
MAJDEV
Desvio – Advertência
DEV
MINDEV
Taxa de mudança
ROC
ROC
SPC
SPC
SPC
Valor – LoLo
VALUE
LOLO
Valor – baixo
VALUE
LO
Valor – Alto
VALUE
HI
Valor – HiHi
VALUE
HIHI
Cada alarme pode ser associado a uma tag InTouch. Dependendo do tipo de tag, é possível definir uma ou mais classes ou tipos de alarme para ela. Condições de alarme são definidas dentro do Dicionário Tagname.
Tipos de evento O InTouch também classifica eventos em diversas categorias gerais com base em suas características. Estas categorias são conhecidas como Tipos de Eventos. A tabela abaixo resume a classificação de eventos. Evento
Condição
ACK
Alarme foi reconhecido.
ALM
Ocorreu um alarme.
EVT
Um evento de alarme ocorreu.
RTN
Tagname retornou de um estado de alarme para um estado normal.
SYS
Um evento de sistema ocorreu.
USER
Mudou o $operador.
E/S
O valor tagname foi violado a partir de um cliente DDE.
LGC
Um QuickScript modificou o valor tagname.
OPR
O operador modificou o valor de tag usando o Value Input.
Os primeiros seis eventos listados são configurados automaticamente quando uma armazenagem de evento é habilitada. Os três restantes devem ser definidos pelos usuários para cada tagname no Dicionário Tagname.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-6
Módulo 6 – Alarmes Configuração do alarme tagname O In Touch é compatível com a definição e configuração de alarme para cada tag definida no Dicionário Tagname. Por padrão, todas as tags têm os alarmes desabilitados. O conceito básico é que qualquer tag pode ser configurada como compatível com alarme, especificando o tipo de s alarme e os limites selecionados pelo usuário. Para tal tag, quando o valor muda, a lógica de alarme é chamada. Esta lógica de alarme é uma sub-rotina InTouch que verifica o tipo de alarme, compara o novo valor aos limites indicados e determina se a tag está em uma condição compatível com alarme. Qualquer transição de estado é comunicada ao Sistema de Alarme Distribuído. Há Dois tipos básicos de alarme (ou classes) definidas no InTouch. Eles são subdivididos em diversos subtipos de alarme adicionais. Discrete: Um alarme discreto corresponde a uma tag discreta. É possível configurar se o estado de alarme corresponde ao estado VERDADE ou ao estado FALSO de uma tag discreta e a prioridade de alarme associada. A caixa de diálogo de configuração para uma tag discreta é a seguinte.
Selecione SelecioneDetails Details&& Alarms Alarmspara paraexibir exibiraa configuração configuraçãode de alarme alarme
Treinamento Wonderware
Seção 1 – Alarmes e eventos
6-7
A caixa de diálogo de configuração para uma tag analógica é a seguinte.
Analog: Um alarme analógico corresponde a uma tag inteira ou real (ponto flutuante). Dentro do tipo analógico há diversas classes de alarme. z
Value: O valor atual é comparado a um ou mais limites. Se o valor exceder o limite, o estado de alarme é declarado. É possível configurar individualmente valores e prioridades para limite "LoLo", limite "Lo", limite "Hi" e limite "HiHi'" e indicar se cada limite deve ou não ser usado. A Faixa de Banda de Valor estabelece quanto o valor deve mudar antes que seja removido do alarme.
z
Deviation: O valor atual é comparado ao valor meta e o valor absoluto da diferença é comparado a um ou mais limites, expressos como um percentual da faixa do valor tagname – ou seja, a diferença total entre os valores permitidos configurados máximo e mínimo. É possível configurar individualmente valores e prioridades para limite "Desvio de Alarme" e "Desvio Grave" e indicar se cada limite deve ou não ser usado. Valores podem também ser configurados para uma "Faixa de Banda de Desvio," também expressa como um percentual da faixa da tag. Isto controle o percentual que o valor de tag deve cair antes que seja removido do alarme.
z
Rate-of-Change: O valor atual e o valor anterior são usados neste cálculo, juntamente com o tempo atual e o tempo da atualização anterior. Se o valor absoluto da taxa de mudança excede o limite, o estado de alarme é declarado. É possível configurar o valor e a prioridade para o limite ROC e se o limite deve ou não ser usado.
O limite é expresso como um percentual da faixa do valor de tag, que pode ser por segundo, por minuto, ou por hora.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-8
Módulo 6 – Alarmes Prioridades de alarme Cada alarme configurado no InTouch tem um valor de prioridade associado a ele. Este valor representa a severidade de um alarme e pode variar de 1 a 999 sendo que 1 é o mais severo. Ao criar faixas de alarme usando estas prioridades e atribuindo alarmes a cada uma, é possível filtrar facilmente alarmes críticos dos não-críticos. É possível também criar link de animação, scripts de reconhecimento e visualização e impressão com filtro tudo baseado na faixa de prioridade. Por exemplo, se uma fábrica de processo determinou que ela precisa de quatro níveis de severidade, ela pode estabelecer faixas como descritas abaixo. Severidade do alarme
Faixa de prioridade
Crítico
1 – 249
Grave
250 – 499
Advertência
500 – 749
Informativo
750 – 999
Quando os engenheiros da fábrica criam as tags InTouch e as condições de alarme, cada alarme são atribuídos a um destes níveis de severidade escolhendo um número de prioridade dentro da faixa. Quando as faixas são configuradas, os operadores da fábrica podem exibir e imprimir facilmente somente determinados níveis de severidade.
Grupos de alarme A cada alarme InTouch é atribuído um Grupo de Alarme lógico. Cada Grupo de Alarme pode ser definido pelo usuário, deve ter um nome exclusivo e pode ser organizado em hierarquias de até 32 níveis de detalhamento. Os grupos oferecem um modo de categorizar alarmes com base em uma organização, layout de fábrica ou qualquer outra métrica. Grupo de Alarme são úteis para filtrar telas de alarme, Impressoras de alarme e scripts de reconhecimento. Cada tag é associado a um Grupo de Alarme. Se não associar um Grupo de Alarme a uma tag, o InTouch o associa automaticamente com o grupo raiz, $System por padrão. Qualquer Grupo de Alarme pode ter tags e outros nomes de Grupo de Alarme associados a ele. Grupo de Alarme são organizados em uma estrutura de árvore hierárquica com o grupo raiz, $System, no alto da árvore. Todos os Grupos de Alarme definidos automaticamente tornam-se descendentes do grupo raiz. Esta árvore pode ter até 32 níveis. Cada Grupo de Alarme pode ter um máximo de 32 subgrupos. Cada subgrupo pode ter uma máximo de 32 subgrupos e assim por diante, até que o máximo de 32 níveis seja atingido.
Treinamento Wonderware
Seção 1 – Alarmes e eventos
6-9
Esta ilustração exibe apenas Grupos de Alarme, não tagnames dentro de cada grupo. Este conceito de árvore é semelhante à estrutura de diretório do Windows Explorer, onde um diretório pode conter outros sub-diretórios que são semelhantes a grupos e nomes de arquivos que são semelhantes a tagnames.
Nomes de Grupos de Alarme são limitados a 31 caracteres e devem começar com um caractere alfanumérico A-Z ou a-z. Ao mesmo tempo, o nome do Grupo não pode ter espaços no string. Por exemplo, um nome válido é "AlarmGroup#1-23" enquanto que um exemplo de um nome inválido é "Alarm Group # 1 - 23". O Sistema de Alarme Distribuído usa também estes grupos como base da lista Grupos de Alarme. Obs.: Enquanto que os Grupos de Alarme não contam como tags com a licença InTouch, eles contam como tags no banco de dados. Portanto, o número total de Grupos de Alarme mais os tagnames reais não podem exceder 61.402. Além disso, grupos não podem ser criados se o WindowViewer estiver executando. Advertência: Números grandes de grupos de alarme (centenas ou milhares) podem causar problemas de desempenho. Para mais informações, consulte o Guia Implantação de Alarme.
Criação de um Grupo de Alarme a. Clique em Special / Alarm Groups no menu principal WindowMaker. A caixa de diálogo Alarm Groups é exibida:
Os botões Modify e Delete não estão disponíveis até que um Grupo de Alarme seja definido. O Grupo de Alarme $System não pode ser modificado ou excluído. Obs.: Durante a definição de tagnames no Dicionário Tagname, é possível criar Grupos de Alarme e associá-los a qualquer tag.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-10
Módulo 6 – Alarmes b. Clique em Add. A caixa de diálogo Add Alarm Group é exibida:
c. Na caixa Group Name, insira o nome para um novo Grupo de Alarme. Já que este é o primeiro Grupo de Alarme criado, ele é automaticamente atribuído ao Grupo Parente $System. Após criar um Grupo de Alarme, ele pode ser usado como um Grupo Parente d. Clique em OK. A caixa de diálogo Alarm Groups é exibida novamente:
e. Selecione o primeiro Grupo de Alarme criado e clique em Add para criar um segundo grupo. O Grupo de Alarme que foi selecionado é agora o Grupo Parente do novo grupo de alarme.
f.
Na caixa Comment, insira um comentário para um novo Grupo de Alarme.
g. Clique em OK.
Treinamento Wonderware
Seção 1 – Alarmes e eventos
6-11
A caixa de diálogo Alarm Groups é exibida novamente mostrando sua hierarquia de Grupo de Alarme :
h. Clique em Close.
Modificação de um Grupo de Alarme a. Selecione Special / Alarm Groups. A caixa de diálogo Alarm Group é exibida: Obs.: É possível também modificar Grupos de Alarme enquanto define as tags no Dicionário Tagname. b. Selecione o Grupo de Alarme a ser modificado na lista e clique em Modify.
A caixa de diálogo Modify Alarm Group é exibida:
c. Clique em Parent Group para mudar o grupo parente do Grupo de Alarme.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-12
Módulo 6 – Alarmes A caixa de diálogo Alarm Groups é exibida:
d. Selecione $System como o novo grupo parente. Clique em Close. e. A caixa de diálogo Modify Alarm Group é exibida, mostrando o novo grupo parente:
f.
Faça qualquer mudança necessária (se houver) no Comentário.
g. Clique em OK. A nova hierarquia de Grupo de Alarme é exibida:
h. Clique em Close.
Treinamento Wonderware
Seção 1 – Alarmes e eventos
6-13
Exclusão de um Grupo de Alarme a. Selecione Special / Alarm Groups. A caixa de diálogo Alarm Group é exibida: b. Selecione o Grupo de Alarme na lista para exclusão.
c. Clique em Delete.
d. Clique em Yes para confirmar a exclusão. Obs.: É possível também excluir Grupos de Alarme enquanto define as tags no Dicionário Tagname. Os Grupos de Alarme podem ser excluídos independente de qualquer tagname em uso no grupo a ser excluído. Qualquer tag no grupo excluído migrará para o grupo parente do Grupo de Alarme .
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-14
Módulo 6 – Alarmes Modelos de reconhecimento de alarme Quando um item vai de um estado Normal para um estado de alarme, uma nova instância deste alarme é gerada. Se o alarme é um alarme de estado diverso, qualquer mudança em um novo sub-estado durante o estado de alarme é tratado como uma transição da mesma instância de alarme. A duração de uma instância de alarme termina quando o alarme retorna a Normal – uma transição subseqüente ao estado de alarme gera uma nova instância de alarme .
O Sistema de Alarme Distribuído InTouch rastreia cada instância de um alarme: quando ele entra pela primeira vez no estado de alarme, quando ele faz a transição para o sub-estado, quando retorna a Normal, se está esperando por um Reconhecimento e quando é Reconhecido.
Treinamento Wonderware
Seção 1 – Alarmes e eventos
6-15
Alarmes como condições: O reconhecimento é feito para a instância do alarme. Uma instância de alarme começa esperando por um ACK quando ele entra pela primeira vez no estado de alarme. Se ele é ACKed e subseqüentemente faz a transição para um novo subestado de alarme (Por exemplo de “Hi” para HiHi”), ele começa a esperar outro ACK. quando o ACK é recebido, ele é aceito e aplica-se a todas as transições do alarme que ocorreu até então. O alarme é considerado ACKed quando a instância mais recente foi ACKed. Alarmes como eventos: O reconhecimento é feito para a instância de um alarme e deve ser para a transição mais recente para um estado de alarme ou sub-estado. Uma instância de alarme começa esperando por um ACK quando ele entra pela primeira vez no estado de alarme. Se ele é ACKed e subseqüentemente faz a transição para um novo sub-estado de alarme, ele começa a esperar por outro ACK. A cada transição subseqüente é atribuído um número sequencial e o ACK deve ter anexado a ele o número sequencial da transição para a qual ele está respondendo. O ACK é aceito somente se ele for a transição mais recente. Um ACK rejeitado pode ser armazenado para fins de diagnóstico, mas não é rastreado no sistema. Se aceito, ele aplica-se a todas as transações do alarme que ocorreram até então. O alarme é considerado ACKed quando a instância mais recente foi ACKed. O modelo orientado ao evento garante que se um alarme muda entre estados diferentes, o ACK corresponda à informação atualizada. Nos sistemas com pequenos períodos de latência, ele pode parecer com alarmes orientados à condição – mas em outros ambientes, como na Internet, os recursos deste modelo podem se tornar muito importantes. Alarmes de resumo expandidos: O reconhecimento é feito para cada transição do alarme. A entrada inicial em um estado de alarme deve ser ACKed e o retorno ao estado normal deve também ser ACKed separadamente. Qualquer transição para um novo sub-estado de alarme é tratado como uma nova ocorrência e deve ser ACKed e RTN também deve ser ACKed. As transições de sub-estado são tratadas como pertecentes a "RTN, "começando com a primeria entrada em um estado com alarme quando o item era previamente normal. Se o item retorna ao normal e subseqüentemente entra no estado de alarme novamente, um novo grupo RTN é criado. Cada transição deve ser reconhecida individualmente e de forma explícita; e o alarme é considerado reconhecimento somente quando o item retornou ao normal e todas as transições nos grupos RTN pendentes foram reconhecidas. Obs.: Aqui o termo resumo significa "aguardando reconhecimento." Este modelo de alarme pode também ser conhecido como alarmes de retorno de chamada. Para resumir, para alarmes orientados à condição, um reconhecimento conta contra todas as entradas em um estado de alarme até o momento do reconhecimento. Para alarmes orientados ao evento (como em OPC) um reconhecimento é aceito somente se ele se referir à mais recente ativação de evento. Para alarmes Resumo Expandido, todos os eventos – para ativar, desativar e sub-estados diferentes – devem ser reconhecido antes que o alarme geral seja considerado reconhecido.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-16
Módulo 6 – Alarmes Alarmes de resumo expandidos Quando um alarme ocorre, ele gera um registro no objeto de tela de alarme exibindo que uma condição de alarme ocorreu com o registro de data e hora do alarme. Este registro não sai da tela até que um operador tenha reconhecido o alarme e retornar ao estado normal (RTN) ocorra. Se retornar ao estado normal ocorrer antes do alarme ser reconhecido, dois registros serão exibidos no objeto alarme. Por exemplo, se a temperatura de uma caldeira excede o estado de limite alto, disparando assim um alarme, mas retorna à faixa de temperatura normal antes de operador reconhecer o estado de alarme um registro será gerado exibindo o estado de alarme e um registro adicional será gerado mostrando que o estado de alarme não foi reconhecido. Um reconhecimento é feito apenas para uma transição em particular, seja para um estado de alarme, um sub-estado ou o retorno ao normal. Cada transição de um estado normal identifica o começo de um novo grupo RTN. Todas as transições em um grupo RTN devem ser reconhecidas individualmente antes do grupo RTN geral ser considerado reconhecido.
Uso de alarmes de resumo expandido Quando definir um tagname e selecionar Expanded Summary como o Modelo ACK ele requer que o operador reconheça que um alarme ocorreu mesmo se o estado que dispara o alarme retornou ao normal. O reconhecimento de um estado de alarme mudará a cor da entrada de alarme mas não muda o registro de hora exibido. Alarmes somente serão removidos da tela quando eles forem reconhecidos e o alarme retornar para o estado normal. Obs.: Quando definir uma tag com o modelo ACK Expanded Summary, a opção RTN Implies Ack na caixa de diálogo Alarm Properties não se aplica à tag.
Controles de alarme de visibilidade Algumas vezes é necessário ou desejável Desligar alguns alarmes sem de fato remover as configurações de alarme de um item. O InTouch é compatível com três tipos básicos de controle de visibilidade de alarme: desabilitação, inibição e supressão. São descritos como um modelo de alarme de 3 estágios. z
Alarm stimulus: O valor ou status de um item que pode ter alarme é rastreado.
z
Alarm state: O item que pode ter alarme é comparado aos limites e às condições para determinar se está em um estado de alarme. As transições de estado são rastreadas e comunicadas.
z
Alarm annunciation: Relatórios e atualizações do estado de alarme são exibidos e/ou armazenados através de um ou mais clientes de alarme.
Treinamento Wonderware
Seção 1 – Alarmes e eventos
6-17
Com o modelo exibido na figura anterior em mente, os controles de visibilidade a seguir são manipulados no Fornecedor de Alarme. z
Alarm Disablement: Um alarme pode ser desabilitado pelo ajuste de um flag que identifica-o como desabilitado. Nenhuma outra mudança na configuração do alarme é envolvida.
Enquanto um alarme é desabilitado, qualquer verificação pode ou não continuar dependendo das condições que colocariam o item em um estado de alarme. Porém enquanto a desabilitação tiver efeito estas condições não podem colocar o item no estado de alarme. Essencialmente, o item é um estado normal forçado. A desabilitação interrompe a conexão entre o estímulo do alarme e o estado de alarme. Uma vez que o alarme não ir para o estado de alarme, enquanto um alarme estiver desabilitado, nenhuma entrada é feita no histórico para esse alarme. z
Alarm Inhibition: Um alarme pode ser inibido identificando uma tag que o identifique como inibido . Esta tag é denominada tag inibidora. Nenhuma outra mudança na configuração do alarme é envolvida.
Enquanto a tag inibidora for FALSO (ou zero), o alarme é manuseado normalmente; mas enquanto a tag inibidora for VERDADE (ou diferente de zero), o item não pode ter alarme. Em essência, ele é tratado da mesma maneira que um alarme desabilitado. O alarme é inibido ativamente A inibição do alarme é um processo de dois estágios. 1. Atribuir uma tag inibidora. 2. Uma mudança de estado de uma tag inibidora de FALSO a VERDADE ou vice-versa. Assim como na desabilitação, a inibição interrompe a conexão entre o estímulo do alarme e o estado de alarme. z
Alarm Suppression: Com o modelo de alarme em mente, temos a habilidade de interromper a conexão entre o estado de alarme e o anúncio do alarme. O alarme ainda ocorre e é armazenado/registrado, mas não está visível na Tela de alarme. Este controle de visibilidade é conhecido como Supressão de Alarme. Supressão de Alarme é discutida em detalhe na página 6-29 deste manual.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-18
Módulo 6 – Alarmes Configuração de uma inibição de alarme a. Abra o Dicionário Tagname (Special / Tagname Dictionary). b. Selecione uma tag existente.
c. Clique em OK. d. Selecione a opção Details & Alarms .
Treinamento Wonderware
Seção 1 – Alarmes e eventos
6-19
e. Clique no botão Ellipsis na coluna Alarm Inhibitor de uma das linhas Valor de alarme (LoLo, Baixo, Alto, HiHi).
A inibição de alarme pode basear-se em uma tag que não seja de mensagem. Aqui, temos uma tag do tipo Memória discreta. Quando seu valor torna-se verdadeiro, dispara a inibição. f.
Selecione a tag e clique em OK. O Dicionário Tagname é exibido com a nova tag de inibição preenchida em:
Inibidor Inibidorde dealarme alarmepara para LoLo LoLo
g. Clique em Save, seguido por Close.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-20
Módulo 6 – Alarmes Desabilitação de alarmes a. A visualização Alarms do Dicionário Tagname pode ser usada para acessar um campo .alarm enabled dot da tag. Este campo ponto pode desabilitar o alarme de uma tag individual ou de um grupo de alarme. Obs.: A Desabilitação de alarmes de um Grupo de Alarme desabilita TODOS os alarmes no grupo. Obs.: Campos ponto adicionais estão disponíveis de uma configuração de alarme. Para uma lista completa dos campos ponto consulte o Guia de Referência InTouch.
Configuração do sistema de alarme É possível configurar diversos parâmetros de um sistema de alarme como habilitar ou não eventos, reconhecimento ou não de alarmes quando eles retornam ao normal, etc. A caixa de diálogo Configuration comporta-se como qualquer folha de propriedade padrão Windows na qual nenhum ajuste é registrado até que você clique em OK. Se clicar em Cancel, toda entrada é ignorada e a caixa de diálogo fecha.
Propriedades gerais de alarme/evento a. Selecione Special / Configure / Alarms do menu principal WindowViewer. A caixa de diálogo Alarm Properties é exibida:
Opções de configuração: Alarm Buffer Size: O número de eventos de alarme mantidos na memória do WindowViewer. Este número representa o número máximo de alarmes que o nó pode armazenar para o resumo ou para consultas de histórico. Obs.: Somente eventos de alarme na memória podem ser exibidos em objetos de exibição de alarme. Se os alarmes não estão sendo usados, este valor pode ser ajustado para 1 para conservar a memória. Se ajustar este valor muito alto, isto pode retardar o desempenho de seu sistema. Para o Sistema de Alarme Distribuído, o valor padrão de 500 é recomendado. RTN implies ACK: Reconhece automaticamente tags de alarme que retornam ao estado "normal" (RTN). Não selecione esta opção se deseja que o operador reconheça um alarme após
Treinamento Wonderware
Seção 1 – Alarmes e eventos
6-21
o retorno ao normal. (RTN Implies ACK não se aplica a tags com o modelo ACK Expanded Summary.) Events Enabled: Habilita a armazenagem de evento de todas as mudanças de dados da tag que são iniciadas pelo operador, E/S, QuickScripts ou pelo sistema. (Somente tagnames com Log Events selecionado serão afetadas.) Alarm Enable Retentive: Estado da variável .AlarmEnabled a ser retido quando o WindowViewer é fechado e reiniciado. Retain ACK Comment as Alarm Comment: Comentários personalizados sobrescrevem os comentários de alarme. Caso contrário, os comentários de alarme do Dicionário Tagname serão usados.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-22
Módulo 6 – Alarmes
– Deixado em branco intencionalmente –
Treinamento Wonderware
Seção 2 – Objeto de alarme distribuído
6-23
Seção 2 – Objeto de alarme distribuído Objetivo da seção z
Apresentar e configurar o controle de alarme distribuído
O objeto de alarme distribuído exibe alarmes gerados localmente e remotamente. Os objetos de exibição desta tela incluem: barras de rolagem incorporadas, colunas de exibição dimensionáveis, seleção múltipla de alarmes, barra de status de atualização, barra de status de consulta, menu com o botão direito do mouse sensível ao contexto e cores de tela de alarme baseadas na prioridade do alarme .
Introdução O InTouch permite modificar a aparência da tela do alarme (incluindo as informações que são exibidas), as cores usadas para diversas condições de alarme e o Grupo de Alarme e os níveis de prioridade de alarme exibidos.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-24
Módulo 6 – Alarmes Criação de uma tela de alarme distribuído a. Clique na ferramenta Wizard no ícone Wizard/ActiveX Toolbar
.
b. A caixa de diálogo Wizard Selection é exibida:
c. Selecione Alarm Displays. d. Selecione Dist. Alarm Display Control. e. Clique em OK. A caixa de diálogo Wizard Selection fecha e sua janela é reexibida com o cursor no modo "colar". f.
Clique em qualquer local da janela ativa para colar o controle Alarm Display .
Você já pode configurar a tela.
Treinamento Wonderware
Seção 2 – Objeto de alarme distribuído
6-25
Recursos do visualizador de alarme Barras de rolagem A tela de alarme distribuído tem barras de rolagem horizontal e vertical incorporadas que permitem mover-se através dos alarmes listados. É possível configurar a exibição destas barras de rolagem. Colunas de exibição dimensionáveis A tela de alarme distribuído usa uma grade para fixar as mensagens de alarme. Esta grade permite o dimensionamento dinâmico das larguras de coluna simplesmente selecionando uma coluna e arrastando-a para ajustar a largura da coluna. Esta funcionalidade está disponível somente durante Runtime. É possível configurar se a grade pode ou não ser usada para dimensionar as colunas As mudanças de coluna de grade não são salvas; portanto, se fizer mudanças na coluna da grade e fechar a janela com a tela de alarme, as colunas da grade voltarão à largura padrão quando abrir novamente janela. Clique duas vezes com o mouse na linha da grade vertical para auto-dimensionar a colunas. Multiple Selection: A grade é compatível com a seleção de um ou diversos alarmes em uma caixa de listagem. Os alarmes selecionados podem ser reconhecido usando a função almAckSelect() QuickScript descrita posteriormente neste capítulo. Quando configurar a tela de alarme distribuído, é possível também definir o comportamento de seleção para permitir alternar a seleção (item a item), ou seleção múltipla (mantendo pressionada a tecla CTRL ou SHIFT juntamente com o clique do mouse para selecionar alarmes múltiplos). É possível desabilitar a seleção Runtime. Alarm Message Colors: Configura até seis cores diferentes para cada mensagem de alarme exibida, com base na prioridade de um alarme e se ele é reconhecido ou não.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-26
Módulo 6 – Alarmes Update Status Bar: A tela de alarme distribuído inclui uma barra de status que contém três indicadores: Status message, Current Alarm Query e Progress Bar. Estes indicadores fornecem as características gerais do estado atual de uma consulta de exibição e detalhes sobre a supressão disponível no Objeto de Alarme Distribuído. O painel direito da barra de status fica vermelho quando congelar está aplicado e o painel esquerdo da barra de status é vermelho quando a supressão está aplicada A palavra suppression é exibida no painel esquerdo quando a supressão está aplicada. É possível desativar a exibição da barra de status em Runtime.
Recurso
Descrição
Mensagem de status
A mensagem de status no canto esquerdo da barra de status oferece uma descrição mais detalhada do status da consulta atual.
Barra de progresso
A barra de progresso atualizada no canto direito da barra de status oferece uma indicação visual do progresso da consulta atual.
Consulta de alarme
A Consulta de Alarme oferece uma indicação visual da consulta de alarme atual.
Obs.: Se novos alarmes são recebidos enquanto a exibição é congelada, as palavras “New Alarm (s)” são exibidas na barra de status.
Mensagem de status
Estado/indicador
Barra de progresso
Nenhum
Nenhuma consulta
Nenhum
Atualização incompleta Consulta incompleta
Azul/Verde
Atualização correta
Consulta concluída
Azul sólido
Supressão
Nome da consulta
Azul sólido
Congelar
Nome da consulta
Vermelho
Novo alarme
Nome da consulta
Vermelho/Azul (depende do status de congelar).
Treinamento Wonderware
Seção 2 – Objeto de alarme distribuído
6-27
Right-Click Menu: O objeto Distributed Alarm Display é compatível com menus acessados por clique através do botão direito do mouse para rápido acesso aos comandos que podem ser aplicados ao objeto de exibição e/ou um ou mais alarmes selecionados, Grupos de Alarme, Tags e prioridades contidas na exibição de Runtime. Por padrão, o menu clique com o botão direito do mouse é desabilitado. Ele pode ser habilitado ajustado o valor apropriado nas folhas de Propriedades. Além disso, as funções script podem ser chamadas para executar qualquer coisa que pode ser feita com o menu do botão direito do mouse. a. Para habilitar a funcionalidade de clicar com o botão direito do mouse em Runtime, enquanto estiver em Desenvolvimento, clique com o botão direito do mouse em Distributed Alarm Display e selecione Properties.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-28
Módulo 6 – Alarmes A caixa de diálogo Alarm Configuration é exibida: b. Selecione a guia General. c. Selecione a opção Show Context Sensitive Menu .
Treinamento Wonderware
Seção 2 – Objeto de alarme distribuído
6-29
Com a funcionalidade clicar com o botão direito do mouse em Runtime agora habilitada, diversos níveis adicionais de funcionalidade podem ser usados. z
Ack Selected: Quando o operador clica com o botão direito do mouse na tela e aponta para Ack Selected durante Runtime, ele reconhece rapidamente o alarme selecionado.
z
Ack Others: Quando o operador clica com o botão direito do mouse na tela e aponta para Ack Others, um submenu é exibido com os comandos de reconhecimento. Durante Runtime, ele reconhece rapidamente todos os alarmes na tela ou apenas os visíveis, grupos, tagnames e prioridades selecionados clicando com o botão direito do mouse.
z
Suppress Selected: Quando o operador clica com o botão direito do mouse na tela e aponta para Suppress Selected durante Runtime, ele suprime o alarme selecionado.
z
Suppress Others: Quando o operador clica com o botão direito do mouse na tela e aponta para Suppress Others, um submenu é exibido contendo os comandos de supressão. Durante o Runtime, o operador pode suprimir rapidamente todos os alarmes na tela ou apenas os alarmes visíveis, grupos selecionados, tagnames selecionados e prioridades selecionadas usando esta funcionalidade.
z
Query Favorites: Quando você clica com o botão direito do mouse na tela e aponta para Query Favorites, a caixa de diálogo Alarm Query é exibida.
z
Stats: Posiciona a caixa de diálogo Alarm Statistics .
z
Suppression: Posiciona a caixa de diálogo Alarm Suppression.
z
Freeze: Congela a exibição atual.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-30
Módulo 6 – Alarmes Orientação de tela de controle do Alarme Viewer O controle Alarm Viewer usa o mesmo mecanismo dos assistentes de controle Window. Este mecanismo requer que a seguinte orientação seja observada ao usar objetos como a Tela de Alarme Distribuído. Use a Orientação a seguir: z
Cada tela deve ter um identificador diferente de forma que as funções QuickScript associadas saibam qual tela modificar. Este identificador inserido como Display Name na caixa de diálogo Alarm Configuration, deve ser exclusivo para cada tela.
z
Telas não devem sobrepor outros objetos InTouch como controles de janela e objetos gráficos. É possível verificar facilmente isto clicando na tela de alarme distribuído no WindowMaker e verificar as "alças de dimensionamento" da tela. As alças de dimensionamento não devem tocar outros objetos gráficos na tela.
z
Telas não devem ser usadas com parcimônia. O posicionamento de diversas exibições na tela pode resultar na redução do desempenho do sistema. Quando possível, limite o número de exibições em sua tela e chame mais telas adicionais contendo exibições.
Obs.: Telas de alarme adicionais estão disponíveis como Objetos de Alarme ActiveX.
Opções de configuração de tela de alarme A caixa de diálogo Alarm Configuration tem três campos de guia que contêm as opções para configuração General, Message e Color. Obs.: A caixa de diálogo Configuration comporta-se como qualquer caixa de diálogo padrão Windows, pois nenhum ajuste é registrado até que você clique em OK. As opções são verificadas para as entradas corretas, entretanto, quando alternar de uma folha de propriedade (guia) para outra, se uma verificação de entrada falha, a folha de propriedade contendo a entrada com falha é trazida novamente para foco e a caixa de mensagem é exibida indicando o erro. Se clicar em Cancel, toda entrada é ignorada e a caixa de diálogo fecha. a. Clique duas vezes com o mouse na tela de alarme distribuído.
Treinamento Wonderware
Seção 2 – Objeto de alarme distribuído
6-31
A caixa de diálogo Alarm Configuration é exibida com a guia General selecionada:
Opções de configuração: Display Name: Insira o nome de uma tela de alarme. O nome deve ser exclusivo para cada tela de alarme usada. Obs.: O nome que digitar aqui será usado em todo o sistema para consulta deste objeto para execução de tarefas como reconhecimento de alarme e consultas. New Alarms Appear At: Local em que deseja que os novos alarmes sejam abertos dentro do controle. z
Top of List: Exibe o alarme mais recente na parte superior da lista.
z
Bottom of List: Exibe o alarme mais recente na parte inferior da lista.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-32
Módulo 6 – Alarmes Ajustes de propriedades Propriedade
Descrição
Show Titles
Exibe a barra de título da mensagem de alarme
Allow Runtime Grid Changes
Permite ao usuário mudar os ajustes de coluna em Runtime
Perform Query on Startup
Inicia automaticamente a atualização da tela usando as propriedades de consulta padrões, se selecionadas. Caso contrário, execute um almDefQuery ou almQuery.
Use Default Ack Comment
Se marcada e um string for inserido, quando um usuário reconhece (ACKs) um alarme sem inserir um comentário, o string de mensagem associado será usado como comentário padrão
Show Message
Exibe a mensagem inserida na caixa de seleção quando selecionada. Esta é a mensagem exibida dentro do DAO quando não há alarmes a serem exibidos.
Show Status Bar
Exibe a barra de status
Allow Runtime Alarm Selection
Permite ao usuário selecionar os alarmes em Runtime
Show Context Sensitive Menu
Habilita a ativação de um menu pop-up com clique com o botão direito do mouse e usa o comando Ack padrão
Auto-Scroll to New Alarms
Se o usuário rolar a lista do início, ela automaticamente salta para o novo alarme
Use Extended Alarm Selection
Permite que alarmes múltiplos sejam selecionados ao manter pressionada a tecla Ctrl ou Shift juntamente com o mouse
Show Vert Scrollbar
Exibe a barra de rolagem vertical no objeto de tela de alarme
Show Horz Scrollbar
Exibe a barra de rolagem horizontal no objeto de tela de alarme
Propriedades de consulta padrão Obs.: As Propriedades de consulta padrão estão ativas se selecionar a opção Perform Query on Startup ou se a função almDefQuery QuickScript for executada. Propriedade
Descrição
From Priority
Prioridade de alarme mínima padrão.
To Priority
Prioridade de alarme máxima padrão. Para mais informações, consulte "Prioridades de alarmes" deste capítulo.
Alarm State
Estado de alarme padrão para consulta (All, UnAck, Ack).
Query Type
Ajusta o tipo de exibição como Resumo ou Histórico.
Alarm query
Ajusta a consulta de Alarme inicial. Este campo aceita apenas texto; não aceita tags. A sintaxe válida para estas listas inclui: \\Node\InTouch!Group Caminho completo para Alarm Group \InTouch!Group Caminho completo para Alarm Group local \InTouch!Group!Tag Caminho completo para Alarm Group local e Tag GroupList Entrada do Gerenciador de Nome Distribuído
Obs.: Para realizar consultas diversas, separe cada consulta com um espaço. Diversos Alarm Providers são configurados como parte do curso Desenvolvimento Avançado de Aplicativos.
Treinamento Wonderware
Seção 2 – Objeto de alarme distribuído
6-33
Formato de mensagem de alarme distribuído As informações exibidas em um objeto de exibição de alarme distribuído são configuráveis. a. Selecione a guia Message.
Obs.: Se você clicar com o botão direito do mouse na caixa de texto em qualquer caixa de diálogo de configuração de alarme, um menu será exibido mostrando os comandos que podem ser aplicados ao texto selecionado. A área de visualização (na parte de baixo da caixa de diálogo) exibe um exemplo da mensagem de alarme configurada atualmente. Este exemplo mostrará a mensagem usando a fonte selecionada mas não a cor. Opções de configuração: Date Format: Os formatos disponíveis incluindo os seguintes. Seleção
Tela
Seleção
Tela
DD MMM
28 Fev
MM/DD
02/28
DD MMM AAAA
28 Fev 2002
MM/DD/AA
02/28/02
DD/MM
28/02
MMM DD
Fev 28
DD/MM/AA
28/02/02
MMM DD AAAA
Fev 28 2002
AA/MM/DD
02/02/28
AAAA/MM/DD
2002/02/28
Time Format: Os valores deste campo são usados como um modelo para especificar o formato de hora. Por exemplo, para especificar hora como 10:24:30 AM use HH:MM:SS AP.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-34
Módulo 6 – Alarmes Os caracteres do gabarito incluem o seguinte: AP
Selecione o formato AM/PM. Por exemplo, três horas da tarde é exibido como 3:00 PM. Uma hora sem esta designação fica padrão como 24 horas no formato militar. Por exemplo, três horas da tarde é exibido como 15:00.
HH
Exibe a hora em que alarme/evento ocorreu.
MM
Exibe o minuto em que o alarme/evento ocorreu.
SS
Exibe o segundo em que o alarme/evento ocorreu.
SSS
Exibe o milissegundo em que o alarme/evento ocorreu.
Displayed Time: Tipo de exibição com base no status do alarme. Os formatos disponíveis incluindo os seguintes. LCT
Última Hora Modificada – ou seja, o registro de data/hora da mais recente mudança de status de uma instância de alarme: ocorrência do alarme, mudança do sub-estado, retorno ao normal ou reconhecimento .
LCT But OAT on ACK
Última Hora Modificada mas Hora do Alarme Original do ACK – ou seja, LCT será usada quando o alarme é UNACKed, depois OAT será usada após o alarme ser ACKed.
OAT
Hora do Alarme Original – ou seja, o registro de data/hora da ocorrência do alarme.
Sort Order: Área: Ordem na qual deseja que os alarmes sejam classificados no objeto de alarme (LCT e OAT). Selecione Display Font: Mudança de fonte, estilo e tamanho usado na exibição do alarme.
Treinamento Wonderware
Seção 2 – Objeto de alarme distribuído
6-35
Column Management: Personaliza a ordem da coluna e suas respectivas larguras. Exibe a caixa de diálogo Column Details . Marque Column Names de acordo com o que deseja exibir. Use as setas Up e Down para mudar a ordem na qual serão exibidos. Clique no botão Edit para exibir a caixa de diálogo onde o nome e o tamanho da coluna destacada podem ser personalizados.
Date: Exibe a data. Time: Exibe a hora. State (UnAck,Ack): Exibe o estado do alarme. Class (VALUE.DEV. ROC..): Exibe a categoria do alarme. Type (HIHI,LO,MAJDEV,…): Exibe o tipo de alarme. Priority: Exibe a prioridade de alarme. Name: Exibe o alarme/tagname. Name: Exibe o nome do Grupo de Alarme. Provider: Exibe o nome de um fornecedor de alarme. Value: Exibe o valor de um tagname quando o alarme ocorreu. Obs.: O valor deve ser grande o bastante para fornecer o nível de precisão desejado (32 caracteres no máximo). Limit: Exibe o valor limite de alarme do tagname. Obs.: O tamanho deste campo deve ser grande o bastante para fornecer o nível de precisão desejado (32 caracteres no máximo). Operator: Exibe a identificação do operador conectado associada à condição de alarme. Comment: Exibe os comentários do tagname. Estes comentários foram inseridos na caixa Alarm Comment quando alarme do tagname foi definido no banco de dados.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-36
Módulo 6 – Alarmes Propriedades de cor de tela de alarme distribuído a. Selecione a guia Color.
Área General: Cada caixa de cor abre a Paleta InTouch. Selecione a cor que deseja usar na paleta para cada uma das opções a seguir: Opção
Descrição
Window
Ajusta a cor do fundo da tela.
Grid
Ajusta a cor da grade da tela.
Selection Back
Ajusta a cor de fundo do texto destacado.
Texto de seleção
Ajusta a cor de fundo do texto.
Title Bar Back
Ajusta a cor de fundo da barra de título (visível somente se a opção Show Titles estiver habilitada).
Title Bar Text
Ajusta a cor da barra de texto (visível somente se a opção Show Titles estiver habilitada).
Alarm Return
Ajusta a cor de alarmes retornados (alarme que foram retornados ao normal sem serem reconhecidos).
Event
Ajusta a cor dos alarmes de Evento.
Alarm Priority: Insira os valores limites de uma tela de alarme. UnAck Alarm e Ack Alarm: Cada caixa de cor abre a Paleta InTouch. Selecione a cor na paleta que deseja usar para cada limite ultrapassado.
Treinamento Wonderware
Seção 2 – Objeto de alarme distribuído
6-37
Reconhecimento de alarmes É possível reconhecer os alarmes usando a função Ack em uma ação ou QuickScript chave, ou usando o menu com clique com o botão direito do mouse sensível ao contexto no Objeto de Alarme Distribuído. A função Ack monitora e/ou controla o status de reconhecimento de alarme de todos os tipos de alarmes locais . Criar um botão 3-D ou qualquer outro objeto para o qual uma ação ou chave QuickScript pode ser vinculada. Em seguida, insira qualquer uma das declarações a seguir para o QuickScript Action Script. Declaração
Descrição
Ack $System;
Reconhece todos os alarmes locais no sistema.
Ack Group Name;
Reconhece todos os alarmes locais em um Grupo de Alarme específico.
Ack Tagname;
Reconhece os alarmes de um tagname específico.
$System.Ack=1;
Reconhece todos os alarmes locais no sistema.
Group Name.Ack=1;
Reconhece todos os alarmes locais em um Grupo de Alarme específico.
Tagname.Ack=1;
Reconhece os alarmes de um tagname específico.
Tagname.AckDev=1;
Reconhece o alarme de desvio de um tagname específico.
Tagname.AckROC=1;
Reconhece o alarme da taxa de mudança de um tagname específico.
Tagname.AckValue=1;
Reconhece o alarme de valor de um tagname específico.
Funções de QuickScript de reconhecimento de alarme O Sistema de Alarme Distribuído é capaz de reconhecer qualquer alarme que possa ser consultado (somente exibição de resumo). Para fornecer esta capacidade, o Sistema de Alarme Distribuído inclui funções de reconhecimento de alarme QuickScript. Estas funções complementam o campo .Ack dot que o sistema de alarme InTouch usa para reconhecer os alarmes locais e os Grupos de Alarme . Funções de ALM QuickScript individuais são listadas no Apêndice G, “Funções de script” deste manual.
Anexar comentários a uma função de alarme Ack Cada reconhecimento de alarme deve ter um comentário anexado a ele. O operador ao reconhecer o alarme pode usar este comentário para adicionar informação sobre o alarme. O InTouch pode armazenar estes alarmes no banco de dados de alarme e imprimí-los. O Sistema de Alarme Distribuído usa a caixa Alarm Comment da definição de alarme da tag no banco de dados para enviar estes comentários aos subsistemas de armazenagem e de impressão. Escolha entre permitir que o sistema use a caixa Alarm Comment da tag para comentários ACK ou não. Se usar a caixa Alarm Comment da tag para manter comentários ACK, qualquer comentário neste campo será sobrescrito durante o Runtime (Isto não afeta o Dicionário de Dados Tagname). a. Clique em Special / Configure / Alarms.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-38
Módulo 6 – Alarmes A caixa de diálogo Alarm Properties é exibida:
b. Selecione Retain ACK Comment as Alarm Comment se deseja usar diversas funções almAck() para personalizar comentários. Caso contrário, os comentários de alarme do Dicionário Tagname serão usados. c. Clique em OK. Dica: Se você clicar com o botão direito do mouse na caixa de texto em qualquer caixa de diálogo de configuração de alarme, um menu será exibido mostrando os comandos que podem ser aplicados ao texto selecionado.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-39
Laboratório 6 – Criação de alarmes e eventos Introdução Neste laboratório, você criará e configurará janelas de alarme designadas a fim de habilitar o reconhecimento dos alarmes e o estabelecimento de eventos.
Objetivos Ao final deste laboratório, você: z
Importará a janela Alarms
z
Configurará a janela Alarms
z
Converterá as tags de janela Alarms
z
Configurará alarmes para tags
z
Definirá o botão Acknowledge
z
Criará uma tag inibidora
z
Criará um chave inibidora
z
Configurará campos de alarme Dot
z
Configurará anúncio de alarme
z
Criará eventos
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-40
Módulo 6 – Alarmes
Laboratório 6a – Reconhecimento de alarme Importação da janela Alarms 1. Feche WindowViewer. 2. Feche qualquer janela aberta no WindowMaker. 3. Selecione File / Import do menu principal WindowMaker e wwimport (usado em laboratórios anteriores).
4. Selecione a janela Alarms. 5. Clique OK. 6. Clique em Import.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-41
A janela Alarms agora é exibida no Application Explorer:
Configuração da janela Alarms 7. Abra a janela Alarms
8. Clique na ferramenta Wizard no ícone Wizard/ActiveX Toolbar
.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-42
Módulo 6 – Alarmes 9. A caixa de diálogo Wizard Selection é exibida:
10. Selecione Alarm Displays. 11. Selecione Dist. Alarm Display Control. 12. Clique em OK. A caixa de diálogo Wizard Selection fecha e sua janela é reexibida com o cursor no modo "colar"
.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-43
13. Posicione e dimensione o controle Alarm Display na janela.
14. Pressione a tecla F2 15. Selecione Special / Substitute Tags. 16. Clique em Convert.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-44
Módulo 6 – Alarmes A caixa de diálogo Convert é exibida:
17. Clique em Local.
18. Clique em OK.
Configuração de alarmes para tags 19. Selecione IntTag do dicionário Tagname. 20. Selecione a opção Details & Alarms . 21. Configure o alarme como exibido na figura a seguir e clique em Save.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-45
22. Selecione RealTag do dicionário Tagname. 23. Configure o alarme como exibido na figura a seguir. 24. Clique em Save, seguido por Close.
25. Alterne para Runtime. 26. Teste a tela de alarme movendo o slider RealTag para cima e o slider IntTag para baixo. A tela de alarme deve atualizar a cada movimento dos sliders. 27. Alterne para o modo Development.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-46
Módulo 6 – Alarmes Definição do botão Acknowledge 28. Clique duas vezes com o mouse no botão Acknowledge e selecione Touch Pushbuttons Action.
29. Apague qualquer script anterior. 30. Configure o editor Action Script com o script exibido na figura anterior. 31. Valide o script. O script reconhece o objeto de Alarme com o botão Acknowledge através da atribuição da função almAckSelect ao Objeto de Alarme Distribuído. Obs.: O valor do argumento AlarmObject para todas as funções almAck é derivado da propriedade name da configuração do Objeto de alarme. Modifique o script para corresponder ao nome de exibição de seu objeto de alarme.
32. Clique em OK e em OK novamente. 33. Alterne para Runtime e inicie um alarme para RealTag e IntTag. 34. Selecione um dos alarmes.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-47
35. Clique no botão Acknowledge. A cor do alarme mudará indicando que ele foi reconhecido.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-48
Módulo 6 – Alarmes
Laboratório 6b – Inibição de alarme Criação de uma tag inibidora Uma inibição é usada para desabilitar uma propriedade específica de um alarme. 36. Abra o Dicionário Tagname e clique em New.
37. Crie uma InhibitTag como uma Memory Discrete. 38. Clique em Save. 39. Clique em Select. 40. Selecione RealTag no Tagname Dictionary. 41. Clique em OK. 42. Selecione a opção Details & Alarms .
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-49
43. Clique no botão Ellipsis para HiHi Alarm Inhibitor.
44. Destaque InhibitTag com o Tagname Dictionary e clique em OK. 45. Clique em Save, seguido por Close.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-50
Módulo 6 – Alarmes Criação de uma chave inibidora 46. Selecione o ícone da barra de ferramentas Wizard Hat
.
47. Selecione Switches. 48. Selecione Knob Switch. 49. Clique duas vezes com o mouse em Knob Switch na caixa de diálogo Wizard Selection e posicione-a no aplicativo. 50. Clique duas vezes com o mouse em Knob Switch em seu aplicativo. A caixa de diálogo Discrete Switch Wizard é exibida
51. Clique duas vezes com o mouse no campo Tagname e selecione InhibitTag do Tagname Dictionary. 52. Clique em OK e em OK novamente.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-51
53. Alterne para Runtime.
54. Clique em Knob Switch para colocá-lo na posição On. 55. Mova o slider RealTag para o topo. A tela de alarme exibe somente o Alarme HI. O alarme HiHi foi inibido de forma que apenas o estado de alarme Hi é exibido.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-52
Módulo 6 – Alarmes 56. Repita a etapa anterior com a chave posicionada em Off . O alarme HiHi agora é exibido.
57. Alterne para o modo Development.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-53
Laboratório 6c – Campos de alarme Dot Configuração de campos de alarme Dot 58. Clique duas vezes com o mouse no símbolo # da campo $System.Alarm.
59. Atribua um link de animação Value Display - Discrete . A caixa de diálogo Output Discrete Expression é exibida.
60. Clique duas vezes com o mouse no campo de texto Expression (Apague qualquer Expressão anterior, se houver.) A caixa de diálogo Select Tag é exibida:
61. Role para baixo na lista de Tagname para selecionar o Tagname $System. 62. Abra a lista drop-down Dot Field.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-54
Módulo 6 – Alarmes A caixa de diálogo contendo todos os dotfields é exibida. 63. Selecione Alarm. A caixa de diálogo Select Tag deve agora estar semelhante à figura a seguir. 64. Clique em OK. O dotfield, .Alarm, está agora associado ao $System. 65. Ajuste On Message como Yes e Off Message como No.
66. Clique no botão OK superior. 67. Clique duas vezes com o mouse no símbolo # adjacente a $System.Ack na janela InTouch Alarms. 68. Selecione o link de animação Touch Links/User Inputs - Discrete.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-55
69. Apague qualquer tagname e ajuste anteriores.
70. Clique duas vezes com o mouse no campo Tagname. A caixa de diálogo Select Tag é exibida:
71. Selecione a tag $System. 72. Abra a lista drop-down Dot Field e selecione Ack. 73. Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-56
Módulo 6 – Alarmes 74. Complete a configuração do objeto Animation Link para corresponder à figura a seguir:
75. Clique em OK para salvar e fechar a seleção do link de animação. 76. Use as etapas anteriores para configurar o objeto de exibição de texto RealTag.HiLimit com o link Touch Link/User Input – Analog.
77. Use as etapas anteriores para configurar o objeto de exibição de texto RealTag.HiStatus com o link Value Display-Discrete.
78. Clique em OK. 79. Alterne para Runtime - observe as mudanças nos dotfields.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-57
80. Modifique RealTag.HiLimit com um valor a sua escolha.
81. Alterne para o modo Development.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-58
Módulo 6 – Alarmes
Laboratório 6d – Anúncio de alarme Configuração de anúncio de alarme 82. Clique com o botão direito do mouse em Windows e selecione New do submenu. 83. Configure a janela com as propriedades exibidas na figura a seguir:
84. Clique em OK. 85. Use a figura a seguir como guia para adicionar o texto e os objetos de botão a seguir.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-59
86. Defina o link Blink a seguir para o texto Attention:
87. Crie um novo script de condição em que a condição On True tem a janela aberta quando uma tag vai para alarme.
88. Valide o script e clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-60
Módulo 6 – Alarmes 89. Insira o script Touch Pushbutton - Action a seguir para o botão Acknowledge Alarms. O script Touch Pushbutton Action para o botão Acknowledge Alarms reconhecerá TODOS os alarmes, ajuste a tag $NewAlarm como 0 e oculte a janela Alarm Acknowledge .
90. Valide o script e clique em OK. 91. Clique em OK para fechar a janela Animation Links. 92. Salve e feche a janela Alarm Acknowledge. Certifique-se de que a janela Alarms ainda está aberta. 93. Alterne para Runtime.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-61
94. Mova os sliders. A janela Alarm Acknowledge deve agora abrir quando as tags vão para alarme. A caixa de texto Attention deve piscar. 95. Clique no botão Acknowledge Alarms. A janela deve fechar e os alarmes atuais devem mudar para o status ACK.
96. Retorne para Development.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-62
Módulo 6 – Alarmes
Monitoração de evento Criação de eventos 97. Clique duas vezes com o mouse no objeto Alarm. 98. Mude Query Type para Historical na área Default Query Properties .
99. Clique em OK. As linhas do objeto Alarm são preenchidas com os alarmes em Runtime.
Treinamento Wonderware
Laboratório 6 – Criação de alarmes e eventos
6-63
100.Clique duas vezes com o mouse no botão DiscTag1 para rever o script Touch Pushbuttons - Action.
101.Clique em OK e em OK novamente. 102.Abra o Tagname Dictionary. 103.Certifique-se de que a opção Log Events para DiscTag1 esteja marcada e Priority seja 998.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
6-64
Módulo 6 – Alarmes 104.Alterne para Runtime e clique no botão DiscTag1 Toggle para exibir eventos. Estes alarmes aparecerão na parte inferior da tela Alarm Object.
Treinamento Wonderware
Módulo 7
Tendência de histórico em tempo real Seção 1 – Tendências em tempo real Laboratório 7–Configuração de tendências em tempo real Seção 2 – Tendências de histórico Laboratório 8–Configuração de tendências de histórico
7-3 7-7 7-11 7-27
7-2
Módulo 7 – Tendência de histórico em tempo real Objetivos do módulo z
Visualizar dados de usuário em tempo real
z
Recuperar dados de arquivos de histórico
Treinamento Wonderware
Seção 1 – Tendências em tempo real
7-3
Seção 1 – Tendências em tempo real Objetivo da seção z
Visualizar dados de usuário em tempo real usando tendências de em tempo real
O InTouch oferece dois tipos de objetos de exibição de tendência: Histórico e tempo real Os dois objetos de tendência podem ser configurados para exibir representações gráficas de tags diversas em um período de tempo.
Introdução Tendências de em tempo real permitem a representação gráfica de até quatro penas (valores de dados). Tendências de histórico permitem fazer a representação gráfica de até oito. Os dois tipos de tendência são criados usando ferramentas especiais no WindowMaker. Um assistente de tendência de 16 penas opcional está disponível. O InTouch fornece também controle total de configuração de tendência. Por exemplo, é possível especificar o intervalo de tempo, faixa de valor, resolução de grade, localização de registro de tempo, localização de registros de valor, número de penas e em atributos de cores. O InTouch suporta também um sistema de histórico distribuído que permite Recuperar dados de histórico de qualquer arquivo de armazenagem de histórico InTouch, mesmo aqueles distribuídos em uma rede.
Criação de uma tendência em tempo real Um objeto de tendência é como qualquer outro objeto desenhado no WindowMaker. Ele pode ser movido arrastando-o com o mouse ou redimensionado arrastando uma das alças de dimensionamento do objeto. a. Selecione a ferramenta Real-time Trend
na barra de ferramentas Drawing.
b. Clique e arraste a janela para posicionar o objeto.
Em Runtime, os dados são escritos na tendência da direita para a esquerda. Não é limite para o número de tendências que podem ser colocadas em uma janela.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-4
Módulo 7 – Tendência de histórico em tempo real Opções de configuração A primeira vez que um objeto de tendência em tempo real é colado dentro de uma janela, os ajustes de configuração padrão do sistema são usados. Uma vez que uma tendência em tempo real é configurada, a próxima tendência criada, terá, por padrão, os mesmos ajustes. a. Clique duas vezes com o mouse no objeto de tendência. A caixa de diálogo Real Time Trend Configuration é exibida:
Obs.: Todas as entradas feitas na caixa de diálogo Real Time Trend Configuration são independentes do tamanho da tendência e não podem ser modificadas em Runtime. Time Span: Insira a duração de tempo a ser exibido horizontalmente (eixo x) em uma tendência. Selecione a opção Sec, Min ou Hr . Sample-Interval: Insira a freqüência na qual a expressão de tendência será avaliada e a carta atualizada. Depois selecione a opção Msec, Sec, Min ou Hr . Color: Clique em Chart Color e selecione a cor de fundo. Border Color: Selecione um cor de borda da tendência. Repita o processo para todas as seleções. Área Time Divisions - Number of Major Div: Insira o número das divisões com mais tempo para a tendência. Depois selecione uma cor para as linhas de divisão. O número das principais divisões de tempo deve ser um múltiplo par do número de Minor Div/ Major Div. Área Time Divisions - Minor Div/Major Div: Insira o número das divisões de tempo menores a serem visíveis dentro de cada divisão de tempo maior. Depois, selecione uma cor para as linhas de divisão. Área Time Divisions - Top Labels: Exibe os rótulos na parte superior da tendência. Área Time Divisions- Bottom Labels: Exibe os rótulos na parte inferior da tendência.
Treinamento Wonderware
Seção 1 – Tendências em tempo real
7-5
As tendências podem ter rótulos na parte superior e inferior ou não ter nenhum rótulo. Ao usar rótulos de tempo, insira o número de rótulos de tempo por linha de divisão principal na caixa Major Div/Time Label do grupo Time Divisions. Área Time Divisions - Colors: Selecione uma cor para as linhas de divisão de tempo principais. Área Value Divisions: Os ajustes nesta área são configurados da mesma forma dos ajustes na área Time Divisions , exceto pelas divisões de valor secundárias e principais ajuste a faixa do valor vertical (eixo y) para a tendência. Esta Faixa usa Unidades de Medida e é a mesma para todas as tags de tendência. Para Exibir pontos decimais das divisões de valor secundária e principal em Runtime, eles devem ser formatados nesta área da caixa de diálogo Real Time Trend Configuration . Por exemplo, 0,00 a 100,00. Min Value: Deve ser configurado para o valor Mínimo de uma tag tendenciada. Max Value: Deve ser configurado para o valor Máximo de uma tag tendenciada. Expression: Insira a tag ou expressão para qual cada Pen fará a tendência. Até quatro penas podem ser visíveis em uma tendência. As penas podem ser usadas para exibir qualquer tagname local que contém um ou mais tagnames locais. (Tags de tipo de mensagem não podem ser armazenados ou tendenciados.) A habilidade de tendenciar expressões é útil na criação de exibições personalizadas para exibir tagnames com faixas amplamente diferentes. Color: Selecione a cor de cada pena que imprimirá cada tag na tendência. Width: Largura em pixels de cada traço. Selecionar uma largura de pena maior do que 1 reduz significativamente o desempenho na atualização e impressão de tendência . Botão Select Display Font: Exibe a caixa de diálogo Font . Selecione a fonte, o estilo e a dimensão a ser usados quando imprimir a tendência. Only update when in memory: Atualiza sua tendência somente quando ela é exibida na janela ativa. Se esta opção não é selecionada, a tendência será atualizada constantemente, mesmo se não estiver em uma janela aberta. Isto pode resultar em um desempenho ligeiramente mais lento do sistema.
Otimização do desempenho de tendência em tempo real z
Ajuste a largura da pena em 1.
z
Certifique-se de que nenhum outro objeto esteja colocado sobre a tendência em tempo real.
z
Reduza o número de amostras coletadas.
Por exemplo, se Time Span é ajustado para 30 minutos e Sample Interval é ajustado como 2 segundos, o número de amostras coletadas durante os 30 minutos serão calculados como: 30* 60/2 = 900 Se Time Span é ajustado para 30 minutos e Sample Interval é ajustado como 5 segundos, o número de amostras coletadas durante os 30 minutos será calculado como: 30* 60/5 = 360
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-6
Módulo 7 – Tendência de histórico em tempo real
– Deixado em branco intencionalmente –
Treinamento Wonderware
Laboratório 7 – Configuração de tendências em tempo real
7-7
Laboratório 7 – Configuração de tendências em tempo real Introdução Neste laboratório, você criará e configurará penas para exibir os dados do usuário usando Tendências em Tempo Real.
Objetivos Ao final deste laboratório, você: z
Importará e Converterá a Janela Real Time Trend
z
Configurará uma tendência em tempo real
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-8
Módulo 7 – Tendência de histórico em tempo real Importação e conversão da janela Real Time Trend Esta tarefa começa com a importação de uma janela e conversão de uma tag. Etapas detalhadas para estas operações estão contidas nos laboratórios anteriores. 1. Feche todas as janelas WindowMaker, desligue o WindowViewer e importe a janela Real Time Trend do diretório wwimport .
2. Abra a janela Real Time Trend. 3. Pressione F2 para selecionar todos os objetos na janela. 4. Substituta e converta as tags como Local. 5. Selecione a ferramenta Real-time Trend
na barra de ferramentas Drawing.
6. Adicione o objeto Real-Time Trend ao painel cinza da janela Real Time Trend.
Treinamento Wonderware
Laboratório 7 – Configuração de tendências em tempo real
7-9
7. Redimensione o objeto Real-Time Trend para ocupar a maioria do painel. A janela Real Time Trend deve agora estar semelhante à figura:
Configuração de uma tendência em tempo real 8. Clique duas vezes com o mouse na tendência para exibir a caixa de diálogo Real Time Trend Configuration. 9. Ajuste o Time/Time Span para 30 Sec. 10. Ajuste o Sample/Interval para 1 Sec. 11. Ajuste o valor Value Divisions/Max para 1000. 12. Clique duas vezes com o mouse no campo Expression para Pen 1 e selecione RealTag. 13. Clique duas vezes com o mouse no campo Expression para Pen 2 e selecione IntTag. 14. Para as penas 3 e 4, insira o seguinte: Pen 3: $Second*10 Pen 4: DiscTag1*250 15. Ajuste cada valor Pen Width como 2.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-10
Módulo 7 – Tendência de histórico em tempo real A caixa de diálogo Real Time Trend Configuration deve agora ser semelhante à figura:
16. Clique em OK e alterne para Runtime. 17. Mova os sliders para cima e para baixo e clique no botão DiscTag1 para obter colocar valores dentro da tendência. Você verá que as linhas tracejadas refletem os movimentos do slider. (Pode ser necessário reconhecer os alarmes).
18. Retornar para o Development.
Treinamento Wonderware
Seção 2 – Tendências de histórico
7-11
Seção 2 – Tendências de histórico Objetivos da seção z
Introduzir e explicar as tendências de histórico InTouch
z
Explicar as opções de configuração de tendência de histórico
Esta seção apresentará e explicará as tendência de histórico do InTouch e explicará as opções de configuração de tendência de histórico.
Introdução Tendências de histórico oferecem fotos de dados de uma hora e data no passado. Elas não são dinâmicas. Diferente das tendências de em tempo real, tendência de histórico somente são atualizadas quando são instruídas a fazê-lo, mesmo através da execução de um QuickScript ou uma ação pelo operador (ex.clicar um botão). Até oito tags (penas) podem ser tendenciadas de uma vez sem limite do número de tendências exibido. Você tem total flexibilidade no projeto de interface para sua tendência. Scooters podem ser Criados e que o operador desliza sobre a tendência para acessar uma variedade de dados com base na localização atual do scooter. Por exemplo, quando o operador posiciona o scooter sobre uma área na tendência que tem dados visíveis, o tempo e os valores na localização para todos os pontos de dados sendo tendenciados são retornados. É possível também criar botões para aplicar ou remover zoom entre os scooters ou para os dados, como do valor máximo para mínimo. Desvio médio e padrão podem ser exibidos para um gráfico completo ou para a área entre os scooters. Tendências de histórico também podem ser roladas para qualquer quantidade de tempo. Escalas personalizadas podem ser criadas e vinculadas ao tagname .MinEU e .MaxEU .fields para exibir as Unidades de Medida mínima e máxima. O sistema de histórico distribuído estende as capacidades de recuperação das tendências de histórico para incluir bancos de dados de armazenagem remotos. O sistema permite que informações de bancos de dados de armazenagem de histórico diversos sejam exibidas em uma única tendência. Obs.: Você deve selecionar a opção Log Data para cada tag no Dicionário Tagname para que elas sejam tendenciadas. Além de suas capacidades de tendenciamento, o InTouch inclui o HistData Utility, projetado para trabalhar com os arquivos de armazenagem de histórico InTouch. O utilitário HistData converte arquivos de armazenagem de histórico encriptado (.LGH) para arquivos de variáveis separados por vírgula (.CSV) para uso em planilha eletrônica ou ambientes de edição de texto como o Microsoft Excel.
Armazenamento de tagnames no arquivo de armazenagem de histórico No WindowViewer, os valores de tags armazenadas são escritos no arquivo de armazenagem de histórico cada vez que elas mudam mais do que o ajuste Log Deadband especificado e, por padrão, uma vez por hora independente de mudança. Para um valor de tag ser escrito no arquivo de armazenagem de histórico, ele deve ser configurado para ser armazenado no Dicionário Tagname. Para tags do tipo inteiro e real (ponto flutuante), é possível ajustar Log Deadband em suas respectivas caixas de diálogo de detalhe. Log Deadband controla quantas Unidades de Medida um valor de tag deve mudar antes dele ser armazenado no disco.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-12
Módulo 7 – Tendência de histórico em tempo real Armazenamento de uma tag Para armazenar tags, Historical logging deve ser habilitado. Se uma tag é mudada de armazenada para não armazenada, os dados já armazenados para a tag não ficarão disponíveis. Entretanto, se a armazenagem de uma tag for reabilitada, os dados ficam disponíveis mas exibirão um intervalos em branco em um traço de tendência. Qualquer mudança no WindowMaker para armazenar enquanto o WindowViewer está em execução é ignorada até que o WindowViewer seja reiniciado. a. Clique em Special / Tagname Dictionary. A caixa de diálogo Tagname Dictionary é exibida: b. Abra a definição de tag desejada e selecione a opção Log Data .
c. Clique em Close. Obs.: As Unidades de Medida Min/Max são muito importantes para exibir dados de tendência de histórico. A tendência de histórico exibe de 0-100% da escala EU.
Configuração da armazenagem de histórico Para que as tags configuradas com a opção Log Data sejam escritas no arquivo de armazenagem de histórico, a função de armazenagem global deve estar habilitada. a. Clique em Special / Configure / Historical Logging. A caixa de diálogo Historical Logging Properties é exibida:
b. Selecione a opção Enable Historical Logging para habilitar a armazenagem de tag global.
Treinamento Wonderware
Seção 2 – Tendências de histórico
7-13
c. Na caixa Keep Log Files for, insira o número de dias (anterior a hoje) do arquivos de armazenagem serem mantidos no disco. Obs.: O InTouch criará e salvará dois arquivos de armazenagem de histórico por dia (24 horas). Portanto, considerar o espaço do disco ao configurar este valor. Se seu disco rígido não tem espaço livre suficiente para salvar esse arquivo, a armazenagem parará. É necessário liberar espaço no disco e reiniciar. A armazenagem pode ser iniciada e interrompida em Runtime vinculando a tag interna $HistoricalLogging ao botão ou QuickScript ou usando o Comando Restart Historical Logging no WindowViewer. Por exemplo, se inserir 10 e hoje é o dia 12 do mês, os arquivos de armazenagem para os dias 2 a 12 (10 dias mais hoje) serão salvos no disco. O arquivo do dia 1o. será automaticamente excluído. Se inserir um zero, os arquivos de armazenagem serão mantidos indefinidamente. Store Log Files in Application Directory: Salva o arquivo de armazenagem de histórico em um diretório do aplicativo. Store Log Files in specific Directory: Salva os arquivos em outro diretório. Insira o caminho completo do diretório que deseja usar. Esta entrada deve ser um caminho DOS ou UNC como C:\histlog. Por padrão, arquivos de armazenagem de histórico são nomeados da seguinte maneira: YYMMDD00.LGH e YYMMDD00.IDX onde:
YY corresponde ao ano em que o arquivo foi criado MM corresponde ao mês em que o arquivo foi criado (01-12) DD corresponde ao dia em que o arquivo foi criado (01-31)
00 representa horas; sempre exibe zeros (independente de quando os arquivos de armazenagem foram criados). Por exemplo, se os arquivos foram criados em 28 de dezembro de 2005, eles seriam nomeados da seguinte maneira: 05122800.LGH e 05122800.IDX Obs.: Esta versão do InTouch é compatível com os arquivos de armazenagem com extensões .LGH e .IDX. As versões anteriores do InTouch usavam a extensão .LOG para arquivos de armazenagem. Name of Logging Node: Insira o nome do nó de rede para o no que será armazenado no arquivo de armazenagem de histórico. Default % of page to print on: Insira a taxa de percentual para o tamanho da página para a tendência. Example: Se usar 50 como o percentual, quando imprimir uma tendência de histórico, ela preencherá metade da página (na vertical e na horizontal). Uma cópia impressa deste tamanho precisará aproximadamente de um quarto do tempo para preparar do que uma cópia impressa de página inteira. Max consecutive time to spend printing: Insira o número de milissegundos (fatia de tempo do processador) que o módulo de impressão de tendência de histórico gastará consecutivamente imprimindo. Time to wait between printing: Insira o número de milissegundos que o módulo de impressão de tendência de histórico esperará entre as cópias impressas.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-14
Módulo 7 – Tendência de histórico em tempo real Always use colors when printing: Quando usar uma impressora colorida ou plotter. Select Printer Font: Acessa a caixa de diálogo Font do Windows.
Treinamento Wonderware
Seção 2 – Tendências de histórico
7-15
Uso de assistentes de tendência de histórico O seletor de tendência InTouch Wizard oferece um modo rápido e fácil de criar uma tendência de histórico. Assistentes de tendência permitem configurar uma tendência de histórico com diversos recursos, como scooters e zoom, em apenas alguns cliques do mouse. Um objeto de tendência é como qualquer outro objeto desenhado no WindowMaker. Ele pode ser movido arrastando-o com o mouse ou redimensionado arrastando uma das alças de dimensionamento do objeto. É possível posicionar diversas tendências em uma janela. Obs.: A configuração do assistente Hist Trend w/Scooters and Scale é semelhante ao objeto na barra Draw Objects.
a. Clique no ícone da barra de ferramentas Wizard
.
A caixa de diálogo Wizard Selection é exibida:
b. Selecione Trends. Obs.: Os assistentes 16-Pen Trend e 16-Pen Trend Scooter não serão exibidos se não forem instalados durante a instalação original do InTouch.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-16
Módulo 7 – Tendência de histórico em tempo real c. Posicione o assistente Hist Trend with Scooters and Scale na janela InTouch.
d. Clique duas vezes com o mouse no assistente de tendência. A caixa de diálogo Historical Trend Chart Wizard é exibida:
Sugestão: O assistente inserirá automaticamente os ajustes de configuração. Os ajustes configurados para um assistente de tendência de histórico são os mesmos configurados quando um objeto de tendência de histórico é desenhado usando a ferramenta de tendência WindowMaker na barra de ferramentas Drawing. e. Clique em Suggest.
Treinamento Wonderware
Seção 2 – Tendências de histórico
7-17
O assistente de tendência cria e preenche duas tags:
Values…: Esta opção permite personalizar as divisões de eixo vertical, o formato e a faixa. f.
Clique no botão Values… no assistente Historical Trend Chart . A caixa de diálogo Value Format (Vertical Axis) é exibida:
g. Clique em OK para salvar suas mudanças. Times…: Esta opção permite personalizar as divisões de eixo horizontal, o intervalo de tempo e o formato de tempo. h. Clique no botão Times… no assistente Historical Trend Chart . A caixa de diálogo Time Format (Horizontal Axis) é exibida:
i.
Clique em OK para salvar suas mudanças.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-18
Módulo 7 – Tendência de histórico em tempo real Pens…: Esta opção permite ao usuário selecionar quais valores e cores cada pena imprimirá. j.
Clique no botão Pens… no assistente Historical Trend Chart . A caixa de diálogo Trend Pens é exibida:
k. Clique duas vezes com o mouse no campo Tags to trend. Uma caixa de diálogo Select Tag é exibida, mostrando apenas as tags que têm Log Data habilitado no Dicionário Tagname:
l.
Configure a primeira pena para imprimir o valor do tagname IntTag.
m. Configure a segunda pena para imprimir o valor do tagname RealTag.
Treinamento Wonderware
Seção 2 – Tendências de histórico
7-19
Allow Runtime Changes: A seleção desta opção ajusta a tendência de histórico para que seja sensível ao toque no WindowViewer e o operador poderá mudar os recursos como as atribuições da pena ou a data e hora de início. n. Certifique-se de que Allow Runtime Changes esteja selecionado no Historical Trend Chart Wizard e clique em OK. o. Alterne para Runtime. p. Clique com o mouse no objeto de tendência no WindowViewer. A caixa de diálogo Historical Trend Setup é exibida:
q. Chart Start: Insira a data e a hora de início para o gráfico. r.
Display Mode: Selecione um dos três modos como descrito nos exemplos a seguir. z
Min/Max Historical Trend: Este modo exibe as tendências ou mudanças no percentual das escalas de Unidades de Medida como uma linha vertical sobre o intervalo de tempo, com ênfase no fluxo de tempo e na taxa de mudança e não na quantidade de mudança.
z
Average/Scatter Historical Trend: Este modo exibe o valor médio do ponto durante os intervalos de tempo.
z
Average/Bar Chart Historical Trend: Este modo exibe o valor médio do ponto durante os intervalos de tempo na forma da barra.
Obs.: Este modo de exibição da tendência afeta o desempenho. Além disso, ele é o comprimento das linhas desenhadas para gerar a tendência: quanto mais longas as linhas, mais tempo leva para gerá-las. A largura da linha também é um fator de desempenho. Linhas mais largas precisam de mais tempo para serem desenhadas. Tendências Min/Max ou Average/Scatter são geralmente muito mais rápidas de gerar do que Average/Bar Chart. s. Chart Length: Insira o comprimento horizontal (eixo x) de tempo a ser exibido na tendência e selecione o aumento de tempo de acordo com o comprimento.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-20
Módulo 7 – Tendência de histórico em tempo real Se inserir um 1 e selecionar Hrs, a tendência terá 1 hora de comprimento. t.
Chart Range: Insira a escala de percentual das unidades de medida que a tendência terá que aplicar/remover zoom (eixo vertical y) para ser exibida na tendência. As unidades de faixa são um percentual da escala de Unidade de Medida. Estes valores devem ser de 0 a 100.
u. Pen#: Clique dentro campo em branco para selecionar a tag. O Tag Browser é exibido no modo de seleção filtrado.
Somente as tags que estão definidas com a opção Log Data selecionada serão exibidas para a fonte de tag selecionada. Clique duas vezes com o mouse no tagname que a pena selecionada imprimirá na tendência ou selecione o tagname e clique em OK. A caixa de diálogo Historical Trend Setup reaparece exibindo o tagname selecionado próximo ao botão Pen# que foi clicado originalmente. É possível abrir a lista drop-down Filter para visualizar os filtros que podem ser usados para preencher o Tag Browser. A primeira entrada desta lista é , o que significa que nenhum filtro está sendo usado. Somente as tags que estão definidas com a opção Log Data selecionada serão exibidas para a fonte de tag selecionada.
Treinamento Wonderware
Seção 2 – Tendências de histórico
7-21
Assistentes de tendência de histórico adicionais Adicionar zoom e funções de movimento ou controles de pena à sua tendência de histórico com um assistente Trend Zoom / Pan Panel ou Trend Pen Legend. Para que estes componentes trabalhem juntos, o mesmo tagname Hist Trend deve ser usado por todos os assistentes. Trend Zoom / Pan Panel: Posicione e configure Trend Zoom / Pan Panel usando as mesmas etapas destacas na seção Hist Trend with Scooters and Scale . a. Posicione um assistente Trend Zoom / Pan Panel em sua janela InTouch e configure-a usando o botão Suggest.
Obs.: O diagrama acima explica a funcionalidade do botão Zoom Bar e Scroll Bar quando o assistente Historical Trend não é configurado para atualizar automaticamente. Use os scooters na parte inferior do assistente Hist Trend with Scooters and Scale para identificar uma área específica. Depois, clique no botão Zoom In para aplicar zoom em uma área específica.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-22
Módulo 7 – Tendência de histórico em tempo real Trend Pen Legend: Exibe o tagname e os valores nos Scooters para uma pena. Por padrão, o valor de uma pena no ponto mais à esquerda da Tendência de Histórico é exibida à esquerda, enquanto o valor da pena no ponto mais à direita é exibido no lado direito da Legenda Trend Pen. Entretanto, é possível usar os scooters na parte inferior do assistente de Historical Trend para exibir o valor de uma pena em um tempo específico. b. Posicione duas Legendas Trend Pen na sua janela InTouch. Configure a primeira para o Número da pena IntTag (e a cor da Pena de Tendência), e a segunda para o Número de Pena RealTag (e cor).
Treinamento Wonderware
Seção 2 – Tendências de histórico
7-23
HistData Wizard: Salva os dados de histórico para um arquivo CSV. c. Posicione um assistente HistData em sua janela InTouch e configure usando o botão Suggest.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-24
Módulo 7 – Tendência de histórico em tempo real Campos dot de tendência de histórico Para uma determinada tag de tendência de histórico há muitos .field que somente se aplicam às tendências de histórico. .Field
Descrição
.ChartLength
Leitura/Escrita de um .field tagname inteiro usado para controlar a duração de tempo exibida em um gráfico de tendência de histórico. .ChartLength exibe o comprimento do gráfico em segundos.
.ChartStart
Leitura/Escrita de um .field tagname inteiro usado para controlar o tempo de início e/ou para rolar a tendência de histórico correspondente. .ChartStart exibe o número de segundos passados desde 12:00 h, 1/1/70.
.DisplayMode
Leitura/Escrita de um .field tagname analógico usado para determinar o método a ser usado na exibição de valores na tendência.
.MaxRange, .MinRange
Leitura/Escrita de um .fields tagname real usado para representar o percentual da faixa de Unidade de Medida da tagname que deve ser exibida para cada tagname que está sendo tendenciado. Os limites para .MaxRange e .MinRange são de 0 a 100 e .MinRange deve sempre ser menos do que .MaxRange. Se um valor menor do que 0 ou superior a 100 é atribuído a algum destes campos, o valor será fixado em 0 ou 100. Se .MinRange for superior ou igual a .MaxRange, a tendência não exibirá nenhum dado.
.Pen1 - .Pen8
Leitura/Escrita de um .fields tagnames do tipo TagID usado para controlar o tagname sendo tendenciado historicamente para cada pena. Um tagname TagID pode apenas ser equiparado a outro tagname TagID. Ele não pode ser combinado com nenhum outro tipo de tagname a menos que a extensão .TagID seja adicionada ao outro tagname. .TagID não pode ser usado para tagnames de fornecedor de histórico remoto.
.ScooterLockLeft
Leitura/Escrita de campo discreto. Quando o valor deste campo é VERDADEIRO, o scooter DIREITO não pode mover-se para a esquerda da posição do scooter da esquerda. (0=FALSO, 1=VERDADEIRO).
.ScooterLockRight
Leitura/Escrita de campo discreto. Quando o valor deste campo é VERDADE, o scooter ESQUERDO não pode mover-se para a direita da posição do scooter da direita. (0=FALSO, 1=VERDADE).
.ScooterPosLeft
Leitura/Escrita de campo real que representa a posição do scooter esquerdo (faixa 0,0 a 1,0).
.ScooterPosRight
Leitura/Escrita de campo real que representa a posição do scooter direito (faixa 0,0 a 1,0).
.TagID
Leitura/Escrita de um .field do tagname TagID juntamente com a Tendência de Histórico .Pen1 - .Pen8. Tagnames TagID monitoram e/ou controlam o tagname que está sendo tendenciado pela pena.
.UpdateCount
.Field inteiro somente leitura é incrementado quando uma recuperação está completa para a tendência.
.UpdateInProgress
.field discreto somente leitura que exibe o status da retenção de dados de histórico (0=nenhuma recuperação em andamento, 1=recuperação em andamento).
.UpdateTrend
Leitura/escrita de .field de tagname discreto que pode ser ajustado para 1 para fazer com que uma Tendência de histórico seja atualizada usando todos os valores atuais
Funções QuickScript de histórico Há diversas funções internas usadas para especificar a tag a ser tendenciada pela pena, exibir o valor na localização de um scooter, rolar a tendência de acordo com um percentual, etc. Estas funções estão descritas no Apêndice G deste manual.
Treinamento Wonderware
Seção 2 – Tendências de histórico
7-25
Utilitário HistData O utilitário HistData oferece acesso aos arquivos de dados de histórico criados pelo InTouch. Ele é usado para mover dados de histórico selecionados para um programa solicitante, como o Microsoft Excel. HistData permite visualizar imediatamente dados de histórico ou criar um arquivo para acesso posterior. O acesso pode ser obtido através de funções de macro em um programa solicitante ou de dentro do InTouch. O programa HistData deve ser iniciado e reduzido a um ícone antes de iniciar qualquer programa que o utilizará. Obs.: O utilitário HistData não pode ser usado com as referências de tagname remotas, por exemplo, DBS:TAG (AccessName:Item).
Banco de dados HistData O programa HistData contém suas próprias E/S. Os itens são usados para especificar o período de início, duração e intervalo de amostragem e assim por diante, para que os dados de histórico sejam acessados. A seguir veja as listas de itens definidos no programa HistData. .Field
Descrição
Descrição
DATADIR
Mensagem
Caminho do diretório contendo os arquivos de dados de histórico (ex. C:\InTouch\App).
DBDIR
Mensagem
Caminho do diretório contendo o Dicionário Tagname InTouch (ex. C:\InTouch\App).
STARTDATE
Mensagem
Data de início de amostra de dados no formato MM/DD/AA.
STARTTIME
Mensagem
Hora de início da amostra de dados no formato HH:MM:SS usando relógio de 24 horas
DURATION
Mensagem
A duração de tempo para o retorno dos dados. DURATION pode ser expressa em semanas, dias, horas, minutos e segundos. Os caracteres a seguir são válidos: w (semana), d (dia), h (hora), m (minuto), s (segundo). Valores fracionados também são permitidos (ex.: 5s para 500 milissegundos). Para solicitar uma amostra única, ajuste DURATION como 0 (zero).
INTERVAL
Mensagem
A duração de tempo entre amostras. INTERVAL pode ser expresso em semanas, dias, horas, minutos e segundos (ex.1w representa 1 semana). Valores fracionados também são permitidos (ex. 25s representa 6 horas). (Os caracteres válidos são os mesmos da DURATION.) Obs.: A duração de tempo máxima permitida para DURATION e INTERVAL é 6 semanas. Isto aplica-se a todos os tipos, dias, segundos solicitados, etc. Por exemplo, se usar dias, 42 é o máximo (7 dias x 6 semanas = 42).
FILENAME
Mensagem
Caminho completo do arquivo onde escrever os dados solicitados (ex. C:\INTOUCH\HDFILE.CSV).
WRITEFILE
Inteiro
Quando ajustado em 1, HistData escreverá os dados no arquivo especificado pelo nome de item FILENAME . Quando a atualização do arquivo está completa, WRITEFILE é automaticamente reinicializado como 0 (zero).
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-26
Módulo 7 – Tendência de histórico em tempo real .Field
Descrição
Descrição
ERROR
Mensagem
Um string contendo uma descrição do último erro. Será "None" quando STATUS é 1 e conterá um string de mensagem de erro quando STATUS é 0 (zero).
TAGS1, TAGS2,...
Mensagem
O string TAGS pode ter 131 caracteres no WindowViewer e 255 caracteres em Excel. O string pode ser acrescentado para solicitações mais longas pela adição de itens de tagname nomeados "Tags1," "Tags2", etc. Se um tagname precisa de um texto de tagname adicional incluído nele, um mais (+) é inserido no final string. Por exemplo: TAGS="$Date,ProdLevel,ProdTemp,+" TAGS1=“ReactLevel,Temp,GasLevel,+” TAGS2="MotorStatus"
Obs.: Tagnames duplicados não são permitidos e o comprimento máximo de cada string de tag é de 512 bytes. PRINTTAGNAMES
Discreta
O padrão deste item é 1 e faz com que HistData imprima os tagnames na primeira linha do arquivo de saída acima da coluna de valores associada. Se os tagnames não devem ser impressos, o valor deste item deve ser mudado para 0 (zero).
DATA
Mensagem
Este item é usado para manter os dados solicitados no programa HistData no formato de variável separada por vírgula. Ele é usado por outros aplicativos para RECOMENDAR ou SOLICITAR dados através de DDE.
STATUS
Discreta
Exibe o status da última operação. 1 indica sucesso e 0 (zero) indica que um erro ocorreu. Tendência de Histórico e Horário de Verão O sistema de histórico InTouch considera fusos horários automaticamente. Para informações sobre considerações de Horário de Verão, consulte a área de Suporte InTouch do website Wonderware.
SENDDATA
Inteiro
Quando ajustado como 1, HistData atualizará o item DATA com os dados solicitados. Quando a atualização está completa, SENDDATA é automaticamente reinicializado como 0 (zero).
Obs.: Se receber uma mensagem de erro dizendo que solicitou muitos dados ao usar SENDDATA, encurte DURATION ou reduza o número de tagnames que está solicitando. Duplicar tagnames não é permitido e o comprimento máximo de cada string de tag é 512 bytes.
Obs.: Para sistemas legados, certifique-se da total precisão de configuração de tempo consultando o InTouch Tech Note #144, Como o Fuso Horário e o Horário de Verão Afetam o Armazenamento de Histórico InTouch, incluído no Apêndice E, “Notas técnicas relacionadas ao InTouch.”
Treinamento Wonderware
Laboratório 8 – Configuração de tendências de histórico
7-27
Laboratório 8 – Configuração de tendências de histórico Introdução Neste laboratório, você criará e configurará uma Tendência de Histórico para Recuperar informações sobre duas tags existentes, RealTag e IntTag.
Objetivo Ao término deste laboratório, você deverá um amplo conhecimento da criação e configuração das Tendências de Histórico InTouch . Para isto, as seguintes tarefas devem ser concluídas com sucesso: z
Criar uma janela de tendência de histórico
z
Configurar o assistente de tendência
z
Definir o painel de zoom/Pan de tendência
z
Definir a legenda da pena de tendência
z
Definir o assistente HistData
z
Definir os sliders
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-28
Módulo 7 – Tendência de histórico em tempo real Criação de uma janela de tendência de histórico 1. Crie uma nova janela com os atributos exibidos na figura a seguir:
2. Clique em OK. 3. Pressione as teclas Ctrl+T para abrir o Dicionário Tagname. 4. Confirme que a opção Log Data está habilitada para IntTag. 5. Clique em Save.
6. Use o botão >> para rolar para baixo para RealTag. 7. Confirme que a opção Log Data está habilitada para RealTag. 8. Clique em Save, seguido por Close. Obs.: A armazenagem de histórico não pode ser realizada em uma Tag Message. 9. Clique em Special / Configure / Historical Logging.
Treinamento Wonderware
Laboratório 8 – Configuração de tendências de histórico
7-29
A janela Historical Logging Properties é exibida:
10. Clique na caixa de seleção Enable Historical Logging . 11. Clique em OK. 12. Encerre o WindowViewer se ele estiver em execução. NÃO REINICIE O WINDOWVIEWER! 13. Crie uma janela semelhante à janela abaixo usando os assistentes Hist Trend w/Scooter and Scales, Trend Zoom/Pan Panel, Trend Pen Legend e HistData. Inclua também dois Sliders. Dica: Copie e cole os sliders da janela RealTime Trend criados anteriormente. Sliders
Tendência de histórico com Scooter e Escalas
Trend Zoom / Pan Panel:
Legendas da pena de tendência
Assistente HistData
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-30
Módulo 7 – Tendência de histórico em tempo real Configuração do assistente de tendência 14. Clique duas vezes com o mouse na tendência. A caixa de diálogo Historical Trend Chart Wizard é exibida:
15. Clique em Suggest para inserir tagnames. Os nomes sugeridos são exibidos automaticamente. Tenha em mente que todos os assistentes de Trends usados em sua janela devem agora estar associados à tag HistTrend. 16. Clique no botão Pens. A caixa de diálogo Trend Pens é exibida:
17. Clique duas vezes com o mouse no campo Pen 1.
Treinamento Wonderware
Laboratório 8 – Configuração de tendências de histórico
7-31
A janela Select Tag é exibida:
18. Selecione IntTag e clique em OK. 19. Repita as duas etapas anteriores para o campo Pen 2 e selecione RealTag. 20. Clique em OK. 21. Clique em OK novamente para sair da caixa de diálogo Historical Trend Chart Wizard.
Definição do painel de zoom/Pan de tendência 22. Clique duas vezes com o mouse em Trend Zoom/Pan Panel. A caixa de diálogo Trend Panel Wizard é exibida:
23. Clique no botão Suggest para inserir os tagnames corretos. Certifique-se de que o tagname HistTrend seja usado. 24. Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-32
Módulo 7 – Tendência de histórico em tempo real Definição da legenda da pena de tendência 25. Clique duas vezes com o mouse no primeiro objeto Trend Pen Legend. Este objeto exibirá a tag IntTag. O assistente Trend Legend Wizard é exibido da seguinte maneira:
26. Clique em Suggest para inserir os tagnames corretos. Novamente, certifique-se de que o tagname HistTrend seja usado. 27. No grupo Color, use verde para Trend Pen. 28. Verifique se 1 está inserido na caixa Pen Number. 29. Deixe todas as outras entradas com seus padrões. 30. Clique em OK. 31. Clique duas vezes com o mouse na segunda Trend Pen Legend (para a tag RealTag). 32. Clique em Suggest. 33. Insira um Trend Pen Color Red e um Pen Number 2. 34. Clique em OK.
Treinamento Wonderware
Laboratório 8 – Configuração de tendências de histórico
7-33
Definição do assistente HistData 35. Clique duas vezes com o mouse no assistente HistData e depois clique em Suggest para inserir a tag HistTrend. 36. Insira 50 para o número de registros a serem escritos por arquivo CSV. 37. Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-34
Módulo 7 – Tendência de histórico em tempo real Definição dos sliders Se não copiou os dois sliders da janela Real Time Trend, configure-os usando as etapas destacas a seguir. 38. Clique duas vezes com o mouse no slider superior. Este slider será usado para a tag IntTag.
39. Configure a caixa de diálogo Slider Wizard com os atributos a seguir. TagnameIntTag Slide Face / Label IntTag Fill color Green Slide Range / Maximum 1000 Decimal Places 0 Deixe os outros ajustes padrões. 40. Clique em OK. 41. Repita este processo para o segundo slider usando: TagnameRealTag Slide Face / Label RealTag Fill color Red Slide Range / Maximum 1000 Decimal Places 0 42. Alterne para Runtime.
Treinamento Wonderware
Laboratório 8 – Configuração de tendências de histórico
7-35
Uma caixa de mensagem será exibida perguntando se deseja iniciar o programa HistData:
43. Clique em Yes.
Atualizar o tempo atual
44. Mova os sliders para cima e para baixo para mudar os valores e escrevê-los no arquivo de Armazenagem de Histórico. 45. Clique no botão Update to Current Time para atualizar a tendência com os dados mais recentes. 46. Mova os scooters e clique nos botões Zoom para aplicar ou remover zoom. 47. Clique no botão “Save to File” para realizar a extração HistData. As informações extraídas podem ser visualizadas no formato de planilha eletrônica no arquivo .csv indicado por “Filename” no assistente HistData Panel.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
7-36
Módulo 7 – Tendência de histórico em tempo real
– Deixado em branco intencionalmente –
Treinamento Wonderware
Módulo 8
Comunicação de E/S Seção 1 – Protocolos de comunicação de E/S Seção 2 – Servidores de E/S Wonderware Laboratório 9–Configuração de comunicação de E/S Seção 3 – Localização de falhas de E/S
8-3 8-13 8-19 8-25
8-2
Módulo 8 – Comunicação de E/S Objetivos do módulo z
Explicar protocolos de comunicação de E/S
z
Estabelecer comunicação com drivers de comunicação e estar apto a configurar e localizar falhas em Servidores de E/S
Treinamento Wonderware
Seção 1 – Protocolos de comunicação de E/S
8-3
Seção 1 – Protocolos de comunicação de E/S Objetivos da seção z
Explicar protocolos de comunicação de E/S
z
Explicar e configurar um Nome de Acesso InTouch
Esta seção explica os protocolos de comunicação de E/S e demonstra como configurar um nome de acesso InTouch.
Troca de dados dinâmica (DDE) Troca de Dados Dinâmica (DDE) é um protocolo de comunicação desenvolvido pela Microsoft para permitir que aplicativos no ambiente Windows enviem/recebam dados e instruções para/de um do outro. Ele implementa um relacionamento cliente-servidor entre dois aplicativos em execução simultânea. O aplicativo servidor fornece os dados e aceita solicitações de qualquer outro aplicativo interessado nestes dados. Aplicativos solicitantes são chamados clientes. Alguns aplicativos como o InTouch e o Microsoft Excel podem ser simultaneamente cliente e servidor. Obs.: NetDDE um protocolo mais antigo usado para comunicação em rede para fontes Wonderware e não Wonderware, é compatível com Windows XP e Windows 2000, mas não com o Windows 2003 Server. A comunicação com fontes Wonderware é recomendada usando SuiteLink.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-4
Módulo 8 – Comunicação de E/S Wonderware SuiteLink O Wonderware SuiteLink usa um protocolo de base TCP/IP. O SuiteLink é projetado especificamente para atender as necessidades industriais, como integridade de dados, alto throughput e diagnósticos mais fáceis. Este protocolo padrão é compatível para Windows 2000, Windows 2003 Server e Windows XP. SuiteLink não é uma substituição para o DDE. Wonderware recomenda que DDE seja usado para comunicação com cliente interno e SuiteLink para comunicação em rede. Cada conexão entre um cliente e um servidor depende da situação de sua rede. O SuiteLink fornece os benefícios a seguir: z
Altos volumes de dados consistentes podem ser mantidos entre aplicativos, independente dos aplicativos estarem em um único nó ou distribuídos em um grande número de nós.
z
Qualidade de Tempo de Valor (VTQ) coloca um registro de data e hora e um indicador de qualidade em todos os valores de dados fornecidos para clientes VTQ.
z
Diagnósticos extensos de throughput de dados, carregamento de servidor, consumo de recurso de computador e transporte de rede se tornam acessíveis através do monitor de desempenho do sistema operacional Microsoft Windows NT® . Este recurso é crítico para o esquema e a manutenção de redes industriais distribuídas.
z
O protocolo de transporte de rede é o TCP/IP usando a interface padrão Winsock da Microsoft. Para usar o Protocolo de Comunicação SuiteLink, as condições a seguir devem ser satisfeitas. z
O Microsoft TCP/IP deve estar configurado e funcionando corretamente.
z
É necessário usar nomes de computador (Node Names) de não mais do que 15 caracteres. Para mais informações sobre a instalação e configuração do Microsoft TCP/IP, consulte sua documentação do sistema operacional Microsoft Windows.
z
O Wonderware SuiteLink deve estar executando com um serviço. Se por algum motivo o SuiteLink foi interrompido, será necessário iniciá-lo novamente. (SuiteLink é instalado automaticamente como um Componente Comum quando instalar seu InTouch. Ele é configurado para iniciar automaticamente como um Serviço Windows).
Treinamento Wonderware
Seção 1 – Protocolos de comunicação de E/S
8-5
Endereçamento de E/S InTouch O InTouch identifica um elemento de dados em um programa Servidor de E/S usando uma convenção de nome de três partes que inclui nome do aplicativo, nome de tópico e nome de item. Para obter dados de outro aplicativo, o programa cliente (InTouch) abre um canal para o programa servidor para especificar estes três itens. Para que o InTouch adquira um valor de dados de outro aplicativo, ele deve conhecer o nome do aplicativo que fornece o valor de dados, o nome do tópico dentro do aplicativo que contém o valor de dado e o nome do item específico dentro do tópico. Além disso, o InTouch precisa saber o tipo de dados: discreto, inteiro, real (ponto flutuante) ou mensagem (string). Esta informação determina o tipo de E/S para o tagname quando ele é definido no banco de dados InTouch. Quando o WindowViewer está executando, ele realizará automaticamente todas as ações requeridas para obter e manter o valor deste item. Por exemplo, no caso do Excel, o nome do aplicativo é "Excel," o nome de tópico é o nome da planilha específica que contém os dados e o nome de item é a identificação da célula na planilha eletrônica de/para a qual o dado deve ser lido/escrito. Quando outro aplicativo Windows solicita um valor de dados do InTouch, ele também deve saber os três itens de endereços de E/S. A seguir, veja uma descrição da convenção de endereço de E/S para o InTouch. z
VIEW (application name) identifica o programa InTouch em Runtime que contém o elemento de dados.
z
TAGNAME (nome topic) é a palavra sempre usada ao ler/escrever um tagname no banco de dados InTouch.
z
ActualTagname (nome de item) é o tagname real definido para o item no Dicionário InTouch Tagname. Por exemplo, para acessar um valor de dado no InTouch do Excel (executando no mesmo nó), uma fórmula de Referência Remota DDE seria inserida na célula dentro da qual o valor de dado deve ser escrito: =VIEW|TAGNAME!'ActualTagname'
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-6
Módulo 8 – Comunicação de E/S Nomes de acesso InTouch Ao criar tags do tipo E/S ou referências de tagname remoto, elas devem ser associadas a um Nome de Acesso. Nomes de Acesso contém as informações que são usadas para a comunicação com outras fontes de dados de E/S incluindo o nome de nó, nome do aplicativo e o nome de tópico.
Criação de um Nome de Acesso Obs.: Todos os ajustes de Servidor de E/S a seguir são específicos para o ambiente de treinamento das instalações Wonderware. Seu instrutor fornecerá as informações de configuração apropriadas. Obs.: O nome de Acesso configurado nas etapas a seguir é usado no laboratório subseqüente. a. Expanda Configure com o Application Explorer.
b. Clique com o botão direito do mouse em Access Names e selecione Open. Obs.: Nomes de Acesso também podem ser criados durante a definição de uma tag do tipo E/S no dicionário Tagname. A caixa de diálogo Access Names é exibida:
c. Clique em Add.
Treinamento Wonderware
Seção 1 – Protocolos de comunicação de E/S
8-7
A caixa de diálogo Add Access Names é exibida:
d. Access Name: Inserir um Nome de Acesso (Para simplicar, use o mesmo nome que usará para o nome de tópico.). InTouch usa Nomes de Acesso como referência para dados de E/S em tempo real . Cada Nome de Acesso equivale a um endereço de E/S, que pode conter um Nó, Aplicativo e Tópico. Em um aplicativo distribuído, as referências de E/S podem ser ajustadas como endereços globais para o Servidor de rede de E/S ou endereços locais para um Servidor de E/S local. e. Node Name: Usado quando os dados são de um Servidor de E/S remota em uma rede. f.
Application Name: Inserir o nome real do programa para o programa Servidor de E/S do qual o valor de dado será adquirido. Se o valor está vindo de um Servidor de E/S Modbus Wonderware, MODBUS é usado. Não insira a parte da extensão .exe do nome do programa.
g. Topic Name: Insira o nome de tópico para acesso. O Topic Name é um subgrupo específico de aplicação dos elementos de dados. No caso de dados que vêm de um programa Servidor de E/S Wonderware, o nome de tópico deve ser exatamente o mesmo nome definido no servidor de E/S. h. Which Protocol to use: Selecione DDE (interno) ou SuiteLink (rede). i.
Quando alertar o servidor: Advise all items: Selecione se o programa servidor deve pesquisar todos os dados, mesmo que estejam em janelas visíveis ou não, com alarme, armazenados, tendenciados ou usados em um script. Selecionar esta opção afetará o desempenho e não é recomendado. Advise only active items: Selecione se o programa servidor deve pesquisar somente pontos em janelas visíveis e pontos que estão com alarme, armazenados, tendenciados ou usados em qualquer script. Uma ação de botoeira Touch não será pesquisada a menos que seja aberta em uma janela visível. A figura a seguir exibe um exemplo de um nome de acesso completo (se o servidor de E/S estiver no nó local, o Node Name pode ser deixado em branco como exibido a seguir).
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-8
Módulo 8 – Comunicação de E/S j.
Clique em OK para aceitar o novo Nome de Acesso.
k. Clique em Close para fechar a caixa de diálogo.
Modificação ou exclusão de um nome de acesso a. No InTouch Application Explorer, clique com o botão direito do mouse em Access Names e selecione Open. A caixa de diálogo Access Names é exibida:
b. Selecione o nome de acesso a ser modificado. c. Clique em Modify. A caixa de diálogo Modify Access Names é exibida: d. Faça alguma mudança e clique em OK. e. Repita este procedimento se precisar modificar outros Nomes de Acesso.
Treinamento Wonderware
Seção 1 – Protocolos de comunicação de E/S
8-9
Para excluir um Nome de Acesso, selecione-o na lista e depois clique em Delete. Uma caixa de mensagem abrirá pedindo que confirme a remoção. Clique em Yes. f.
Clique em Close ou repita este procedimento para excluir outros Nomes de Acesso definidos. Obs.: Nomes de Acesso usados por tags não podem ser excluídos.
Definição de um tagname do tipo E/S Todas as tags do tipo E/S recebem seus valores de outros programas de aplicativo Windows como Excel e Servidores de E/S. Este valor é mencionado como o valor "bruto". Quando definir uma tag no dicionário Tagname, é necessário inserir valores para Min- e Max Brutos. Estes valores são usados pelo banco de dados como travas no valor bruto real recebido de outro dispositivo de E/S. Por exemplo, se ajustar o valor Min Raw em 50 e o valor real recebido de um servidor de E/S for 0, o banco de dados forçará o valor Bruto como 50. O InTouch não exibe valores brutos. Ao invés disto, ele exibe as unidades de medida (EU). Quando definir uma tag de E/S no dicionário Tagname, é necessário especificar valores para Mine Max EU. Estes valores são usados para fazer a escala do valor bruto para o valor exibido. Se não quiser fazer a escala ou se seu dispositivo de E/S faz a escala para você ajuste os valores de Min/Max EU igual aos valores Min/Max Brutos. Por exemplo, considere que um transmissor de fluxo conectado a um registro de microcomputador gere um valor de zero sem fluxo e um valor 9999 a 100% de fluxo. Os valores a seguir seriam inseridos: Min EU = 0 Max EU = 100 Min Raw = 0Max Raw = 9999
Um valor bruto de 5000 seria exibido, como 50. Suponha que um transmissor de fluxo fiado a um registro de microcomputador gere um valor de 6400 sem fluxo e um valor 32000 a 300 GPM. Min EU = 0 Max EU = 300 Min Raw = 6400Max Raw = 32000
Neste caso, um valor bruto de 12800 seria exibido como 150. Um valor bruto de 6400 seria exibido como 0 e um Valor bruto de 0 seria exibido como 0 (todos os valores fora das escalas ajustadas pelos valores Min Raw e Max Raw são fixados). A escala acima funciona de forma reversa quando os dados de tag de E/S são escritos do Dicionário Tagname InTouch para outros aplicativos Windows.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-10
Módulo 8 – Comunicação de E/S a. Pressione Ctrl+T. A caixa de diálogo Tagname Dictionary é exibida:
b. Clique em Detalhes. c. Clique em New para adicionar um tagname. d. No campo Tagname insira um nome válido para o novo tagname e. Clique em Type. A caixa de diálogo Tag Types é exibida:
f.
Selecione I/O Integer para esta tag.
g. Clique em OK. As caixas de diálogo de detalhes respectivos serão visíveis no Dicionário Tagname. (Se a parte de detalhes da caixa de diálogo não abrir, clique em Details na parte superior da tela.) h. Especifique todos os detalhes necessários para definir o item. i.
Clique em Access Name.
Treinamento Wonderware
Seção 1 – Protocolos de comunicação de E/S
8-11
A caixa de diálogo Access Names é exibida:
j.
Clique duas vezes com o mouse no Nome de Acesso para usá-lo ou selecioná-lo e clique em Close. Na figura anterior, o nome de acesso PLC1 é selecionado para esta tag. O Nome de Acesso selecionado (agora associado à definição da tag) é exibido próximo ao botão Access Name na parte de detalhes do Dicionário Tagname (exibido a seguir).
k. Na Caixa Item, insira o nome do item ou o número de valor de dado no aplicativo IOServer, PLC ou aplicativo associado. Se o nome do item deve ser o mesmo do tagname, selecione a caixa Use Tagname as Item Name para preencher automaticamente o nome Item . Obs.: Saiba que o “tagname” é o nome usado dentro do InTouch para se referir ao valor de dados (tag). O Item é o nome usado para um aplicativo Windows remoto para fazer referência ao mesmo valor. Estes nomes não têm que ser o mesmo, mas é recomendado que sejam.
l.
Clique em Close.
Obs.: O campo Type pode ser modificado após adicionar o item, até que ele seja atribuído a um link de animação ou usado em um script.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-12
Módulo 8 – Comunicação de E/S
– Deixado em branco intencionalmente –
Treinamento Wonderware
Seção 2 – Servidores de E/S Wonderware
8-13
Seção 2 – Servidores de E/S Wonderware Objetivo da seção z
Configurar um Servidor de E/S Wonderware (Modbus)
Esta seção descreverá a configuração de um Servidor de E/S Wonderware (Modbus).
Introdução Os servidores de E/S Wonderware são programas de aplicativo Microsoft que habilitam outros aplicativos Windows DDE (InTouch ou Excel) a acessar dados no mundo real (PLCs ou RTUs). Os servidores Wonderware são a princípio destinados para uso com programa InTouch da Wonderware; entretanto, eles podem ser usados por um programa Microsoft Windows capaz de atuar como um cliente DDE. Nesta seção, examinaremos a inicialização, configuração e o uso do servidor de E/S Wonderware. Devido aos servidores de E/S da Wonderware serem aplicativos Windows, eles terão a mesma aparência e as capacidades básicas. Tenha em mente que dependendo do servidor requerido, hardware adicional (rede e outros) pode ser necessário e as telas de configuração podem requerer informações adicionais. As informações a seguir fazem referência ao servidor de E/S Modbus como um servidor de comunicação ponto a ponto usando porta serial RS-232 para controladores lógicos programáveis fornecidos no ambiente de treinamento das instalações Wonderware. Seu instrutor pode ter que configurar as seguintes telas de forma diferente. Obs.: Todos os ajustes de Servidor de E/S a seguir são específicos para o ambiente de treinamento das instalações Wonderware. O instrutor fornecerá as informações de configuração apropriadas. Ele acessa um PLC Koyo DirectLogic O5 através de sua porta de programação.
Configuração de servidores de E/S Uma vez que o servidor de E/S esteja instalado, é necessário realizar alguma configuração. A configuração do servidor cria automaticamente um arquivo de configuração chamado MODBUSDV.CFG. O arquivo armazena as informações de configuração sobre as portas de comunicação e todas as definições de tópico (descritas em detalhe posteriormente). O arquivo de configuração é salvo automaticamente no diretório de instalação do servidor de E/S, a menos que outro diretório seja especificado via o comando Configure / I/O Server Settings. a. Selecione Start / Programs / WonderwareFactorySuite / IOServers / Modicon MODBUS. A caixa de diálogo MODBUS é exibida:
b. Clique em Configure / Com Port Settings.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-14
Módulo 8 – Comunicação de E/S A caixa de diálogo Communication Port Settings é exibida. Esta caixa é usada para configurar a porta de comunicação que será usada para comunicar-se com o equipamento PLC.
Com Port: Selecione a porta de comunicação conectada ao equipamento PLC. Reply Timeout: Insira a quantidade de tempo (em segundos) que todos os PLCs conectados através desta porta de comunicação serial terá para responder aos comandos do servidor de E/S. Obs.: Este tempo-limite é mantido apenas quando o PLC falha ao responder. Quando o PLC está respondendo normalmente, não há punição. O valor padrão de 3 segundos deve ser suficiente para a maioria das configurações. Área Protocol : Selecione o protocolo configurado para o equipamento anexado a esta porta de comunicação. RTU é recomendado. Área Baud Rate : Selecione o ajuste de baud rate (taxa de bit serial) que corresponda ao equipamento conectado a esta porta de comunicação. Área Data Bits : Selecione a opção para o número de bits de dados que corresponde à configuração do equipamento nesta porta de comunicação. Se ASCII for selecionado para o protocolo, use 7. Se RTU for selecionado, use 8. Área Stop Bits : Selecione o número apropriado de bits de parada para a porta de comunicação. Se baud rate for maior do que 300, os bits devem ser ajustados em 1. Área Parity : Selecione o ajuste que corresponde à configuração do equipamento nesta porta de comunicação. Obs.: Todos os equipamentos em uma única porta de comunicação devem ser configurados com o mesmo Protocol, Parity, Stop Bits, Data Bits e Baud Rate.
Treinamento Wonderware
Seção 2 – Servidores de E/S Wonderware
8-15
Para esta aula de treinamento, os seguintes ajustes devem ser configurados como exibido. c. Salve suas mudanças no diretório sugerido e clique em Done para sair.
Obs.: Clique em Save para salvar os ajustes atuais inseridos na porta de comunicação selecionada. A caixa de diálogo Communication Port Settings permanece exibida e outra porta de comunicação pode ser configurada.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-16
Módulo 8 – Comunicação de E/S Criação de definições de tópico O comando Configure / Topic Definition é usado para criar, modificar ou excluir definições de tópico. Uma ou mais definições devem existir para cada PLC com o qual o servidor de E/S se comunicará. Cada definição de tópico deve conter um nome exclusivo para o PLC associado. Este nome exclusivo é usado como a parte nome de tópico do Endereço DDE para todas as comunicações DDE com este PLC. a. Clique em Configure / Topic Definition. A caixa de diálogo Topic Definition é exibida:
Obs.: Uma vez que os tópicos tenham sido definidos, seus nomes serão listados no painel Topics desta caixa de diálogo. b. Clique em New para adicionar uma nova definição de tópico. A caixa de diálogo MODBUS Topic Definition é exibida:
c. Topic Name: Insira um nome exclusivo (até 32 caracteres de comprimento) para o PLC no campo. Obs.: Ao comunicar-se com o InTouch, este nome exato é usado como o nome de tópico na definição de Nome de Acesso.
Treinamento Wonderware
Seção 2 – Servidores de E/S Wonderware
8-17
d. ComPort: Selecione a porta de comunicação a ser associada a este tópico. e. Slave ID: Insira uma identificação Escrava na caixa do PLC. f.
Slave Device Type: Listas drop-down contêm tipos de equipamento escravo diferentes dos padrões.
g. String Variable Style: O PLC usará este estilo para armazenar strings ASCII em seus registros. h. Register Type: Selecione BINARY ou BCD, com base no hardware usado. i.
Block I/O Sizes: Coil Read: Insira o número máximo de bobinas consecutivas a ser lido por vez. Neste exemplo, os valores lidos válidos da bobina podem estar entre 8 e 2000 e devem ser um número par múltiplo de 8.
j.
Coil Write: Insira o número máximo de bobinas consecutivas que podem ser escritas por vez. Neste exemplo, os valores escritos válidos da bobina podem estar entre 8 e 800 e devem ser um número par múltiplo de 8.
k. Register Read: Insira o número máximo de registros consecutivas a ser lido por vez. Neste exemplo, os valores válidos de registro lidos podem estar entre 1 e 125. l.
Register Write: Insira o número máximo de registros consecutivos que podem ser escritas por vez. Neste exemplo, os valores válidos de registro escritos podem estar entre 1 e 100.
m. Update Interval: Insira a freqüência (em milissegundos) na qual o servidor de E/S lerá (pesquisará) os itens/pontos associados a este tópico. Itens/pontos diferentes podem ser pesquisados a taxas diferentes definindo nomes de tópicos diversos para o mesmo PLC e selecione taxas diferentes de atualização para cada tópico. n. Clique em OK para aceitar as entradas e fechar a caixa de diálogo. A caixa de diálogo Topic Definition abrirá com o novo tópico listado:
o. Clique no botão Done para fechar esta caixa de diálogo e retornar à janela do programa do servidor. p. Clique em Modify para mudar uma definição de tópico existente. q. Clique em Deletepara excluir uma definição de tópico existente. Obs.: As informações anteriores são fornecidas apenas como exemplo. As etapas de configuração para esta classe são fornecidas no laboratório a seguir.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-18
Módulo 8 – Comunicação de E/S
– Deixado em branco intencionalmente –
Treinamento Wonderware
Laboratório 9 – Configuração de comunicação de E/S
8-19
Laboratório 9 – Configuração de comunicação de E/S Introdução Neste laboratório, você configurará um servidor Modbus e estabelecerá comunicação com drivers de comunicação por meio da criação e animação de novas tags.
Assumptions Este laboratório foi desenvolvido usando um PLC Koyo como a fonte de dados. Se um PLC contendo lógica de simulação não estiver disponível, um laboratório semelhante usando o programa SIMULATION é fornecido no Apêndice F, “I/O Simulation.” O programa SIMULATION é incluído com o InTouch. A configuração do Servidor de E/S Modbus está incluída como uma tarefa orientada pelo instrutor começando em página 8-13. Se o servidor de E/S ainda não foi configurado, faça isto agora. Obs.: Todos os ajustes de Servidor de E/S a seguir são específicos para o ambiente de treinamento das instalações Wonderware. Seu instrutor fornecerá as informações de configuração apropriadas.
Objetivos Ao final deste laboratório, você: z
Iniciará e configurará o Modbus Server
z
Definirá o MODBUS Topic
z
Criará um Novo Nome de Acesso
z
Criará uma Janela de Chão de Fábrica
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-20
Módulo 8 – Comunicação de E/S Início e configuração do Modbus Server 1. Se ainda não foi iniciado, inicie o servidor Modbus clicando em Start / Programs / Wonderware FactorySuite / IO Servers / Modicon MODBUS.
2. Quando o servidor estiver executando, clique em Configure/Com Port Settings. Certifique-se de que os ajustes a seguir estejam configurados.
3. Clique em Done.
Treinamento Wonderware
Laboratório 9 – Configuração de comunicação de E/S
8-21
Definição do MODBUS Topic 4. Clique em Configure / Topic Definition. 5. Clique em New. A caixa de diálogo Modbus Topic Definition é exibida:
6. Insira PLC1 no campo Topic Name. 7. Certifique-se de que COM1 esteja selecionada no campo Com Port . 8. Selecione BCD como o Register Type. Insira 100 para Update Interval. 9. Clique em OK. Topic é exibida na caixa de definição Topic no painel Topics :
10. Clique em Done. 11. Minimize o servidor Modbus. 12. Maximize o WindowMaker.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-22
Módulo 8 – Comunicação de E/S Criação de um Novo Nome de Acesso 13. Selecione Configure / Access Names do WindowMaker Application Explorer. 14. Clique duas vezes com o mouse em Access Names. 15. Clique em Add.
A caixa de diálogo Add Access Names é exibida: 16. Insira as informações exibidas na figura a seguir.
17. Clique em OK para aceitar o novo Acess Name. Seu novo Access Name é agora exibido no painel Access Names . 18. Clique em Close.
Treinamento Wonderware
Laboratório 9 – Configuração de comunicação de E/S
8-23
Criação de uma janela de chão de fábrica Neste laboratório, criaremos uma nova janela denominada Main, em que os materiais serão recebidos da tremonha para um tambor de mistura. Haverá duas válvulas anexadas ao tambor de mistura permitindo que dois ou mais materiais sejam adicionados. A mistura será agitada e drenada. Para uma descrição completa, consulte a página página 8-24. 19. Crie uma nova janela denominada Main. Importante: Todas as tags, exceto Start, devem ser configuradas como ‘somente leitura’. 20. Crie as tags a seguir. Uma vez que estaremos nos comunicando com um PLC, as tags precisarão ser atribuídas ao Nome de Acesso, PLC1, com os itens listados abaixo. Tagname
Tipo de tag
Nome de Acesso:
Item
Início
E/S discreta
PLC1
2049
Gate_Valve
E/S discreta
PLC1
2050
Valve_A
E/S discreta
PLC1
2051
Valve_B
E/S discreta
PLC1
2052
Agitador
E/S discreta
PLC1
2053
Drain_Valve
E/S discreta
PLC1
2054
Tank_Level
E/S inteiro
PLC1
40001 (Min/Max EU 0-1000) (Min/Max Raw 0-1000)
21. Adicione texto a cada uma das tags na janela Main.
22. Vincule cada objeto de texto à tag apropriada a seguir. Tagname
Link de animação
Início
Botão Touch – Válvula discreta - Alternar, Cor de Texto Discreto - Verde/ Vermelho
Gate_Valve
Cor de Texto Discreto – Verde/Vermelho
Valve_A
Cor de Texto Discreto – Verde/Vermelho
Valve_B
Cor de Texto Discreto – Verde/Vermelho
Agitador
Cor de Texto Discreto – Verde/Vermelho
Drain_Valve
Cor de Texto Discreto – Verde/Vermelho
Tank_Level
Exibir valor - Analógico
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-24
Módulo 8 – Comunicação de E/S 23. Alterne para Runtime para testar os links.
z
O campo de texto Start deve ser alternado entre Verde e Vermelho quando clicado.
z
O campo de texto Gate_Valve deve mudar de Verde para Vermelho quando o valor da tag muda.
z
Os campos de textos Valve_A e Valve_B devem mudar de Verde para Vermelho quando o valor da tag muda.
z
O campo de texto Agitator deve mudar de Verde para Vermelho quando o valor da tag mudar.
z
O campo de texto Drain_Valve deve mudar de Verde para Vermelho quando o valor da tag muda.
z
O campo de texto Tank_Level deve mudar quando o valor da tag muda.
Agora é com você. Tente ser o mais criativo possível. Por exemplo: use o máximo de links de animação possível, implemente tendência, tente usar assistentes, bitmaps, etc. Os materiais usados nesta visualização de processo são totalmente escolhidos por você. Observação Importante: Descrição do Processo: Quando ‘Start’ é ajustado como Verdadeiro, o ‘Gate_Valve’ abrirá e o ‘Tank_Level’ começará a aumentar até que ele atinja 300, ponto no qual Gate_Valve fechará. ‘Valve_A’ abrirá e o ‘Agitator’ acionará a mistura do produto. Quando o ‘Tank_Level’ atinge 600, ‘Valve_A’ fechará e ‘Valve_B’ abrirá. Quando o ‘Tank_Level’ atingir 1000, ‘Valve_B’ fechará, o ‘Agitator’ desligará e ‘Drain_Valve’ abrirá fazendo com que o ‘Tank_Level’ diminua para 0 (zero). Este processo será repetido desde que o ponto ‘Start’ permaneça True. Se ‘Start’ for ajustada como ‘False’, o processo parará quando o valor ‘Tank_Level’ atinge 0 (zero).
Treinamento Wonderware
Seção 3 – Localização de falhas de E/S
8-25
Seção 3 – Localização de falhas de E/S Objetivo da seção z
Explicar a localização de falha para o InTouch E/S
Esta seção explica como localizar falhas de E/S de comunicação entre o servidor de E/S e o InTouch, e entre o servidor de E/S e o PLC. Obs.: Todos os ajustes de servidor de E/S são específicos para o ambiente de treinamento nas instalações da Wonderware. O instrutor fornecerá as informações de configuração apropriadas. A figura a seguir ilustra onde as falhas podem ocorrer:
Comunicação entre o InTouch e o servidor de E/S Situações de erro podem ocorrer ao tentar estabelecer uma conversação de E/S entre o InTouch e o servidor de E/S interno. Quando o WindowViewer requer o status de um item de E/S, ele abre um canal com o servidor de E/S e solicita que ele alerte o WindowViewer quando o item DDE muda. O servidor de E/S lida automaticamente com todas as mensagens para/do PLC. O aplicativo cliente simplesmente informa o servidor sobre qual registro, nr. de bobina ou ponto de E/S deve ser lido ou gravado. Ele atualiza automaticamente o cliente mediante qualquer mudança dos valores de dado. É altamente recomendado sempre iniciar o servidor de E/S antes de iniciar o WindowViewer. Se o WindowViewer tentar estabelecer um canal com um servidor de E/S que não está em execução, a caixa de mensagem Initializing I/O abrirá para cada conversação de E/S não inicializada.
Quando esta caixa de diálogo é exibida, observe as informações na segunda linha. Estas informações indicam que ao menos uma tag no WindowMaker está vinculada ao Nome de Acesso que define MODBUS como o nome do aplicativo e PLC1 como o nome de tópico.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-26
Módulo 8 – Comunicação de E/S Neste caso, quando o programa WindowViewer foi iniciado, ele imediatamente procurou um aplicativo de servidor de E/S chamado MODBUS contendo um tópico definido como PLC1. Ele não encontrou este aplicativo e/ou tópico e está notificando que comunicações não podem ser estabelecidas. A seguir, veja a descrição de três situações que farão com que a caixa de diálogo anterior abra. z
O servidor de E/S não está executando. O aplicativo de servidor de E/S (MODBUS neste caso) não está executando. É possível verificar abrindo Windows Task List (CTRL+ALT) e marcando a lista de aplicativos em execução no momento para o servidor MODBUS.
z
O nome do programa de servidor está escrito errado na definição de Nome de Acesso. O servidor está executando, mas seu nome está escrito errado em uma ou mais definições de Nome de Acesso. O nome inserido na definição de Nome de Acesso deve ser o nome do programa do servidor de E/S real (menos a extensão .EXE) como visto no Windows Explorer.
z
O tópico não está definido no servidor ou está escrito errado. Presuma que o nome do servidor esteja escrito corretamente e esteja executando. WindowViewer está agora procurando um tópico definido no servidor como PLC1.
Para verificar o nome de tópico, feche WindowViewer. O servidor não pode ser configurado se o WindowViewer estiver em execução. Abra a janela do programa servidor de E/S e clique em Configure / Topic Definition. Se houver um tópico definido como PLC1 listado na caixa de diálogo, certifique-se de que ele esteja escrito exatamente da mesma forma (incluindo espaços, etc.) como no campo de definição do Nome de Acesso. Obs.: Certifique-se de que não há espaços em branco após o nome de tópico na definição do servidor e do Nome de Acesso no WindowMaker. Quando confirmar todas as situações acima, reinicie o WindowViewer e alterne para a janela do programa do servidor. Os dados devem agora aparecer na janela. Este dado indica que o WindowViewer e o servidor estejam comunicando. Os dados indicam também mensagens de ler e escrever que o servidor está tentando enviar ao PLC. Não há mensagens de erro: somente mensagens de status são escritas nesta janela.
Se nenhum dado é exibido na janela do servidor, verifique se há mensagens de Error Log no FactorySuite. A mensagem de erro mais comum é: Error for DDE: MODBUS|PLC1! ("item") Advise failed Esta mensagem de erro indica que o item usado em um ou mais tagnames não é reconhecido no servidor. Os tagnames InTouch usam convenções específicas de nomes quando acessam os dados de um servidor.
Treinamento Wonderware
Seção 3 – Localização de falhas de E/S
8-27
Monitoração de status de comunicação entre o InTouch e o servidor de E/S O WindowViewer é compatível com um nome de tópico incorporado chamado IOStatus que pode ser usado para monitorar o status de conversações de E/S específicas. Ao monitorar uma conversação E/S usando IOStatus, é necessário definir ao menos um tipo de E/ S para o Nome de Acesso que está sendo monitorado. Presuma que o WindowViewer (View) está se comunicando como o Wonderware Modbus I/O Server como um PLC que foi definido no servidor de E/S com o PLC1 para seu topic name. Obs.: Cada Tópico nos servidores de E/S da Wonderware inclui um bit de status. a. Clique em Special / Tagname Dictionary para abrir a caixa de diálogo Dicionário Tagname . b. Crie uma tag do tipo Discreta E/S .
c. Clique em Access Name para atribuir a tag a uma definição de Nome de Acesso que define IOStatus para seu nome de tópico. A caixa de diálogo Access Name Definition é exibida: Observe que uma definição de Nome de Acesso denominada PLC1 (o tópico que precisamos monitorar) existe atualmente. Para certificar-se de que este é o Nome de Acesso correto (com o nome de tópico de PLC1), será necessário acessar a janela Modify Access Name .
d. Selecione PLC1 e clique em Modify. Encontrar o Nome de Acesso com o nome de tópico certo neste exemplo é fácil porque mantemos o tagname e o Topic Name iguais.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-28
Módulo 8 – Comunicação de E/S e. Clique em Cancel para fechar a caixa de diálogo e retornar à caixa de diálogo Access Name Definition.
A caixa de diálogo Access Names é exibida:
f.
Clique em Add. A caixa de diálogo Add Access Names é exibida:
g. No campo Access, insira IOStatus. h. Como vamos monitorar o status no WindowViewer, no campo Application Name insira View. i.
No campo Topic Name insira o tópico interno InTouch IOStatus.
Treinamento Wonderware
Seção 3 – Localização de falhas de E/S j.
8-29
Selecione Advise only active items.
k. Clique em OK para fechar a caixa de diálogo. A caixa de diálogo inicial Access Name Definition é reexibida mostrando o nome Access Name, IOStatus:
l.
Clique em Close.
m. Na caixa Item, insira o Access Name real a ser monitorado, neste caso, PLC1.
n. Ao configurar um link de texto de monitoração, indique os links às suas respectivas Tags de E/ S e configure Text Color- e/ou os links de animação Value Display- DISCRETE para as tags. O teste do link ServerStatus pode ser feito fechando o servidor de E/S (neste exemplo, MODBUS). o. Reinicie a E/S reiniciando o servidor MODBUS, depois selecione Special/Reinitialize I/O no menu principal WindowViewer.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-30
Módulo 8 – Comunicação de E/S Monitoração de status de comunicação entre o servidor de E/S e o equipamento de E/S Para cada nome de tópico sendo usado, há um item incorporado discreto, Status, que pode ser usado para monitorar o estado das comunicações com o programa Servidores de E/S. Status é ajustado como 0 quando a comunicação com o equipamento falha (cabo desconectado, PLC está desenergizado e assim por diante) e é ajustado como 1 quando a comunicação está correta. Obs.: Ao monitorar o status de um tópico usando o item Status, ao menos um ponto de E/S deve estar ativo. A partir do InTouch, leia o status do servidor de comunicação definindo um tagname e associando-o ao tópico configurado para o equipamento. O Status deve ser usado como o nome de item. Por exemplo, se o WindowViewer está se comunicando com um PLC usando o servidor de E/S Modbus Wonderware, a definição do Nome de Acesso deve ser a seguinte.
Para monitorar o status de toda comunicação ao tópico, PLC1, crie a seguinte definição de tagname.
O teste para o tópico PLC1 (exemplo anterior) pode ser feito com a desconexão do PLC.
Treinamento Wonderware
Seção 3 – Localização de falhas de E/S
8-31
Status de comunicação de monitoração de E/S do Excel A partir do Excel, leia o status de comunicação do PLC inserindo a seguinte fórmula em um célula: =MODBUS|PLC1!'STATUS'
Usa do nome de tópico IOStatus no Excel O Excel pode ser usado para realizar este tipo de monitoração inserindo a mesma informação em uma fórmula em uma célula de planilha eletrônica. Por exemplo, para monitorar os mesmos tópicos acima, o seguinte deve ser inserido: =view|IOStatus!'PLC1'
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
8-32
Módulo 8 – Comunicação de E/S
– Deixado em branco intencionalmente –
Treinamento Wonderware
Módulo 9
Funcionalidade de tag avançada Seção 1 – Funções de E/S avançadas
9-3
Seção 2 – Tags indiretas
9-7
Laboratório 10–Criação e uso de tags indiretas Seção 3 – InTouch SuperTags Laboratório 11–Definição de SuperTags
9-9 9-15 9-27
Seção 4 – DBDump e DBLoad
9-37
Seção 5 – Otimização do dicionário Tagname
9-43
Laboratório 12–Exclusão de Tags
9-55
9-2
Módulo 9 – Funcionalidade de tag avançada Objetivos do módulo z
Identificar as funções de E/S avançadas
z
Modificar os parâmetros de E/S das tags e acessar nomes em Runtime
z
Mudar a atribuição da tag em Runtime
z
Usar ferramentas de criação de tag avançadas
z
Excluir tags do dicionário Tagname
Treinamento Wonderware
Seção 1 – Funções de E/S avançadas
9-3
Seção 1 – Funções de E/S avançadas Objetivos da seção z
Identificar funções de E/S avançadas
z
Explicar o endereçamento de referência dinâmica
Esta seção explica a funcionalidade de E/S avançada do InTouch incluindo as funções IOSetAccessName e IOSetItem e o Endereçamento de Referência Dinâmica.
Função IOSetAccessName A função QuickScript IOSetAccessName modifica o nome de nó, nome de aplicativo ou partes de nome de tópico tópico de um Nome de Acesso durante Runtime. Isto habilita a implementação de estratégias hot-backup para InTouch. Sintaxe
IOSetAccessName("AccessName", "NodeName", "AppName", "TopicName");
Argumentos
Descrição
AccessName
O Nome de Acesso existente para atribuir os novos valores AppName e Topic Name. String real ou tag de mensagem.
NodeName
O novo Nome de Nó a atribuir. String real ou tag de mensagem.
AppName
O novo Nome de Aplicativo a atribuir. String real ou tag de mensagem.
TopicName
O novo Nome de Tópico a atribuir. String real ou tag de mensagem.
Os valores Nome de Acesso, Nome de Nó, Nome de Aplicativo e Nome de Tópico podem ser especificados como strings literais ou eles podem ser valores de string fornecidos pelas tags InTouch ou funções. Se um string ("") vazio é especificado para um argumento, este argumento retém seu valor atual. Por exemplo, o Nome de Acesso MyAccess1 pode ser modificado para apontar para o aplicativo EXCEL e o tópico Book1, sem afetar o Nome de Nó atual, usando a seguinte função script. IOSetAccessName("MyAccess1", "", "EXCEL", "Book1");
Se um string vazio for especificado para um Tópico, o valor do Aplicativo atual do Nome de Acesso é atualizado e seu valor Tópico é retido. Por exemplo, o seguinte muda o Nome de Aplicativo para nome de acesso MyAccess2 para "EXCEL" sem afetar seu valor Tópico atual. IOSetAccessName("MyAccess2", "", "EXCEL", "");
De forma semelhante, se um string vazio for especificado apenas para um Nome de Aplicativo, o valor Tópico atual da tag é atualizado e seu valor Aplicativo é retido. Por exemplo, o seguinte muda o Tópico para tagname MyAccess3 para "Book2" sem afetar seu valor de Nome de Aplicativo atual. IOSetAccessName("MyAccess3", "", "", "Book2");
Por exemplo, o seguinte muda o Tópico para tagname MyAccess3 para "PLC2" sem afetar seu valor de Nome de Nó atual ou Nome de Aplicativo. IOSetAccessName("MyAccess3", "", "", "PLC2");
Este exemplo seria usado quando a redundância de PLC é um requisito.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-4
Módulo 9 – Funcionalidade de tag avançada
Obs.: Quando IOSetAccessName é processado, há um atraso de tempo quando a conversão existente é concluída e a nova conversão é iniciada. Durante este tempo, qualquer tentativa de POKEs ou de escrita para o novo tópico será perdida.
Uso da função IOSetItem A função IOSetItem é usada para ajustar um campo .Reference da tag do tipo E/S. Sintaxe
IOSetItem(“Tagname”, “AccessName”, “Item”);
Parâmetros
Descrição
Tagname
Qualquer tagname de ES InTouch encerrado por aspas.
AccessName
O Nome de Acesso para o qual mudar a tag.
Item
O Item para o qual mudar a tag. Os valores Tagname, AccessName e Item podem ser especificados como strings literais ou eles podem ser valores de string fornecidos por outras tags InTouch ou funções.
Por exemplo, o campo .Reference do tagname MyTag1 pode ser modificado para apontar o nome de acesso Excel e o item R1C1 usando a função script a seguir. IOSetItem("MyTag1", "excel", "R1C1");
ou por: Number = 1; TagNameString = "MyTag" + Text(Number, "#"); IOSetItem(TagNameString, "excel", "R1C1");
Se um string (" ") vazio for especificado para os valores Nome de Acesso e Itens, a tag é desativada. Por exemplo, a tag MyTag2 é desativada por. IOSetItem("MyTag2", "", "");
Se um string vazio for especificado apenas para um Item, o valor Item atual da tag é retido e seu valor AccessName é atualizado. Por exemplo, o seguinte muda o Nome de Acesso para tagname MyTag3 para "Excel2 " sem afetar seu valor Item atual. IOSetItem("MyTag3", "excel2", "");
Obs.: Se um espaço aparecer entre as aspas duplas, o argumento é ajustado como blank ou deactivate. Nenhum espaço entre aspas duplas significa “não mude este argumento.” Da mesma forma, se um string vazio for especificado apenas para um AccessName, o valor Item atual da tag é retido e seu valor AccessName é atualizado. Por exemplo, o seguinte muda o Item para tagname MyTag3 para "R1C2" sem afetar seu valor Access Name atual. IOSetItem("MyTag3”, "", "R1C2");
Treinamento Wonderware
Seção 1 – Funções de E/S avançadas
9-5
Endereçamento de referência dinâmica (DRA) Endereçamento de referência dinâmica permite endereçar diversas fontes de dados com um único tagname. Ao atribuir uma referência válida a um campo .Reference de uma tag do tipo E/S, o endereço da fonte de dados para a tag pode ser dinamicamente modificado. Cada tag do tipo E/S inclui uma referência associada ao endereço de sua fonte de dados. A sintaxe válida para o campo .Reference é a seguinte. Sintaxe
Descrição
Tagname.Reference="accessname.item”
Muda o Nome de Acesso e item.
Tagname.Reference="[.]item”
O mesmo Nome de Acesso, item diferente.
Tagname.Reference="accessname”
Muda o Nome de Acesso.
Tagname.Reference= “ “
Desativa o tagname. Se um Nome de Acesso ou Item não for especificado, o valor atual para esse campo é assumido.
.ReferenceComplete
1 = Valid I/O for tag.0 = Either Access Name ou Item is invalid for tag.
Obs.: Referências dinâmicas são usadas para visualizar pontos de dados cujos valores somente são necessários temporariamente, como aplicativos em diagnósticos. Isto o torna uma ferramenta ideal de localização de falhas. Uma vez que a fonte de dados de um tagname pode ser modificado, referências dinâmicas não devem ser usadas para dados que precisam ser permanentemente armazenados ou continuamente monitorados para condições de alarme.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-6
Módulo 9 – Funcionalidade de tag avançada
– Deixado em branco intencionalmente –
Treinamento Wonderware
Seção 2 – Tags indiretas
9-7
Seção 2 – Tags indiretas Objetivos da seção z
Explicar o conceito e a prática de Tags indiretas
z
Discutir as vantagens e desvantagens de usar Tags Indiretas
Esta seção explica o conceito e a prática de tags indiretas, incluindo discussões das vantagens e desvantagens.
Tags indiretas As tags do tipo indireta permitem criar uma janela e reatribuir as tags naquela janela a diversas fontes. Por exemplo, é possível criar um Data Change QuickScript que modificaria a fonte de todas as tags em uma janela, com base no valor que foi modificado. Quando adequar uma tag indireta a outra fonte de tag, as tags indiretas e fonte tornam-se cópias exatas uma da outra em todos os aspectos, incluindo .fields, scripts, etc. Se o valor da tag fonte muda, a tag indireta reflete a mudança. Se o valor da tag indireta muda, a tag fonte muda de acordo. É possível definir os valores de tag indireta no banco de dados como retentivas e reiniciá-las para assumir a última atribuição da tag na inicialização. As tags indiretas são atribuídas usando o campo .Name. Por exemplo, se criar uma tag analógica indireta denominada Setpoint e usar a expressão abaixo em uma QuickScript, Setpoint1 se tornaria a fonte para o valor do Setpoint, e vice versa: Setpoint.Name = "Setpoint1"; Setpoint.Name = Setpoint1.Name;
É possível também concatenar tagnames para uso em tags indiretas. Por exemplo, se criou um Data Change QuickScript que executa toda vez que um valor do tagname "Number" muda, o tagname indireto, "Setpoint," mudaria de acordo: Number = 1; Setpoint.Name = "Setpoint" + Text(Number, "#" );
Quando este QuickScript é executado, o valor da tag analógica Number é convertido para texto e adicionado à tag analógica Setpoint, tornando o Setpoint.Name igual a Setpoint1. As tags do tipo analógicas indiretas são usadas para tags inteira (números completos) e real (ponto flutuante). As tags indiretas podem ser mapeadas para qualquer tag desde que sejam do mesmo tipo.
Vantagens do endereçamento de tag indireta z
Salvar no desenvolvimento da janela
z
Expansível
z
É compatível com tendências de alarme e de histórico
z
É compatível com .fields (atributos de uma tag)
z
É compatível com Referência Remota de Tagname
z
Trabalha com Endereçamento de Referência Dinâmica
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-8
Módulo 9 – Funcionalidade de tag avançada Desvantagens do endereçamento de tag indireta z
Aumenta contagem de tag
z
Requer planejamento (ex. tagnames, scripting)
z
Etapas especiais devem ser tomadas para garantir que as tags atribuídas as tags indiretas não sejam excluídas
Obs.: Se uma atribuição indireta não existir ou se a tag não foi criada, a última atribuição é retida.
Treinamento Wonderware
Laboratório 10 – Criação e uso de tags indiretas
9-9
Laboratório 10 – Criação e uso de tags indiretas Introdução O laboratório a seguir demonstra a criação e uso de Tags Indiretas. Elas são criadas a fim de atribuir tags a diversas fontes usando QuickScripts.
Objetivos Ao final deste laboratório, você: z
Criará e usará as tags indiretas
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-10
Módulo 9 – Funcionalidade de tag avançada Criação de tags indiretas 1. Abra a janela Scratch no WindowMaker. 2. Insira dois sliders, um botão e um objeto de exibição de texto como mostrado.
3. Crie duas novas tags denominadas Tag_A e Tag_B, com um Min Value de 0 e um Max Value de 100. Cada uma é um tipo Inteiro de Memória. 4. Anexe uma Tag_A a um slider como exibido.
5. Anexe Tag_B a um segundo slider. 6. Mude cada Legenda do slider para refletir os tagnames.
Treinamento Wonderware
Laboratório 10 – Criação e uso de tags indiretas
9-11
Configuração do objeto botão 7. Anexe o seguinte script Touch Pushbutton Action - On Key Down ao botão.
8. Clique em Validate. Será solicitado que defina uma referência de tag Indirect_Toggle.
9. Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-12
Módulo 9 – Funcionalidade de tag avançada 10. Defina a tag Indirect_Toggle como Discreta Memória.
11. Clique em Close. Você receberá uma solicitação para definir Indireta.
12. Clique em OK. 13. Defina Indireta como um tipo Analógica Indireta.
14. Clique em Save, seguido por Close. 15. Clique em OK para sair do editor de script. 16. Clique em OK para sair da caixa de diálogo Animation Links Selection . 17. Mude o texto do botão para que seja Indirect_Toggle.
Treinamento Wonderware
Laboratório 10 – Criação e uso de tags indiretas
9-13
Configuração do objeto de texto 18. Clique duas vezes com o mouse no objeto de texto. 19. Atribua um link User Input – Analog . 20. Insira os valores exibidos na figura a seguir. 21. Clique em OK para sair do link de animação.
22. Alterne para Runtime.
23. Mova o slider Tag_A para cima. 24. Mova o slider Tag_B para uma localização diferente. 25. Clique no botão Indirect_Toggle. O valor muda para refletir os ajustes do slider oposto. Mover o slider muda o valor exibido para o slider selecionado.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-14
Módulo 9 – Funcionalidade de tag avançada
– Deixado em branco intencionalmente –
Treinamento Wonderware
Seção 3 – InTouch SuperTags
9-15
Seção 3 – InTouch SuperTags Objetivo da seção z
Definir as SuperTags usando a estrutura de modelo SuperTag
Esta seção definirá SuperTags usando a estrutura de modelo SuperTag.
Introdução As SuperTags são uma ferramenta de desenvolvimento que fornece um modo de organizar e duplicar rapidamente tags. O InTouch fornece uma estrutura de modelo que permite a definição de tipos de tagname compostos conhecidos como SuperTags. Modelos SuperTag podem conter até 64 tagnames membros e 2 níveis de encadeamento. Uma SuperTag parente pode conter até 64 membros filhos embutidos e cada membro filho pode conter até 64 tagnames submembros para um total de 4096 tagnames membros. (Quando um modelo SuperTag parente é embutido em outro ele se torna um membro filho ). Todas as tags filhas modelo SuperTag comportam-se exatamente como tags normais. Elas são compatíveis com tendência, alarme e todos tagname .fields. Por uma questão de conveniência, o InTouch fornece um TemplateMaker que pode ser usado para criar suas SuperTags. O TemplateMaker permite criar, editar e excluir modelos e tagnames membros SuperTag. O InTouch salva todos os modelos SuperTag no arquivo SUPERTAG.DAT dentro de seu diretório de instalação InTouch (não no diretório do aplicativo). Isto permite que os modelos sejam usados em qualquer aplicativo. O InTouch fornece também a habilidade de criar SuperTags de diversos modos alternativos. Por exemplo, as SuperTags podem ser criadas diretamente do Dicionário Tagname, em um tagname de link de animação ou caixas de entrada de expressão, em InTouch QuickScripts, ou em um arquivo externo que pode ser descarregado dentro de seu aplicativo usando o utilitário InTouch DBLoad. Quando criar um modelo parente SuperTag, seu nome é adicionado automaticamente à sua caixa de diálogo tagname Tag Types no Dicionário Tagname e fica imediatamente disponível para seleção quando um novo tagname é criado. WindowMaker não precisa ser reiniciado para definir tagnames usando um tipo de SuperTag recentemente criado.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-16
Módulo 9 – Funcionalidade de tag avançada Sintaxe SuperTag Uma vez que os InTouch tagnames são limitados a 32 caracteres, cada SuperTag ParentInstance\ChildMember\Sub-member é restrita a um máximo de 32 caracteres. Uma referência SuperTag somente pode ser um máximo de dois modelos (ParentInstance\ChildMember) e com um membro de detalhe ilustrado na figura a seguir.
Cada membro em um modelo SuperTag está acessível no formato padrão atualmente usado para acessar os .fields dos tipos tagnames InTouch normais. A sintaxe de referência SuperTag é compatível em todo o InTouch onde tagnames normais podem ser usados. Por exemplo, uma referência de SuperTag válida seria: ColdRoom4\EvapUnit1\FanMotor2.MaxEU Referências de tag remota também são compatíveis com SuperTags. Por exemplo: PLC1:"Turkey\EvapUnit2\PrsRegVlv.EngUnits"
Estrutura de modelo SuperTag Para ilustrar de forma realista o conceito SuperTag em um ambiente de fábrica, presuma que temos quatro câmera frigoríficas refrigeradas idênticas onde armazenar carne de vaca, carne de porco, frango e peru. Cada uma destas câmeras tem um sensor de temperatura e duas unidades de evaporador. Cada unidade de evaporador tem sete valores de dados que podemos monitorar ou controlar em Runtime. Uma janela InTouch HMI pode ser parecer com a figura a seguir:
Treinamento Wonderware
Seção 3 – InTouch SuperTags
9-17
Sem o uso de modelos SuperTag, precisaríamos definir manualmente cada tagname individual para cada valor de dados em cada câmera frigorífica multiplicado pelo número total de câmeras. Em outras palavras, teríamos que organizar e definir dezenas de tagnames no Dicionário Tagname. Usando SuperTags podemos economizar horas de tempo de desenvolvimento e minimizar a possibilidade de cometer erros. Usando o cenário da câmera frigorífica descrito acima, criamos um modelo parente SuperTag chamado EvapUnit. Este EvapUnit se tornará mais tarde um membro filho do modelo parente ColdRoom. Este é um conceito de projeto de base de detalhe. EvapUnit será definido com sete tagnames submembros. Tag membro
Tipo
Descrição
FanMotor1
Discreta
Partida do motor para Ventilador 1
FanMotor2
Discreta
Partida do motor para Ventilador 2
DefrostVlv
Discreta
Estado da válvula de gás de degelo
LiquidVlv
Discreta
Estado da válvula de líquido refrigerante
CoilTemp
Real
Temperatura do refrigerante
PrsRegVlv
Inteiro
Válvula reguladora de pressão (0-100%)
EvapStatus
Mensagem
String de status de unidade do evaporador
Modelo parente SuperTag a. Clique em Special / TemplateMaker. A caixa de diálogo TemplateMaker é exibida: b. Selecione New Template.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-18
Módulo 9 – Funcionalidade de tag avançada A caixa de diálogo New Template é exibida:
c. Insira um nome exclusivo para o novo modelo no campo Name: . O nome deve ter um máximo de 10 caracteres, iniciando com um caractere alfanumérico. Os caracteres especiais não são suportados. Ao adicionar novos modelos parentes, seus nomes abrem imediatamente como um tipo de tagname no Dicionário Tagname (caixa de diálogo Tag Types) e estão imediatamente disponíveis para seleção. Não é necessário reiniciar WindowMaker para definir novos tagnames e atribuí-los ao tipo SuperTag. d. Description: Insira qualquer informação para descrever o modelo (Opcional). e. Clique em OK. A caixa de diálogo TemplateMaker é reexibida mostrando o novo nome de modelo em sua janela:
Observe que uma vez que um modelo é criado, os botões Add Member e Delete tornam-se ativos. O dia, a data e a hora quando o modelo foi criado e/ou modificado pela última vez e a descrição do modelo são agora exibidos quando o nome do modelo é selecionado.
Treinamento Wonderware
Seção 3 – InTouch SuperTags
9-19
Obs.: A janela TemplateMaker exibe todos os modelos parentes SuperTag definidos e seus membros filhos em uma lista hierárquica. Para expandir a visualização do modelo, clique com o botão esquerdo do mouse ao lado do nome do modelo. Todas as tags membro definidas para o nome de modelo parente serão exibidas. Para recolher a visualização, clique com o botão esquerdo do mouse ao lado do nome do modelo novamente.
Criação de tagnames membro SuperTag a. Selecione o modelo SuperTag (neste exemplo, EvapUnit). b. Clique em Add Member. A caixa de diálogo New Member Tag é exibida:
c. Name: Insira um nome para a tag membro. d. Type: Insira ou selecione o tipo de membro tag. Pode ser discreto, inteiro, real, mensagem ou outro modelo SuperTag. Obs.: O tipo especificado aqui é apenas um placeholder para o modelo SuperTag. Por padrão, todas as tags membro são ajustadas como tipos Memória quando definidos no TemplateMaker. Entretanto, quando definir uma instância de modelo no Dicionário Tagname, será necessário especificar se serão tags do tipo Memória - ou E/S. e. Comment: Insira qualquer informação para descrever o tagname membro. f.
OK: Repita este procedimento para incluir tags membros adicionais ao modelo SuperTag. As novas tags membro são adicionadas abaixo do modelo parente SuperTag na janela TemplateMaker.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-20
Módulo 9 – Funcionalidade de tag avançada g. Crie um outro modelo parente chamado ColdRoom. ColdRoom terá um tagname membro, RoomTemp e dois modelos filhos membros EvapUnit, EvapUnit1 e EvapUnit2. Os dois modelos filhos membros usarão o parente, EvapUnit, modelo SuperTag para seus tipos. h. Selecione InTouch Templates e depois clique em New Template. A caixa de diálogo New Template é exibida:
i.
Insira um nome exclusivo para o modelo parente novo no campo de texto Name (máximo de 10 caracteres.)
j.
Insira qualquer informação para descrever o modelo no campo de texto Description .
k. Clique em OK. A caixa de diálogo TemplateMaker é reexibida mostrando o novo nome de modelo em sua janela: l.
Clique em OK.
O modelo parente é adicionado à lista InTouch Templates na janela TemplateMaker.
Treinamento Wonderware
Seção 3 – InTouch SuperTags
9-21
Agora, crie três membros para nosso modelo parente ColdRoom, dois membros filhos EvapUnit e um tagname membro, RoomTemp. m. Selecione o modelo parente SuperTag (neste caso, ColdRoom) e depois clique em Add Member. A caixa de diálogo New Member Tag é exibida:
n. Insira um nome para o tagname membro no campo de texto Name. o. Insira o tipo tagname para o tagname membro no campo de texto Type. p. Insira qualquer informação para descrever o membro tagname no campo de texto Comment. q. Clique em OK. A seguir, você criará nossos dois modelos filhos membros, EvapUnit1 e EvapUnit2. Eles usam o tipo de modelo EvapUnit . r.
Selecione o modelo parente SuperTag (neste caso, ColdRoom) e clique em Add Member. A caixa de diálogo New Member Tag é exibida:
s. Insira um nome para o tagname membro no campo de texto Name. t.
Insira o tipo de tag para o tagname membro no campo de texto Type. Neste caso, estamos usando o tipo de modelo especial, EvapUnit.
u. Insira qualquer informação para descrever o membro tagname no campo de texto Comment. v.
Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-22
Módulo 9 – Funcionalidade de tag avançada w. Repita as etapas anteriores para adicionar EvapUnit2. x. Clique em OK. Quando o modelo parente ColdRoom é concluído, a janela TemplateMaker exibirá a seguinte hierarquia de estrutura de modelo:
Agora que concluímos o modelo ColdRoom SuperTag, podemos criar imediatamente instâncias de tag que usam o modelo para seu tipo de tag.
Edição de modelos SuperTag e tagnames membros Os modelos SuperTag ou tagnames membros podem ser modificados a qualquer momento. Quando um modelo SuperTag existente ou seus membros são modificados, todas as instâncias existentes desse modelo não são afetados. (Instâncias são tags definidas no Dicionário Tagname que usa uma SuperTag como seu tipo.) Em outras palavras, as modificações feitas em uma SuperTag não são retroativas. Entretanto, todas as novas instâncias definidas usando a SuperTag modificada usarão a nova composição. a. Na janela TemplateMaker, clique duas vezes com o mouse no nome do modelo SuperTag (ou nome do membro). A caixa de diálogo Edit Template (ou Edit Member Tag) é exibida mostrando a definição do modelo SuperTag (ou do membro) . b. Faça suas edições e clique em OK.
Exclusão de um modelo ou membro SuperTag a. Na janela TemplateMaker, selecione o nome de modelo SuperTag (ou nome de membro) para excluir e depois clique em Delete. Uma caixa de mensagem é exibida pedindo que confirme a remoção. b. Clique em Yes para excluir o nome selecionado. Obs.: Se pressionar a tecla ESC para fechar o TemplateMaker ao invés de OK, o modelo não será excluído. Quando um modelo é excluído, todos os tagnames membros associados também são excluídos. Se um modelo SuperTag existente é modificado, todas as instâncias existentes da SuperTag não são afetadas.
Treinamento Wonderware
Seção 3 – InTouch SuperTags
9-23
Exemplos são tagnames definidos no Dicionário Tagname que usa uma SuperTag como seu tipo. Em outras palavras, as modificações que fazemos na SuperTag não são retroativas. Entretanto, todas as novas instâncias definidas usando a SuperTag modificada usam a nova composição. De forma semelhante, se um tagname membro é adicionado à instância SuperTag através de um método alternativo, seu modelo não é atualizado.
Definição de instâncias para o modelo SuperTag Um importante conceito no TemplateMaker é distinguir um modelo SuperTag de uma instância de modelo. A diferença mais importante é que o nome do modelo parente é substituído por um tagname de instância. O nome do modelo filho e as tags submembros não mudam. Por exemplo, pense em um modelo literal usado para rascunho, como um estêncil. Um estêncil é usado para produzir desenhos. Os próprios desenhos, nesta metáfora, são instâncias de modelo que são padronizadas de acordo com o modelo ou estêncil usado para criá-las. Em nosso cenário de modelo ColdRoom, após criarmos nosso modelo, podemos criar instâncias de SuperTag de Beef, Pork, Chicken e Turkey. Para isto, simplesmente criamos quatro tagnames que usam ColdRoom para seus tipos. Portanto, com um único esforço, criaremos rapidamente 60 tagnames no Dicionário Tagname. Esta é uma grande economia de tempo. Após criarmos o modelo SuperTag ColdRoom e as instâncias, podemos consultar qualquer um de seus membros usando referências de SuperTag válidas em expressões de link de animação ou QuickScripts. Por exemplo: Beef\RoomTemp Chicken\RoomTemp.RawValue Chicken\EvapUnit1\FanMotor1.OnMsg Pork\EvapUnit2\EvapStatus Turkey\EvapUnit2\PrsRegVlv.EngUnits
Métodos alternativos de criar SuperTags Além do TemplateMaker, o InTouch é compatível com a criação de SuperTags através de expressões de link de animação, o InTouch QuickScripts e arquivos.CSV (Variável Separada por Vírgula) externos que são carregados no Dicionário Tagname através do utilitário DBLoad. Um membro ou submembro podem ser adicionados a uma SuperTag existente através do Dicionário Tagname, é o método mais fácil de usar. Quando uma SuperTag é criada através de uma expressão de animação ou InTouch QuickScript deve-se usar o formato SuperTag válido. Por exemplo:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-24
Módulo 9 – Funcionalidade de tag avançada Uso do Dicionário Tagname para criar SuperTags O Dicionário Tagname é o método alternativo mais fácil para criar uma instância SuperTag ou tagnames membros. a. Clique em Special / Tagname Dictionary. A caixa de diálogo Tagname Dictionary é exibida: b. Clique em New. c. Insira o nome exato de sua instância SuperTag, seguido de barras invertidas (\) delimitadoras e o nome do novo tagname membro. Neste exemplo, o nome é Turkey\RoomTemp2. Obs.: Ao adicionar um novo tagname membro a uma instância de SuperTag existente, a escrita do nome da instância deve corresponder exatamente. Caso contrário, uma nova instância de SuperTag e membro serão adicionados. d. Clique em Type e selecione o tipo para o membro SuperTag. (A seleção das opções restantes não é necessária neste contexto.) Neste caso, I/O Real. e. Clique em Save ou Close para adicionar o membro.
f.
Para visualizar o tagname membro na SuperTag Turkey sem sair do Dicionário Tagname, selecione a opção Members na parte superior da caixa de diálogo.
Treinamento Wonderware
Seção 3 – InTouch SuperTags
9-25
A área de detalhes Members é exibida:
g. Clique em Close para fechar o Dicionário Tagname. h. Se clicar em New quando uma SuperTag é exibida no Tagname Dictionary, a caixa de diálogo a seguir é exibida:
i.
Clique em Yes para criar outra instância SuperTag que é uma cópia exata da instância SuperTag exibida.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-26
Módulo 9 – Funcionalidade de tag avançada A caixa de diálogo Enter Name exibida:
j.
Insira o nome de instância SuperTag nova.
k. Clique em OK.
Vantagens das SuperTags z
Todos os tagnames submembro da SuperTag comportam-se exatamente como tagnames normais
z
É compatível com tendências de alarme e de histórico
z
É compatível com .fields
z
Ferramenta de desenvolvimento
z
Arquivo modelo pode ser copiado
Desvantagens das SuperTags z
Um arquivo SUPERTAG.DAT
z
Sem exclusão de membro SuperTag individual
z
Incapacidade de excluir uma tag por vez
z
Pequeno aumento na contagem de tag
Treinamento Wonderware
Laboratório 11 – Definição de SuperTags
9-27
Laboratório 11 – Definição de SuperTags Introdução Este laboratório demonstra como definir SuperTags usando o InTouch TemplateMaker.
Objetivos Ao final deste laboratório, você: z
Criará novo modelo
z
Criará novos membros
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-28
Módulo 9 – Funcionalidade de tag avançada Modelo parente SuperTag 1. Clique duas vezes com o mouse em TemplateMaker na janela Application Explorer.
A janela TemplateMaker é exibida.
2. Clique no botão New Template.
3. Insira Tank no campo New Template / Name: e clique em OK. 4. Clique no botão Add Member na janela TemplateMaker.
Treinamento Wonderware
Laboratório 11 – Definição de SuperTags
9-29
A caixa de diálogo New Member Tag é exibida:
5. Insira um Name of Contents com um Type of Message e clique em OK. 6. Continue adicionando os Membros a seguir no Tank Template: Modelo
Nome
Tipo
Tanque
Nível
Real
Tanque
Temp
Real
Tanque
Pressão
Real
O Tank Template concluído e os Membros são exibidos da seguinte maneira:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-30
Módulo 9 – Funcionalidade de tag avançada 7. Inclua um Modelo adicional chamado Pump, com os Membros a seguir: Modelo
Nome
Tipo
Bomba
RPM
Real
Bomba
Pressão
Real
Bomba
Status
Discreta
Bomba
Temp
Real
Bomba
Vibração
Real
Bomba
Teste
Real
O novo Modelo Pump e os Membros são exibidos como mostrado na figura a seguir:
8. Clique em Tank Template. 9. Clique em Add Member.
Treinamento Wonderware
Laboratório 11 – Definição de SuperTags
9-31
10. Insira Name: Pump1, Type: Pump, como exibido:
11. Clique em OK. Pump1 é exibido como um Membro de Tank Template:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-32
Módulo 9 – Funcionalidade de tag avançada 12. Selecione Test Member Tag no Modelo Pump.
13. Clique no botão Delete. 14. Clique em Yes quando solicitado para confirmar a exclusão. A tag membro Test no membro Pump1 também é excluída.
15. Clique em OK para fechar TemplateMaker.
Treinamento Wonderware
Laboratório 11 – Definição de SuperTags
9-33
Definição de tags membros de modelo no Dicionário Tagname 16. Abra o Tagname Dictionary. 17. Clique em New. 18. Insira um novo tagname Pump1. 19. Clique no botão Type. O novo Modelo SuperTag é exibido como Tipos de Tag. 20. Selecione Pump e clique em OK. 21. Clique na seta para baixo Member List: . A nova SuperTags criada para Pump1 é exibida:
22. Clique em Close para fechar o Dicionário Tagname.
Edição de modelos 23. Abra TemplateMaker. 24. Expanda Pump Template. 25. Selecione Temp Pump Member e clique no botão Delete. 26. Confirme a exclusão clicando em Yes.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-34
Módulo 9 – Funcionalidade de tag avançada Temp não é mais membro de Pump Template.
Clique em OK para fechar TemplateMaker. 27. Abra o Tagname Dictionary. 28. Clique no botão New. 29. Clique em Yes para Duplicar Pump1.
30. Clique em OK para aceitar o novo nome Pump2. 31. Clique no menu drop-down Member List: . Pump2\Temp: Memory Real é listado porque o novo tagname foi baseado em Pump1. 32. Clique em New. 33. Clique em No para recusar Duplicar Pump2. 34. Insira Pump3 no campo Tagname. 35. Clique em Type: Pump. 36. Clique no menu drop-down em Member List: .
Treinamento Wonderware
Laboratório 11 – Definição de SuperTags
9-35
Pump3 não contém o tagname Temp porque ele foi baseado em Pump Template que você editou.
37. Clique em Close para fechar o Dicionário Tagname.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-36
Módulo 9 – Funcionalidade de tag avançada
– Deixado em branco intencionalmente –
Treinamento Wonderware
Seção 4 – DBDump e DBLoad
9-37
Seção 4 – DBDump e DBLoad Objetivo da seção z
Explicar o uso dos utilitários DBDump e DBLoad
Esta seção explicará o uso dos utilitários DBDump e DBLoad.
Introdução Há dois programas de utilitário Dicionário Tagname : DBDump e DBLoad DBDump: Exportar um aplicativo InTouch Dicionário Tagname como um arquivo de texto que pode ser visualizado ou editado em outro programa (como um Microsoft Excel). DBLoad: Importar um arquivo Dicionário Tagname formatado (criado em outro programa como Excel ou um arquivo DBDump de outro aplicativo InTouch) para um aplicativo InTouch existente. Estes dois utilitários permitem ao Dicionário Tagname ser copiado, modificado ou desenvolvido em partes separadas e mescladas em um aplicativo. O utilitário DBLoad também pode ser usado como uma alternativa para o InTouch TemplateMaker criar instâncias SuperTag. Obs.: Os utilitários DBDump e DBLoad são lançados de outro Gerenciador de Aplicativo InTouch (INTOUCH.EXE). Além disso, é necessário converter um aplicativo criado em uma versão anterior do InTouch antes de seu Dicionário Tagname poder ser extraído.
Utilitário DBDump Veja como extrair um dicionário tagname de um aplicativo InTouch existente. a. Feche WindowMaker e WindowViewer se eles estiverem em execução. b. Inicie o InTouch Application Manager.
c. Clique no ícone da barra de ferramentas DBDump
.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-38
Módulo 9 – Funcionalidade de tag avançada A caixa de diálogo CSV File to Dump To: é exibida:
Name of CSV Dump file: Insira um nome para o arquivo que termine com a extensão .CSV (Variável Separada por Vírgula) . Se o nome já existir, uma caixa de mensagem será aberta. Group output by types: Agrupe os tagnames extraídos por tipo de tag ao invés de alfabeticamente por tagname (padrão). A informação de banco de dados do diretório do aplicativo selecionado será descarregada no nome de arquivo especificado. Quando o arquivo .CSV é aberto em Microsoft Excel, ele vê a vírgula como um delimitador e automaticamente separada os registros de dados em colunas.
Treinamento Wonderware
Seção 4 – DBDump e DBLoad
9-39
Quando o arquivo .CSV é aberto em Notepad, cada registro de dados é separado por uma vírgula. Usando DBLoad, é possível: z
Mudar as propriedades de armazenagem.
z
Fazer mudanças em massa ao dicionário Tagname.
z
Modificar as propriedades existentes da tag .
Se a tag é renomeada, o DBLoad criará uma nova tag ao invés de excluir a instância de tag original. Não é possível excluir uma tag usando DBLoad; entretanto, novas tags podem ser criadas.
Formato do arquivo de entrada de banco de dados A primeira linha de um arquivo de entrada de banco de dados deve especificar o operating :mode para o arquivo quando ele é carregado/mesclado em um aplicativo através de DBLoad. Todos os registros devem começar com uma palavra chave válida para o :type de tagname, seguidos de uma palavra chave válida para cada registro de dados (separados por vírgulas): :mode=test :IOMsg,Group,Comment,Logged,EventLogged,Event Logging Priority, . . . Há uma palavra-chave válida para cada tipo de tagname e registro de dados.
Modos de operação de arquivo de entrada de banco de dados A seguir veja uma lista das palavras-chaves de modo de operação válidas e as ações que ocorrem em cada modo quando um tagname duplicado é encontrado durante o carregamento. :MODE=ASK – Muda o tagname da entrada ou a entrada existente para seu tagname especificado e depois insere a nova definição no Dicionário Tagname . :MODE=REPLACE – Exclui a entrada existente e a substitui por uma nova entrada. :MODE=UPDATE – Sobrescreve uma definição existente com apenas os campos que estão explicitamente definidos no arquivo de entrada; ex. incluir mudanças DELTA apenas. :MODE=TEST – Neste modo, DBLoad atuará como se ele estivesse no modo de substituição, mas não modificará o banco de dados. O modo de teste varre o arquivo antes de carregá-lo, depois comunica erros e dá a localização/ número de linha. Recomendamos o uso deste modo para localizar possíveis erros de formato de Dicionário Tagname . Após os erros serem resolvidos, mude o modo para Update ou Replace e carregue o DB. Obs.: Para mais informações sobre os modos de operação, consulte o Guia do Usuário InTouch.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-40
Módulo 9 – Funcionalidade de tag avançada Utilitário DBLoad Usando o DBLoad, é possível importar tags de outros aplicativos, depois importar outras janelas. O tamanho do arquivo pode se tornar grande ao carregar grandes quantias de tags, mas não excessivamente. Obs.: Use o arquivo exportado como um backup e realize um DBLoad no caso de falha de sistema. As seguintes etapas exibem como carregar/fundir um arquivo de entrada de banco de dados em um banco de dados existente de aplicativo do InTouch . a. Feche WindowMaker e WindowViewer se eles estiverem em execução. b. Inicie o InTouch Application Manager. c. Clique no ícone da barra de ferramentas DBLoad
.
Uma caixa de mensagem é exibida perguntando se fez back up de seu aplicativo. Clique em Yes. A caixa de diálogo CSV File to Load From: é exibida:
Name of CSV Load file: Insira o caminho para o arquivo .CSV para carregar ou localizar o arquivo usando as caixas de listagem Directories e Drive. Uma vez que o arquivo esteja devidamente selecionado seu nome será exibido no campo. d. Clique em OK. A informação do banco de dados contido no arquivo selecionado começará a carregar no Dicionário Tagname selecionado do aplicativo.
Criação de um arquivo de entrada de banco de dados Os utilitários de banco de dados DBDump e DBLoad são as ferramentas usadas para realizar as operações do tipo lote em um Dicionário Tagname. Arquivos de entrada de banco de dados podem ser criados em qualquer programa compatível com o formato CSV. O arquivo de entrada de banco de dados deve ser salvo como um formato .CSV. Uma vez que o arquivo de entrada é criado, o programa DBLoad é usado para carregar/fundir os dados contidos no arquivo dentro de um banco de dados do aplicativo InTouch existente. É possível criar um modelo de arquivo de entrada de banco de dados criando um novo aplicativo InTouch e depois executar o programa DBDump para descarregar a memória de seu banco de dados para criar um arquivo .CSV corretamente formatado. Isto torna a inserção de suas modificações mais fáceis do que a criação de arquivo de entrada do zero.
Treinamento Wonderware
Seção 4 – DBDump e DBLoad
9-41
Criação de instâncias SuperTag Além do TemplateMaker, link de animação, InTouch QuickScripts e o Dicionário Tagname, o InTouch também suporta a criação de SuperTags usando o Utilitário DBLoad. Obs.: Quando o DBLoad é usado para criar instâncias SuperTag, estas instâncias não são refletidas na definição de modelo SuperTag no TemplateMaker. Quando criar uma SuperTag com DBLoad, deve-se usar o formato SuperTag válido e os registros de dados de instância SuperTag devem começar com a palavra-chave válida para o :type do tagname. Por exemplo:
Quando um arquivo .CSV contendo instâncias SuperTag é carregado, ele é automaticamente adicionado ao Dicionário Tagname e está imediatamente disponível para uso em links de animação e InTouch QuickScripts.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-42
Módulo 9 – Funcionalidade de tag avançada
– Deixado em branco intencionalmente –
Treinamento Wonderware
Seção 5 – Otimização do dicionário Tagname
9-43
Seção 5 – Otimização do dicionário Tagname Objetivos da seção z
Explicar substituição, conversão e exclusão de tag/link
z
Importar e exportar janelas
z
Usar o utilitário de Referência Cruzada InTouch
Há diversos modos de editar links existentes e tags. Esta seção inclui a substituição, conversão e exclusão de tagnames, assim como a utilização de Utilitário de Referência Cruzada InTouch.
Exclusão de Tags Excluir tags é deliberadamente difícil no InTouch. z
Quando o WindowViewer estiver executando, excluir uma tag não é permitido.
z
Quando uma tag é referida por algum script ou link de animação, ela não pode ser excluída. Use a ferramenta Referência Cruzada para determinar o uso de tag.
Em outras palavras, para excluir uma tag não usada do Dicionário Tagname, deve-se concluir as seguintes etapas: z
Desligue o WindowViewer.
z
Elimine o uso de tag com o utilitário Cross Reference.
z
Atualize a Contagem de Uso em Special/Update Use Counts.
z
Confirme a exclusão.
O botão Delete não estará disponível se o WindowViewer estiver em execução ou se o InTouch considerar que o tagname como usado no aplicativo.
Utilitário de Referência Cruzada InTouch O Utilitário de Referência Cruzada InTouch permite determinar seu uso de tagname e SuperTag em links de animação, assistentes, InTouch QuickScripts, QuickFunctions, controles ActiveX, scripts e os programas adicionais InTouch a seguir: SPC Pro, SQL Access Manager e Recipe Manager. Para todos os objetos como assistentes, controles ActiveX e link de animação, ele exibe o nome da janela e as coordenadas de todos os objetos vinculados ao tagname. Ele também permite revisar qualquer QuickScript ou QuickFunction no qual uma referência de tag é encontrada. A ferramenta de Referência Cruzada InTouch pode permanecer em execução no WindowMaker enquanto outras tarefas são realizadas.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-44
Módulo 9 – Funcionalidade de tag avançada Uso do utilitário de Referência Cruzada InTouch a. Clique em Special / Cross Reference. A caixa de diálogo InTouch Cross Reference Search Criteria é exibida:
Área Search Criteria : Permite a você limitar o escopo de sua busca. O escopo pode ser determinado pela seleção das opções requeridas apenas. z
Search for all occurrences: Faça uma busca de todos os usos do tagname ou SuperTag em link de animação, InTouch QuickScripts e todos os programas adicionais como SPC, SQL Access Manager, Recipe Manager, etc.
z
Search for specific occurrences: Faça uma busca apenas para o tagname ou SuperTag nas opções especificadas. Por exemplo, para buscar o uso nos scripts de janela, selecione Usage in window scripts
z
Filter: Insira um nome exclusivo para identificar o filtro que deseja definir ou abra a lista drop-down Filter para selecionar um filtro selecionado previamente da lista. Quando definir filtros, o nome que inserir é adicionado à lista Filter.
z
Search: Começa a busca de referência cruzada com base no critério de visualização especificado.
Treinamento Wonderware
Seção 5 – Otimização do dicionário Tagname
9-45
Resultados da busca de referência cruzada Ao realizar uma busca de referência cruzada, a caixa de diálogo InTouch Cross Reference Utility é exibida listando todas as instâncias de uso encontradas para o Filter especificado. Se nenhum filtro for usado, todos os tagnames definidos no Dicionário Tagname do aplicativo atual são exibidos. Por exemplo:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-46
Módulo 9 – Funcionalidade de tag avançada Ícones de interface de utilitário de referência cruzada A tabela a seguir descreve rapidamente os vários ícones que aparecem no Utilitário de Referência Cruzada InTouch. Ícone
Descrição Tagname ou SuperTag é atribuído a um objeto InTouch ou usado para armazenar um valor em um InTouch QuickScript, assistente ou programa adicional. Clique para expandir a visualização do nível. Clique para desfazer a visualização do nível expandido. Tagname ou SuperTag exibido é definido no Dicionário Tagname do aplicativo, mas não é atribuído a um objeto. Tagname ou SuperTag exibido é usado no link de animação ou no InTouch QuickScript. Clique para expandir a visualização. Tagname ou SuperTag exibido é atribuído a um link de animação. Tagname ou SuperTag exibido é usado em um script de Aplicativo. Exibido para todos os scripts Application On Startup, While Running e On Shutdown; Scripts Window On Show, While Showing e On Hide e scripts Key On Key Down, While Down e On Key Up. Clique duas vezes com o mouse no ícone para visualizar. Tagname ou SuperTag exibido é usado em um script Window. Tagname ou SuperTag exibido é usado em um script Data Change. O Tagname ou a SuperTag exibido(a) é usado(a) em um script Condition. Por exemplo, $Hour==12 On True. Clique duas vezes com o mouse no ícone de qualquer script para visualizar. Tagname ou SuperTag exibido é usado em um script Key. Por exemplo, F2 On Key Down. Clique duas vezes com o mouse no ícone de qualquer script listado para visualizar. Tagname ou SuperTag exibido é usado em um QuickFunction. Tagname ou SuperTag exibido é usado em um script ActiveX Event. Quando fizer referência cruzada pelo Window, este ícone precede o nome da janela na qual o tagname ou SuperTag exibido é usado. Tagname ou SuperTag exibido é usado em um Aplicativo SPC Pro. Tagname ou SuperTag exibido é usado em um aplicativo SQL Tagname ou SuperTag exibido é usado em um aplicativo Recipe Manager . Tag exibida é usada como um Inibidor de alarme. Clique duas vezes com o mouse ou clique para visualizar os nomes de todas as tags para as quais é um Inibidor. Tagname exibido é usado em janela InTouch (nome). Tagname exibido é usado em uma Tendência de Histórico.
Treinamento Wonderware
Seção 5 – Otimização do dicionário Tagname
9-47
Mudança do critério de busca de referência cruzada Se desejado, após a busca de referência cruzada inicial ser realizada, é possível limitar a busca modificando suas opções de busca original. a. Na caixa de diálogo InTouch Cross Reference Utility , (exibida após realizar sua busca inicial), clique em Options. A caixa de diálogo InTouch Cross Reference View Options é exibida:
b. Para mudar a seleção Search Criteria, clique em Cancel. A caixa de diálogo InTouch Cross Reference Utility é reexibida. c. Clique em Search e selecione a nova opção Search Criteria. d. Na lista na parte de baixo da caixa de diálogo, selecione (se a árvore de visualização deve ser preenchida) Tag Name ou By Window. By Tagname: Referência cruzada alfabeticamente por tagname lista todos os tagnames encontrados para o critério de busca especificado (visualização padrão). Baseado em seu critério de busca especificado, esta visualização permite ver todos os tagnames encontrados em janelas, link de animação, scripts e aplicativos adicionais. e. Para expandir a visualização, clique duas vezes com o mouse em um tagname exibido e depois clique duas vezes com o mouse em Animation Link Use ou no botão Expand View.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-48
Módulo 9 – Funcionalidade de tag avançada Quando esta visualização for expandida, o nome da janela e a localização (coordenadas) do objeto vinculado ao tagname são exibidos:
f.
Clique duas vezes com o mouse em um tagname e depois clique duas vezes com o mouse em qualquer um de seus scripts associados para abrí-lo na caixa de diálogo Script usage for .
g. Clique em Close. h. Clique em Contract View na janela InTouch Cross Reference Utility para fazer a caixa de diálogo retornar ao seu modo padrão. O campo de lista drop-down no alto da caixa de diálogo exibe todos os scripts associados à tag selecionada.
Treinamento Wonderware
Seção 5 – Otimização do dicionário Tagname i.
9-49
Abra a lista e selecione outro script. Para scripts Application, Window, Key e Condition, a lista contém os nomes de todos os scripts que usam este tagname. Para scripts Data Change, somente o tagname é listado. Para QuickFunctions, a lista conterá os nomes de todos os QuickFunctions (visualização somente leitura). By Window Name: Fazer referência cruzada por nome de janela classifica a exibição por nome de janela e depois pelos tagnames usados na janela. Obs.: Esta visualização mostra apenas os tagnames usados na janela. Ela não inclui o uso em link de animação, scripts, etc.
j.
Clique no botão Options na janela InTouch Cross Reference Utility (Special/Cross Reference/Search/Options).
k. Escolha a opção By Window para exibir as janelas alfabeticamente. Expanda ou diminua a visualização como desejado. l.
Clique em Close para sair do InTouch Cross Reference Utility.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-50
Módulo 9 – Funcionalidade de tag avançada Como salvar arquivos de referência cruzada Os arquivos de referência cruzada podem ser salvos e visualizados posteriormente em qualquer programa de editor de texto que seja compatível com o formato de arquivo variável separada por vírgula (.CSV). A informação armazenada em um arquivo de referência cruzada corresponde à informação exibida no momento na caixa de diálogo InTouch Cross Reference Utility . a. Na caixa de diálogo InTouch Cross Reference Utility clique em Save As. A caixa de diálogo Save As é exibida:
b. Na caixa File name, insira o nome para salvar o arquivo de referência cruzada. O arquivo somente pode ser salvo como um arquivo .CSV . c. Clique em Save.
Treinamento Wonderware
Seção 5 – Otimização do dicionário Tagname
9-51
Impressão de arquivos de referência cruzada Um arquivo de referência cruzada .CSV pode ser aberto em qualquer programa de editor de texto que seja compatível com o formato de arquivo .CSV e impresso como um relatório. Por exemplo, no Notepad, o arquivo seria exibido da seguinte forma.
a. Clique em File / Print para imprimir o arquivo.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-52
Módulo 9 – Funcionalidade de tag avançada Atualização de contagens de uso e exclusão de diversos tagnames usados O InTouch mantém uma contagem de uso para cada item no banco de dados. Esta contagem não é atualizada automaticamente para determinadas operações, como excluir uma janela, mudar tagnames em links ou scripts, etc. Nestes casos, o InTouch continua a considerar o tagname em uso no aplicativo e não permitirá que seja excluído. Portanto, pode ser necessário atualizar sua contagem de uso a fim de excluir um tagname ou diversos tagnames. Atualização de contagens de uso Como o InTouch mantém uma contagem de uso para cada item no banco de dados, é necessário atualizá-la para zerar todos os tagnames não usados antes do InTouch permitir a exclusão. a. Feche todas as janelas. b. Clique em Special/Update Use Counts. Uma mensagem informando que a atualização da contagem pode demorar é exibida:
c. Clique em Yes para atualizar contagens de uso. Quando o sistema concluiu a atualização, a caixa de diálogo é exibida:
d. Clique em OK. Exclusão de diversos tagnames não usados Após ter atualizado a contagem de uso, o InTouch permitirá excluir todas as tags não usadas. É possível excluí-las uma por uma no Dicionário Tagname ou diversas de uma vez usando o comando Delete Unused Tags. a. Clique em Special / Delete Unused Tags. A caixa de diálogo Choose Names to Delete é exibida:
b. Selecione os tagnames com Ctrl pressionada e clique em cada tag, depois clique em Delete. c. Clique em All para excluir todos os tagnames exibidos.
Treinamento Wonderware
Seção 5 – Otimização do dicionário Tagname
9-53
Exibição da contagem de uso de tag O número de tags locais definidos no Dicionário Tagname pode ser exibido na barra do menu WindowMaker. A contagem de tag não inclui tags de sistema ou referências de tagname remotas. Tags de sistema (37) não são contados com relação a tags com licença. a. Clique em Special / Configure / WindowMaker. A caixa de diálogo WindowMaker Properties é exibida:
b. Selecione Show Tag Count. e clique em OK. A mensagem a seguir é exibida.
c. Clique em OK para fechar/reiniciar WindowMaker. O número total de tagnames locais definidos no Dicionário Tagname é exibido:
Atenção: Todo o Dicionário Tagname deve ser lido a fim de atualizar a contagem de tagname exibido. Quando esta opção está habilitada, o desempenho pode cair quando mudanças são feitas no Dicionário Tagname. Se seu Dicionário Tagname for grande, não selecione esta opção.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-54
Módulo 9 – Funcionalidade de tag avançada
– Deixado em branco intencionalmente –
Treinamento Wonderware
Laboratório 12 – Exclusão de Tags
9-55
Laboratório 12 – Exclusão de Tags Introdução Este laboratório demonstra a exclusão de tags não usadas ou com erro.
Objetivos Ao final deste laboratório, você: z
Atualizará contagem de uso
z
Excluirá tags
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-56
Módulo 9 – Funcionalidade de tag avançada Atualização da contagem de uso 1. Feche qualquer janela aberta no WindowMaker. 2. Selecione Special / Update Use Counts.
O WindowMaker solicita que confirme a operação Update:
3. Clique em Yes.
4. Clique em OK.
Treinamento Wonderware
Laboratório 12 – Exclusão de Tags
9-57
Exclusão de tags 5. Selecione Special / Delete Unused Tags do menu do WindowMaker. A caixa de diálogo Choose Names to Delete é exibida: A lista de tags não usadas em seu sistema pode ser diferente.
6. Selecione uma ou mais tags para exclusão.
7. Clique em Delete. O sistema solicita que confirme a operação de exclusão.
8. Clique em OK.
9. Clique em OK.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
9-58
Módulo 9 – Funcionalidade de tag avançada
– Deixado em branco intencionalmente –
Treinamento Wonderware
Módulo 10
Segurança Seção 1 – Modelos de segurança
10-3
Laboratório 13–Estabelecer segurança
10-15
Seção 2 – Proteção do aplicativo
10-27
10-2
Módulo 10 – Segurança Objetivos do módulo z
Definir Modelos de Segurança básicos
z
Explicar o Modelo de Segurança InTouch
z
Implementar Segurança InTouch
Treinamento Wonderware
Seção 1 – Modelos de segurança
10-3
Seção 1 – Modelos de segurança Objetivos da seção z
Definir modelos de segurança
z
Explicar a segurança InTouch
Este módulo fornece as características gerais de três modelos de segurança disponíveis no desenvolvedor InTouch. O enfoque é no modelo de segurança de base InTouch.
Introdução Este módulo fornece as características gerais de três modelos de segurança disponíveis no desenvolvedor InTouch (a opção None é auto-explicativa). O enfoque é no modelo de segurança de base InTouch. Todos os métodos de segurança InTouch são configuráveis com granularidade de aplicativo, o que significa ser possível operar dois aplicativos com duas configurações de segurança diferentes no mesmo computador. Todos os três métodos de segurança são compatíveis com a distribuição de aplicativos de Desenvolvimento de Aplicativo de Rede (NAD). A segurança de base InTouch trabalha com NAD como nas versões anteriores do InTouch. Para mais informações sobre NAD, consulte o Desenvolvimento de Aplicativo de Rede no Guia do Usuário InTouch. O desenvolvedor InTouch pode selecionar entre três modelos de segurança: z
ArchestrA Security: Segurança de base ArchestrA para o Industrial Application Server (IAS) é centralizada independente de NAD ser usado ou não. Atividades referentes à Segurança IAS são configuradas externamente no Ambiente de Desenvolvimento Integrado (IDE). Para mais informações sobre IDE, consulte o Guia de Ambiente de Desenvolvimento Integrado (IDE) Wonderware ArchestrA. Após selecionar uma autenticação e autorização ArchestrA, as opções Change Password, LogOn, Configure Users e LogOff no menu Special...Security estão disponíveis. Os detalhes sobre os recursos disponíveis no Industrial Application Server são abordados em um curso separado.
z
InTouch Security: Ao aplicar segurança ao seu aplicativo, é possível controlar funções específicas que um operador está autorizado a realizar vinculando estas funções às tags internas. Registro de auditoria pode ser criado que ligam o operador a todos os alarmes/ eventos que ocorrem durante o tempo em que ele está conectado ao sistema. Segurança é baseada no conceito do operador se conectar ao aplicativo, digitando seu nome e senha. É necessário configurar o nome do usuário, senha e nível de acesso para cada operador. Não há associação entre o sistema operacional Microsoft e a segurança InTouch.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-4
Módulo 10 – Segurança z
Operating System Security: Se o modo de autenticação é baseado no sistema operacional, os nomes de usuários serão os pares de nomes de Nome de Domínio/Nome de Usuário do Windows. Nomes de usuário podem ser escolhidos da lista de usuários associados ao Domínio de Rede/Grupo de Trabalho Windows. Cada nome de usuário tem um nível de acesso atribuído que determina a autorização do usuário para uma determinada atividade. Uma vez que o sistema operacional gerencia as senhas internamente, o InTouch não armazenará senhas. A segurança de base de sistema operacional usa a função script InTouch AddPermission para manter uma lista de usuários e seus níveis de acesso correspondentes. Esta lista, criada após a execução do chamado AddPermission(), é escrita no disco. O arquivo contendo os detalhes de autenticação dos usuários não serão copiados para as máquinas clientes NAD. O esquema de segurança de sistema operacional permite ao InTouch atender as especificações de segurança nas indústrias controladas. Estas especificações são estabelecidas pelo Food and Drug Administration (FDA) no CFR 21 Parte 11.
Segurança InTouch A proteção de um aplicativo InTouch significa três coisas diferentes para pessoas diferentes: Desenvolvedores de Aplicativo podem desejar proteger o sistema operacional, as ações dos operadores de auditoria ou proteger o próprio aplicativo InTouch. Para acomodar as diferentes necessidades, o esquema de segurança InTouch inclui várias opções para uma variedade de aplicativos. Em alguns casos a principal preocupação de segurança é limitar o acesso do operador a outros aplicativos Windows ou ao sistema operacional no nó local . As funções script estão disponíveis para bloquear o uso de teclas como ou . Há modos de configurar o WindowViewer (View) para operar sempre maximizado ou para ocultar seu menu de forma que os operadores não possam fechá-lo. Em outros casos, a segurança pode incluir a auditoria das ações do operador (acompanhando o que é feito e quando é feito). Eventos e tags de sistema inativo do InTouch podem rastrear estas ações. Em outros casos segurança significaria restringir os recursos de um aplicativo com base em privilégios estabelecidos para o usuário atual (como uma identificação de usuário) ou o grupo ao qual o usuário pertence (como Papéis). Esta funcionalidade é conseguida com o ajuste de um link de visibilidade ou de desabilitação ao objeto com acesso limitado (por exemplo, um botão para abrir outra janela). O InTouch retém a segurança tradicional InTouch com base em um arquivo binário contendo uma lista de usuários de aplicativo com senhas e níveis de acesso. O InTouch inclui funções de script de segurança adicional e tags de sistema.
Treinamento Wonderware
Seção 1 – Modelos de segurança
10-5
Segurança de aplicativo InTouch A implementação de segurança em um meio de Aplicativo InTouch que os usuários devem ser criados e os usuários devem receber um modo de se conectarem à janela do aplicativo. Quando um novo aplicativo é criado, o nome do usuário é ajustado como None com nível de acesso 0 (o que não permite acesso a comandos de segurança) por padrão. Este nível evita o acesso ao comando Configure Users no WindowMaker e no WindowViewer. Portanto, é necessário configurar um nome de usuário para o Administrador de Sistema com um nível de acesso correspondente ou superior a 9000 a fim de acessar a lista de usuário de segurança posteriormente. Uma vez que o operador se Conecte ao aplicativo, o acesso a qualquer função protegida será dado mediante a verificação da senha do operador e do nível de acesso comparado ao valor especificado para o tagname de segurança interna vinculado à função. Por exemplo, é possível controlar o acesso a uma janela, a visibilidade de um objeto e assim por diante, especificando que o "Access Level" do operador conectado seja superior a 2000. Obs.: O operador pode se conectar ao aplicativo executando o comando Special / Security / Log on no menu WindowViewer (se o menu Special for exibido) ou criando um registro personalizado na janela com objetos de entrada sensíveis touchscreen vinculados às tags de segurança internas. Os comandos usados para estabelecer segurança em um aplicativo estão localizados no comando Special / Security no WindowMaker e no WindowViewer. Os comandos de segurança são usados para conectar-se e desconectar-se de um aplicativo, mudar senhas e configurar a lista de nomes de usuários válidos, senhas e níveis de acesso.
Funções de segurança no InTouch Os três aspectos principais de segurança devem ser considerados ao usar InTouch: z
Proteção do sistema operacional
z
Auditoria
z
Proteção do aplicativo
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-6
Módulo 10 – Segurança Proteção do sistema operacional (SO) Muitos aplicativos InTouch requerem que o operador monitore constantemente processos que operam 24 horas por dia, 7 dias por semana. Nestes casos, geralmente é desejável ter o InTouch como o único aplicativo Windows ao qual eles têm acesso. A barra de tarefa, arquivos de sistema e aplicativos Windows (como Solitaire) são inacessíveis se View for configurado corretamente. A segurança do sistema operacional é configurada a partir da guia WindowViewer Properties Windows Configuration (Special / Configure / WindowViewer).
O InTouch inclui a função script EnableDisableKeys() que habilita/desabilita as teclas ALT, TAB ou WIN em Runtime. Essa desabilitação proíbe a alternância entre janelas de aplicativo ou acesso àbarra de tarefa. Esta função, combinada com os ajustes WindowViewer: Always Maximize e hide Menu bar e as opções de controle do Windows, protegerão de forma eficiente o sistema operacional. Outra prática comum para ocultar/exibir a barra de menu em View é criar uma janela de estilo popup com suas coordenadas X,Y ajustadas em 0,-38, altura de 38 pixels e largura correspondente à resolução do monitor (ex. 1024). Este exemplo usa o SO Microsoft Windows Server 2003, resolução de tela de 1024 x 768. Os valores variarão dependendo do SO e da resolução usada. Os valores serão -48 e +48 se a aparência e a funcionalidade do XP forem aplicadas.
Treinamento Wonderware
Seção 1 – Modelos de segurança
10-7
Auditoria Acompanhar o que os operadores fazem não faz com que um aplicativo InTouch seja mais seguro mas é um aspecto importante de segurança no InTouch. Quando os usuários e grupos (ou papéis) são criados para serem usados em um aplicativo InTouch, registro de auditoria podem vincular os operadores a todos os alarmes/eventos que ocorrem durante o tempo em que eles estão conectados ao sistema. Alarmes e eventos são muito semelhantes em natureza, já que os dois requerem que uma condição ocorra e devem ser armazenados. A diferença entre os dois é que os eventos, diferente dos alarmes, não requerem um reconhecimento.
Objeto de alarme distribuído
Controle ActiveX AlarmViewerCtrl1
O Objeto de Alarme ActiveX contém links para as tags de segurança OS/ArchestrA. O Objeto de Alarme Distribuído, não.
Proteção do aplicativo O InTouch fornece um número de tags System e funções script que permitem que os desenvolvedores InTouch configurem segurança para o aplicativo individual. Obs.: Aplicar segurança ao seu aplicativo é opcional. O ajuste de segurança padrão para aplicativos InTouch é None. Entretanto, ao aplicar segurança ao seu aplicativo, é possível controlar funções específicas que um operador está autorizado a realizar vinculando estas funções às tags internas. Uma vez que o usuário seja validado e conectado ao aplicativo InTouch, as tags de sistema $Operator e $AccessLevel contêm informações sobre o usuário e seu nível de acesso.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-8
Módulo 10 – Segurança Para conectar-se a um aplicativo InTouch , o usuário pode clicar em Special / Security / Logon, chamar uma função script para exibir uma caixa de diálogo (padrão) de conexão ou conectar-se através de uma janela de conexão personalizada. Obs.: Consulte o Guia de Referência InTouch para uma documentação completa das Tags de Sistema e funções script $AccessLevel é a tag usada para proteger os aplicativos InTouch. É a principal tag do sistema para modificar o que um usuário ($Operator) pode ou não fazer durante o Runtime. Por exemplo, para desabilitar um botão, apenas ajuste um link do tipo "disable" ou "visibility" a ele com uma expressão como $AccessLevel < 9000.
Esquemas de autenticação InTouch Quando usuários são autenticados com um arquivo binário (password.bin) que contém informações sobre usuários, senhas e níveis de acesso isto é conhecido como autenticação InTouch. Além deste modo, os programadores InTouch podem usar a autenticação do sistema operacional, autenticação ArchestrA ou nenhuma autenticação. Os comandos usados para estabelecer segurança em um aplicativo são acessados selecionando Special / Security no menu principal WindowMaker. Os comandos de segurança são usados para conectar-se e desconectar-se de um aplicativo, mudar senhas e configurar a lista de nomes de usuários válidos, senhas e níveis de acesso. É possível também vincular um botão User Input - Discrete à tag $ConfigureUsers para permitir que um operador autorizado com um nível de acesso correspondente ou superior a 9000 exiba a caixa de diálogo Configure Users. A caixa de diálogo é usada para editar a lista de segurança de nome de usuário. Quando operador clica no botão, o valor da tagname $ConfigureUsers é ajustada como 1 e a caixa de diálogo Configure Users é exibida. Quando o operador fecha a caixa de diálogo, o sistema reinicia o valor como 0 (Esta é uma tag de sistema discreta para operação de escrita apenas). Se o menu Special não será exibido no WindowViewer, é possível criar uma janela de conexão personalizada (consulte abaixo) que o operador usa para conectar-se ao aplicativo. É possível também vincular um botão User Input - Discrete à tagname $ChangePassword para exibir a caixa de diálogo Change Password e permitir ao operador mudar sua senha. Quando operador clica no botão, o valor da tagname $ChangePassword é ajustada como 1 e a caixa de diálogo Change Password é exibida. Quando o operador fecha a caixa de diálogo, o sistema reinicia o valor como 0 (Esta é uma tag de sistema discreta para operação de escrita apenas). Os nomes None e Administrator são reservados. Somente a senha do Administrator pode ser modificada. Uma vez que tenha configurado os nomes de usuário para seu aplicativo, mude a senha do nome do Administrator já que é mais provável que se torne conhecida pela maioria dos usuários do sistema. O nível de acesso (9999) padrão do Administrator é o mais alto e permite acessar tudo inclusive o comando de menu Configure Users.
Treinamento Wonderware
Seção 1 – Modelos de segurança
10-9
Criação de uma janela de conexão de segurança personalizada $OperatorDomainEntered, $OperatorEntered e $PasswordEntered são três tags usadas caso uma caixa de diálogo de conexão personalizada seja necessária. Crie uma janela pop-up e ajuste os links touchscreen do usuário (string de entrada) para estas tags. Se as credenciais fornecidas forem validadas, $Operator, $AccessLevel, $OperatorName, $OperatorDomain atualizarão de acordo. Obs.: A tag $OperatorDomainEntered é apenas para Segurança do Sistema Operacional. Se o menu Special não for exibido no WindowViewer, um registro personalizado na janela pode ser criado para o operador fazer a conexão ao aplicativo. Faça o link dos tagnames do sistema $OperatorEntered, $PasswordEntered e $OperatorDomainEntered aos objetos de entrada do usuário ou use-os em um QuickScript para ajustar User Name, Password e Domain Name. Estes são tagnames de mensagens internas que têm por objetivo ser a operação de escrita apenas. Por exemplo: Set the User Name string into ->$OperatorEntered Set the User Password string into ->$PasswordEntered
O $OperatorDomainEntered é necessário apenas se o modo de segurança for baseado em sistema operacional. Além disso, se o modo de segurança for baseado em sistema operacional e o valor $OperatorDomainEntered for nulo, ele é tratado para apontar uma máquina local. Após o operador conectar-se ao aplicativo, o acesso a qualquer função protegida será dado mediante a verificação da senha e do nível de acesso comparado ao valor especificado para o tagname de segurança interno será vinculado à função.
Tags de sistema relacionadas à segurança Três tags de segurança interna são usadas em botões, em expressões de link de animação ou QuickScripts, etc. Elas são $Operator, $AccessLevel e $OperatorName. Estas tags executam o controle se o operador conectado está autorizado ou não a realizar as funções específicas. A tabela a seguir lista todas as tags de sistema relacionadas à segurança. Tagname
Tipo
Valores válidos
Acesso
$AccessLevel
Inteiro de Sistema
0-9999
Somente Leitura
$ChangePassword
Sistema discreto
1 ou 0
Leitura Escrita
$ConfigureUsers
Sistema discreto
1 ou 0
Leitura Escrita
$InactivityTimeout
Sistema discreto
1 ou 0
Leitura Escrita
$InactivityWarning
Sistema discreto
1 ou 0
Leitura Escrita
$Operator
Mensagem de Sistema
16 caracteres máx.
Somente Leitura
$OperatorName
Mensagem de Sistema
131 caracteres máx.
Somente Leitura
$OperatorDomain
Mensagem de Sistema
16 caracteres máx.
Somente Leitura
$OperatorDomainEntered
Mensagem de Sistema
16 caracteres máx.
Somente escrita
$OperatorEntered
Mensagem de Sistema
16 caracteres máx.
Somente escrita
$PasswordEntered
Mensagem de Sistema
16 caracteres máx.
Somente escrita
$VerifiedUserName
Mensagem de Sistema
16 caracteres máx.
Somente Leitura
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-10
Módulo 10 – Segurança Por exemplo, para fazer um objeto tornar-se visível com base no nível de acesso do usuário conectado, a declaração a seguir poderia ser usada em uma expressão de link de animação Visibilidade: $AccessLevel >= 2000
Ou um QuickScript pode ser vinculado a uma declaração IF: IF $Operator == "DayShift" THEN Show "Control Panel Window"; {e outras linhas que somente são executadas para o Turno do Operador} ENDIF;
É possível também controlar a funcionalidade touchscreen de um objeto com base no valor do tagname de segurança interna usando o link de animação Disable . Por exemplo:
Se ninguém estiver conectado e a expressão acima for usada, o objeto ou botão é protegido contra violação.
Configuração de níveis de segurança a. Selecione Special / Security / Select Security Type / InTouch.
b. A primeira vez que usar segurança, é necessário fazer o logon como Name: Administrator e Password: wonderware. Use Special / Security / Logon. c. Selecione Special / Security / Configure Users. A caixa de diálogo Configure Users é exibida:
User Name: Atribua um nome ao operador. Password: Insira uma senha (até 32 caracteres). Access Level: Insira um valor (o mais baixo = 0 ao mais alto = 9999).
Treinamento Wonderware
Seção 1 – Modelos de segurança
10-11
d. Clique em Add para adicionar o nome do usuário à lista de segurança. Para modificar um nome do usuário existente, selecione o nome. Insira suas mudanças e clique em Update para aceitar as mudanças. Para excluir um nome de usuário, selecione-o na lista e depois clique em Delete.
Mudança de uma senha LogOn a. Clique em Special / Security / Change Password. A caixa de diálogo Change Password é exibida (asteriscos são exibidos quando usuários e senhas são configurados).
Old Password: Insira a senha antiga. New Password: Insira a senha nova (até 32 caracteres). Verify Password: campo de texto, insira a nova senha novamente. b. Clique em OK. Toda informação inserida é exibida na tela como asteriscos.
Conexão a um aplicativo Há quatro tópicos pertinentes à conexão ao sistema de segurança InTouch. z
Special / Security / Log On
z
Função QuickScript Post Logon Dialog (detalhada em Apêndice G, “Funções de script.”)
z
Função QuickScript Attempt Invisible Logon (detalhada em Apêndice G, “Funções de script.”)
z
SystemTags ($OperatorEntered, $PasswordEntered)
To Log On using the Special / Security / Log On method a. Clique em Special / Security / Log On. A caixa de diálogo Log On é exibida:
Name: Insira seu nome do usuário. Password: Insira sua senha. b. Clique em OK. Se a informação inserida for incorreta ou inválida, uma caixa de mensagem será exibida indicando que a conexão falhou.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-12
Módulo 10 – Segurança Se a conexão for correta, a tag $AccessLevel será ajustada para seu valor pré-definido como configurado na lista de segurança de usuário.
Encerramento da sessão de um aplicativo Há quatro tópicos pertinentes ao encerramento da sessão do sistema de segurança InTouch. z
Special / Security / Log Off
Log Off
Encerrar sessão baseado em inatividade
z
Função QuickScript LogOff (detalhada no Appendix G deste manual)
z
SystemTags ($OperatorEntered = “None”)
Para encerrar a Sessão usando o método Special / Security / Log On a. Clique em Special / Security / Log Off. Quando este comando é executado, o User Name é reiniciado como None com um Access Level de 0. É possível configurar o aplicativo para fazer o encerramento de sessão automático do operador após um determinado período de tempo sem atividade do operador.
Treinamento Wonderware
Seção 1 – Modelos de segurança
10-13
Encerramento de sessão automático (ajuste de parâmetro de tempo-limite) Os ajustes de advertência e de tempo-limite podem ser usados para configurar seu aplicativo para fazer o encerramento de sessão automático do operador se não houver atividade por um período de tempo especificado. a. Clique em Special / Configure / WindowViewer.
b. Advertência: Insira o número de segundos que podem decorrer sem atividade do operador (cliques do mouse ou seqüência de teclas) antes da tag discreta do sistema $InactivityWarning ser ajustada como 1 (Verdadeiro). $InactivityWarning pode ser usada em um Condition QuickScript para exibir uma janela alertando o operador de que a sessão do sistema está prestes a ser encerrada . Se o operador clica com o botão do mouse, pressiona uma tecla ou realiza uma ação usando qualquer outro dispositivo de indicação antes do tempo limite especificado transcorrer, $InactivityWarning e o temporizador são reinicializados e a sessão não é encerrada. c. Timeout: Insira o número de segundos que podem decorrer sem atividade do operador (cliques do mouse ou seqüência de teclas) antes da tag discreta do sistema $InactivityTimeout ser ajustada como 1 (Verdadeiro).
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-14
Módulo 10 – Segurança Quando $InactivityTimeout for verdade, o sistema corresponde ao nome do operador conectado ao nome reservado "None" e ajusta a tagname de segurança $AccessLevel como 0. É possível usar $InactivityTimeout em um Condition QuickScript para exibir uma janela dizendo ao operador que a sessão do aplicativo foi encerrada. A função Timeout pode ser usada independentemente da função Warning. Entretanto, o valor Timeout deve ser superior ao valor Warning para uso das duas tags de sistema. Por exemplo: Warning torna-se verdade após 30 segundos de inatividade e Timeout torna-se verdade após 15 segundos adicionais (para um total de 45 segundos) de inatividade.
Treinamento Wonderware
Laboratório 13 – Estabelecer segurança
10-15
Laboratório 13 – Estabelecer segurança Introdução Neste laboratório, você aprenderá a estabelecer segurança no aplicativo criando contas de usuário específicas e aplicando script de segurança a elas.
Objetivos Ao final deste laboratório, você será capaz de: z
Criar novas contas de usuário
z
Criar método de conexão
z
Criar scripts de segurança
z
Configurar a navegação da janela
z
Testar segurança
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-16
Módulo 10 – Segurança Criação de novas contas de usuário Para implementar segurança ao seu aplicativo, é necessário primeiro ajustar o tipo de segurança do aplicativo. 1. Se não foi feito na seção anterior, selecione Special / Security / Select Security Type do menu principal WindowMaker e selecione InTouch. Faça a conexão como Administrator com a senha wonderware. Em seguida, crie três novas contas de usuário. 2. Clique no comando Special / Security / Configure Users para exibir a caixa de diálogo Configure Users. 3. Insira os seguintes usuários e informações de conta. User Name:
Password
Access Level
WW
WW
9999
Operator
HMI
8000
Day
Shift
4000
4. Clique em Add após cada entrada e em OK. A figura a seguir exibe a caixa de diálogo Configure Users concluída:
5. Clique em OK.
Criação do método de conexão 6. Importe as janelas Menu e Security do diretório wwimport usado para importações anteriores (File / Import). 7. Abra a janela Security.
Treinamento Wonderware
Laboratório 13 – Estabelecer segurança
10-17
A janela contém os seguintes elementos gráficos:
8. Anexe um script Touch Link - Touch Pushbuttons - Action ao botão rotulado Logon. A função script PostLogonDialog( ) solicita ao usuário fazer a conexão ao aplicativo e retorna o resultado como um valor DISCRETE. Como não é necessário armazenar o valor retornado para este exercício, você usará uma tag local LogonResult para este valor. 9. Insira o script exibido no gráfico a seguir.
10. Valide o script e clique em OK. 11. Clique em OK para sair da caixa de diálogo Animation Links Selection .
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-18
Módulo 10 – Segurança Configuração do objeto de exibição de operador 12. Atribua um Value Display – String ao objeto de exibição $Operator .
13. Insira $Operator no campo Expression.
14. Clique em OK.
Configuração do # objeto de exibição 15. Atribua um link Value Display – Analog
ao objeto de exibição de valor
16. Insira $AccessLevel no campo Expression: . 17. Clique em OK.
Configuração do botão Click to Continue 18. Atribua um link Miscellaneous - Visibility ao botão Approved - Click to Continue. Este botão será visível apenas quando um registro de conexão correta ao sistema for concluído. 19. Insira uma Expression: com base em $AccessLevel.
20. Clique no botão OK inferior. 21. Configure um link de animação Touch Link - Touch Pushbutton - Show Window para exibir as janelas Menu e Links.
Treinamento Wonderware
Laboratório 13 – Estabelecer segurança
10-19
Configuração do objeto Cancel O botão Cancel será usado para cancelar o processo de conexão, porém somente será visível quando ninguém estiver conectado ao sistema, ou principalmente, quando esta janela é aberta pela primeira vez. 22. Configure um link Miscellaneous - Visibility para o botão Cancel . 23. Insira a expressão exibida na figura a seguir.
24. Clique no botão OK inferior. 25. Configure o script Touch Link - Touch Pushbuttons - Action a seguir para fazer com que a janela feche.
26. Valide e clique com o mouse em OK, depois em OK novamente para sair da caixa de diálogo Animation Links Selection .
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-20
Módulo 10 – Segurança Criação de uma janela Home 27. Criar uma nova janela denominada Home e atribuir a ela as propriedades a seguir:
Obs.: O exemplo anterior usa o Sistema Operacional Windows 2003 com Temas XP ativados com uma resolução de tela de 1024 x 768. Os valores variarão dependendo do sistema operacional e da resolução usada. Tente Y Location em -38 para aparência e funcionalidade do Windows NT. 28. Posicione um objeto bitmap na janela e aumente-o para cobrir toda a janela. 29. Clique com o botão direito do mouse no objeto bitmap e selecione Import Image. 30. Selecione o arquivo wwb1.jpg do diretório c:\wwimport.
31. Clique em Open para importar a imagem dentro do objeto bitmap. 32. Redimensione a imagem para preencher toda a janela Home, se necessário.
Treinamento Wonderware
Laboratório 13 – Estabelecer segurança
10-21
A janela Home deve agora estar semelhante à figura a seguir:
33. Desenhe um objeto retângulo sobre a porta da frente da imagem em construção.
34. Clique duas vezes com o mouse no objeto retângulo.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-22
Módulo 10 – Segurança 35. Anexe a seguinte Touch Pushbuttons - Show Window ao objeto retângulo:
36. Envie o retângulo para trás. 37. Salve e feche a janela Home.
Configuração da navegação da janela 38. Open the Menu window.
39. Converta o conteúdo da janela Menu (F2, Special / Substitute Tags / Convert / Local). Dica: Certifique-se de que a janela Menu esteja ativa antes de clicar F2 clicando uma vez em uma área em branco da janela, por exemplo na área em preto do texto Disk Space Free. Em seguida, é necessário vincular os botões nas janelas Menu, Historical Trend e Real-Time Trend as suas respectivas janelas e configurar o script.
Treinamento Wonderware
Laboratório 13 – Estabelecer segurança
10-23
40. Configure os Links de Animação de acordo com a tabela a seguir. Botão
Link Type
Home
Touch Pushbuttons Action (On Left Click/KeyDown)
Links
Botões Touchscreen – Exibir janela
Alarmes
Diversos / Desabilitar
Window
Expression
Script DIM LogOffResult como DISCRETE; LogOffResult=LogOff(); Show "Home";
Links $AccessLevel < 5000 Disabled State = On
Botões Touchscreen – Exibir janela Tendênci Botões Touchscreen – a Exibir janela
Alarmes Tendênci a de histórico
Visibilidade
$AccessLevel < 5000 Visible State = Off
Hopper
Botões Touchscreen – Exibir janela
Hopper
Principal
Botões Touchscreen – Exibir janela
Principal
41. Salve a janela Menu. 42. Mude a janela Menu Y Location como -48 na caixa de diálogo Window Properties . Isto colocará a janela Menu sobre as barras de menu do programa WindowViewer. Obs.: O exemplo anterior usa o Sistema Operacional Windows 2003 com Temas XP ativados com uma resolução de tela de 1024 x 768. Os valores variarão dependendo do sistema operacional e da resolução usada. Tente Y Location em -38 para aparência e funcionalidade do Windows NT. 43. Abra a janela Historical Trend. 44. Crie um botão Real-Time Trend (se necessário) e vincule-o à janela Real-Time Trend usando o link Touch Pushbutton - Show Window. Uma posição sugerida do botão é exibida na figura a seguir.
45. Salve e feche a janela. 46. Abra a janela Real-Time Trend e adicione o botão rotulado Historical Trend. 47. Configure um link Show Window à janela Historical Trend. 48. Salve e feche a janela Real-Time Trend.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-24
Módulo 10 – Segurança 49. Selecione Special / Configure / WindowViewer. 50. Selecione a guia Home Windows e selecione Home.
51. Clique em OK. 52. Feche WindowMaker. 53. Inicie o WindowViewer. A janela Home deve ser exibida. 54. Comece clicando na porta da imagem gráfica.
Treinamento Wonderware
Laboratório 13 – Estabelecer segurança
10-25
A tela Logon é exibida.
55. Clique em Logon. 56. Login as User: ww, password ww. Após fazer a conexão, a tela principal deve apresentar seu login e nível de acesso.
57. Clique no botão Approved - Click to continue. A janela Links deve ser exibida para todas as conexões. 58. Faça a conexão como cada usuário que criou. User Name:
Password
Access Level
WW
WW
9999
Operator
HMI
8000
Day
Shift
4000
z
• O login nome do usuário ww deve ter acesso a todas as janelas.
z
• O Operator tem acesso as mesmas janelas.
z
• O login Day tem acesso apenas para as janelas Links, Hopper e Main. O link/botão Alarms é desabilitado e o link Trend fica visível.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-26
Módulo 10 – Segurança
– Deixado em branco intencionalmente –
Treinamento Wonderware
Seção 2 – Proteção do aplicativo
10-27
Seção 2 – Proteção do aplicativo Objetivo da seção z
Explicar a aplicação de opções de segurança personalizadas a um aplicativo
Esta seção aborda a personalização dos ambientes de Runtime e de desenvolvimento para proteger o aplicativo. Ela também explica como iniciar automaticamente um aplicativo.
Personalização do ambiente de Runtime Como o WindowMaker, WindowViewer inclui muitas opções para personalizar seu ambiente de Runtime. Por exemplo, é possível ajustar a velocidade de intermitência dos objetos intermitentes, o tempo-limite de inatividade do sistema, valores de advertência e as janelas que são abertas automaticamente quando o WindowViewer é iniciado pelo ícone ou de seu comando de menu.
Propriedades do WindowViewer – Geral a. Clique em Special / Configure / WindowViewer.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-28
Módulo 10 – Segurança Área WindowViewer Startup Start up as icon para iniciar o WindowViewer como um ícone ao invés de uma janela. Selecione esta opção somente quando usar o WindowViewer para coletar dados de outros aplicativos interconectados de E/S. Área Transfer to WindowMaker Close WindowViewer: Fecha automaticamente o WindowViewer ao iniciar o WindowMaker. Se a memória não for um problema e estiver usando a alternância rápida para mover-se entre WindowViewer e WindowMaker, esta opção não deve ser selecionada. A opção de alternância rápida é selecionada no diálogo WindowMaker Properties - General. Ao selecionar esta opção, a opção Close on Transfer to WindowViewer localizada na folha de propriedade WindowMaker Properties/General é automaticamente selecionada. Close all open windows: Fecha automaticamente todas as janelas ao transferir do WindowViewer para o WindowMaker. Selecionar esta opção libera memória em seu sistema. Área WindowViewer Memory Always load windows from disk: Se houver uma situação de memória baixa, esta opção faz com que as janelas do aplicativo sejam carregadas do disco e não salvas na memória RAM quando forem fechadas. Minimum Memory to Keep Free: Insira quantos Kbytes de memória devem ser mantidos livres para outros aplicativos Windows. Optimize performance for memory: Aumenta significativamente a velocidade de atualização de desenho e a taxa de atualização dos campos de texto. Se seu sistema tiver pouca memória, não habilite esta opção. Área Inactivity Warning: Insira quantos segundos podem decorrer sem atividade do operador (cliques do mouse ou seqüência de teclas) antes da tag discreta do sistema $InactivityWarning ser ajustada como 1 (Verdadeiro). Timeout Insira quantos segundos podem decorrer sem atividade do operador (cliques do mouse ou seqüência de teclas etc) antes da tag discreta do sistema $InactivityTimeout ser ajustada como 1 (Verdadeiro). Área Time/Timer Control Tick Interval: Insira o intervalo de velocidade que o InTouch usará para selecionar seus temporizadores internos. Este ajuste controla a rapidez com que os QuickScripts de Aplicativo While Running, de janela While Showing, de Condição While On True/On False, de Tecla e Ação de Botão touchscreen While Down QuickScripts serão executados. Os scripts não podem executar mais rápido do que a cada 10 milissegundos nos sistemas operacionais Windows XP, Windows NT® ou Windows 2000 . Update Time for Time Variables: Insira a freqüência (em milissegundos) com que o WindowViewer atualizará os tagnames de sistema com base em tempo $Msec, $Second, $Minute, etc. Recomendamos o uso do ajuste padrão de 1000 milissegundos. Entretanto, um 0 (zero) pode ser inserido para evitar a atualização de todas as variáveis de tempo.
Treinamento Wonderware
Seção 2 – Proteção do aplicativo
10-29
Área Miscellaneous Beep when objects touched: Para que todos os objetos sensíveis touchscreen emitam um bip quando selecionados no WindowViewer. Update all trends "fast" para atualizar os objetos de tendência mais rapidamente. Selecione esta opção somente quando estiver totalmente seguro de que nenhum objeto esteja sobrepondo seus objetos de tendência em Runtime. Caso contrário, a tendência não será desenhada corretamente. Debug Scripts: Escreve uma mensagem para o programa Wonderware Logger sempre que um QuickScript é executado. Se selecionar a opção de menu Debug na folha de propriedade WindowViewer Properties/ Window Configuration, poderá habilitar e desabilitar este comando em Runtime do menu Special do WindowViewer. Use old SendKeys somente se estiver usando um aplicativo internacional desenvolvido usando InTouch Versão 3.26 ou anterior (Esta é uma opção legada e não é usada para o FactorySuite). Área Blink Frequency: Slow, Medium, Fast: Insira as velocidades (em milissegundos) a serem usadas para fazer piscar link de animação. Área I/O Retry Initiates: Insira quantos segundos devem transcorrer antes do InTouch tentar conectarse novamente a um servidor de E/S. Esta caixa não tem efeito quando o InTouch pode conectar-se corretamente com o servidor de E/S pela primeira vez. Start local servers: Exibe uma caixa de diálogo quando o WindowViewer é inicializado e o servidor com o qual está tentando se comunicar não estiver executando. Obs.: Após modificar qualquer um destes parâmetros, o WindowViewer deve ser reiniciado para aplicar as mudanças. Área Hotlinks Show Halo around Hotlink: Exibe uma auréola quadrada em Runtime quando move o cursor sobre um objeto. Halo follows object shape: Exibe uma auréola em torno das bordas de um objeto em Runtime quando move o cursor sobre um objeto. Show halo around Active X control: Exibe uma auréola quadrada em Runtime quando move o cursor sobre um controle Active X. Área Keyboard InTouch Keyboard: Exibe o teclado alfanumérico padrão na tela ou o teclado numérico InTouch quando um link de animação é ajustado como Keypad = Yes. Resizeable Keyboard: Exibe um teclado alfanumérico dimensionável na tela ou o teclado numérico quando um link de animação é ajustado como Keypad = Yes. Clique em Options para selecionar as propriedades da fonte. Selecione os parâmetros X e Y Location, Width e Height para a dimensão inicial e o posicionamento em Runtime. O teclado ou o teclado numérico é redimensionável durante o Runtime. Windows Keyboard: Exibe o teclado internacional Windows com teclado numérico quando um link de animação é ajustado como Keypad = Yes.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-30
Módulo 10 – Segurança Propriedades WindowViewer - Configurar a janela Proteção refere-se à habilidade de desabilitar entradas não desejadas da Barra de Menu, determinadas seqüências de teclas e outros ajustes para garantir que os usuários não mudem o ambiente do aplicativo, fechem o aplicativo ou saiam do escape aplicativo para outros programas. Habilitar as opções desejadas evite que os usuários desempenhem ações potencialmente perigosas. a. Clique em Special / Configure / WindowViewer. b. Selecione a guia Window Configuration.
Treinamento Wonderware
Seção 2 – Proteção do aplicativo
10-31
Área Menus Menu Bar: Evita que a barra de menu seja exibida. WindowMaker: Evita que o operador possa alternar para o programa WindowMaker (Selecionar esta opção não afeta a alternância rápida para o WindowMaker). Logic: Evita que o operador inicie ou pare toda execução QuickScript durante o Runtime. É possível usar a tagname de sistema $LogicRunning para permitir que o operador inicie e pare todos os QuickScripts. Obs.: Se a opção Allow CTRL-Break to stop scripts estiver selecionada, o operador poderá parar a execução de todos os QuickScripts, independente se o menu Logic é exibido ou não. Debug: Apenas para depurar seu aplicativo. Window: controles que estarão disponíveis em Runtime. Obs.: É necessário limpar a opção Control Menu (também denominada menu Sistema) a fim de ocultar o botão close (X) no canto superior direito do aplicativo. Title Bar Text: Insira o título a ser exibido na barra de título de seu aplicativo em Runtime. Ex.: ABC Company, Paint APP1 Obs.: Não é possível mudar a barra de título se estiver usando uma "Licença Promocional." Show Application Directory in Title Bar: Inclua o caminho ao diretório do aplicativo na barra de título. Por exemplo: ABC Company, Paint APP1 - C:\DEMOAPP1 Hide Title Bar: Oculta a barra de título do aplicativo em Runtime. Impossible to Close: Evita que o operador feche o WindowViewer. Obs.: É necessário limpar a opção Control Menu (também denominada menu Sistema) a fim de ocultar a caixa close (X) no canto superior direito do aplicativo. Allow CTRL-Break to stop scripts: Permite que o operador pressione a seqüência de tecla CTRL + BREAK e pare a execução de todos os QuickScripts quando necessário durante o Runtime. Obs.: QuickFunctions assíncronos que estão atualmente em execução não podem ser parados. Entretanto, é possível evitar que novos QuickFunctions assíncronos sejam executados. Disable ALT key para desabilitar a tecla ALT e evitar que o operador execute comandos de menu usando a tecla ALT + acelerador. Por exemplo, ALT + FX para sair do aplicativo. Obs.: Limpe a opção Control Menu (ou menu de Sistema) para ocultar a caixa close (X). Hide Cursor para evitar que o cursor seja exibido durante o Runtime (se uma tela touchscreen será usada). Disable CTRL-ESC key para evitar que o operador acesse o menu Start do Windows para fechar e/ou alternar entre aplicativos. Disable WIN key para evitar que o operador acesse o menu Start do Windows para fechar e/ou alternar entre aplicativos. Always Maximize para manter o programa WindowViewer maximizado todo o tempo.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-32
Módulo 10 – Segurança Selecionar as janelas Home do WindowViewer Janelas Home são janelas designadas em seu aplicativo para abrir quando o WindowViewer inicia pela primeira vez. a. Clique em Special / Configure / WindowViewer. b. Selecione a guia Home Windows.
Selecione a janela que abrirá automaticamente quando o WindowViewer é iniciado. Obs.: As seleções de janelas home não têm efeito quando a alternância rápida é usada para iniciar o WindowViewer. As janelas Home são abertas automaticamente quando o WindowViewer é iniciado diretamente de seu ícone ou de seu comando de menu. c. Clique em OK.
Treinamento Wonderware
Seção 2 – Proteção do aplicativo
10-33
Personalização do ambiente de desenvolvimento WindowMaker inclui muitas opções de configuração. Por exemplo, é possível personalizar o texto da barra de título de seu aplicativo para incluir o nome da empresa, ajustar o espaçamento de pixel para a grade, etc.
Ajustar as propriedades do WindowMaker a. Clique em Special / Configure / WindowMaker.
Title Bar Text: Insira o título que deseja que seja exibido na barra de título de seu aplicativo em Runtime. Show Application Directory: Inclua o caminho ao diretório do aplicativo na barra de título. Spacing: Insira o número de pixels para espaçamento entre as coordenadas de ajuste à grade. Show Grid: Exiba uma grade em suas janelas quando habilitar a funcionalidade Snap to grid do WindowMaker. Clique na ferramenta Snap to Grid na barra de ferramentas View ou clique no comando Arrange / Snap to Grid para habilitar e desabilitar a funcionalidade ajustar à grade. Close on Transfer to WindowViewer: Fecha automaticamente o WindowMaker quando o WindowViewer inicia. Se a memória não for um problema e estiver alternando entre WindowViewer e WindowMaker, esta opção não deve ser selecionada. Obs.: Quando selecionar esta opção, a opção Close WindowViewer localizada na folha WindowViewer Properties General Properties é automaticamente selecionada também. Pick Through Hollow Objects: Selecione os objetos que estão atrás de objetos vazios.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
10-34
Módulo 10 – Segurança Enable Fast Switch: Exiba o comando alternância rápida (entre o WindowMaker e WindowViewer) em sua barra de menu para os dois programas. Se esta opção estiver selecionada no WindowMaker, a alternância rápida é a palavra Runtime exibida no lado superior direito de sua tela. No WindowViewer, é a palavra Development. Para alternar rapidamente entre os dois programas, clique em alternância rápida. Obs.: Quando usar alternância rápida, o WindowMaker salva automaticamente todas as mudanças feitas em todas as janelas abertas antes do WindowViewer ser iniciado. Line Selection Precision: Insira o número de pixels que seu cursor pode se distanciar de uma linha e ainda poder selecioná-la. Na maioria dos casos, o ajuste de parâmetro padrão de 4 deve ser suficiente. Level of Undo: Insira o número de níveis de desfazer/repetir a ser salvo (até 25 níveis). Insira zero (0) para desabilitar a funcionalidade desfazer/repetir. Um nível representa uma ação. As pilhas de desfazer e refazer são esvaziadas quando uma nova janela é criada ou quando uma janela existente é aberta. As duas pilhas são esvaziadas quando a janela é salva. Obs.: Após estes ajustes serem modificados, o WindowMaker deve ser iniciado para aplicar as mudanças. Área Configure Fonts: Text: Selecione o tipo e o tamanho de fonte padrões para objetos de texto. Button: Selecione o tipo e o tamanho de fonte padrões para objetos de botão.
Treinamento Wonderware
Módulo 11
Backup do aplicativo Seção 1 – Backup do aplicativo
11-3
11-2
Módulo 11 – Backup do aplicativo Objetivo do módulo z
Explicar o salvamento de um aplicativo e otimização dele para distribuição/implantação
Treinamento Wonderware
Seção 1 – Backup do aplicativo
11-3
Seção 1 – Backup do aplicativo Objetivo da seção z
Identificar os métodos de backup para aplicativos InTouch
Esta seção explicará como salvar um aplicativo e otimizá-lo para distribuição/implantação.
Introdução Antes de continuar com qualquer mudança de conteúdo do diretório de aplicativo, é altamente recomendado que o arquivo de aplicativo tenha back up no disco rígido sempre que possível. Ao fazer o back up de um aplicativo InTouch, WindowViewer deve SEMPRE encerrar. É recomendado também que o WindowMaker seja encerrado. Fazer o back up dos arquivos cria um registro de seu desenvolvimento e garante a recuperação do trabalho no caso de algum evento inesperado. Uma operação de backup deve ocorrer antes de mudanças significativas no aplicativo ou antes de um aplicativo ser distribuído/implementado em outro nó.
Conteúdo do arquivo InTouch Quando uma janela de aplicativo é criado, diversos arquivos são criados para manter as informações necessárias para o WindowMaker e WindowViewer exibir a janela como definido. Isto significa que cada janela terá mais do que um arquivo usado para definí-la. Quando uma janela é criada no WindowMaker, um arquivo denominado WIN****.WIN é criado para manter dados de janela pertinentes. Quando mudanças são feitas na janela no WindowMaker, a nova versão é salva como um arquivo .win e a antiga extensão do arquivo é mudada para .WBK. Quando alternar para Runtime, WindowViewer compila sua própria versão do arquivo .WIN para seu uso. Este arquivo tem a extensão .WVW. Finalmente, se sua janela contém um ou mais arquivos de tendência em tempo real, um arquivo com uma extensão .TRN é gerado juntamente com o arquivo .win. Antigamente, se um usuário tivesse que mover um aplicativo para outro computador, todo o diretório do aplicativo era movido no geral. Entretanto, o tamanho da mídia de transporte pode ser limitada e o aplicativo pode não caber. No ambiente atual, espaço de disco não é caro e geralmente não é uma consideração. Fazer o back up do diretório do aplicativo pode ser tão fácil quanto copiar/colar todo o conteúdo de um aplicativo em outro diretório.
InTouch Backup – Application Publisher O Application Publisher do InTouch cria um arquivo de auto-extração que contém todos os arquivos relevantes e ajusta procedimentos que são necessários para instalar o aplicativo em outro nó InTouch. O Application Publisher comprime o Aplicativo para reduzir o tempo de download na Internet. É possível copiar estes aplicativos comprimidos para disquetes, discos zip e assim por diante, para instalação em outros nós.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
11-4
Módulo 11 – Backup do aplicativo
Obs.: O tamanho do arquivo concluído do Application Publisher é significativamente menor do que o arquivo fonte. Por exemplo, o desenvolvimento pleno e o Runtime do aplicativo pode caber em um disquete padrão. Se o arquivo acabado for somente Runtime, um aplicativo grande pode caber e um único disquete. Uma vez publicado um aplicativo, é possível usar diversos métodos para carregar o arquivo do aplicativo publicado em outro nó InTouch. z
Copiar para um disquete
z
Copiar o arquivo para a intranet de sua empresa
z
Copiar o arquivo através da Internet
z
Executar o arquivo de auto-extração como um programa no nó de destino
Publicação de um aplicativo InTouch a. Feche qualquer instância aberta do WindowViewer e feche todas as janelas WindowMaker. b. No WindowMaker, expanda o diretório Applications dentro do Application Explorer.
c. Selecione Application Publisher.
Treinamento Wonderware
Seção 1 – Backup do aplicativo
11-5
A caixa de diálogo InTouch Application Publisher -- Step 1 of 4 é exibida:
d. Clique em Next. A caixa de diálogo InTouch Application Publisher -- Step 2 of 4 é exibida:
e. Enter Author Name: Insira o nome da pessoa (até 256 caracteres) para entrar em contato com referente ao aplicativo. f.
Enter a short description…: Insira uma descrição para o aplicativo (até 256 caracteres). Enter package name…: Insira um nome para o pacote (até 32 caracteres).
7. Clique em Next.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
11-6
Módulo 11 – Backup do aplicativo
Obs.: A informação inserida na etapa anterior, enquanto solicitada, somente é usada quando publicada para um Cliente IIS como FS WebServer ou SuiteVoyager® 1.0. A informação é armazenada em um arquivo denominado packagename.inf e não é um componente necessário ao copiar o executável de auto-extração. A publicação em qualquer diretório virtual (IIS) é compatível com o Application Publisher. A caixa de diálogo InTouch Application Publisher -- Step 3 of 4 é exibida:
h. Enter the InTouch application source…: Insira o caminho correto para a fonte de aplicativo InTouch. O padrão é o diretório de aplicativo WindowMaker. i.
Runtime only: Evita a inclusão de arquivos de desenvolvimento WindowMaker no arquivo publicado. Esta opção não é recomendada se deseja-se editar este aplicativo no WindowMaker.
10. Clique em Next.
Treinamento Wonderware
Seção 1 – Backup do aplicativo
11-7
A caixa de diálogo InTouch Application Publisher -- Step 4 of 4 é exibida:
k. Verifique se o nome executável na primeira caixa está correto (por padrão, ele será o mesmo do Package Name que você especificou). l.
No segundo arquivo, insira o caminho para o diretório onde deseja salvar o arquivo publicado ou clique em Browse para localizar um diretório diferente. Obs.: O ajuste padrão para Documents and Settings/AdministratorName/Local directory é aceito.
m. NÃO publique em um local de disquete (A:\). Copie os arquivos publicados para o disquete após a operação de publicação ser correta. n. Clique em Finish.
Outros cenários de backup Nos casos onde o espaço de disco é um problema, alguns arquivos redundantes ou backup podem ser excluídos para reduzir o aplicativo para um tamanho mais gerenciável. WindowViewer deve ser encerrado antes de fazer o back up.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
11-8
Módulo 11 – Backup do aplicativo Arquivos de dados InTouch Quando um diretório de aplicativo é criado no InTouch, um conjunto de arquivos de dados é criado para ser usado pelo WindowMaker e WindowViewer. Cada aplicativo criado deve estar em um diretório separado. A menos que especificamente instruído pelo pessoal da Wonderware, não edite estes arquivos de forma alguma. Arquivo
Descrição
ALARM.CFG
Este arquivo binário contém informação de armazenagem de alarme e impressão.
ALMGRP.INI
Arquivo de texto contendo as Listas de Grupo de Alarme especificados na configuração Name Manager/Distributed Alarms.
APP.VER
Este arquivo binário contém a versão do aplicativo.
APPEDIT.LOK
Arquivo somente leitura criado pelo WindowMaker para evitar que diversos nós sejam editados no aplicativo.
APPCHNGD.FMS
Arquivo atualizado do WindowMaker ao realizar um Special/Notify Clients é realizado.
APPLIST.INI
Arquivo de texto contendo informações sobre as cores personalizadas e transparentes usadas pela Paleta do WindowMaker.
APPSTG.STG
Arquivo binário contendo informações sobre as cores personalizadas e transparentes usadas pela Paleta do WindowMaker.
APPLOGIC.LGC
Este arquivo binário contendo o script Application (On Start, While Showing, On Shutdown).
COLORCH.INI
Arquivo de texto contendo as 32 cores usadas pelas caixas de seleção de cor no WindowMaker.
DB.INI
Este arquivo contém os padrões para cada caixa de diálogo no Dicionário Tagname.
DDE*.AVL, DDE*.BIN, DDE.CFG
Estes arquivos contêm informações de nomes e nós de Acesso DDE.
DHISTCFG.INI
Este arquivo é usado pelo sistema de histórico distribuído.
DS######.CFG
Este arquivo contém informação de configuração de conjunto de dados SPC.
DS######.DAT
Este arquivo binário contém dados coletados usando SPC.
DS.INF
Este arquivo binário contém informação de conjunto de dados.
GROUP.DEF
Este arquivo contém informações para grupos de alarme tagname.
HISTLOG.CFG
Este arquivo contém informação de configuração usada pelo Historical logger.
HISTPRV.INI
Arquivo de texto contendo informação do provedor de histórico distribuído especificado pela configuração Name Manager/ Distributed History .
INTOUCH.INI
Este arquivo contém a informação de configuração usada pelo InTouch para o aplicativo.
INTRACK.INI
Arquivo de texto contendo informação sobre a configuração InTrack.
INTRACK.ITL
Arquivo binário contendo informação da taglist InTrack.
ITOCX.CFG
Arquivo binário contendo informação de referência cruzada sobre controles ActiveX usados no aplicativo.
LINKDEFS.INI
Este arquivo contém os padrões para cada caixa de diálogo de link no WindowMaker.
OCX.INI
Arquivo de texto contendo o Globally Unique Identifier (GUID) e uma descrição de cada controle ActiveX registrado no InTouch dos Assistentes de Instalação/Active X.
Treinamento Wonderware
Seção 1 – Backup do aplicativo
11-9
Arquivo
Descrição
PASSWORD.BIN
Este arquivo binário contém os Nomes de Usuários, Senhas e Níveis de acesso usados na seção de segurança do aplicativo.
RETENTIV.X, RETENTIV.A, RETENTIV.D, RETENTIV.H, RETENTIV.S, RETENTIV.T
Estes arquivos binários contêm valores retentivos para este aplicativo.
SECCONFIG.XML
Este arquivo contém a definição de modelo de segurança para este aplicativo.
SERIAL.TRN
Este arquivo contém os números de série para todas as tendências em tempo real no aplicativo.
SPC.CFG
Arquivo binário contendo informação sobre a configuração SPC.
SPC.INI
Arquivo de texto contendo informação sobre a configuração do nome da fonte de Conjunto de dados SPC Dataset e de dados SPCPro.
SPCPASSWORD
Arquivo binário contendo a configuração de usuário/senha para coleta de dados baseada em eventos e automática para o banco de dados SPCPro.
SUPERTAG.DAT
Arquivo binário contendo as definições de modelo usadas pelo WindowMaker ao criar SuperTags a partir do Dicionário Tagname.
SQL.DEF
Arquivo de texto contendo a bindlist e os modelos definidos a partir do SQL Access Manager.
TAGBRW.DAT
Arquivo binário contendo a última configuração usada pelo Tag Browser.
TAGNAME.AVL, TAGNAME.NDX, TAGNAME.X
Estes arquivos contêm informações específicas sobre itens no Dicionário Tagname.
TBOX.INI
Este arquivo contém os ajustes iniciais para a caixa de ferramentas. Ele é atualizado toda vez que o WindowMaker é fechado e reiniciará com os mesmos ajustes para o aplicativo.
*.TRN
Este arquivo representa informações de tendência para uma janela. Se uma janela não tiver informações de tendência, não haverá arquivo .TRN correspondente.
VERS_RES.INF
Este arquivo contém o número de versão InTouch e a resolução de tela do aplicativo.
VIEW.INI
Este arquivo contém as seleções de janela padrão usados pelo WindowViewer.
*.WIN
Este arquivo WindowMaker contém uma descrição detalhada de cada janela. Nomes de arquivo estão no formato a seguir: win#####.win.
WIZ.INI
Arquivo de texto contendo informação sobre os Assistentes registrados no InTouch a partir do Install Wizards/ActiveX.
WM.INI
Este arquivo contém as seleções de janela padrão usados pelo WindowMaker na inicialização.
*.WVW
Quando uma janela é carregada pela primeira vez pelo WindowViewer ela é “compilada” e salvo no arquivo .WVW. Isto melhora consideravelmente o tempo de carregação de janela no WindowViewer.
WWREPORT.INI
Arquivo de texto contendo o tagname da tag a ser incrementada ao usar a função de comunicação InTrack.
WW_WDWS.NDX
Este arquivo contém uma referência cruzada dos nomes de janela do aplicativo.
*.AEH
Este é um arquivo de texto criado pelo programa WWLOGGER.EXE e contém o registro de erro para todos os produtos Wonderware.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
11-10
Módulo 11 – Backup do aplicativo Arquivo
Descrição
*.ALG
Este é o arquivo ALARM. Ele é um arquivo de texto criado pelo programa de alarme InTouch e contém uma lista de todos os alarmes armazenados.
*.LGH
Este arquivo binário contém dados armazenados do InTouch.
*.IDX
Este é o arquivo índice para o arquivo *.LGH.
*.CSC
Este arquivo binário contém um script de condição.
*.KSC
Este arquivo binário contém um script Key.
*.CSV
Arquivo de texto no formato Variável Separada por Vírgula.
*.TXT
Arquivo de texto.
*.BMP, *.JPG. *.PCX, *.TGA
Arquivos gráficos/imagens contendo um objeto bitmap do bitmap tem um link String Value Display.
*.PAL
Arquivo de Paleta do Windows criado para exportar uma paleta de cor do WindowMaker ou por um utilitário de terceiros.
*.WAV
Arquivo de som Microsoft.
*.NEH
Arquivo de texto criado pelo Wonderware NT Conversion Logger quando um aplicativo InTouch de 16 bits é convertido para 32 bits. Contém um registro do processo de conversão, incluindo qualquer erro encontrado.
*.DCH
Este arquivo binário contém um script Data Change.
*.NMD
Um arquivo binário contendo um script QuickFunction.
*.OES
Um arquivo binário contendo um script ActiveX event.
*.?BK
Todos os arquivos com .?BK são arquivos backup. O InTouch cria arquivos backup de todos os arquivos editados. Todos os arquivos backup podem ser excluídos quando o aplicativo é concluído. Isto liberará espaço de disco e tornará o diretório do aplicativo menor para fazer backups ou transportar um aplicativo.
Determinados arquivos InTouch podem ser excluídos para conservar espaço de disco. Geralmente, qualquer arquivo cuja extensão termine em BK (ex..cbk) pode ser excluído pela especificação de uma exclusão de *.?BK em um dos utilitários de manipulação de arquivo (ex. Winfile ou Explorer). Porque o WindowViewer sempre compila um arquivo .wvw novo para cada nova versão dos arquivos .win, todos os arquivos .wvw podem ser excluídos e novos arquivos .wvw serão compilados a partir dos arquivos .win existentes quando o WindowViewer é lançado. Dependendo de como o aplicativo foi configurado, arquivos de armazenagem de histórico e arquivos de armazenagem de alarme podem ser armazenados no diretório de aplicativo. Se os arquivos de armazenagem são desnecessários, todos os arquivos que terminam com .LGH e .IDX (arquivos de armazenagem de histórico) podem ser removidos. A maioria dos arquivos restantes são essenciais para um aplicativo e não devem ser mexidos. Se é necessário reduzir ainda mais o tamanho, um utilitário de compressão pode ser usado (ex. PKZip ou WinZip) ou um utilitário de backup pode ser usado para condensar e armazenar o aplicativo. Ao usar um dos programas de compressão, recomenda-se converter o arquivo zipado em um arquivo zip de auto-extração pela execução do zip2exe ou um equivalente. Isto garantirá que o destinatário do aplicativo tenha a versão correta para descomprimir o arquivo.
Treinamento Wonderware
Apêndice A
Licença FactorySuite 2000
A-2
Apêndice A – Licença FactorySuite 2000
Características gerais Este Apêndice explica: z
Mudanças na Licença FactorySuite 2000
z
Definição/Descrição/Função da Licença
z
Etapas de instalação
z
Requisitos de componente
z
Pacote
z
Questões de chave de hardware
z
Licenças Demo
z
Atualização de FactorySuite 2000
z
Uso de versões anteriores
z
Problemas de instalação
z
Compatibilidade Ano 2000
z
Outras questões de compatibilidade
Para mais informações sobre dúvidas de licenciamento, consulte o Guia de Administradores de Sistema FactorySuite , a Wonderware TechNote #113, Características gerais do sistema de licença FactorySuite contido no Wonderware KBCD, ou no site Wonderware www.wonderware.com/support. As questões podem ser enviadas também por meio de fax ou diretamente para a equipe de Suporte Técnico da Wonderware através do site Tech Support Web.
Introdução Wonderware® FactorySuite® 2000 é formado de componentes de software integrados que são entregues em CD-Roms de diversos produtos em uma única caixa de CD-ROM. O Acordo de Licença Wonderware dá o direito de usar e exibir o software em um único computador em um único endereço. Além disso, a Wonderware fornece diversos tipos de mecanismos de validação para licença e habilitação de programas de software específicos. Isto é realizado por meio de um novo sistema de gestão de licença que substitui o Utilitário FactorySuite 1000 License.
Licença FactorySuite2000 O FactorySuite 2000 tem um arquivo de licença, WWSuite.lic, que está localizado na pasta Licenses no disco de arquivo de licença. Toda a informação para os componentes FactorySuite licenciados está contida neste arquivo. O arquivo de licença FactorySuite 2000 WWSuite.lic está localizado no sub-diretório \Common no diretório de instalação FactorySuite (geralmente \Program Files\FactorySuite\Common\ Licenses). O Utilitário FactorySuite 2000 License que vem com o FactorySuite 2000 pode ler arquivos de licença instalados e instalar novos arquivos de licença. Cada arquivo de licença contém o nome do cliente, nome da empresa e localização e as opções licenciadas do cliente. Esta informação pode ser visualizada usando o programa License Viewer. O arquivo de licença é formado de dois níveis de informação: Componente e Função. A informação Componente estabelece quais componentes FactorySuite 2000 estão licenciados; a informação Função habilita de fato os componentes que são parte da informação Componente.
Treinamento Wonderware
Apêndice A – Licença FactorySuite 2000
A-3
Tipos de arquivo licença Software Um Kit Habilitador de Licença inclui um disquete com o Arquivo de Licença. A etiqueta do disquete lista informações sobre o cliente e as opções licenciadas. O Kit Habilitador de Licença contém um arquivo de licença para os produtos comprados apenas. Você pode entrar em contato com seu distribuidor Wonderware local a qualquer hora para obter uma licença de demonstração para qualquer componente FactorySuite 2000 desejado. (Para uma revisão de quais componentes são licenciados, consulte as seções denominadas Requisitos de Componente e Licenças Demo acima). Para ativar o arquivo de licença, simplesmente instale o software de componente FactorySuite licenciado depois instale o arquivo de licença do disquete de Licença.
Chave de Software/Hardware Esta opção é a mesma da opção Arquivo de Licença de Software, exceto pelo arquivo de licença estar bloqueado para uma chave de hardware específica. Se tiver este tipo de opção de licença, seu Kit Habilitador de Licença incluirá disco de arquivo de licença e uma chave de hardware (algumas vezes denominada dongle). Observe que o código de peça listado na etiqueta do disco de arquivo de licença deve incluir um “D” (para Dongle) (exemplo, 01-627D) ou um “E”, que é uma atualização de uma chave de hardware existente. Sua chave de hardware tem um número de série exclusivo que corresponde ao algoritmo de autenticação do arquivo de licença. O arquivo de licença e a chave de hardware devem ser instalados no mesmo computador a fim de habilitar o componente FactorySuite licenciado. A identificação do host do arquivo de licença determina qual chave de hardware deve ser instalada no computador. Por exemplo, a linha a seguir no arquivo de licença especifica a identificação do host: HOSTID=Wonderware_HWKeyID=xxxxxxxx one xxxxxxxx é a representação hexadecimal do número de série da chave de hardware yyyyyyyy. Para ativar o arquivo de licença, instale o software de componente FactorySuite licenciado e o arquivo de licença. Depois Conecte a chave de hardware na porta paralela do computador antes de começar o componente FactorySuite.
Acordo de licença em papel O Acordo de Licença em papel será incluído com seu Kit Habilitador de Licença se comprou ScoutVT™, IndustrialSQL™ Client Access License (CAL), Crystal Reports ou o FactorySuite Toolkit. Para executar qualquer um destes produtos licenciados, simplesmente instale o produto do CD-Rom apropriado e leia as instruções no acordo de licença em papel.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
A-4
Apêndice A – Licença FactorySuite 2000
Requisitos de componente Os componentes FactorySuite que requer arquivos de licença são: z
InTouch
z
Servidores E/S (Edição 4.5 e mais recente para 16 bits; Edição 5.5 e mais recente para 32 bits)
z
InControl
z
InTrack
z
InBatch
z
IndustrialSQL Server
z
Factory Focus
z
FactorySuite Web Server
Espera-se que o cliente siga um arquivo licenciado escrito que é enviado com o FactorySuite. O complemento InTouch individual a seguir não requer arquivos de licença: z
Acesso SQL
z
Programa SPC
z
Gerenciador de Receita
z
NetDDE
z
Extensões Windows NT
Obs.: Como na versão 7.0, SPC Pro sem licença realiza apenas os recursos antigos do SPC, ex. v.5.6b e 6.0b. Para obter o uso de novas funções SPC Pro, uma licença para SPC Pro é requerida.
Informação no disco O arquivo de licença contem o nome do cliente, localização e opções de licença. Esta informação pode ser revisada usando o programa License Viewer.
Instalação Execute o programa Setup do disco de arquivo de licença e selecione os componentes de arquivo de licença para instalar no microcomputador. Se um componente FactorySuite ainda não foi instalado no microcomputador, um diretório padrão será criado para o arquivo de licença selecionado. Para mudar o diretório de destino do arquivo de licença, selecione o arquivo de licença e navegue no microcomputador. Mediante a validação das informações de licença, o gerenciador de licença ativa o componente e as opções FactorySuite 2000 apropriados.
Problemas de instalação No caso de problemas ao instalar ou usar o arquivo de licença, ligue para seu distribuidor Wonderware local.
Compatibilidade Ano 2000 O Utilitário de Gestão de Licença Wonderware é totalmente compatível com Year 2000.
Treinamento Wonderware
Apêndice A – Licença FactorySuite 2000
A-5
Outra compatibilidade Para verificar se você está compatível com a sua licença FactorySuite, execute o programa License Utility e visualize as informações de licença que são exibidas Observe que é possível visualizar o arquivo de licença que está no computador local ou em qualquer computador remoto em toda a rede. O License Utility pode navegar em computadores remotos específicos ou realizar busca em toda a rede procurando um arquivo de licença. Entretanto, realizar busca em toda a rede pode levar algum tempo e recomendamos que, quando possível, use a função navegar e busque um ou mais computadores remotos específicos para o arquivo de licença. Para mais detalhes, consulte o Guia de Administradores de Sistema FactorySuite. Fazer cópias backup do arquivo de licença é permitido desde que o objetivo seja criar uma cópia backup para emergências. Seu acordo de licença Wonderware estabelece que você pode fazer ou manter uma cópia do software somente para fins de backup ou de arquivo. Fazer e manter cópias de materiais escritos fornecidos pela Wonderware é permitindo somente para seu próprio uso. Obs.: Para uma apresentação detalhada das etapas de instalação e das questões de compatibilidade, consulte Wonderware Tech Note #113, Características Gerais do Sistema de Licença FactorySuite 2000. Para mais informações sobre nosso programa de Suporte Abrangente, é possível entrar em contato com seu distribuidor Wonderware local, seu Provedor de Suporte Certificado local ou o Suporte Técnico Wonderware.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
A-6
Apêndice A – Licença FactorySuite 2000
– Deixado em branco intencionalmente –
Treinamento Wonderware
Apêndice B
Suporte para Produtos Wonderware
B-2
Apêndice B – Suporte para Produtos Wonderware
Características gerais Este apêndice explica como acessar o suporte ao produto e informações de suporte no Website de Suporte Técnico da Wonderware o ArchestrA® Guia de Implantação. Obs.: As páginas da rede exibidas nas paginas a seguir estão sujeitas a mudanças sem comunicação prévia. O Website de Suporte Técnico Wonderware é: http://www.wonderware.com/support/mmi/.
Quando entrar no site de Suporte Técnico pela primeira vez, você terá acesso limitado. Para ter acesso a áreas e serviços diferentes, é necessário primeiro se registrar selecionando o link Register na página principal e preenchendo a informação solicitada. Após enviar a informação, um e-mail será enviado a você com a identificação do usuário e a senha atribuídos da Wonderware. Após se registrar, clique em Login e insira sua identificação de usuário e senha para acessar as áreas de suporte.
Treinamento Wonderware
Apêndice B – Suporte para Produtos Wonderware
B-3
Na página Support, encontrará uma variedade de informações incluindo a Base de Conhecimento Especializado, Documentação, FAQs, Tech Alerts, Tech Articles, Tech Notes e Tech Support Forums.
Acesso a áreas e serviços diferentes no site depende de seu nível de suporte com base nos seguintes tipos de programas de suporte: z
Suporte Básico
z
Suporte Abrangente
z
Suporte à Empresa
Para informações sobre cada um destes programas de suporte, assim como informações sobre como entrar em contato com o Suporte Técnico, políticas e procedimentos de suporte e muito
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
B-4
Apêndice B – Suporte para Produtos Wonderware mais, consulte o guia Políticas, Termos e Condições de Suporte Técnico. Este guia está disponível para download no arquivo de Ajuda formato HTML no Website de Suporte Técnico. Para fazer o download do arquivo, clique no link Políticas, Termos e Condições de Suporte Técnico na seção Quick Links exibida abaixo:
Guia de Implantação ArchestrA® O Guia de Implantação FactorySuite A2™ fornece recomendações e informações sobre "melhores práticas" para ajudar a definir, projetar e implementar projetos de integração dentro do ambiente Wonderware® FactorySuite A2 System. As recomendações incluídas neste guia são baseadas na experiência adquirida de projetos diversos usando a infra-estrutura ArchestrA™ para FactorySuite A2. As recomendações contidas no Guia de Implantação não deve evitar a descoberta de outros métodos e procedimentos que trabalhem efetivamente.
Considerações O Guia de Implantação é destinado a: z
Engenheiros e outro pessoal técnico que desenvolverão e implementarão as soluções FactorySuite A2 System.
z
Pessoal de vendas ou Engenheiros de venda que precisam definir topologias de sistema a fim de enviar propostas de projeto FactorySuite A2 System.
Presume-se que você esteja familiarizado com o ambiente de trabalho do sistema operacional Microsoft Windows 2000 Server, Windows Server 2003 e Windows XP Professional, assim como com uma linguagem de script, de programação ou macro. Além disso, uma compreensão dos conceitos como variáveis, declarações, funções e métodos ajudará a alcançar melhores resultados. Presume-se que você esteja familiarizado com os componentes individuais que formam o ambiente FactorySuite A2. Para informações adicionais sobre componentes, consulte a documentação do usuário associada.
Treinamento Wonderware
Apêndice B – Suporte para Produtos Wonderware
B-5
Acesso O Guia de Implantação está localizado no Team.Wonderware. 1. Em Team.Wonderware, selecione Product Info / Find Products By Name / Industrial Application Server.
2. Selecione Deployment Guide.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
B-6
Apêndice B – Suporte para Produtos Wonderware 3. Selecione FactorySuite A2 Deployment Guide - Industrial Application Server 2.1 included.
4. Selecione o arquivo.
Treinamento Wonderware
Apêndice C
Glossário de Termos do InTouch
C-2
Apêndice C – Glossário de Termos do InTouch Nome de Acesso: Informações que são usadas para a comunicação com outras fontes de dados de E/S incluindo o nome de nó, nome do aplicativo e o nome de tópico. Contêiner/Controle ActiveX Controles ActiveX, originalmente conhecidos como controles OLE ou OCXs, são componentes de software independentes que realizam funções específicas em um modo padrão. Controles ActiveX devem ser posicionados em um contêiner ActiveX. InTouch é um contêiner ActiveX. Alarme Um sinal de advertência exibido ou ativado quando um desvio crítico de condições normais ocorre. Alarm Logger O Alarm Logger fornece ao usuário um registro centralizado de informações de alarme em nós diversos em um utilitário separado e independente. O Alarm Logger fornece também acesso aos alarmes distribuídos. Prioridades alarme Cada alarme configurado no InTouch tem um valor de prioridade associado a ele. Este valor representa a severidade de um alarme e pode variar de 1 a 999 sendo que 1 é o mais severo. Analógico Refere-se à representação de quantidades numéricas pela medição de variáveis físicas contínuas. Animação Dar ‘vida’ a um objeto usando movimento ou cor. Links de animação Animar um objeto vinculando-o a caixas de diálogo específicas ou scripts que executam comandos específicos. Aplicativo Um programa ou grupo de programa usado para um tipo de trabalho em particular, como o InTouch. Application Explorer A visualização gráfica hierárquica do WindowMaker do aplicativo atual. Application Manager Programa InTouch que organiza os aplicativos criados e estabelece qual aplicativo é o aplicativo padrão. Application Publisher Programa InTouch que cria um arquivo de auto-extração que contém todos os arquivos relevantes e ajusta procedimentos que são necessários para instalar o aplicativo em outro nó InTouch. Scripts de aplicativo Scripts vinculados a todo um aplicativo Argumento Uma variável para a qual um valor lógico ou numérico pode ser atribuído. Até 16 argumentos podem ser especificados para um InTouch QuickFunction. Binário Pertencente ao sistema numérico com uma base de 2, ou a uma característica ou propriedade envolvendo uma escolha ou uma condição na qual há exatamente duas possibilidades.
Treinamento Wonderware
Apêndice C – Glossário de Termos do InTouch
C-3
Código binário Um sistema codificado no qual a codificação de qualquer dado é feita através do uso de bits: 0 ou 1. Bit Um dígito binário; um dígito (1 ou 0). A menor unidade de informação reconhecida por um computador e seu equipamento associado. Bitmap Uma imagem de memória gráfica. Os bitmaps podem ser manipulados no InTouch usando o Microsoft Paint. Botão Os botões grandes retangulares com cantos arredondados ou pequenos botões redondos exibidos em caixas de diálogo. Clique com a seta cursor para selecionar a opção ou comando do botão. Célula Uma célula é uma coleção de dois ou mais objetos, símbolos ou outras células que são unidas para formar uma única unidade. As células mantêm um relacionamento espacial fixo entre os seus elementos gráficos individuais. Cada componente de uma célula pode ter seus próprios links. Células são usadas para criar dispositivos virtuais como um controlador slide. Caixa de seleção Uma pequena caixa quadrada exibida em uma caixa de diálogo que pode ser habilitada ou desabilitada. Caixas de seleção são geralmente associadas a opções diversas que podem ser ajustadas. Área de transferência Uma área de armazenamento para manter dados (texto, bitmap, objeto gráfico, etc.) que estão sendo copiados ou movidos para outro aplicativo ou janela. Comando Uma palavra ou frase, geralmente encontrada em um menu que executa uma ação. Botão de Comando Um retângulo com cantos arredondados com um rótulo que descreve uma ação, como OK, Cancel ou Close. Quando escolhido, o botão de comando executa uma ação. Tecla de Comando Qualquer tecla de teclado usada para realizar funções separadas. Linha de Comando O string de argumentos que segue qualquer comando MS-DOS, incluindo o comando para iniciar um programa aplicativo. Os argumentos na linha de comando são passados para a função MSDOS ou o programa no momento da inicialização. Script de Condição Scripts vinculados a um tagname discreto ou expressão que corresponda a Verdadeiro ou Falso. CSV - Variável Separada por Vírgula CSV é o formato usado pela área de transferência para transferir colunas de texto e dados numéricos entre aplicativos. Um item de dados CSV é um texto que faz com que cada variável seja separada por vírgula. O Microsoft Excel é compatível com este formato. Utilitário de Referência Cruzada Um utilitário para determinar o uso de tagnames em várias funções.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
C-4
Apêndice C – Glossário de Termos do InTouch Banco de Dados Uma coleta de registros ou arquivos relacionados logicamente. Um banco de dados consolida muitos registros em uma fila comum de registros de dados que atua como um único arquivo central. Script de Troca de Dados Scripts vinculados a um tagname e/ou tagname.field apenas Este script é executado uma vez quando o valor de um tagname ou de um campo muda com um valor maior do que o valor deadband definido no Dicionário Tagname. DBDump/DBLoad Dois utilitários que permitem que um banco de dados seja copiado ou modificado e mesclado em outro aplicativo. Padrão Uma opção, comando ou dispositivo automaticamente selecionado ou escolhido pelo sistema. Por exemplo, um dos botões de comando em uma caixa de diálogo já está selecionado quando a caixa de diálogo é aberta. Isto indica que é o valor padrão e será escolhido automaticamente se a tecla for pressionada. Os valores padrões são sobrescritos ao selecionar outra opção, comando ou dispositivo apropriado. Driver de Dispositivo Um programa que controla como o computador interage com dispositivos como impressora, monitor ou mouse. Um driver de dispositivo habilita o uso de dispositivos com o computador. Caixa de Diálogo Uma janela exibida quando o Windows precisa de mais informações antes de executar um comando. Por exemplo, se o comando Save em um menu File é selecionado, uma caixa de diálogo será exibida solicitando um nome para o arquivo a ser salvo. Valor discreto Uma variável que tem apenas dois estados: '1' (Verdadeiro, Habilitado) ou '0' (Falso, Desabilitado). Aplicativos Distribuídos Aplicativos distribuídos são muito mais complexos, geralmente com diversas camadas de redes. DDE - Troca de Dados Dinâmica DDE é a passagem de dados entre aplicativos, realizada sem o envolvimento ou monitoração do usuário. No ambiente Windows, DDE é obtido através de um conjunto de tipos de mensagens, procedimentos recomendados (protocolos) para processamento destes tipos de mensagem e algum tipo de dados recentemente definido. Ao seguir os protocolos, os aplicativos que foram escritos de forma independente um do outro podem passar dados entre eles sem o envolvimento do usuário. Por exemplo, InTouch e Excel. Eventos Eventos são associados com controles ActiveX e ocorrem através do contêiner ActiveX. É possível executar eventos de controle ActiveX em Runtime (WindowViewer) designando uma ação em particular e associando-a ao evento pela criação de scripts ActiveX Event. Expressão Um termos geral para numerais, numerais com sinais de operação, variáveis e combinações deles: 6, 3+6, n+10 são todos expressões. Extensão O ponto e três letras ao final de um nome de arquivo. Uma extensão identifica que tipo de informação um arquivo contém. Por exemplo, uma extensão pode ser .EXE, .BAT indicando que um arquivo contém um aplicativo.
Treinamento Wonderware
Apêndice C – Glossário de Termos do InTouch
C-5
FactorySuite Pacote de software Wonderware formado por um sistema integrado IHM baseado em componente capaz de colocar uma fábrica em operação. Interface de Usuário Gráfica (GUI) A representação gráfica de um programa de software visto no monitor do computador e usado para inserir, monitorar e manipular dados. A GUI usa funções padrões Microsoft ex. barras de ferramenta flutuante e ancoradas, funções acionadas pelo clique com o botão direito do mouse e menus, etc. Tendência de histórico Representações gráficas de dados sobre um determinado período de tempo. Elas não são dinâmicas e somente são atualizadas quando são instruídas a fazê-lo, mesmo através da execução de um script ou uma ação pelo operador (ex.clicar um botão). Interface Homem Máquina (IHM) Antiga MMI (Man Machine Interface). Ferramenta que permite a uma pessoa controlar equipamento remotamente. Inteiro Qualquer membro de um conjunto formado de números inteiros positivos e negativos e zero. Exemplos: -59, -3, 0. Scripts de tecla Scripts vinculados a uma tecla ou combinação de teclas específica de teclas no teclado Caixa de listagem Uma caixa dentro de uma caixa de diálogo listando todas as escolhas disponíveis para um comando. Por exemplo, uma lista de nomes de arquivos em um disco. Geralmente, um item é selecionado da caixa de listagem e OK é escolhido. Se houver mais opções que podem se encaixar na caixa de listagem, ela terá barras de rolagem vertical. A seleção da seta para baixo próxima ao primeiro item na lista exibirá o resto da caixa de listagem. Macro Uma única declaração de linguagem de programação simbólica que quando traduzida resulta em uma série de declarações de linguagem de máquina. Arquitetura Mestre-Escravo Desenvolvida para superar algumas das dificuldades das arquiteturas baseadas em cliente e servidor. Ao mesmo tempo que permite que os nós View sejam ajustados em uma arquitetura do tipo servidor ou cliente, não requer que tenham as mesmas fontes de dados. Menu Menus são listagens de grupos de Janelas disponíveis e comandos de aplicativo. Títulos de menu são exibidos na barra de menu na parte superior da janela. Um comando é escolhido exibindo o menu, seguido pela seleção do comando desejado. Barra de Menu A barra horizontal que lista os nomes dos menus de um aplicativo. A barra de menu é exibida abaixo da barra de título de uma janela. Cada aplicativo Window tem uma barra de menu diferente para cada aplicativo, embora alguns menus (e comandos) sejam comuns a muitos destes aplicativos. Caixa de Mensagem Uma caixa de diálogo especial através da qual um aplicativo exibe mensagens de erro e outras informações importantes. Caixas de mensagem alertam o usuário quando um erro ocorre ou quando o aplicativo precisa de informações para completar uma ação ou comando.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
C-6
Apêndice C – Glossário de Termos do InTouch Método Métodos são associados a controles ActiveX. Eles são semelhantes aos chamados de função script que podem ser acessados do contêiner ActiveX . Por exemplo, Browser.Navigate ("URLPageName"), Engine.start(). Modo Um método ou condição de operação. Multi-tarefas A habilidade de um computador realizar duas ou mais funções (tarefa) simultaneamente. NAD Desenvolvimento de Aplicativo de Rede ou NAD é uma arquitetura que combina o melhor das arquiteturas baseadas em cliente e baseadas em servidor. NAD fornece notificação automática de mudanças de aplicativo e distribuição automática de aplicativos atualizados para os nós View. NAD pode ainda ser usado para distribuir automaticamente aplicativos mestre/escravo Objeto Um conjunto de dados. Os objetos vêm em diversos formatos: imagens bitmap, texto, gráfico de tendência de histórico e de tempo real, etc. Botão Option Um pequeno botão redondo exibido em uma caixa de diálogo. Um botão de opção é selecionado para definir a opção, mas dentro de um grupo de botões de opção relacionados, somente um pode ser selecionado. Um botão de opção tem um ponto preto quando é selecionado e em branco quando não é selecionado. Caminho A hierarquia de arquivos através da qual o controle passa para encontrar um arquivo em particular. Designa um ou mais drives de disco e/ou caminhos de diretório a serem pesquisados seqüencialmente para um programa ou arquivo de lote se o arquivo não pode ser encontrado no drive e diretório atual ou especificado. Os caminhos de drives e/ou diretório são pesquisados na ordem em que são exibidos no Caminho. Pixel Uma célula de figura. A tela do monitor visual é dividida em linhas e colunas de pontos muito pequenos, quadrados ou células, cada um é um pixel. A menor unidade na grade da tela do monitor que pode ser armazenada ou exibida. Uma figura de computador é geralmente composta de um vetor retangular de pixels. A resolução de uma figura é expressa pelo número de pixels no monitor. Por exemplo, uma figura com 800 x 600 pixels é muito mais definida do que uma figura com 640 x 480 pixels. Controlador Lógico Programável (PLC) Computador usado para controlar equipamento de fábrica e gerar dados para servir as necessidades internas. Usado nos aplicativos de controle de processo. Controle de Processo O uso do computador para controlar processos industriais como uma refinaria de petróleo e produção de aço. Processamento O aplicativo que tem controle do processador no momento. Um aplicativo recebe controle do controlador mediante o recebimento de uma mensagem. Ele retém controle do controlador até que a mensagem seja processada. Propriedades As propriedades são associadas aos controles ActiveX e podem ser associadas com os tagnames InTouch. As propriedades que podem ser configuradas para um controle ActiveX em particular são determinadas pelo projetista do controle ActiveX. Algumas propriedades têm uma
Treinamento Wonderware
Apêndice C – Glossário de Termos do InTouch
C-7
única direção, o que significa que a propriedade ajusta o valor do tagname ou o valor do tagname ajusta a propriedade. Enquanto outras propriedades são bidirecionais, o que significa que o valor pode ser ajustado a partir do tagname ou da propriedade. Protocolo Estabelece as regras ou as convenções que regem a troca de informações entre os sistemas de computador ou os aplicativos. QuickFunction QuickFunctions são scripts que podem ser escritos e chamados a partir de outros scripts ou expressões. É possível usar até 16 argumentos por QuickFunction. Eles são armazenados no aplicativo no qual foram criados. QuickFunctions podem ser definidos como assíncronos que, quando executados, executam em segundo plano do processo principal WindowViewer (Runtime). QuickScript Script criado em InTouch. Capacidades InTouch QuickScript permitem executar comandos e operações lógicas baseadas no cumprimento de critérios específicos. Por exemplo, uma tecla sendo pressionada, uma janela sendo aberta, um valor mudando, etc. Tendência em Tempo Real Representações gráficas de valores de diversos tagnames exibidos com o passar do tempo Registrador Um equipamento de alta velocidade usado em uma unidade central de processamento para armazenagem temporária de pequenas quantidades de dados ou resultados intermitentes durante o processamento. Tagname Remoto Um tagname que reside em uma fonte de tag remota mas é referido em um aplicativo InTouch local. Aplicativos clientes podem ser projetados sem usar nenhum tagname no Dicionário Tagname local usando referencias de tagname remotas. Runtime O período durante o qual os dados são coletados pela unidade de controle e o processamento efetivo é realizado na unidade aritmética-lógica. Além disso, o tempo durante o qual um programa está executando. Editores de Script Caixas de diálogo que permitem que scripts sejam criados, editados ou manipulados. Segurança A segurança em um aplicativo é uma função opcional. Se implementado, ele fornece a habilidade para controlar se operadores específicos estão autorizados ou não a realizar funções específicas dentro de um aplicativo. A segurança para funções específicas é realizada vinculando-as aos tagnames de segurança. Serviço Um tipo especial de programa "privilegiado" e opera em um nível muito mais baixo no sistema. Os serviços executam automaticamente no segundo plano e eles não requerem que o usuário se conecte. Porque o sistema operacional do Windows NT é um sistema operacional seguro, programas normais não são autorizados a acessar o hardware diretamente, como um disco rígido ou outros objetos de sistema, como o Event Lot. Os programas de serviço podem acessar os objetos de hardware e de sistema para outros programas normais. Por exemplo, o Wonderware Logger, WindowViewer podem ser executados como serviços NT. SmartSymbol SmartSymbols integram a tecnologia orientada ao objeto com os gráficos InTouch para transformá-los em modelos reutilizáveis. As mudanças feitas aos SmartSymbols
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
C-8
Apêndice C – Glossário de Termos do InTouch automaticamente se propagam por todo o aplicativo, bem como através de múltiplos nós de microcomputador conectados em rede. SmartSymbols permitem a criação de modelos de gráficos que podem conectar-se a Objetos ArchestrA®, tags InTouch locais e tags InTouch por meio de referências remotas. Estes modelos de símbolo são salvos na Biblioteca SmartSymbol e podem ser iniciados selecionando-os e posicionando-os dentro de janela InTouch. Computador Independente Um sistema de computador exclusivo e autônomo, diferente de um computador que está conectado e dependente de um sistema de computador remoto. Um computador independente operará por si mesmo, não necessitando de equipamento. Aplicativos Independentes Os aplicativos independentes são os que usam apenas uma Interface de Operação (OI) para cada sistema monitorado. Eles são geralmente mais fáceis de configurar, com mínima ou nenhuma conexão de rede e requerem apenas manutenção simples. String Uma seqüência conectada de caracteres ou bits tratados como um único item de dados. SuperTag O InTouch é compatível com uma estrutura de modelo que permite definir tipos de tagnames compostos denominados SuperTags. Os modelos SuperTag podem conter até 64 tagnames membros e 2 níveis de encadeamento. Consulte TemplateMaker. Símbolo Um símbolo é uma combinação de objetos simples (linhas, formas preenchidas e texto), que é tratado como um único objeto. Qualquer mudança de atributo aplicada a um símbolo, seja uma mudança em um atributo estático em WindowMaker ou uma mudança em um atributo dinâmico no WindowViewer, afetará todos os objetos de componente de um símbolo. Sintaxe As regras que regem a estrutura de uma linguagem e suas expressões. Tarefa Uma tarefa é um aplicativo em execução. Tarefa é um sinônimo para "processo". Tag Browser Principal ferramenta para visualização e seleção local e remota de tagnames e de tagname dot.fields (.field) dos aplicativos FactorySuite ou qualquer outra fonte de tag que seja compatível com a interface do InTouch Tagname Dictionary. Ele permite selecionar os tagnames existentes, incluir novos tagnames e visualizar as informações básicas do Dicionário Tagname. Permite também acessar as caixas de diálogo que realizam uma edição, replicação de tagname e selecionar tagnames (referências remotas) em fontes de tag remotas. Tagname O nome atribuído a uma variável definida no Dicionário Tagname (banco de dados InTouch ). TemplateMaker Utilitário InTouch que permite criar modelos SuperTag. Consulte SuperTag. Text Box Uma caixa onde a informação necessária para executar um comando é digitada. Uma caixa de texto geralmente é exibida em uma caixa de diálogo. Barra de título A barra na parte superior de cada janela que contém o nome do aplicativo e o documento ou arquivo sendo usado por aquele aplicativo. (No InTouch há uma opção para eliminar a Barra de título.) As barras de título também são usadas para mover uma janela na tela segurando-a enquanto arrasta o mouse.
Treinamento Wonderware
Apêndice C – Glossário de Termos do InTouch
C-9
Script Touch Pushbutton Action Scripts semelhante ao Key Scripts, exceto por eles serem associados a um objeto vinculado a um Touch Link - Action Pushbutton. Janela Uma área retangular na tela na qual um aplicativo é visualizado e usado. Diversas janelas podem ser abertas na tela ao mesmo tempo e podem ser dimensionadas e movidas de forma independente. Aplicativo Windows Um aplicativo projetado especialmente para o ambiente operacional Microsoft Windows e que usa todas as funções Windows como menus, barras de rolagem e ícones. Wonderware Logger Aplicativo que registra todos os problemas ou erros em um arquivo de disco e na tela para sua visualização e análise. WindowMaker Ambiente de desenvolvimento para o InTouch em que gráficos orientados ao objeto são usados para criar janelas animadas. Script Janela Script vinculado a uma janela específica WindowViewer Ambiente de Runtime usado para exibir as janelas gráficas criadas no WindowMaker. Assistentes Componentes individuais pré-desenhados para objeto, alguns com valores configurados e faixas de animações.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
C-10
Apêndice C – Glossário de Termos do InTouch
Treinamento Wonderware
Apêndice D
Controles ActiveX
D-2
Apêndice D – Controles ActiveX
Introdução Os controles ActiveX, originalmente conhecidos como controles OLE ou OCXs, são componentes de software independentes que realizam funções específicas em um modo padrão. Os controles ActiveX definem interfaces padrão para componentes reutilizáveis. Os controles ActiveX não são aplicativos separados. Ao invés disto, eles são servidores que são posicionados em um contêiner de controle. Para usar os controles ActiveX, eles devem ser posicionados em um contêiner ActiveX. O InTouch é um contêiner ActiveX. O Microsoft VisualBasic e os navegadores da internet também são contêineres ActiveX. Os controles ActiveX compartam-se exatamente como Assistentes InTouch, exceto por trazerem nova funcionalidade aos aplicativos InTouch. Os controles ActiveX podem ser criados usando Visual Basic, Microsoft VC++ ou outras ferramentas de desenvolvimento de terceiros. Os controles ActiveX podem também ser trazidos de terceiros para funcionalidade específica. Estes controles são integrados ao formulário OCX. O componente FactorySuite InTrack da Wonderware também fornece diversos controles ActiveX. Além disso, IndustrialSQL Server Historian ActiveTrend permite executar o programa IndustrialSQL Trend (ou um subconjunto funcional) de dentro do InTouch. ActiveEvent permite comunicar o subsistema IndustrialSQL Event quando um evento ocorreu em outro aplicativo. Há três componentes principais de controle ActiveX: propriedades, métodos e eventos. As propriedades são muito semelhantes às variáveis que podem ser modificadas, ex. Calendar.day, Control.height, etc. Os métodos são semelhantes às funções script que podem ser chamadas a partir de outros contêineres. Por exemplo, Browser.Navigate("http://www.wonderware.com"), Engine.start(). Os eventos ocorrem através do contêiner ActiveX. Por exemplo, Control.click (shift), FileViewer.DoubleClick (name) , etc. O InTouch dá acesso às propriedades de controle ActiveX, aos métodos e eventos. Estas propriedades podem ser associadas aos tagnames InTouch ou podem ser acessadas através de InTouch QuickScripting. Obs.: Para que um script ActiveX Event funcione corretamente, o controle ActiveX para o qual o script foi criado deve ser carregado na memória. Se a janela que contém um controle ActiveX é fechada, seus scripts ActiveX Event ou qualquer outro InTouch QuickScripts que contenha funções de script associados com o controle ActiveX não executarão corretamente. Um ou mais controles ActiveX podem ser usados em seu aplicativo InTouch. O InTouch permite selecionar facilmente e colar um controle ActiveX dentro de uma janela de aplicativo e adicioná-lo aos Wizards / ActiveX Toolbar Os scripts de ActiveX Event também podem ser importados de um aplicativo para outro.
Treinamento Wonderware
Apêndice D – Controles ActiveX
D-3
Como usar controles ActiveX no InTouch 1. Instale o controle ActiveX que deseja usar. 2. Selecione e cole o controle ActiveX dentro de uma janela WindowMaker. 3. Configure as propriedades de controle ActiveX e as atribua os tagnames. 4. Associe os eventos ActiveX aos scripts ActiveX Event. 5. Chame os métodos ActiveX e ajuste as propriedades de controle ActiveX nos scripts ActiveX Event ou outro InTouch QuickScripts. As seguintes edições WindowMaker podem ser feitas em um controle ActiveX: z
A dimensão de um controle ActiveX pode ser modificada se a dimensão for compatível com o controle.
z
Os controles ActiveX podem ser duplicados, recortados, copiados, colados e excluídos.
z
Todos os comandos de alinhamento (esquerdo, direito, superior, inferior e centralizado) podem ser aplicados a um controle ActiveX.
z
Os controles ActiveX podem ser adicionados a Wizards / ActiveX Toolbar.
z
Os controles ActiveX podem ser incluídos a outros objetos quando criar uma célula.
z
Os comandos de menu WindowMaker e as ferramentas da barra de ferramentas equivalente podem ser usados para modificar diretamente muitas propriedades ActiveX. Por exemplo: Reduz Fonte, Cor de Linha, Cor de Preenchimento e outros.
O InTouch não é compatível com os tipos de controles ActiveX a seguir: z
Controles sem janela
z
Site de Estrutura Simples (Caixa de Grupo)
z
Contêineres
z
Controles de Dados
z
Objetos de Envio
z
Vetores, Blobs, Objetos, Tipos Variantes
Nomeação de controles ActiveX 1. Cole o controle ActiveX em sua janela WindowMaker. 2. Clique duas vezes com o mouse no controle para abrir a caixa de diálogo Properties .
InTouch® HMI 9.5 Fundamentos de curso de desenvolvimento de aplicativos
D-4
Apêndice D – Controles ActiveX Cada caixa de diálogo Properties do controle do ActiveX é exclusivo para o controle. O número de guias exibidas é baseado nas propriedades daquele controle em particular.
Em alguns casos, pode ser necessário configurar Colors e Fonts. Outros podem requerer esta configuração. Entretanto, para todos os controles ActiveX, o InTouch adiciona três guias: Control Name, Properties e Events. 3. Clique na guia Control Name e insira um nome exclusivo para o controle ActiveX na caixa ControlName. Obs.: É necessário definir um nome exclusivo para cada controle ActiveX usado em seu aplicativo InTouch. Control Name é usado em funções script para identificar o controle. Por exemplo: #Calendar2.day = Tag1; #Calendar2.year = 1997;
Se usar Control Name padrão, ex. Calendar2 e subseqüentemente duplicar o controle ActiveX, o InTouch incrementará automaticamente o Control Name. Neste caso, o nome do controle ActiveX duplicado seria Calendar3.
Treinamento Wonderware
Apêndice D – Controles ActiveX
D-5
Instalação e remoção de controles ActiveX 1. Clique Special / Configure / Wizard/ActiveX Installation para abrir a caixa de diálogo Wizard/ActiveX Installation .
2. Clique na guia ActiveX Control Installation .
3. Na lista Installed Wizards, selecione o controle a ser excluído de seu aplicativo e clique no botão Remove . Uma caixa de mensagem interativa é exibida pedindo que confirme a remoção.
InTouch® HMI 9.5 Fundamentos de curso de desenvolvimento de aplicativos
D-6
Apêndice D – Controles ActiveX
Obs.: Para selecionar um grupo de controles, clique na sua primeira seleção, mantenha pressionada a tecla SHIFT e selecione sua última seleção. Para selecionar controles diversos que não são listados ao mesmo tempo, clique no primeiro controle e mantenha pressionada a tecla CTRL ao clicar em outro. 4. Clique em Yes para remover o controle. O controle removido é movido para a lista Available ActiveX controls. Obs.: Ao remover um controle, ele não é excluído. Entretanto, ele não é mais carregado na memória. Portanto, ele não funcionará corretamente. 5. Para instalar controles ActiveX, selecione-os na lista Available ActiveX controlse, em seguida, clique em Install. Obs.: O botão Install é ativo somente quando os controles são exibidos na lista Available ActiveX controls. 6. Clique em Close.
Posicionamento de controles ActiveX em uma janela 1. Clique na ferramenta Wizard dialog
na barra de ferramentas Wizard/ActiveX .
A caixa de diálogo Wizard Selection é exibida:
Adicionar um controle ActiveX à barra de ferramentas
2. Na lista de assistentes, clique na categoria ActiveX Controls. Todos os controles ActiveX instalados serão exibidos. 3. Selecione o controle ActiveX que deseja usar e clique em OK (ou claque duas vezes com o mouse no controle). A caixa de diálogo fecha e sua janela é reexibida.
Treinamento Wonderware
Apêndice D – Controles ActiveX
D-7
Obs.: Para adicionar um controle ActiveX na Wizards/ActiveX Toolbar, clique Add to toolbar. Quando um controle é adicionado a Wizards/ActiveX Toolbar, ele pode ser selecionado e colado em sua janela aberta a qualquer momento. O número de controles ActiveX que pode ser adicionado à barra de ferramentas é limitado pelos recursos do sistema 4. O cursor mudará para um símbolo de canto janela para colar o controle ActiveX.
ao retornar para a janela. Clique no local da
5. Clique duas vezes com o mouse no controle para configurar suas propriedades.
Remoção de controles ActiveX da barra de ferramentas 1. Clique na ferramenta Wizard dialog
em Wizards/ActiveX Toolbar.
A caixa de diálogo Wizard Selection é exibida:
Remova um controle ActiveX da barra de ferramentas WindowMaker Wizard/
2. Clique em Remove na barra de ferramentas.
InTouch® HMI 9.5 Fundamentos de curso de desenvolvimento de aplicativos
D-8
Apêndice D – Controles ActiveX A caixa de diálogo Remove Wizard from Toolbar é exibida:
3. Selecione o controle ActiveX que deseja remover da barra de ferramentas. 4. Clique em OK.
Configuração de propriedades de controles ActiveX As propriedades que podem ser configuradas para um controle ActiveX em particular são determinadas pelo projetista do controle ActiveX. Cada folha de propriedade Properties do controle ActiveX exibe três colunas: Property, Range e Associated Tag. As colunas Property e Range são somente leitura. A coluna Associated Tag é usada para tagnames InTouch associados à respectiva propriedade na coluna Property. Obs.: Quando determinados itens em uma coluna Range são clicados, uma seta é exibida. Esta seta pode ser clicada para visualizar a lista de possíveis valores do item. Os items na lista são para fins de visualização apenas e não podem ser mudados. 1. Clique na guia Properties na caixa de diálogo Calendar Properties .
2. Clique no meio de cada célula na coluna Associated Tag e insira uma tagname para a respectiva propriedade. Se um tagname é inserido e não foi definido no Dicionário Tagname, será solicitado que ele seja definido agora.
Treinamento Wonderware
Apêndice D – Controles ActiveX
D-9
Se clicar duas vezes com o mouse em uma célula em branco ou clicar no botão , o Tag Browser será exibido com os tagnames para a fonte de tag selecionada. Clique duas vezes com o mouse no tagname desejado e clique em OK. O tagname é inserido na célula. 3. Quando o tagname é especificado, clique duas vezes com o mouse na célula à esquerda da tagname. Selecione a direção da associação para o tagname com sua propriedade. Clicar duas vezes com o mouse levará você a várias escolhas de direção de associação. Há, na verdade, dois campos em cada célula na coluna Associated Tag. A seleção da direção da associação e a entrada de tagname. O controle ActiveX determina a direção da associação e o tipo de propriedade determina o tipo de tagname que deve ser usado. É possível selecionar uma associação direcional ou bidirecional. Entretanto, se a direção da associação selecionada não for válida para a propriedade ou tagname, o controle mudará automaticamente de acordo. Por exemplo, se selecionou quando o valor de tagname muda, sua propriedade associada é mudada de acordo. Um determinado subconjunto dos símbolos abaixo será exibido com base no relacionamento potencial entre a propriedade e o tagname. Por exemplo, se associou uma propriedade a um tagname que pode ser escrito, você verá um conjunto diferente de associações do que se você associasse a mesma propriedade a um tagname somente leitura. Selecione o símbolo de associação de propriedade da seguinte maneira: O tagname ajusta o valor da propriedade associada. A propriedade é somente leitura e o tagname não pode mudar o valor da propriedade. A propriedade ajusta o valor do tagname associado. O tagname é somente leitura e a propriedade não pode mudar o valor do tagname. O valor pode ser ajustado a partir do tagname ou da propriedade. (Tagname tem precedência.) O tagname e a propriedade são somente leitura. o tagname pode mudar o valor da propriedade, mas a propriedade não pode mudar o valor do tagname. A propriedade não pode mudar o valor do tagname porque a propriedade não pode ser protegida ou o tagname é somente leitura. A propriedade pode mudar o valor do tagname, mas o tagname não pode mudar o valor da propriedade. O tagname não pode mudar o valor da propriedade porque a propriedade é somente leitura . 4. Clique em OK. Obs.: As propriedades podem ser acessadas ou modificadas através de scripts ActiveX Event e/ou outros InTouch QuickScripts. Todas as funções script ActiveX são qualificadas pelo sinal # (cerquilha). A instrução válida para acessar as propriedades ActiveX é: #ControlName.PropertyName Exemplos: #Calendar2.Day = 29; Tag1 = #Calendar2.year;
InTouch® HMI 9.5 Fundamentos de curso de desenvolvimento de aplicativos
D-10
Apêndice D – Controles ActiveX
Como usar métodos de controle ActiveX Os métodos de controle ActiveX são semelhantes às propriedades de controle ActiveX. Os métodos são ativados em Runtime (WindowViewer). Os métodos de controle ActiveX são acessados através de scripts ActiveX Event e/ou outros InTouch QuickScripts. Obs.: Para que um script ActiveX Event funcione corretamente, o controle ActiveX para o qual o script foi criado deve ser carregado na memória. Se a janela que contém um controle ActiveX é fechada, seus scripts ActiveX Event ou qualquer outro InTouch QuickScripts que contenha funções de script associados com o controle ActiveX não executarão corretamente. 1. Na caixa de diálogo Properties do controle ActiveX, clique na guia Events.
2. Clique duas vezes com o mouse em uma célula em branco na coluna Script.
Treinamento Wonderware
Apêndice D – Controles ActiveX
D-11
O editor ActiveX Event Scripts é exibido:
3. Clique em Insert / ActiveX.
InTouch® HMI 9.5 Fundamentos de curso de desenvolvimento de aplicativos
D-12
Apêndice D – Controles ActiveX O ActiveX Control Browser é exibido:
4. Na lista Control Name, selecione o controle ActiveX cujos métodos ou propriedades deseja acessar. Os nomes de todos os controles ActiveX que estão sendo usados no momento serão listados. Obs.: Se selecionou This Control ao invés do Control Name real, os métodos e as propriedades exibidos serão os do controle ActiveX atualmente selecionados em seu aplicativo. Ao selecionar This Control ao invés do Control Name real, é possível criar funções de script ActiveX Event genéricos. É possível copiar e colar estas funções em outro script ActiveX Event ou qualquer outro InTouch QuickScript sem ter que mudar o Control Name no novo script. Por exemplo: #ThisControl.Navigate ("http:\\www.wonderware.com"); #ThisControl.Navigate(URL); { where URL is a tagname}
Este Controle está acessível apenas através de scripts ActiveX Event. Ele não é acessível através de outro tipo de InTouch QuickScript. 5. Na lista Method / Property, selecione o método ou propriedade que deseja usar em seu script. As propriedades são os itens na lista que incluem parênteses. Por exemplo, Display(). 6. Clique em Done. O nome e o método de controle selecionado são automaticamente inseridos em seu script. Os métodos e as propriedades de controle ActiveX também são acessados através do menu Insert em todos os tipos InTouch QuickScripts.
Treinamento Wonderware
Apêndice D – Controles ActiveX
D-13
Como usar parâmetros de evento de controle ActiveX Eventos de controle ActiveX podem ser executados em Runtime (WindowViewer) ao projetar uma ação em particular e associá-la ao evento. Por exemplo, se seu controle ActiveX tiver um manipulador de dimensionamento de evento de erro, é possível criar um script ActiveX Event que exibe uma janela com uma mensagem de erro quando um erro ocorre. Os scripts ActiveX Event são fornecidos para dar suporte às ações de evento. É possível associar um script de evento nomeado a cada evento. Obs.: Para que um script ActiveX Event funcione corretamente, o controle ActiveX para o qual o script foi criado deve ser carregado na memória. Se a janela que contém um controle ActiveX é fechada, seus scripts ActiveX Event ou qualquer outro InTouch QuickScripts que contenha funções de script associados com o controle ActiveX não executarão corretamente. 1. Clique duas vezes com o mouse no controle ActiveX para o qual deseja criar um script ActiveX Event para abrir a caixa de diálogo Properties de controle ActiveX. 2. Clique na guia Events.
3. Na coluna Event, selecione o evento para o qual deseja associar um script ActiveX Event. 4. Na respectiva célula na coluna Script, insira um nome exclusivo para o script ActiveX Event que deseja criar e depois clique duas vezes com o mouse no nome ou clique em OK. A caixa de mensagem a seguir é exibida:
5. Clique em OK. O editor de script ActiveX Event é exibido mostrando o nome inserido na caixa de entrada Name (consulte o exemplo a seguir). Se clicar duas vezes com o mouse em uma célula Script em branco quando o editor de script ActiveX Event é exibido, é necessário inserir um nome para o script ActiveX Event. 6. Clique no botão
se o script ActiveX Event que deseja usar já existir.
InTouch® HMI 9.5 Fundamentos de curso de desenvolvimento de aplicativos
D-14
Apêndice D – Controles ActiveX A caixa de diálogo Choose ActiveX Script é exibida listando todos os scripts ActiveX Event em seu aplicativo:
7. Clique em Insert / ActiveX. O ActiveX Control Browser é exibido:
Treinamento Wonderware
Apêndice D – Controles ActiveX
D-15
8. Na lista Control Name, selecione This Event para acessar os parâmetros para o evento selecionado. Neste caso, o evento selecionado é Error. Obs.: This Event está acessível apenas através de scripts ActiveX Event. Ele não é acessível através de outro tipo de InTouch QuickScript. É necessário selecionar This Event para acessar os parâmetros de evento para um controle ActiveX. Os eventos podem passar ou não parâmetros em Runtime. Os parâmetros de evento podem ser acessados usando a palavra chave ThisEvent. Por exemplo: MyActiveXErrorNumber = #ThisEvent.ErrorNumber;
em que: # indica que esta é uma função de script ActiveX, ThisEvent refere-se ao evento selecionado na folha de propriedade Event do controle ActiveX e ErrorNumber é o parâmetro passado pelo evento selecionado. 9. Na lista Method / Property, selecione o evento a ser usado em seu script ActiveX Event. 10. Clique em Done. O nome de controle selecionado, ex. This Event e o parâmetro de evento selecionado são inseridos automaticamente em seu script na posição do cursor. Por exemplo:
11. Clique em OK para salvar seu script ActiveX Event e fechar o editor de script. A caixa de diálogo Properties do controle ActiveX é reexibida. 12. Clique em OK para fechar a caixa de diálogo Properties ou continuar a criar scripts ActiveX Events.
InTouch® HMI 9.5 Fundamentos de curso de desenvolvimento de aplicativos
D-16
Apêndice D – Controles ActiveX
Scripts ActiveX Event A maioria dos controles ActiveX têm eventos associados a eles. Por exemplo, clicar, clicar duas vezes com o mouse, pressionar o mouse e pressionar a tecla são eventos típicos usados em muitos controles ActiveX. Scripts InTouch ActiveX Event são fornecidos para dar suporte às ações de eventos . Um script ActiveX Event pode ser associado a cada evento. Eventos de controle ActiveX são executados em Runtime (WindowViewer)
Acesso ao editor de script ActiveX Event 1. Clique na guia Events na caixa de diálogo Properties do controle ActiveX para ativar a folha de propriedade Events.
2. Clique duas vezes com o mouse em uma célula na coluna Script ou insira um nome para o script ActiveX Event e clique em OK. 3. Se um script ActiveX Event para o nome inserido não existir no momento, uma caixa de mensagem será exibida perguntando se deseja criá-lo agora. Clique em OK.
Treinamento Wonderware
Apêndice D – Controles ActiveX
D-17
O editor ActiveX Event Scripts é exibido:
4. Na caixa Name, insira o nome para identificar o script ActiveX Event. 5. Os métodos de controle ActiveX são semelhantes às propriedades de controle ActiveX. Para acessar métodos de controle ActiveX, clique no comando Insert / ActiveX.
InTouch® HMI 9.5 Fundamentos de curso de desenvolvimento de aplicativos
D-18
Apêndice D – Controles ActiveX O ActiveX Control Browser é exibido
O ActiveX Control Browser exibirá os nomes de todos os controles ActiveX sendo usados em seu aplicativo. Quando selecionar um nome de controle, seus respectivos métodos serão exibidos. Selecione o método para inserir seu script e depois clique em Done.
Reutilização de Scripts ActiveX Event Scripts ActiveX Event somente podem ser reutilizados para o mesmo evento para o mesmo tipo de controle ActiveX . Por exemplo, o evento mouse pressionado pode ser um evento de estoque em centenas de controles ActiveX. Entretanto, um script ActiveX Event escrito para mouse pressionado em ActiveX ControlA não pode ser reutilizado para mouse pressionado em ActiveX ControlB, a menos que os dois controles sejam do mesmo tipo. 1. Clique duas vezes com o mouse no controle ActiveX para o qual deseja reutilizar um script ActiveX Event existente. A caixa de diálogo Properties do controle ActiveX selecionado será reexibida. 2. Clique na guia Events.
Treinamento Wonderware
Apêndice D – Controles ActiveX
D-19
A janela MyActiveX Control2 Properties é exibida:
3. Na coluna Script para o respectivo evento, clique no botão
.
A caixa de diálogo Choose ActiveX Script é exibida:
Obs.: Esta caixa de diálogo somente exibirá scripts ActiveX Event que foram escritos para o mesmo tipo de controle ActiveX e o mesmo evento selecionado. Por exemplo, vamos considerar que esteja criando um script ActiveX Event para um segundo evento "Click" do controle ActiveX Calendar. Você já criou dois outros scripts ActiveX Event denominados Click1 e Click2 em seu aplicativo. Click1 foi criado para um evento "Click" diferente do controle ActiveX Calendar e Click2 foi criado para um evento "Click" de um controle ActiveX InSQLTrend. Ao clicar no botão e a caixa de diálogo Choose ActiveX Script ser exibida, ela somente exibirá o script Click1 uma vez que ele foi criado para o mesmo tipo de controle ActiveX e para o mesmo evento. 4. Selecione o script ActiveX Event que deseja usar e clique em OK.
InTouch® HMI 9.5 Fundamentos de curso de desenvolvimento de aplicativos
D-20
Apêndice D – Controles ActiveX O nome do script selecionado é automaticamente inserido na célula Script onde você clicou anteriormente no botão
.
Por exemplo:
5. Clique em OK para fechar a caixa de diálogo Properties ou continuar a criar scripts ActiveX Events.
Importação de scripts ActiveX Event Importar scripts ActiveX Event de outro aplicativo InTouch para seu aplicativo atual pode economizar um consideravelmente tempo de desenvolvimento. Quando mover scripts ActiveX Event de um aplicativo InTouch para outro, você deve usar o comando File / Import . Obs.: Quando importar scripts ActiveX Event de um aplicativo para outro, todos os scripts ActiveX Events são importados. Além disso, para que um script ActiveX Event importado funcione corretamente no novo aplicativo, o mesmo controle ActiveX e o mesmo evento para o qual o script foi criado originalmente devem também ser usados no novo aplicativo e ele deve ser carregado na memória. Se a janela que contém um controle ActiveX é fechada, seus scripts ActiveX Event ou qualquer outro InTouch QuickScripts que contenha funções de script associados com o controle ActiveX não executarão corretamente.
Treinamento Wonderware
Apêndice E
Notas técnicas relacionadas ao InTouch
E-2
Apêndice E – Notas técnicas relacionadas ao InTouch Para Notas Técnicas e Alertas Técnicos recentes, acesse www.wonderware.com/support/mmi . As seguintes Notas Técnicas aplicam-se ao InTouch 9.0.
Tech Note 144
Como o Fuso Horário e o Horário de Verão Afetam o InTouch 7.0 Historical Logging Todas as Notas Técnicas e documentos KBCD e software são fornecidos "como estão" sem garantia de nenhum tipo. Esta Nota Técnica explica como o Wonderware® InTouch® lida com diferenças em fusos horários e Horário de verão (DST). Além disso, você aprenderá a ajustar seu computador para DST preservando a integridade dos dados. A InTouch 7.0 Historical Logging cria um novo arquivo de Armazenagem de Histórico todo dia à meia noite com base no relógio do computador. Além disso, a Armazenagem de Histórico usa Greenwich Mean Time (GMT) como a referência para registro e recuperação de dados. Greenwich Mean Time também é conhecido como Universal Coordinated Time (UCT). O mecanismo de Histórico verifica os valores das tags que têm dados armazenados selecionadas quanto a mudanças maiores do que um Log Deadband e os registra no arquivo de armazenagem. Cada registro contém o valor atualizado da tag e a hora e a data em que o valor foi atualizado.
Armazenagem de Histórico Para descrever a armazenagem de histórico, asumimos que temos uma tag denominada tag1, que muda seu valor às 10:00:00 h (hora do computador) e usa os exemplos a seguir. Se realizarmos a armazenagem a oeste do GMT, o registro de hora para o valor armazenado é calculado da seguinte maneira: Logged_TimeStamp = Computer_Time+(Offset–DST)
Onde Logged_TimeStamp é o registro de data e hora do registro no arquivo de Armazenagem de Histórico.
Exemplo 1 O Fuso Horário é ajustado para Pacific Standard Time (GMT-8) e DST é habilitado. Logged_TimeStamp = 10:00:00+(8–1) = 17:00:00
Exemplo 2 O Fuso Horário é ajustado para Pacific Standard Time (GMT-8) e DST não é habilitado. Logged_TimeStamp = 10:00:00+(8-0) = 18:00:00
Se temos a mesma tag e valores, mas estamos realizando a armazenagem à leste do GMT, o registro de data e hora para o valor armazenado é calculado da seguinte maneira: Logged_TimeStamp = Computer_Time+(-Offset+DST)
Exemplo 3 O Fuso Horário é ajustado para Amsterdã, Berlim, Bern, Roma (GMT+1) e DST é habilitado. Logged_TimeStamp = 10:00:00+(–1+1) = 10:00:00
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-3
Exemplo 4 O Fuso Horário é ajustado para Monrovia, Casablanca (GMT0) e DST não é habilitado porque Casablanca não segue o DST. Logged_TimeStamp = 10:00:00+(-0+0) = 10:00:00
Neste exemplo, o registro de hora no arquivo de Armazenagem de Histórico é o mesmo da hora do computador. Observe que GMT0-Monrovia, Casablanca é o ajuste de fuso horário ideal.
Recuperação de histórico A ferramenta de recuperação também considera as diferenças nos ajustes de fuso horário e DST no computador no qual a retenção ocorre. Na maioria dos casos, se a armazenagem e a retenção forem realizadas no mesmo computador ou em computadores com ajustes de fuso horário idêntico, os registros recuperados estarão corretos. Obs.: Se os ajustes de fuso horário são diferentes entre o Computador de armazenagem e o Computador de retenção, o registro armazenado às 10:00:00 no Computador de armazenagem pode exibir em um horário diferente do Computador de retenção. Nas versões anteriores do InTouch ( InTouch 5.6, InTouch 6.0, InTouch 7.0 SP2 Patch03 e InTouch 7.1 Patch02), se DST for selecionado, para determinados Fusos Horários os dados serão recuperados com uma diferença de duas horas. A solução para este problema é ajustar o fuso horário para um horário que não siga o DST, como GMT0-Monrovia, Casablanca. Começando com o InTouch 7.0 SP2 Patch04 e InTouch 7.1 Patch03 qualquer ajuste GMT pode ser usado. Certifique-se de que não haja variável TZ no autoexec.bat e nenhuma variável de ambiente TZ em Control Panel/System/ Environment. Lembre-se de que o DST pode afetar a recuperação de dados, mesmo quando a armazenagem e a retenção são realizadas no mesmo computador ou em computadores com ajustes de fuso horário idêntico. A escolha de um fuso horário que segue o DST ou a habilitação de DST faz com que os dados recuperados tenham duas horas de diferença no início do dia, o quadro de tendência de histórico exibirá duas horas de linha simples ou nenhum dado. Este comportamento está presente quando o ajuste de Fuso Horário é do tipo GMT+x (à leste do GMT) e DST está habilitado. Por exemplo, se o fuso horário em seu computador é ajustado como Amsterdã, Berlim, Bern, Roma (GMT+1) e DST estiver habilitado, os dados recuperados exibirão uma linha simples no início do dia e os dados atuais estarão duas horas no futuro. A solução é ajustar o fuso horário para um horário que não siga o DST, como GMT0-Monrovia, Casablanca. Isto faz com que o registro de hora no arquivo de Armazenagem de Histórico seja o mesmo do relógio do computador. Além disso, DST não é habilitado porque GMT0-Monrovia, Casablanca não segue DST.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-4
Apêndice E – Notas técnicas relacionadas ao InTouch Tech Note 21
Entender como scripts operam no InTouch Esta nota descreve como a ferramenta de script opera dentro do ambiente Wonderware® InTouch® . Ela é destinada a todos os funcionários e distribuidores Wonderware, profissionais OEMs, VARs, MIS/MES, integradores de sistema, engenheiros de aplicação, desenvolvedores de sistema e administradores de sistema de aplicativos InTouch. Você deve ter um nível de competência de programação avançado a fim de aplicar algumas das funções exibidas nesta edição. O teste para este artigo foi concluído usando InTouch Release 5.6 em Microsoft Windows 95; entretanto, os resultados devem ser precisos para InTouch edições 5.0b a 5.6. Termo de isenção de responsabilidade As informações contidas aqui estão corretas com base nos exemplos de script e aplicativo de demonstração usados neste artigo. Entretanto, seus resultados e experiências no uso do mecanismo de script InTouch podem variar devido às circunstâncias fora da realidade dos exemplos mostrados aqui.
Instalação dos aplicativos de teste associados ao InTouch Este artigo refere-se a dois aplicativos de teste InTouch que demonstram os diversos pontos abordados neste artigo. Estes aplicativos executarão no InTouch Edição 5.6 ou mais recente. Faça o download do arquivo Testscr1.zip para o Aplicativo de Script de Teste InTouch 1. Faça o download do arquivo Testscr2.zip para o Aplicativo de Script de Teste InTouch 2. Obs.: Os scripts do teste acima estão disponíveis em Wonderware.com através do Programa de Suporte ao Cliente Wonderware .
Características gerais O mecanismo de script do InTouch inclui e opera uma variedade de tipos de script de forma integrada. Os programadores podem ocasionalmente encontrar problemas com scripts complexos, especialmente quando eles executam um tipo de script a partir de outro. Esta Nota Técnica ajudará a analisar seus scripts e compreender como o mecanismo de script funciona de forma que quando escrever seus scripts, você irá fazê-lo com um mínimo de erros.
Como escrever scripts O modo mais fácil de escrever um script InTouch —especialmente se ele for complexo— é primeiro fazer o fluxograma do que deseja atingir. Entretanto, tenha em mente que seu fluxograma não pode ter malhas.
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-5
Operação inicial de script Após definir o fluxograma de seu aplicativo, a próxima etapa é decidir quais scripts controlarão cada processo em seu fluxograma. Se não houver scripts temporizados ou com varredura (ou seja, While True, While Showing, etc.), quando o WindowViewer iniciar, o mecanismo de script executará os scripts na ordem exibida na Tabela 1. Tabela 1. Ordem de execução do mecanismo de script InTouch 1. Scripts Application On-Startup
10. Scripts Open Window(s) While Showing
2. Scripts Data Change
11. Scripts Data Change
3. Scripts Condition
12. Scripts Condition
4. Scripts Home Window(s) On-Show
13. Scripts Windows On-Close
5. Scripts Data Change
14. Scripts Data Change
6. Scripts Condition
15. Scripts Condition
7. Scripts Application While-Running
16. Scripts Application OnShutdown
8. Scripts Data Change
17. Scripts Data Change
9. Scripts Condition
18. Scripts Condition
As figuras 1 e 2 acima incluem um fluxograma simplificado de como a ferramenta de script opera de forma precisa para todas as suas dúvidas de script. Entretanto, observe que caminhos de vetor de interrupção não são exibidos e eles podem ocorrer em qualquer ponto em um script. Lembrese que quando um temporizador conclui (cada temporizador é verificado quanto a conclusão logo após o reset de Tick Interval), o fluxograma fará a ramificação de volta à instância de sub-rotina de script que chamou a interrupção e concluirá ou parará em outro temporizador para, então, retornar em seguida.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-6
Apêndice E – Notas técnicas relacionadas ao InTouch
Figura 1. Fluxograma de script – Corpo principal do programa (Observação: AppTick é o Tick Interval do aplicativo)
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-7
Figura 2. Fluxograma de script – Sub-rotina de Script O script Application On Startup sem varredura é executado primeiro. Scripts Data Change ou Condition podem não ser executados a partir de um script Application On Startup.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-8
Apêndice E – Notas técnicas relacionadas ao InTouch
Advertência Se tentar executar um script Data Change ou Condition de um script Application On Startup, então os dados que estiver mudando podem ainda não estar disponíveis globalmente. Isto porque o banco de dados de variável InTouch Runtime está inicializando enquanto o script Application On Startup está executando. Os testes de suporte técnico mostraram que em alguns casos, um script de Data Change ou Condition podem realmente executar, entretanto, isto pode não ser sempre verdade toda vez que o WindowViewer é reiniciado. Se uma janela for chamada a partir de um script Application On Startup, então os processos da janela (incluindo qualquer script Window Action que é chamado) não terão início até que o script Application On Startup seja concluído. Entretanto, estas solicitações serão colocadas em fila e executarão, desde que o script Application On Startup e o script Home Window’s On Show sejam concluídos. Os scripts Window Action On Show da janela home executam após o WindowViewer iniciar corretamente. Se estes scripts mudarem algum dado, quaisquer scripts Data Change sem varredura serão executados primeiro e os scripts Condition sem varredura serão executados em seguida. Todos os scripts com varredura são manipulados desta mesma maneira. A diferença entre os scripts com e sem varredura é que os scripts com varredura são colocados na área de armazenagem durante o tempo de varredura e os scripts sem varredura restantes dentro do scripts com varredura shell ou thread não executarão até que o tempo de varredura do script seja concluído. (Observe que este tipo de projeto de script permite que o “encadeamento” de scripts opere dentro de outros scripts.) Uma vez que o tempo de varredura expire, isto gera um vetor de interrupção no script atual. A interrupção faz a ramificação para o script de varredura temporizado que opera até a conclusão ou até que outro script com varredura seja executado. Os scripts temporizados não executam quando o temporizador do script conclui. Lembre-se de que muitos processos estão executando em um determinado momento e alguns destes processos não podem ser interrompidos. Os exemplos de processos que não podem ser interrompidos são gravação em disco, atualizações DDE, ODBC e processos de precondicionados no InTouch (ou seja, malhas FOR-NEXT, outros scripts com precedência sênior, etc.). Quando o tempo de varredura expira, um flag que evita que o script execute enquanto o temporizador estiver contado é apagado, permitindo que o script temporizado comece. Um script com um tempo de varredura de 100 milissegundos provavelmente executaria uma vez a cada 100 milissegundos se não houver um servidor de E/S executando ou armazenagem de histórico ou recuperação, e se o aplicativo tiver apenas uma janela simples sem outros scripts em execução. Entretanto, isto não é realista para aplicações “reais”! Scripts On Shutdown Application executam quando o WindowViewer está encerrando. Se tentar executar um script Data Change e/ou de um script Condition a partir de um script On Shutdown, os scripts Data Change e Condition podem não ser chamados ou concluídos. Como os scripts On Startup, as sub-rotinas de script Data Change e Condition no mecanismo de script podem não estar disponíveis durante o encerramento. Se tentar atingir um processo interno ou condição antes de sair do WindowViewer, sua melhor chance para atingir o processo ou condição é executar o script de Data Change ou Condition antes do script On Shutdown. Quando o script On Shutdown está executando, os processos dentro do WindowViewer estão sendo encerrados. Sob estas circunstâncias, processos “longos” não terminarão se o WindowViewer encerrar antes da tarefa, que foi executada a partir de um script On Shutdown , ser concluída.
Tick Interval e Script Timing O Tick Interval é configurado no WindowMaker nos menus Special/Configure/View Generic/Tick Interval. Este ajuste é o tick do aplicativo mestre para todos os scripts em execução. Se você tiver um Tick Interval de 1000 milissegundos e seus scripts temporizados em execução dentro do
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-9
mecanismo de script são ajustados para 100 milissegundos, eles não executarão pelo menos até que o Tick Interval seja reiniciado. O resultado é que cada script temporizado não executará por pelo menos 1000 milissegundos, mesmo se eles forem ajustados para um valor menor. Observe que estes tempos não são cumulativos. Ou seja, se usar um script temporizado, o temporizador executará de forma assíncrona com relação ao temporizador do Tick Interval. O que acontece se o Tick Interval é ajustado para um valor menor do que seu script temporizado? Por exemplo, se Tick Interval é ajustado em 100 milissegundos e um script Condition é ajustado em 450 milissegundos, quando o script Condition executará? Presumindo que nenhum processo “longo” esteja em execução e que precisará de mais do que alguns milissegundos, uma vez que o script Condition inicie e o temporizador esteja executando, Tick Interval resetará cinco vezes antes do script Condition atingir o tempo-limite. Isto significa que o script executará por cerca de 500 milissegundos, não 450 milissegundos. Dentro do aplicativo InTouch , a malha “externa” do mecanismo de script (como exibido na Figura 1) tem a prioridade mais baixa. Isto ocorre para que outros processos Windows possa continuar a executar. Estes processos Windows tentarão executar em 55 milissegundos no Windows 95 ou Windows para Workgroups ou 10 milissegundos para o Windows NT; este é o OpSysTick. os processos DDE são mantidos nesta taxa, depois são redefinidos no tempo de varredura ajustado no servidor de E/S, se algum estiver em execução. As atualizações de tela do “sistema operacional” são manuseadas nesta taxa, assim como as varreduras de teclado e de mouse do “sistema operacional”.
Scripts Invoked Immediate* (* “Immediate” é um termo de programação usado para descrever o thread de processo de programa atual ou imediato.) Um script Invoked Immediate é um script chamado de outro processo que esteja em foco no momento. Isto não depende necessariamente do Tick Interval ou do thread do mecanismo de script principal. Dois exemplos de um script Invoked Immediate são: 1) chamar um script Data Change disparado por uma atualização DDE (ou seja, um servidor de E/S atualiza um valor no banco de dados Runtime do InTouch); e 2) executar um script de Botão ou de Tecla. Estes scripts Data Change, Botão e Tecla executam imediatamente até que sejam concluídos. Observe que todos os outros processos são manipulados até que estes scripts sejam concluídos ou até que eles iniciem um temporizador (o que permite um vetor de interrupção) de forma que o InTouch possa fazer a ramificação para outros processos. Um efeito interessante é como janelas Immediate são abertas. Se, por exemplo, um script de Botão chama uma janela popup ou de sobreposição cujo script Window Action chama outra janela popup ou de sobreposição, em qual ordem os scripts são executados? O script de Botão executará a sub-rotina do script exibida na Figura 2 que executará uma função de janela Show() que, por sua vez, é uma linha no script do Botão. Show() chama a janela popup ou de sobreposição que inicia seu script On Show Window Action. Este script tentará chamar uma segunda janela popup ou de sobreposição; entretanto, isto não ocorrerá até que o primeiro script On Show Window Action seja concluído. Um script não pode chamar a si mesmo, mesmo se estiver em uma janela diferente. O objeto é evitar malhas infinitas. Entretanto, versões futuras do InTouch podem ser comportar desta maneira
Aplicativo de teste Duas versões de um aplicativo de teste InTouch foram criadas para demonstrar como o mecanismo de script funciona.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-10
Apêndice E – Notas técnicas relacionadas ao InTouch
Obs.: Os dois aplicativos de teste estão disponíveis em Wonderware BBS (fone 949-727-0726). Este aplicativo faz o seguinte: Scripts sucessivos foram definidos, iniciando com o shell de script mais externo e processando para dentro, incluindo caminhos para os vetores de interrupção. Cada script sucessivo atualiza uma nova tag com um contador. Uma vez que cada tag é atualizada, o contador incrementará. Isto define um caminho de operação específica para o mecanismo de script. Tipos diferentes de script são tentados em várias ordens para mostrar como o mecanismo de script opera e para prever o que a ferramenta de script fará de forma que um fluxograma da seqüência de script seja criado. A seguir, veja uma lista dos scripts que foram escritos para nosso aplicativo de teste InTouch. Scripts Janela para "Test Script on Show: g = startupvar; startupvar = startupvar + i = startupvar; startupvar = startupvar + k = startupvar; startupvar = startupvar + l = startupvar; Application Script:
Scripts":
1; 1; 1;
On Application Startup: testvar = 1; startupvar = 1; A = startupvar; startupvar = startupvar + 1; Durante a execução do aplicativo, a cada 100mseg: IF testvar THEN startupvar = startupvar + 1; b = startupvar; startupvar = startupvar + 1; d = startupvar; startupvar = startupvar + 1; f = startupvar; startupvar = startupvar + 1; testvar = 0; ENDIF; Condition Script: Condition: b > 0 Comment: On True: startupvar = startupvar + 1; c = startupvar; Condition Script: Condition: g > 0
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-11
On True: startupvar = startupvar + 1; o = startupvar; Data change script: On Changes to b: startupvar = startupvar + 1; e = startupvar; Data change script: On Changes to g: startupvar = startupvar + 1; j = startupvar; Data change script: On Changes to j: startupvar = startupvar + 1; m = startupvar; Comment: On True: startupvar = startupvar + 1; h = startupvar; Condition Script: Condition: j > 0 Comment: On True: startupvar = startupvar + 1; n = startupvar; Condition Script: Condition: p > 0 Comment: On True: startupvar = startupvar + 1; q = startupvar; Condition Script: Condition: A > 0 Comment: On True: startupvar = startupvar + 1; s = startupvar; Condition Script: Condition: r > 0 Comment: On True: startupvar = startupvar + 1; End1 = startupvar; Condition Script: Condition:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-12
Apêndice E – Notas técnicas relacionadas ao InTouch n > 0 Comment: Data change script: On Changes to m: startupvar = startupvar + 1; p = startupvar; Data change script: On Changes to o: startupvar = startupvar + 1; r = startupvar; Data change script: On Changes to s: startupvar = startupvar + 1; t = startupvar; Data change script: On Changes to q: startupvar = startupvar + 1; End2 = startupvar;
A janela do aplicativo exibida na Figura 4 foi desenvolvida com base nos scripts exibidos na página anterior. Estes valores exibidos na janela são ‘startupvar’ que foi inicializado no script On Startup Application e é incrementado toda vez que uma nova tag é atualizada com o novo valor. Estes são os valores de thread de script que exibem o caminho que o mecanismo de script “percorre” através de todos os scripts. As letras que precedem os valores de thread são os tagnames reais que podem ter referência nos scripts listados. Observe que os scripts demonstram a ordem de execução do mecanismo de script exibido na Tabela 1.
Figura 4. Janela de Aplicativo “Test Scripts” InTouch
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-13
Ao mudar o script Condition que inicia a tag ‘o’ para um script While True Condition com um tempo de varredura de 1100 milissegundos, um vetor interrompido será gerado a partir de um script “área retida” quando o temporizador expirar. O resultado é que os scripts Data Change e Condition em sua ramificação não iniciarão como exibido na Figura 5.
Figura 5. Janela de Aplicativo de Teste com o Script Condition Modificado Para nosso aplicativo de teste, o tempo de varredura foi ajustado em 1100 milissegundos. Este valor foi escolhido porque ele ilustra o término do temporizador do script Condition e a retomada dos processos interrompidos. Observe onde o vetor interrompido é exibido no script temporizado. Se este mesmo aplicativo tivesse que executar em um computador diferente, os processos que estão executando em cada computador podem ser diferentes o bastante para fazer com que o vetor de interrupção seja exibido em outro local. Além disso, o Tick Interval não será afetado onde o vetor de interrupção for exibido. (O aplicativo de teste foi executado usando um Tick Interval de 100 milissegundos e um tempo de atualização de tag de sistema de 100 milissegundos.) Se Tick Interval foi mudado para 20000 milissegundos como exibido no aplicativo TESTSCR2 na Figura 6, os scripts executarão exatamente da mesma forma, exceto pelo fato de que na próxima repetição (iteração) da malha do aplicativo (controlada por Tick Interval), serão executados somente após a reinicialização de Tick Interval. Isto ocorre após o script Condition “n o” executar. Isto exibe um "nó" de vetor de interrupção ou um local onde o mecanismo de script foi interrompido para manipular outros processos com base em alguma decisão que provavelmente lida com um tempo ou período de "espera" de processo externo. Embora não seja fácil prever este local de interrupção em particular, ele fornece uma idéia de quando um DDE e outros processos podem ser atualizados.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-14
Apêndice E – Notas técnicas relacionadas ao InTouch Uma pergunta comum é “Quando as tags DDE são atualizadas?” Com base em nosso aplicativo de teste, na maioria das instâncias, as tags DDE não serão atualizadas até que Tick Interval seja resetado. Por que? Para que as tags DDE seja atualizadas, ou estejam ativas, uma das seguintes dez condições deve ocorrer: 1. Um tópico DDE é ajustado como Advise All Items. 2. Um tagname é exibido em uma janela de aplicativo aberta. 3. Um tagname é usado em um script Window ou script Action e a janela do aplicativo que está associada a qualquer um destes scripts é aberta. 4. Um tagname está ativamente sendo usado por uma tendência em tempo real. 5. Um tagname é usado para alarme. 6. Um tagname é um evento armazenado e Event Logging está habilitado. 7. Um tagname é armazenado em um arquivo Historical Log e Historical Logging está habilitado. 8. Um tagname é usado em um script Key, Condition, Data Change ou Application. 9. Um tagname é um tagname Auto Collection no Programa SPC. 10. Um tagname é acessado por um aplicativo cliente (como Microsoft Excel) usando DDE. Exceto pelo item 1, o tagname em cada um dos nove itens restantes tem algum link com um script ou com uma janela de aplicativo (que tem um link com um script). Já que sabemos quando o tag DDE é atualizado, podemos presumir que a tag nestas condições será atualizada aproximadamente de acordo com o Tick Interval. O Item 1 é baseado no servidor de E/S, portanto o tempo de atualização corresponde ao tempo de varredura do Servidor de E/S (ajustado no servidor de E/S ou tópico —ele não tem nada a ver com o mecanismo de script). Quando um item DDE é escrito por uma entrada de usuário, como pressionar a tecla , ele causará um vetor de interrupção. O vetor de interrupção faz uma solicitação ao servidor para escrever o valor ao dispositivo DDE no tempo de tick do servidor DDE. As atualizações do dispositivo DDE não serão exibidas imediatamente se não forem roteadas através do mecanismo de script. Como um exemplo, crie os itens a seguir em um novo aplicativo: z
Uma tag DDE User Input que é um hot link para uma planilha do Microsoft Excel;
z
Uma exibição de valor separada usando a tag DDE como a expressão;
z
Uma exibição para um valor de tag que está sendo atualizado a partir de uma tag DDE através de um script Data Change imediato (ele executa como uma instância de um banco de dados de variável modificado pelo DDE);
z
Uma exibição para um valor de tag que está sendo atualizado a partir de uma tag DDE através de um script Condition, imediato e sem varredura (ele executa em uma instância de um banco de dados de variável modificado pelo DDE);
Em seguida, exiba a planilha Excel na tela do monitor abaixo das janelas InTouch. Ao ajustar Tick Interval em 20000 milissegundos, o aplicativo mostra que na medida em que o valor da tag User Input é modificada, a planilha Excel, o valor da tag DDE e as tags rescritas são todas atualizadas imediatamente na conclusão do vetor de interrupção e exibidas na tela, independente do valor Tick Interval. (Isto pode ser um script Pushbutton Action ao invés de uma entrada de usuário.) A escolha do tempo de varredura/Tick Interval apropriados para estes scripts pode requerer um ajuste para o qual será necessário experimentar diversos valores até que um valor satisfatório possa ser encontrado. O motivo disto é que há muitos outros processos executando dentro do InTouch que precisam ser mantidos além do mecanismo de script. Alguns destes processos são acessos DDE, atualizações de tela e verificações de mensagens para o WW Logger.
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-15
Cada um destes serviços requer um certo tempo de atraso de sistema e dependendo da complexidade de seu aplicativo, o tempo de varredura/Tick Interval apropriado variará para cada aplicativo. Observe que enquanto estiver dentro do mecanismo de script, alguns processos externos podem não ser atualizados. Tome muito cuidado ao fazer considerações sobre processos externos como atualização de tagnames DDE. A coisa mais simples é deixar o seu script o mais simples possível e evitar codificação e malhas desnecessárias que podem consumir tempo de atraso do sistema.
Conclusão Há muitos fatores que afetam o mecanismo de script InTouch . Se não for cuidadoso ao projetar os scripts para um aplicativo, seu aplicativo pode resultar em um comportamento indesejado. Para evitar problemas com scripts complexos, você deve exibir graficamente o que deseja realizar com seus scripts. Isto pode ser feito fazendo o fluxograma de seu aplicativo antes de começar a escrever seus scripts. Além disso, a otimização de seu aplicativo pode requerer o correto encadeamento de scripts e o ajuste dos tempos de varredura.
Scripting Supplement A: Algumas perguntas e repostas relacionadas a script P Como os scripts são programados para execução em um aplicativo InTouch? R Todos os scripts orientados por evento . Os eventos podem ser troca de dados, uma condição, um temporizador, etc. A ordem na qual os scripts são executados é diferente para cada aplicativo. Portanto, não há uma ordem de execução garantida. Os scripts executam na ordem em que seus eventos de disparo associados ocorrem. Isto significa que dois eventos não podem acontecer ao mesmo tempo no Windows; todo evento tem um registro de data e hora exclusivo. Atualmente, a ordem de execução para scripts é baseada nos registros de data e hora de evento e nada mais. Se uma tag é definida como retentiva e é modificada em um script, o arquivo de E/S é realizado quando seu valor é mudado. Normalmente, não há visualizações enquanto o script está executando. Qualquer script que acione uma caixa de diálogo ou de seleção trará uma visualização para permitir o processamento das mensagens Windows (ou seja , a entrada DDE é processada, as seqüência de teclas são processadas, os scripts iniciadas por tempo são processados, etc.). Isto significa que outros scripts podem ser iniciados enquanto a caixa de diálogo ou de seleção é exibida. Neste caso, a caixa de diálogo ou de seleção não retoma o controle até que os scripts que foram iniciados sejam concluídos. Um script Data Change pode atuar como uma sub-rotina dentro de um script. Se o valor de uma tag, que é vinculado a um script Data Change, mudar enquanto outro script está executando, o script que está executando no momento ficará em pausa. O script Data Change executará e concluirá, em seguida, o outro script retomará a execução. De forma semelhante, se uma linha em um script Data Change mudar o valor de uma tag que é vinculada ao segundo script Data Change, o primeiro script Data Change ficará em pausa, o segundo script Data Change executará e, em seguida, o primeiro script Data Change retomará a execução. Scripts Data Change executam apenas quando um valor de tag é atualizado. Se o valor de tag vem de um DDE, o script Data Change executa uma vez que o valor DDE seja recebido. Se o valor de tag é modificado por outro script, o script Data Change executará imediatamente e concluirá antes do InTouch executar a próxima linha no script. Observe que isto pode resultar em uma malha infinita. Para evitar que isto aconteça, não permita que um script execute se ele ainda estiver ativo. Aqui há dois exemplos de como evitar uma malha infinita em um script:
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-16
Apêndice E – Notas técnicas relacionadas ao InTouch Script Data Change em Tag1 que modifica Tag2. Script Data Change em Tag2. Script1 modifica Tag1.Script1 chama Script2 que chama Script3 que tenta chamar Script2. Neste caso, a última tentativa de chamar Script2 não executará. P Qual a seqüência e a temporização para executar comandos dentro de um script? R Cada comando em um script é executado a fim de que ele seja encontrado no arquivo script. Cada comando é concluído antes que ele se mova para o próximo comando, exceto para funções que requerem uma tag DONE como FileMove(), FileCopy() ou PrintWindow(). A seguir há uma lista de ordem de precedência, em ordem decrescente, para avaliação de operadores de script. Os operadores que estão listados na mesma linha têm precedência igual. ()
Mais alta precedência
- , NOT, ~ ** * , /, MOD +, SHL, SHR <, >, <=, > = ==, <> & ^ | = AND OR
Mais baixa precedência
P Quais os efeitos de espaços em branco e de caracteres de comentário em um script? R Espaços em branco e caracteres de comentário são ignorados. Quando a chave à esquerda ({) é encontrada, o mecanismo de script continua a ignorar os caracteres até que uma chave à direita (}) seja encontrada. Isto pode ser usado em qualquer script InTouch ou na caixa de expressão. Seu efeito na temporização do script é irrelevante. O Suporte Técnico Wonderware recomenda que documente seus scripts e expressões com os caracteres de comentário. P Como os scripts interagem? O que é previsível e o que não é? R Se um script estiver em execução no momento e um segundo script é disparado, o primeiro script é parado e o segundo executa até a conclusão. Qualquer tagname que é modificado pelo segundo script será visto pelo primeiro script. Se um valor de tag é modificado, a mensagem é modificada imediatamente, mas não será processada pelo programa que o recebe (ou seja, um servidor de E/S) até pelo menos o final do script. Quando o servidor DDE chega ao processador, ele fará a escrita em sua próxima mensagem para aquele tópico em particular. P Como posso usar um script como uma sub-rotina? R Os scripts Data Change podem ser usados como sub-rotina para outros scripts. Ou seja, se o script Data Change é iniciado de outro script, o InTouch fará a ramificação e a execução do script Data Change como uma sub-rotina. Por exemplo, digamos que você tenha um script Data Change baseado em uma tag denominada Trigger e o script usa “value = value + 10;”. Então, é possível criar um script Botão ou um Condition com estas linhas:
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch trigger trigger trigger trigger
= = = =
not not not not
E-17
trigger; trigger; trigger; trigger;
Quando este script executa uma vez, o script Data Change em Trigger executa toda vez que “trigger = not trigger” foi interpretado enquanto ele estava ainda processando o primeiro script. Esta técnica permite ajustar sub-rotinas que podem ser disparadas de dentro de outros scripts. Isto pode ser muito potente! Entretanto, uma mudança em um valor de tag não deve ser usada para chamar um script disparado anteriormente (ou seja se Script1 chama Script2 que chama Script3 que tenta chamar Script1, a chamada final não será executada). Ou seja, os tagnames que são modificados em um script Condition ou Data Change não devem ser usados como o tagname para um script Data Change ou na expressão de um script Condition. Exemplo: Um script Data Change que executa com base no valor da tag “A”, contém a linha “B=B+1.” Tagname “B” deve É possível também “encadear” seus scripts (ou seja, ter um script que chama outro script que chama outro script, etc.). Mas, o número máximo de níveis encadeados para execução de script depende do tamanho da pilha de janela que é representada pelo valor de parâmetro Stack em seu arquivo SYSTEM.INI. (Durante a instalação, o InTouch garante que o parâmetro Stack seja ajustado com um valor adequado para a maioria das situações de script.) P Posso modificar o valor de uma tag que está vinculada a um script Data Change que está dentro do corpo do mesmo script? E a modificação de valores de tag que estão vinculados a um script Condition? R Se o tagname estiver vinculado ao script Data Change (ou seja, ele é listado no campo Tagname), e o valor da tag é modificado dentro do corpo desse mesmo script, ele modificará o valor uma vez. Por exemplo, se o tagname MYTAG estiver vinculado ao script Data Change que contém a linha “MYTAG = MYTAG + 1”, o script aumentará o valor de MYTAG em um e sairá. O script Data Change não executará novamente. Esta função evita malhas infinitas. Se o valor MYTAG é redefinido diversas vezes no script Data Change, cada redefinição ocorrerá, mas o script Data Change não executará novamente. Advertência Não escreva nenhum script que dependa deste comportamento. As versões futuras do InTouch podem não operar de acordo com esta lógica e deixarão seu aplicativo exposto a dificuldades de atualização e/ou incompatibilidades. Se modificar o valor de uma tag vinculada a um script Condition interno ao corpo desse script, os resultados podem não ser os esperados. Veja um exemplo do que acontece ao fazer isto. Veja um exemplo de script Condition: Condition: ( X == 25 ) ON TRUE body: PrintWindow("Main Window"); Blob = TAN(MyAngle); X=0; AppActivate("NotePad"); Show("Blaster Control"); TagLevel = NewValue * SIN( Blob ); ON FALSE body: SendKeys("Main Window Printed"); Blob = 0;
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-18
Apêndice E – Notas técnicas relacionadas ao InTouch Você pode imaginar que a execução ocorreria da seguinte maneira: PrintWindow("Main Window"); Blob = TAN(MyAngle); X=0; AppActivate("NotePad"); Show("Blaster Control"); TagLevel = NewValue * SIN( Blob ); SendKeys("Main Window Printed"); Blob = 0;
Isto faz sentido; O script ON-TRUE executa primeiro, depois o ON-FALSE. Mas o que acontece realmente é isto: PrintWindow("Main Window"); Blob = TAN(MyAngle); X=0; [ Pause the ON-TRUE ] [ Launch ON-FALSE ] SendKeys("Main Window Printed"); Blob = 0; [ Resume ON-TRUE ] AppActivate("NotePad"); Show("Blaster Control"); TagLevel = NewValue * SIN( Blob );
Agora o valor de Blob foi reinicializado como zero (no momento errado) e, ainda mais importante, o SendKeys falhou em alcançar o Notepad, uma vez que ele ainda não estava ativo. P Se uma tag é definida como retentiva e seu valor muda em um script, o arquivo de E/S é executado imediatamente após o valor mudar? R Não, não até que o script conclua a execução. P É verdade que se um valor de tag muda dentro de um script, qualquer script Data Change executará imediatamente? E os scripts Condition ajustados como On True ou On False—estes tipos de Scripts Condition executarão imediatamente quando afetados pelo novo valor da tag? R Sim, para as duas perguntas. É importante lembrar que esta função pode mudar em versões futuras do InTouch. Em geral, você não deve confiar que scripts Data Change ou scripts Condition executem imediatamente após o valor de tag mudar. Ao invés disto, você deve projetar seu sistema para evitar a ocorrência deste tipo de condição. Desta forma, seu aplicativo não será afetado adversamente quando atualizar para uma versão futura do InTouch. P Um script precisa executar até a conclusão antes que ele possa liberar a CPU? Em que ponto no script posso fazer um PeekMessage para dar a outros aplicativos uma chance de executar? Além disso, se um script dispara ou executa outros scripts, quando a CPU é liberada? R O mecanismo de script capturará a CPU durante a execução do script. Em nenhum momento, durante a execução de um script a CPU será liberada. PeekMessage( ), uma chamada Windows API, não é realizada enquanto o script executa. P Há um limite máximo para o nível de encadeamento para a execução de scripts? Quantos scripts podem ser conectados para executar em série através de um script Data Change? R O Suporte Técnico Wonderware não conhece um limite superior para quantos scripts podem ser encadeados ou quantos scripts podem ser conectados. É importante lembrar que a prática de conectar scripts intencionalmente não é uma boa idéia porque pode haver questões de incompatibilidade com versões futuras do InTouch.
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-19
P Se um valor de tag muda, o novo valor é enviado imediatamente ao servidor de E/S? Se não, quando? Quando o servidor de E/S realiza a escrita? Um servidor de E/S fica inativo enquanto o script é executado? R Não, o novo valor de tag não é imediatamente enviado ao servidor de E/S. Ao invés disto, o valor é enviado após o script ser concluído. E, sim, o servidor de E/S fica temporariamente inativo enquanto um script executa. P Quando as tags do sistema para data e hora são atualizadas? (ou seja, $Month, $Day, $Year, $Time, etc.) Pensei que fossem atualizadas com base no valor do ajuste Update Time Variables em /Special/Configure/View Generic. Escrevi um script para mudar a hora e data e $Time mudou, mas $Date não atualizou até que o WindowViewer foi reiniciado. R Se mudar a hora ou data do sistema em seu computador, certifique-se de enviar uma mensagem WM_TIMECHANGE a todos os aplicativos Windows que estão executando no momento, incluindo seus aplicativos InTouch. Os aplicativos Windows raramente ficam em “fila” para o tempo atual. P Quero imprimir um arquivo de meu aplicativo InTouch . Como faço isto? R É possível usar FileCopy()function, como neste exemplo: status = FileCopy("c:\autoexec.bat","lpt2", Monitor.Name);
Ele imprime o arquivo AUTOEXEC.BAT em uma impressora LPT2 e usa o Monitor da tag Integer como DoneTag. (Observação: É possível também usar a função FilePrint() que faz parte da biblioteca de função de script de Suporte Técnico e está disponível no CD de Base de Conhecimento .) P Como crio um temporizador em InTouch? R Use um script Condition que faz referência a uma tag Memory Discrete denominada Flag. Depois, crie um script On True Condition que faz referência a uma tag denominada Counter, ajustada em zero (ou seja, inicialize o contador). Ajuste o tempo, While True Every xxx msec, para a freqüência desejada. O script While True Condition deve incrementar a tag Counter toda vez que o script executa. Quando Counter é maior do que um valor pré-selecionado, ajuste uma tag Memory Discrete denominada Trigger em um (1). Veja um exemplo de script Condition: Counter = Counter + 1; IF Counter >= 5 THEN Trigger = 1; ENDIF;
P Como alterno uma tag discreta de um script? R Tente o seguinte: Discrete = 1 - Discrete;
OR Discrete = NOT( Discrete );
P Estou usando o script On Shutdown Application para encerrar os aplicativos ‘App1’ e ‘App2’ quando meu aplicativo InTouch sai (selecionando Exit do menu File). Este é o meu script On Shutdown Application: ActivateApp "App1"; SendKeys( "%(f)" ); SendKeys( "x" );
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-20
Apêndice E – Notas técnicas relacionadas ao InTouch ActivateApp "App2"; SendKeys( "%({F4})" );
Entretanto, quando saio de meu aplicativo, ‘App1’ e ‘App2’ ainda estão executando. Copiei este script para um script Pushbutton Action e os dois aplicativos foram encerrados. Por que meu script On Shutdown Application não funciona? R Porque o WindowViewer captura a CPU durante o encerramento, não é possível executar um script que faz com que outro aplicativo tenha acesso à CPU. Portanto, a função ActivateApp( ) não funcionará em um script On Shutdown Application. P Então, por que não há uma função script KillApp( )? R Há uma função script denominada WWControl( ). WWControl( ) pode ser usada para encerrar um aplicativo. Se usá-la em seu script Application Action, ela derrubará seus aplicativos durante o encerramento. Por exemplo, insira esta linha em seu script On Shutdown Application: WWControl( "Notepad - (Untitled)", "CLOSE");
Execute Notepad sem carregar qualquer arquivo e inicie o aplicativo em WindowViewer. Saia do WindowViewer e o aplicativo Notepad deve desaparecer.
Scripting Supplement B: Revisão detalhada das funções de script complexos O editor de script InTouch é compatível com dois “estilos” de scripts: Simples e Complexos. Scripts simples permitem fazer atribuições, comparações, funções de cálculo simples, etc. Scripts complexos permitem realizar declarações do tipo lógicas IF-THEN-ELSE e processar malhas usando a estrutura de script FOR-NEXT. Além disso, o InTouch também é compatível com o uso de funções de script complexas incorporadas, como StartApp(). Funções com o argumento ApplicationName iniciarão o aplicativo Windows identificado no argumento ApplicationName. Este tipo de funções pode ser usado em scripts complexos e simples. Observe que cada declaração IF requer uma declaração ENDIF. Além disso, esteja ciente de que uma declaração ELSE não é necessária se seu script não precisar dela. O primeiro NEXT fecha a malhar FOR mais interna e o último NEXT fecha a malha FOR mais externa. De forma semelhante, em declarações IF encadeadas, as declarações ENDIF automaticamente são aplicáveis à declaração IF anterior mais próxima. A seguir, um exemplo de um script IF-THEN-ELSE: IF React_temp > 200 THEN React_temp_sp = 150 PRValve = 1 PlaySound (“c:\fire.wav”,1); ELSE PRValve =0; PlaySound (“c:\All_Ok.wav”, 1); ENDIF;
Neste exemplo, o script verifica se React_temp é maior do que 200. Se for, então para Reactor_temp_sp é atribuído o valor 150, PRValve é ativado e o arquivo FIRE.WAV é executado. Se React_temp for igual ou menor que 200, então PRValve é desativado e o arquivo ALL_OK.WAV é executado. Observe o uso do PlaySound (path_text,number) neste script. Veja um exemplo do script malha FOR-NEXT. Esta malha realiza um cálculo matemático repetitivo simples. Quando executado, Product corresponde ao valor de NumberToRaise elevado à potência de 10 (ou seja, Product=NumberToRaise10).
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-21
Product = 1; NumberToRaise = 4; FOR Index = 1 TO 10 Product = Product * NumberToRaise; NEXT;
Uma vez que o script acima tenha concluído o processamento, o valor de Product será 1.048.576. Aqui há mais alguns exemplos de vários scripts complexos: Declaração IF-THEN sem cláusula ELSE: IF a <> 0 THEN a = a + 100; ENDIF;
Declaração IF-THEN-ELSE com uma cláusula ELSE: IF temp > 500 THEN Disc = 1; Real = 43.7; ELSE Disc = 0; Real = 93.4; ENDIF;
Declaração IF-THEN-ELSE com uma cláusula ELSE IF e uma cláusula ELSE: IF temp > 500 THEN Disc = Disc * 10; ELSE IF temp > 250 THEN x = y / z; a = abc + def; ENDIF; ENDIF;
Declaração IF-THEN-ELSE com uma cláusula ELSE IF e uma cláusula ELSE IF temp > 500 Disc = Disc ELSE IF temp < 250 Disc = Disc + ELSE Disc = Disc + Real = 100; ENDIF; ENDIF;
THEN 10; THEN 10; 50;
Declaração IF-THEN-ELSE com várias cláusulas ELSE IF e uma cláusula ELSE IF temp > 100 THEN temphihi = 1 Disc = 50; ELSE IF temp > 80 THEN temphi = 1; ELSE IF temp < 30 THEN templo = 1; ELSE IF temp < 10 THEN
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-22
Apêndice E – Notas técnicas relacionadas ao InTouch templolo = 1; ELSE tempok = l; ENDIF; ENDIF; ENDIF; ENDIF;
Declaração IF-THEN-ELSE que testa Condition 1 ou Condition 2 IF (pump1 < 50.0) OR (pump2 < 50.0) THEN alarm-1 = 1; ELSE alarm-1 = 0; ENDIF
Declaração IF-THEN-ELSE que testa Condition 1 e Condition 2 IF (pump1 < 50.0) AND (pump2 < 50.0) THEN alarm-2 = 1; ELSE alarm-2 = 0; ENDIF;
Declaração IF-THEN-ELSE que testa equivalência: IF a > 50 THEN IF b == 100 THEN c = 0; ENDIF; ENDIF;
As estruturas de controle podem ser colocadas dentro de outras estruturas de controle (como um bloco IF-THEN dentro de uma malha FOR-NEXT). Uma estrutura de controle dentro de outra estrutura de controle é conhecida como encadeamento. Exemplo: FOR TagX = 1 TO 5 FOR TagY = 1 TO 10 ...declarações... IF (condição) THEN [EXIT FOR;] ENDIF; ...declarações... NEXT; NEXT;
Onde: O primeiro NEXT fecha a malha FOR mais interna e o último NEXT fecha a malha FOR mais externa. De forma semelhante, em declarações IF encadeadas, as declarações ENDIF automaticamente são aplicáveis à declaração IF anterior mais próxima.
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-23
Tech Note 257
Compreensão das QuickFunctions Todas as Notas Técnicas e documentos KBCD e software são fornecidos "como estão" sem garantia de nenhum tipo. Consulte os Termos de Uso para mais informações. Tópico: t001033 Criado: 5 de novembro de 2001 Esta nota técnica aborda o uso de QuickFunctions em aplicativos InTouch e como eles operam. Ela também descreve a arquitetura correta de script sobre como QuickFunctions devem ou não ser usados. Os scripts QuickFunctions são uma ferramenta muito útil no desenvolvimento de aplicativo, mas também podem criar problemas se usados incorretamente dentro de um aplicativo. Discutiremos as técnicas corretas de script e forneceremos informação contextual sobre o thread QuickFunction e como ele se relaciona com scripts existentes no InTouch. Obs.: Este documento presume que você esteja familiarizado com o Sistema Operacional Windows, InTouch e script InTouch. Este documento refere-se ao uso correto de Scripts e QuickFunctions. Detalhes sobre QuickFunctions podem ser encontrados no Guia de Usuário InTouch e Technote 205 denominada “Using QuickFunctions in InTouch 7.x”.
Thread QuickFunction e scripts InTouch A fim de compreender o que fazer ou não ao usar QuickFunctions com scripts em InTouch, devemos primeiro entender os conceitos básicos sobre Windows Threading e analisar como QuickFunctions e Scripts interagem. No Sistema Operacional Windows, um thread é basicamente um caminho de execução através de um programa. Também é a menor unidade de execução que o Win32 agenda. Um thread é formado por uma pilha, o estado dos registros da CPU e uma entrada na lista de execução do programador do sistema. Cada thread compartilha todos os recursos de processo. Um processo é formado de uma ou mais threads e o código, data e outros recursos de um programa na memória. Ao executar um aplicativo InTouch todos os scripts executados pela ferramenta de script executam em um thread Síncrono juntamente com o WindowViewer. Os tipos de script incluem scripts application, data change, condition e window. Cada tipo de script tem uma prioridade específica e uma ordem na qual eles são executados. Isto pode ser visto no formulário de fluxograma como descrito na Technote 21, “Entender como scripts operam no InTouch”. Outro tipo de script no InTouch é denominado QuickFunction. QuickFunctions são scripts que podem ser escritos e chamados de outros scripts ou expressões. Chamar QuickFunctions de outros scripts ou expressões permite criar um script uma vez e reutilizá-lo. QuickFunctions executam de modo Síncrono no thread de script principal na medida em que são chamados de diversos scripts. QuickFunctions são os únicos scripts que também podem ser configurados para executar em modo Assíncrono. Isto permite que o QuickFunction execute em um thread separado fora do thread de script Síncrono existente. Esta funcionalidade permite que o WindowViewer separe operações demoradas (como chamar um banco de dados SQL) do fluxo de programa principal. Isto permite que todos os outros scripts permaneçam ativos enquanto a operação Assíncrona é executada.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-24
Apêndice E – Notas técnicas relacionadas ao InTouch
Obs.: Não há limite para quantas funções Assíncronas podem ser executadas, entretanto, para garantir um desempenho confiável, é altamente recomendado que não mais do que três sejam executadas simultaneamente. Cada thread Assíncrono requer muitos recursos, reduzindo, assim, o desempenho do sistema.
Por dentro dos QuickFunctions Quando um QuickFunction é chamado, a função CallExecute() é chamada. CallExecute() é a única função, que considera uma expressão de função rápida analisada (síncrona ou assíncrona) como um parâmetro e tenta executá-la. Esta função verificará também o tipo de QuickFunction. Não mais do que dois threads podem executar este código ao mesmo tempo. Se o QuickFunction chamado é Assíncrono, CallExecute() considera a expressão QuickFunction Assíncrono como um parâmetro, determina que é uma QuickFunction Assíncrono, lança um thread separado para executá-lo e sai. Se o QuickFunction chamado for síncrono, CallExecute() considera a expressão QuickFunction síncrono como um parâmetro, determina que ele é síncrono, executa como parte do mesmo thread que o chamou e não sai até que o QuickFunction síncrono seja concluído. Exemplos: Um QuickFunction Assíncrono é chamado a partir de um aplicativo, script Data Change, script Condition ou botão Action a. O script Application, Data Change Script (DCS), Condition Script (CSC) ou Action é iniciado (thread principal) b. A chamada para o QuickFunction Assíncrono é atingido c. CallExecute() determina que o QuickFunction é assíncrono e um novo thread é criado d. Após a criação de um thread, o script principal estará esperando pelo thread a ser inicializado e. Após a inicialização do thread, o controle é transferido de volta para o script principal sem executar o script Assíncrono O thread do script Assíncrono inicia a execução quando o sistema operacional fornecer uma fatia de tempo. O thread do script Assíncrono tem uma prioridade mais baixa e o sistema operacional determina a possibilidade do thread executar (usando um conjunto de filas de prioridade). Quando é hora de uma troca de contexto, o sistema operacional examina o conjunto de threads prontos e seleciona o cabeçalho da fila com prioridade mais elevada a ser executada. É possível executar mais do que uma instância de qualquer QuickFunction Assíncrono? Vamos considerar que um QuickFunction Assíncrono denominado ‘QF’ que pode ser chamado a partir de 2 scripts Data Change denominados DCS1 e DCS2 e os dois scripts Data Change são disparados ao mesmo tempo.Não, não é possível executar mais do que uma instância de qualquer QuickFunction Assíncrono ao mesmo tempo. DCS1 Logmessage("DCS1 started"); Call QF(); Logmessage("DCS1 ended");
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-25
DCS2 Logmessage("DCS2 started"); Call QF(); Logmessage("DCS2 ended");
QF Logmessage("QF started"); Logmessage("QF ended");
Comportamento 1) DCS1 iniciado 2) DCS1 concluído 3) DCS2 iniciado 4) QF iniciado 5) QF concluído Como pode observar, o QuickFunction Assíncrono foi executado somente uma vez e o DCS2 nunca terminou. Possível Solução DCS2 Logmessage("DCS2 started"); If NOT IsAnyAsyncFunctionBusy(1); Call QF2(); Logmessage("DCS2 ended");
Comportamento 1) DCS1 iniciado 2) DCS1 concluído 3) DCS2 iniciado 4) QF iniciado 5) QF concluído 6) DCS2 concluído 7) QF iniciado 8) QF concluído Como pode observar, o QF foi executado duas vezes e o DCS2 executou até o seu final. Este comportamento é verdadeiro somente se o QuickFunction Assíncrono terminou executando em 1 segundo. Se QF demorar mais do que 1 segundo para executar, ele não será chamado novamente do segundo script Data Change. Chamar um QuickFunction enquanto outro QuickFunction Síncrono chamada de um QuickFunction Assíncrono está executando Vamos considerar que temos um QuickFunction Assíncrono denominado QF_Async que chama um QuickFunction Síncrono denominado QF_Sync. Espera-se que o QuickFunction Síncrono dure ‘X’ segundos. Se o aplicativo tentar chamar um terceiro QuickFunction (Assíncrono ou Síncrono) enquanto QF_Sync ainda está executando, as atualizações de View pararão. As atualizações serão retomadas assim que QF_Sync termine.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-26
Apêndice E – Notas técnicas relacionadas ao InTouch Explicação 1) CallExecute() considera a expressão QF_Async como um parâmetro e verifica seu tipo. Sendo um QuickFunction Assíncrono, ela lançará um thread separado para executá-la e CallExecute() sairá. 2) QF_Async chama QF_Sync. CallExecute() é chamada novamente deste segundo thread. Ele determina que QF_Sync é um QuickFunction Síncrono, começa a executá-lo e não sai antes que QF_Sync termine. 3) Um terceiro QuickFunction é chamado a partir de um CSC, DCS ou script Application. Agora o thread principal não pode chamar a função CallExecute(), pois ela já está ocupada como parte da execução do thread secundário. Então, o thread principal tem que esperar até que CallExecute () esteja livre da execução do thread secundário. Durante este tempo, View parará a atualização. Obs.: Isto pode criar um problema para falha de “Hot Backup” sobre a lógica que pode depender de contador ou de scripts Heartbeat que não estarão em execução nesta situação, resultando em uma falsa perda de comunicação.
Como o IsAnyAsyncFunctionBusy(timeout) funciona? É possível usar a função IsAnyAsyncFunctionBusy() para descobrir se algum QuickFunction Assíncrono está executando. Esta função pode ser usada para fazer um QuickScript, o que permitirá chamar um QuickFunction Assíncrono e esperar que todos os outros QuickFunction Assíncronos concluam o processamento. Isto permite que o QuickScript se resincronize. Sintaxe DiscreteTag = IsAnyAsyncFunctionBusy(timeout); DiscreteTag
É um tagname do tipo discreto para o qual um valor é retornado da seguinte
maneira: Se a função atinge o tempo-limite, esperando que a execução dos QuickFunctions conclua, um valor de 1 (verdadeiro) é retornado à DiscreteTag.
Se não houver QuickFunction Assíncrono executando, um valor 0 (falso) será retornado imediatamente, ou o QuickFunction esperará pelo fim do tempolimite. Ele também retorna um valor de 0 se, após um tempo-limite, não houver um QuickFunction Assíncrono executando. timeout
É um valor inteiro representando o número de segundos a serem esperados para determinar se algum QuickFunction Assíncrono está executando. Durante o período de 'tempo-limite', IsAnyAsyncFunctionBusy() realizará verificações contínuas para ver se algum QuickFunction Assíncrono está executando.
Obs.: O valor do parâmetro 'Timeout' deve ser selecionado cuidadosamente. Se houver algum QuickFunction Assíncrono executando quando a função IsAnyAsyncFunctionsBusy(timeout) é chamada, o WindowViewer parará a atualização até que todos os QuickFunction Assíncronos terminem ou até que o 'tempo-limite' tenha decorrido.
Treinamento Wonderware
Apêndice E – Notas técnicas relacionadas ao InTouch
E-27
Exemplos: CSC1 Logmessage("CSC1 started"); Call QF(); Logmessage("CSC1 ended");
CSC2 Logmessage("CSC2 started"); IF NOT IsAnyAsyncFunctionBusy(10) THEN Call QF2(); ENDIF;
QF1 Logmessage("QF1 started"); For index=1 to 999999 Mytag=Mytag+1; NEXT; Logmessage("QF1 ended");
Como pode observar, QF1 está executando um ForNextLoop que terá um tempo-limite de 5 segundos. QF1 levará 5 segundos para executar. Obs.: Ao usar “For Next Loops”, o atraso de tempo-limite pode ser ajustado adicionando a linha “looptimeout=seconds” no arquivo Intouch.ini. Segundos é o tempo definido em que For next loop deve ser concluída, de forma que ela não execute indefinidamente. Neste exemplo de teste, temos “looptimeout=5” no arquivo Intouch.ini. QF2 Logmessage("QF2 started"); Logmessage("QF2 ended");
Comportamento 1) 17:01:27.734
CSC1 iniciado
2) 17:01:27.734
CSC1 concluído
3) 17:01:27.734
CSC2 iniciado
4) 17:01:27.734
QF1 iniciado
5) 17:01:32.734
QF1 concluído
6) 17:01:32.734
CSC2 concluído
7) 17:01:32.734
QF2 iniciado
8) 17:01:32.734
QF2 concluído
Observe que um segundo script de condição (CSC2) não iniciou o QF2 QuickFunction Assíncrono até o término de QF1 (atraso de 5 segundos). A IsAnyAsyncFunctionBusy (10) verifica constantemente se há algum QuickFunction Assíncrono está executando. Em nosso caso, QF1 estava executando. Assim que QF1 terminou, QF2 foi chamado. Se QF1 tivesse levado mais do que 10 segundos (tempo-limite) para executar, QF2 nunca teria sido executado porque a IsAnyAsyncFunctionBusy(10) tem um tempo-limite de 10 segundos.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
E-28
Apêndice E – Notas técnicas relacionadas ao InTouch Definição de atrasos entre dois QuickFunction Assíncronos Vamos considerar que temos dois QuickFunction Assíncronos: QF1 e QF2 que podem ser declarados ao mesmo tempo a partir de dois Scripts Condition (CSC1 e CSC2) diferentes. O ideal seria que você tivesse apenas um QuickFunction Assíncrono executando em um determinado momento. É possível implementar a lógica descrita no exemplo acima: IF NOT IsAnyAsyncFunctionBusy(10) THEN Call QF2();
Se tivermos a lógica acima implementada, corremos o risco de nunca disparar QF2 (se QF1 levar mais do que 10 segundos para executar). Você está disposto a esperar 3 segundos para garantir que nenhum QuickFunction Assíncrono esteja executando antes de disparar QF2, mas após 3 segundos, é necessário disparar QF2 (mesmo se QF1 não terminou). Solução CSC1 Logmessage("CSC1 started"); Call QF1(); Logmessage("CSC1 ended");
CSC2: Logmessage("CSC2 started"); IsAnyAsyncFunctionBusy (3); Call QF2(); ENDIF;
Implementando a lógica acima, QF2 será disparado assim que nenhum outro QuickFunction Assíncrono estiver executando ou após 3 segundos (o que for mais curto).
Recomendações 1. Não execute mais do que três QuickFunction Assíncronos simultaneamente. (A execução de apenas um QuickFunction Assíncrono por vez é altamente recomendada.) 2. Não tente executar mais do que uma instância de qualquer QuickFunction Assíncrono ao mesmo tempo. 3. Evite chamar QuickFunctions Síncronos de dentro de um QuickFunction Assíncrono especialmente quando não souber quanto tempo a função Síncrona levará. 4. Controle o lançamento de QuickFunction Assíncrono usando tags discretas (Flags) para determinar quando um QuickFunction Assíncrono termina e quando iniciar outro QuickFunction Assíncrono. A IsAnyAsyncFunctionBusy() pode ser usada também para determinar se algum script Assíncrono está executando.
Treinamento Wonderware
Apêndice F
Simulação de E/S
F-2
Apêndice F – Simulação de E/S Introdução Neste laboratório, você configurará um servidor SIMULATE I/O e estabelecerá comunicação com o InTouch S criando e animando as novas tags. Este laboratório tem por objetivo ser usado durante o Module 8, “I/O Communication” e deve substituir o Lab 9, “Configuring I/O Communication” no caso de um PLC não estar disponível para InTouch. Este laboratório foi desenvolvido usando o aplicativo de servidor SIMULATE I/O que é enviado com o InTouch.
Objetivos Ao término deste laboratório, você deverá ter uma janela InTouch que usa dados de E/S do aplicativo Simulation. Para isto, as seguintes tarefas devem ser concluídas com sucesso: z
Iniciar e Configurar o servidor SIMULATE I/O
z
Criar um Novo Nome de Acesso
z
Criar um Aplicativo Factory Floor
Iniciar e configurar o servidor SIMULATE I/O 1. Inicie o servidor Simulate I/O selecionando Start / Run da barra de tarefas Windows . 2. Entre em Simulate e pressione a tecla Enter . O servidor Simulate inicia.
3. Clique em Configure / Topic Definition. A caixa de diálogo Topic Definition é exibida:
4. Clique em New.
Treinamento Wonderware
Apêndice F – Simulação de E/S
F-3
A caixa de diálogo SIMULATE Topic Definition é exibida. 5. Configure a caixa de diálogo SIMULATE Topic Definition para corresponder a figura a seguir:
6. Clique em OK. A caixa de diálogo Save Configuration é exibida:
7. Clique em OK para aceitar o diretório padrão. O tópico é exibido no painel Topic Definition Topics
8. Clique em Done.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
F-4
Apêndice F – Simulação de E/S Criação de um novo nome de acesso 1. Selecione Configure / Access Names do WindowMaker Application Explorer. 2. Clique com o botão direito do mouse em Access Names e selecione New.
3. Clique em Add. \ A caixa de diálogo Add Access Name é exibida:
4. Configure a caixa de diálogo Add Access Name como exibido e clique em OK para aceitar o novo Access Name. O novo nome é exibido:
5. Clique em Close.
Treinamento Wonderware
Apêndice F – Simulação de E/S
F-5
Criação de um Aplicativo Factory Floor Nesta tarefa, criaremos uma nova janela denominada Main, onde os materiais serão recebidos da tremonha para um tambor de mistura. Haverá duas válvulas anexadas ao tambor de mistura permitindo que dois ou mais materiais sejam adicionados. A mistura será então agitada e drenada. 1. Crie uma nova janela denominada Main.
2. Crie as tags a seguir. Uma vez que estaremos nos comunicando com o PLC, as tags precisarão ser atribuídas ao Nome de Acesso , PLC1 com os itens listados abaixo. Observação Importante: Todas as tags, exceto a tag Start, devem ser configuradas como ‘somente leitura’.
Tagname
Tipo de tag
Nome de Acesso:
Item
Start
E/S discreta:
PLC1
Início
Valve_A
E/S discreta:
PLC1
V1
Valve_B
E/S discreta:
PLC1
V2
Agitador
E/S discreta:
PLC1
A1
Drain_Valve
E/S discreta:
PLC1
V3
Tank_Level
Inteiro E/S
PLC1
L1 (Min/Max EU 0-1000) (Min/Max Raw 0-1000)
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
F-6
Apêndice F – Simulação de E/S 3. Adicionar texto a cada uma das tags na janela Main .
4. Vincule cada objeto de texto à tag apropriada a seguir. Objeto de Texto
Link de animação
Propriedade / Ajuste de Parâmetro
Pushbutton Touchscreen - Valor Discreto
Ação: Toggle
Cor de Texto Discreto
1,Verdadeiro,Habilitado: Vermelho/ 0,Falso,Desabilitado: Verde
Valve_A
Cor de Texto Discreto
1,Verdadeiro,Habilitado: Vermelho/ 0,Falso,Desabilitado: Verde
Valve_B
Cor de Texto Discreto
1,Verdadeiro,Habilitado: Vermelho/ 0,Falso,Desabilitado: Verde
Agitador
Cor de Texto Discreto
1,Verdadeiro,Habilitado: Vermelho/ 0,Falso,Desabilitado: Verde
Drain_Valve
Cor de Texto Discreto
1,Verdadeiro,Habilitado: Vermelho/ 0,Falso,Desabilitado: Verde
Tank_Level
Exibir valor - Analógico
Início
Treinamento Wonderware
Apêndice F – Simulação de E/S
F-7
5. Alterne para Runtime para testar os links.
O campo de texto Start deve ser alternado entre Verde e Vermelho quando clicado. O campo de texto Gate_Valve deve mudar de Verde para Vermelho quando o valor da tag muda. Os campos de textos Valve_A e Valve_B devem mudar de Verde para Vermelho quando o valor da tag mudar. O campo de texto Agitator deve mudar de Verde para Vermelho quando o valor da tag muda. O campo de texto Drain_Valve deve mudar de Verde para Vermelho quando o valor da tag muda. O campo de texto Tank_Level deve mudar quando o valor da tag muda. Agora é com você. Tente ser o mais criativo possível. Por exemplo: use o máximo de links de animação possível, implemente tendências, tente usar assistentes, bitmaps, etc. Os materiais usados nesta visualização de processo são totalmente escolhidos por você. Observação Importante: Descrição do Processo Quando Start é ajustado como Verdadeiro, Agitator é ajustado como Verdadeiro, Valve_A é ajustado como Verdadeiro e Tank_Level começa a aumentar até que atinja 800. At Tank_Level = 800, Valve_A é ajustado como Falso e Valve_B é ajustado como Verdadeiro. Em Tank_Level = 1000, Valve_B é ajustado como Falso, Agitator é ajustado como Falso, Drain_Valve é ajustado como Verdadeiro e Tank_Level reduzirá até que atinja 0 (zero). Enquanto Start for Verdadeiro e quando Tank_Level = 0, todo o processo se repete. Quando Start é ajustado como Falso, todos os pontos são configurados como Falso / 0 (zero).
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
F-8
Apêndice F – Simulação de E/S
– Deixado em branco intencionalmente –
Treinamento Wonderware
Apêndice G
Funções de script
G-2
Apêndice G – Funções de script
Características gerais Este Apêndice explica as Funções Script InTouch e é organizado para refletir os grupos de Função encontrados dentro do InTouch.
z
Funções string
z
Funções de cálculo
z
Funções de sistema
z
Complementos
z
Diversas funções
Treinamento Wonderware
Apêndice G – Funções de script
G-3
Funções string Funções string são usadas em variáveis string. Função
Descrição
DText
Muda o tagname de mensagem baseado no valor de um tagname discreta.
StringASCII
Retorna o valor ASCII do primeiro caractere em um tagname de mensagem especificada.
StringChar
Retorna o caractere correspondente a um código ASCII especificado.
StringCompare
Compara dois strings de texto (sensível a maiúscula/minúscula).
StringCompareNoCase
Compara dois strings de texto (não sensível a maiúscula/minúscula).
StringFromIntg
Converte um valor inteiro em sua representação string em outra base.
StringFromReal
Converte um valor real em uma representação string, seja um número de ponto flutuante ou uma notação exponencial.
StringFromTime
Converte um valor de tempo (em segundos desde Jan-01-1970) em uma representação de string particular. O valor de tempo deve ser igual a UTC (total de segundos desde Jan-01-1970 GMT). O valor retornado é o horário local.
StringFromTimeLocal
Converte um valor de tempo (em segundos desde Jan-01-1970) em uma representação string particular. O valor retornado reflete Localtime.
StringInString
Retorna a posição em Text onde Search For ocorre pela primeira vez.
StringLeft
Retorna o número de caracteres especificados por Chars a paartir do caractere de texto mais à esquerda.
StringLen
Retorna o comprimento de texto para um resultado inteiro.
StringLower
Converte todos os caracteres maiúsculos em texto com caractere minúsculo e coloca o string resultante em MessageResult.
StringMid
Extrai do texto o número específico de caracteres especificado por Chars, começando na posição StartChar. Esta função é ligeiramente diferente de seu complemento, a função StringLeft() e a função StringRight(), porque ela permite ao usuário especificar o início e o fim do string a ser extraído da tag de mensagem.
StringReplace
Substitui ou muda partes específicas de um string fornecido. Usar esta função pode remover um tagname string e substituir caracteres, palavras ou frases.
StringRight
Retorna o número de caracteres especificados por Chars começando no caractere de texto mais à direita.
StringSpace
Gera um string de espaços dentro de um tagname de mensagem ou de uma expressão.
StringTest
Testa o primeiro caractere de texto para determinar qual seu tipo.
StringToIntg
Converte o valor numérico de um tagname de mensagem em um valor inteiro para o qual cálculos matemáticos podem ser aplicados.
StringToReal
Converte o valor numérico de um tagname de mensagem em um valor real (ponto flutuante) para o qual cálculos matemáticos podem ser aplicados.
StringTrim
Remove espaços de texto não desejados.
StringUpper
Converte todos os caracteres minúsculos em texto para letra maiúscula.
Text
Faz com que um tipo de tagname exiba o valor de um tagname analógico (inteiro ou real) com base no Format_Text especificado.
WWStringFromTime
Extrai 1 de 5 formatos de hora de um determinado campo formatado de hora/ data: 1: 08/22/2003 2: 12:51:26 AM 3: Sex Ago 22 00:52:03 2003 4: Sex 5: Sexta-feira
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
G-4
Apêndice G – Funções de script Funções de cálculo A tabela a seguir descreve rapidamente cada função de script de cálculo. Para mais detalhes e exemplos de sintaxe, consulte os arquivos de Ajuda do aplicativo InTouch . Função
Descrição
Abs
Retorna o valor absoluto (equivalente sem sinal) de um número especificado.
ArcCos
Dado um número entre -1 e 1 (inclusive), retorna um ângulo entre 0 e 180 graus cujo co-seno corresponde a este número.
ArcSin
Dado um número entre -1 e 1 (inclusive), retorna um ângulo entre -90 e 90 graus cujo seno corresponde a este número.
ArcTan
Dado um número entre, retorna um ângulo entre -90 e 90 graus cuja tangente corresponde a este número.
Cos
Retorna o co-seno de um ângulo dado em graus.
Exp
Retorna o resultado de e elevado à potência.
Int
Retorna o próximo inteiro menos que ou igual a um número especificado.
Log
Retorna o log natural de um número.
LogN
Retorna os valores do logaritmo de x à base n.
Pi
Retorna o valor de Pi.
Round
Arredonda um número real em uma precisão especificada.
Sgn
Determina o sinal de um valor (seja ele positivo, zero ou negativo).
Sin
Retorna o seno de um ângulo dado em graus.
Sqrt
Faz com que o InTouch calcule automaticamente a raiz quadrada do valor, que segue a declaração.
Tan
Retorna a tangente de um ângulo dado em graus.
Trunc
Trunca um número real (ponto flutuante) eliminando a porção à direita da casa decimal.
Treinamento Wonderware
Apêndice G – Funções de script
G-5
Funções de sistema A tabela a seguir descreve rapidamente cada função de script de sistema. Para mais detalhes e exemplos de sintaxe, consulte os arquivos de Ajuda do aplicativo InTouch. Função
Descrição
ActivateApp
Ativa outro aplicativo Windows em execução no momento.
FileCopy
Copia um SourceFile para um DestFile, semelhante ao comando Copiar do DOS ou à função Copiar no Arquivo Windows.
FileDelete
Exclui arquivos desnecessários ou indesejados.
FileMove
Semelhante ao FileCopy() exceto por mover o arquivo de um local a outro.
FileReadFields
Lê um registro Variável Separada por Vírgula (CSV) de um arquivo especificado.
FileReadMessage
Lê um número especificado de bytes (ou toda uma linha) de um arquivo especificado.
FileWriteFields
Escreve um registro Variável Separada por Vírgula (CSV) para um arquivo especificado.
FileWriteMessage
Escreve um número especificado de bytes (ou toda uma linha) para um arquivo especificado.
InfoAppActive
Testa se um aplicativo está ativo.
InfoAppTitle
Retorna o nome de lista do Título do Aplicativo ou da Tarefa Windows de um programa especificado que está executando no momento.
InfoDisk
Retorna informações sobre um drive de disco local específico (ou rede).
InfoDosEnv
Esta função é usada para Recuperar o ajuste de uma variável de ambiente DOS em particular.
InfoFile
Retorna informações sobre um arquivo específico ou sub-diretório.
InfoInTouchAppDir
Retorna o aplicativo atual do diretório InTouch .
InfoResources
Retorna vários valores de recurso de sistema.
StartApp
Inicia automaticamente outro aplicativo Windows.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
G-6
Apêndice G – Funções de script Complementares Funções complementares estão fora do escopo do curso Básico InTouch. Elas estão incluídas aqui para fins de totalidade. Para mais informações sobre funções Add-ons, consulte os arquivos de ajuda InTouch. Função
Descrição
RecipeDelete
Exclui um Nome de Receita do arquivo de modelo de receita especificado.
RecipeGetMessage
Escreve um código de erro em um tagname Analógico e o código de erro correspondente a um tagname de mensagem.
RecipeLoad
Carrega uma receita específica para uma unidade específica de tagnames.
RecipeSave
Salva uma receita criada recentemente ou para salvar mudanças feitas em uma receita existente para o arquivo modelo de receita especificado.
RecipeSelectNextRecipe
Selecione o Nome de Receita seguinte atualmente definido no arquivo de modelo de receita.
RecipeSelectPreviousRecipe
Selecione o Nome de Receita anterior atualmente definido no arquivo de modelo de receita.
RecipeSelectRecipe
Selecione um Nome de Receita específico atualmente definido no arquivo de modelo de receita.
RecipeSelectUnit
Seleciona a unidade de tagnames para a qual os valores de receita atuais serão carregados.
SPCConnect
Usado em conjunto com conjuntos de dados de coleta de dados automáticos. Antes do conjunto de dados de coleta de dados Automático iniciar a coleta de dados, esta função deve ser usada para indicar ao SPC em qual usuário o nó se encontra.
SPCDatasetDig
Esta função é usada para exibir a caixa de diálogo SPCPro Dataset Configuration no WindowViewer. Novos Conjuntos de Dados podem ser adicionados e excluídos. Não há parâmetros ou nenhum valor de retorno.
SPCDiconnect
Esta função é usada para desconectar um Agente de um banco de dados SPC Pro. Quando esta função é usada, todos os conjuntos que foram atribuídos ao Agente que estava desconectado pararão a coleta.
SPCDisplayData
Esta função é projetada para permitir fácil rolagem do gráfico para qualquer data e hora. É possível usar um tagname para monitorar o status da busca de dados SPC. O status conterá um 0 se o SPC encontrou dados e 1 se não foi possível encontrar dados para o período de tempo especificado.
SPCLocateScooter
Esta função é projetada para permitir fácil rolagem do Scooter para qualquer número de amostra válido. O tagname Scooter definido no conjunto de dados será atualizado com o valor de amostra da barra X. O ajuste de SampleNumber em 0 oculta/desabilita o Scooter.
SPCMoveScooter
Esta função é projetada para permitir fácil rolagem do Scooter para qualquer número de amostra válido. O tagname Scooter definido no conjunto de dados será atualizado com o valor de amostra da barra X.
SPCSaveSample
Salva uma amostra de entrada manualmente. Esta função é usada em conjunto com a função SPCSetMeasurement.
SPCSelectDataset
Abre uma caixa de diálogo a partir da qual o usuário pode selecionar um conjunto de dados direto.
SPCSelectProduct
Abre uma caixa de diálogo a partir da qual o usuário pode selecionar um produto em um determinado conjunto de dados.
Treinamento Wonderware
Apêndice G – Funções de script
G-7
Função
Descrição
SPCSetControlLimits
Permite entrada manual fácil ou orientada por evento dos valores limites de controle para um Gráfico de Controle.
SPCSetMeasurement
Permite entrada manual fácil ou orientada por evento de valores de medição analógicos pelo processamento de QuickScript.
SPCSetProductCollected
Muda o produto sendo coletado em um Conjunto de dados especificado.
SPCSetProductDisplayed
Muda o produto sendo exibido em um Conjunto de dados especificado.
SPCSetRangeLimits
Permite entrada manual fácil ou orientada por evento dos Limites de Controle para um Gráfico de Faixa.
SPCSetSpecLimits
Permite entrada manual fácil ou orientada por evento dos valores limites de especificação para um Gráfico de Controle.
SQLAppendStatement
Continua uma declaração SQL usando o conteúdo do string. Erros são retornados no retorno da função.
SQLClearParam
Limpa o valor do parâmetro especificado. SQLSetParam deve ser chamado novamente antes de chamar a função SQLExecute().
SQLClearStatement
Libera os recursos associados com a declaração especificada pelo SQLHandle.
SQLClearTable
Exclui todos os registros em uma tabela de banco de dados, mas mantém a tabela.
SQLCommit
O comando SQLCommit() define o fim de um grupo de comandos de transação. O grupo de comandos desenvolvido entre o comando SQLTransact() e o comando SQLCommit() é denominado um conjunto de transação. Um conjunto de transação é manuseado como uma única transação. Após o comando SQLTransact() ser abordado, todas as operações subseqüentes não serão comprometidas para o banco de dados até que o comando SQLCommit() seja abordado.
SQLConnect
Conecta o InTouch ao banco de dados especificado no ConnectString.
SQLCreateTable
Cria uma tabela no banco de dados usando os parâmetros no Modelo de Tabela nomeado. Os modelos de Tabela (definidos no arquivo SQL.DEF ) determinam a estrutura de uma tabela de banco de dados.
SQLDelete
Exclui um registro ou diversos registros.
SQLDisconnect
Desconecta o usuário do banco de dados.
SQLDropTable
Apaga uma tabela.
SQLEnd
Isto é usado após uma função SQLSelect() liberar recursos que estavam sendo usados para armazenar a Tabela Resultados.
SQLErrorMsg
Recupera a mensagem de erro de texto associada com um ResultCode específico. ErrorMsg é o tagname de Mensagem de Memória InTouch (máximo de 131 caracteres) associado ao ResultCode.
SQLExecute
Executa a declaração SQL. Se a declaração é uma declaração selecionada, o parâmetro BindList designa o nome de BindList para ser usado ao conectar as colunas de banco de dados com os tagnames. Se BindList é NULL, nenhum relacionamento de tagnames é formado. Por exemplo, a declaração SQL poderia ser Criar Visualização, Inserir, etc. Erros são retornados no retorno da função. Se a declaração foi "preparada," o manuseio da declaração retornada da preparação deve ser passada. Se a declaração não foi "preparada," o manuseio da declaração deve ser zero (0).
SQLFirst
Seleciona o primeiro registro da Tabela Resultados criado pela última função SQLSelect(). Uma função SQLSelect() deve ser processada antes de usar este comando.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
G-8
Apêndice G – Funções de script Função
Descrição
SQLGetRecord
Recupera o registro especificado pelo RecordNumber do buffer de seleção atual.
SQLInsert
Insere um novo registro na tabela de referência usando os valores dos tagnames no BindList fornecido. O parâmetro BindList define quais tagnames InTouch são usados e com quais colunas de banco de dados elas estão associadas.
SQLInsertEnd
Libera a declaração.
SQLInsertExecute
Executa a declaração já preparada.
SQLInsertPrepare
Cria e prepara uma declaração Insert para execução. A declaração Insert não é processada. O parâmetro SQLHandle é um tagname Integer que conterá um valor após a declaração ser processada.
SQLLast
Seleciona o último registro da Tabela Resultados criada pela última função SQLSelect(). Uma função SQLSelect() deve ser processada antes de usar este comando.
SQLLoadStatement
Lê a declaração contida no FileName. Neste ponto a declaração é semelhante a uma criada pela função SQLSetStatement() e pode ser acrescentada através de uma função SQLAppendStatement() ou executada pela função SQLExecute(). Pode haver somente uma declaração por arquivo. Entretanto, a função SQLAppendStatement() pode ser usada para acrescentar algo à declaração se a função SQLPrepareStatement() ou a função SQLExecute() não foi chamada.
SQLManageDSN
Executa o programa de configuração Microsoft ODBC Manager. Isto pode ser usado para adicionar, excluir e modificar todos os nomes de fonte de dados.
SQLNext
Seleciona o próximo registro da Tabela Resultados criada pela última função SQLSelect(). Uma função SQLSelect() deve ser processada antes de usar este comando.
SQLNumRows
Indica quantas linhas atendem o critério especificado na última função SQLSelect(). Por exemplo, se uma WhereExpression é usada para selecionar todas as linhas com um nome de coluna AGE, onde AGE corresponde a 45, o número de linhas retornado poderia ser 40 ou 4000. Isto pode determinar qual função é processada em seguida.
SQLPrepareStatement
Uma SQLPrepareStatement() prepara uma declaração SQL existente para uso pela função SQLSetParam(). Uma declaração pode ser criada usando uma SQLSetStatement() ou SQLLoadStatement(). O manuseio de declaração é retornado.
SQLPrev
Seleciona o registro anterior da Tabela Resultados criada pela última função SQLSelect().
SQLRollback
O comando SQLRollback() reverte ("roll back") o conjunto de transação comprometido recentemente. Um conjunto de transação é um grupo de comandos emitido entre o comando SQLTransact() e o comando SQLCommit() é ou o comando SQLRollback(). Um conjunto de transação é manuseado como uma única transação. Após o comando SQLTransact() ser emitido, todas as operações subseqüentes não são comprometidas com o banco de dados até que o comando SQLCommit() seja emitido.
Treinamento Wonderware
Apêndice G – Funções de script
G-9
Função
Descrição
SQLSelect
Instrui o banco de dados para recuperar informações da tabela. Quando uma função SQLSelect() é processada, uma Tabela de Resultados temporária é criada em memória, contendo registros que podem ser navegados usando funções SQLFirst(), SQLLast(), SQLNext() e SQLPrev(). Observação Sempre use a função SQLEnd() após um SQLSelect() liberar recursos que estavam sendo usados para armazenar a Tabela Resultados.
SQLSetParamClear
Estabelece o valor do parâmetro especificado para o string especificado. A função SQLSetParamChar() pode ser chamada várias vezes antes da execução, resultando no valor de parâmetro que está sendo ajustado para a concatenação de todos os valores enviados. Comprimentos de 0 (zero) são ignorados.
SQLSetParamDate
Estabelece o valor do parâmetro de data especificado para o string especificado.
SQLSetParamDateTime
Estabelece o valor do parâmetro de data-hora especificado para o string especificado.
SQLSetParamDecimal
Estabelece o valor do parâmetro decimal especificado para o string especificado. Precision é o número de dígitos no valor e Scale é o número de dígitos à direita da casa decimal.
SQLSetParamFloat
Estabelece o valor do parâmetro especificado para o ParameterValue especificado.
SQLSetParamInt
Estabelece o valor do parâmetro especificado para o ParameterValue especificado.
SQLSetParamLong
Estabelece o valor do parâmetro especificado para o ParameterValue especificado.
SQLSetParamNull
Estabelece o valor do parâmetro especificado para o NULL.
SQLSetParamTime
Estabelece o valor do parâmetro de hora especificado para o string especificado.
SQLSetStatement
Inicia um buffer de declaração SQL usando o conteúdo de SQLStatement, na conexão estabelecida, ConnectionID. Pode haver um buffer de declaração SQL por ConnectionID. Os erros são retornados no retorno da função.
SQLTransact
O comando SQLTransact() define o início de um grupo de comandos de transação. O grupo de comandos desenvolvido entre o comando SQLTransact() e o comando SQLCommit() é denominado um conjunto de transação. Um conjunto de transação é manuseado como uma única transação. Após o comando SQLTransact() ser emitido, todas as operações subseqüentes não serão comprometidas com o banco de dados até que o comando SQLCommit() seja emitido.
SQLUpdate
Modifica um registro que atualiza o registro com os valores de tagname atual.
SQLUpdateCurrent
Considera o registro selecionado atual e o atualiza com os novos valores InTouch. O exemplo a seguir atualizará o registro selecionado atual.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
G-10
Apêndice G – Funções de script Funções diversas Funções diversas são usadas para realizar várias ações, incluindo ocultar uma janela, monitorar e controlar tendência de histórico, imprimir janelas, etc. A sintaxe específica destas funções é abordada no Guia de Referência InTouch. Função
Descrição
Ack
Função script para reconhecer alarmes locais.
AddPermission
Estabelece o Nível de Acesso para um grupo em particular ou usuário no domínio especificado. Tentativas de atingir a conta Account localizada no Domínio Domain.
almAckAll
Reconhece todos os alarmes na consulta de alarme atual. Uma vez que a exibição de alarme tem apenas uma área de exibição limitada, a função almAckAll pode reconhecer alarmes que não são visíveis na exibição.
almAckDisplay
Reconhece apenas os alarmes que estão atualmente visíveis na exibição de alarme.
almAckGroup
Reconhece todos os alarmes que têm um determinado nome de Grupo do mesmo provedor.
almAckPriority
Reconhece todos os alarmes dentro de uma faixa de prioridade especificada tendo o mesmo nome de provedor e nome de grupo.
almAckRecent
Reconhece somente o alarme mais recente que ocorreu na consulta de alarme atual.
almAckSelect
A exibição de alarme distribuído permite que alarmes sejam selecionados clicando neles com o mouse em Runtime. A função almAckSelect pode ser usada para reconhecer estes alarmes.
almAckSelectedGroup
Reconhece todos os alarmes que têm o mesmo nome de grupo do mesmo provedor como um ou mais dos alarmes selecionados.
almAckSelectedPriority
Reconhece todos os alarmes que têm a mesma prioridade do mesmo provedor e nomes de grupo como um ou mais dos alarmes selecionados.
almAckSelectedTag
Reconhece todos os alarmes que têm o mesmo Tagname do mesmo provedor e nomes de grupo e têm a mesma prioridade como um ou mais dos alarmes selecionados.
almAckTag
Reconhece todos os alarmes que têm o mesmo Tagname, nome de Provedor e nome de Grupo dentro de uma determinada Faixa de prioridade.
almDefQuery
Realiza uma consulta para atualizar um objeto de exibição de alarme usando as propriedades padrões.
almMoveWindow
Rola a janela do objeto de exibição de alarme.
almQuery
Realiza uma consulta para atualizar um objeto de exibição de alarme.
almSelectAll
Alterna a seleção de todos os alarmes em um objeto de exibição de alarme.
almSelectGroup
Alterna a seleção de todos os alarmes que estão contidos em uma instância nomeada Distributed Alarm Display como resultado da última consulta de exibição e onde o alarme resultante contém o mesmo nome do grupo de alarme.
almSelectionCount
Retorna o valor inteiro contendo o número de alarmes selecionado pelo operador no Distributed Alarm Object.
almSelectItem
Alterna a seleção do item que foi destacado em um objeto de exibição de alarme.
Treinamento Wonderware
Apêndice G – Funções de script
G-11
Função
Descrição
almSelectPriority
Alterna todos os alarmes que estão contidos em uma instância Distributed Alarm Object nomeada como resultado da última consulta de exibição e onde os alarmes resultantes estão na faixa de prioridade especificada.
almSelectTag
Alterna todos os alarmes que estão contidos em uma instância Distributed Alarm Object nomeada como resultado da última consulta e de um determinado tagname.
almSetQueryByName
Inicia uma nova consulta de alarme para a instância nomeada Distributed Alarm Object usando os parâmetros de consulta associados ao nome de consulta definido pelo usuário (favorito).
almShowStats
Exibe a tela de estatísticas de objeto de exibição de alarme.
almSuppressAll
Suprime a exibição de todas as instâncias atuais e futuras dos alarmes na consulta atual incluindo os que não são exibidos no momento no objeto de exibição de resumo de alarme.
almSuppressDisplay
Suprime a exibição das ocorrências atuais e futuras destes alarmes visíveis no objeto de exibição de resumo de alarme.
almSuppressGroup
Suprime a exibição das ocorrências atuais e futuras dos alarmes que pertencem a um determinado nome de Grupo.
almSuppressPriority
Suprime a exibição das ocorrências atuais e futuras de qualquer alarme da faixa de prioridade especificada, tendo o mesmo nome de Provedor e nome de Grupo.
almSuppressRetain
Retém a supressão de alarme de todas as consultas seguintes.
almSuppressSelected
Suprime a exibição das ocorrências futuras dos alarmes selecionados no objeto de exibição de resumo de alarme.
almSuppressSelectedGroup
Suprime a exibição das ocorrências atuais e futuras dos alarmes que pertencem aos mesmos grupos de um ou mais alarmes selecionados tendo o mesmo nome de Provedor dentro de um Distributed Alarm Display Control nomeado.
almSuppressSelectedPriority
Suprime a exibição das ocorrências atuais e futuras dos alarmes que pertencem aos mesmos grupos de um ou mais alarmes selecionados tendo o mesmo nome de Provedor e tag de Grupo dentro de um Distributed Alarm Display Control nomeado.
almSuppressSelectedTag
Suprime a exibição das ocorrências atuais e futuras de qualquer alarme que pertence ao mesmo nome de Tagname de um ou mais alarmes selecionados tendo o mesmo nome de Provedor, nome de Grupo e faixa de Prioridade.
almSuppressTag
Suprime a exibição das ocorrências atuais e futuras de qualquer alarme emitido por um dado nome de tagname, tendo o mesmo nome de Provedor, de Grupo e faixa de Prioridade.
almUnselectAll
Remove todos os alarmes selecionados em uma instância Distributed Alarm Display nomeada.
almUnSuppressAll
Limpa todos os alarmes suprimidos.
APUFindAlarmGroupInstance
Encontra a primeira instância do Utilitário de Impressão de Alarme usando o String de Grupo de Alarme especificado. Isto pode ser usado para obter inicialmente a instância desejada de um Utilitário de Impressão de Alarme. O String de grupo de alarme inicial é lido a partir do arquivo ALC. A correspondência string String NÃO distingue maiúsculas e minúsculas.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
G-12
Apêndice G – Funções de script Função
Descrição
APUFindFileInstance
Encontra a primeira instância do Utilitário de Impressão de Alarme usando o arquivo de configuração ALC especificado. Isto pode ser usado para obter inicialmente a instância desejada de um Utilitário de Impressão de Alarme. O caminho do arquivo que uma instância de ALC usa pode ser controlado manualmente pelo usuário ou ele pode ser especificado na linha de comando quando o programa é iniciado. A correspondência string do caminho de arquivo NÃO distingue entre maiúsculas e minúsculas.
APUFindPrinterInstance
Encontra a primeira instância do Utilitário de Impressão de Alarme usando o nome ou a porta da impressora especificada. Isto pode ser usado para obter inicialmente a instância desejada de um Utilitário de Impressão de Alarme. O nome da impressora é armazenado e lido do arquivo ALC. A correspondência string do nome da impressora NÃO distingue entre maiúsculas e minúsculas.
APUGetAlarmGroupText
Obtém o Texto do Grupo de Alarme de Consulta de Alarme. O texto do grupo de alarme inicial é lido a partir do arquivo ALC.
APUGetConfigurationFilePath
Obtém o caminho completo do arquivo de configuração ALC em uso. O caminho do arquivo que uma instância de ALC usa pode ser controlado manualmente pelo usuário ou ele pode ser especificado na linha de comando quando o programa é iniciado.
APUGetInstanceCount
Retorna o número de instâncias de execução do Utilitário de Impressão de Alarme até e incluindo a instância dezesseis. Qualquer instância além das primeiras dezesseis executando simultaneamente não serão controladas dinamicamente e seus status não podem ser obtidos.
APUGetPrinterJobCount
Obtém a mais recente contagem de trabalho de status da impressora Windows para a impressora usada por esta instância. Os resultados não serão os atuais a menos que uma consulta esteja executando. Os resultados não serão os atuais a menos que um alarme seja impresso – a contagem de trabalho é geralmente atualizada quando a impressora é aberta inicialmente e depois toda vez que uma linha de alarme é impressa. É possível usar isto para determinar se o spooler do Windows está sendo preenchido com trabalhos da impressora de linha de alarme. Se este número tornar-se muito maior com o tempo, ele pode indicar que a impressora de linha de alarme está fisicamente desconectada ou sem papel ou tem algum outro erro não comunicado. Este valor somente é válido para impressoras atribuídas à uma impressora Windows e não significa muito para impressoras associadas com uma porta paralela ou serial.
APUGetPrinterName
Obtém o nome ou o nome da porta da impressora Windows para a impressora usada por esta instância. Retorna ‘NONE’ se nenhuma impressora estiver configurada. O nome da impressora é armazenado e lido do arquivo ALC.
Treinamento Wonderware
Apêndice G – Funções de script
G-13
Função
Descrição
APUGetPrinterStatus
Obtém o mais recente status da impressora Windows para a impressora usada por esta instância. Os resultados não serão os atuais a menos que uma consulta esteja executando. Os resultados não serão os atuais a menos que um alarme seja impresso – o status é geralmente atualizado quando a impressora é aberta inicialmente e depois toda vez que uma linha de alarme é impressa. O seletor pode ser um dos seguintes: · 0 = AlarmPrinterError · 1 = AlarmPrinterNoPaper · 2 = AlarmPrinterOffline · 3 = AlarmPrinterOverFlow NOTE: Esta informação de status está sendo consultada para a impressora com base nos padrões de driver Microsoft/Windows. Nem todos os Fabricantes de Impressora seguirão estes padrões e, portanto, nem todas as impressoras retornarão informações de status.
APUGetQueryAlarmState
Obtém o Estado de Alarme para a Consulta (0 = All, 1 = Ack, 2 = UnAck). O estado de alarme inicial é lido do arquivo ALC.
APUGetQueryFromPriority
Obtém a Prioridade de Formulário para a Consulta. A prioridade inicial é lida do arquivo ALC.
APUGetQueryProcessingState
Obtém o Estado de Processamento de Consulta de Alarme (0 = Stop, 1 = Start).
APUGetQueryToPriority
Obtém a Prioridade Principal para a Consulta. A prioridade inicial é lida do arquivo ALC.
APUIsInstanceUsed
O desempenho correto implica na instância estar em uso.
APUSetAlarmGroupText
Estabelece o Texto do Grupo de Alarme de Consulta de Alarme. Uma consulta não pode estar sendo executada para que esta função execute da forma correta. (Consulte as funções abaixo quanto a Iniciar, Parar e Estado de Processamento de Consulta) O texto de grupo de alarme inicial é lido de um arquivo ALC.
APUSetQueryAlarmState
Estabelece o Estado de Alarme para a Consulta (0 = All, 1 = Ack, 2 = UnAck). Uma consulta não pode estar executando para esta função ser correta. (Consulte as funções abaixo para Iniciar, Parar e Estado de Processamento de Consulta)
APUSetQueryFromPriority
Estabelece a Prioridade de Formulário para a Consulta. Uma consulta não pode estar executando para esta função ser correta. (Consulte as funções abaixo para Iniciar, Parar e Estado de Processamento de Consulta)
APUSetQueryToPriority
Estabelece a Prioridade Principal para a Consulta. A prioridade ‘Principal’ deve corresponder ou ser maior do que a prioridade ‘De’ ou a função não será correta. Uma consulta não pode estar executando para esta função ser correta. (Consulte as funções abaixo para Iniciar, Parar e Estado de Processamento de Consulta)
APUSetTimeoutValues
Especificar intervalos de tempo-limite em segundos. Isto pode controlar quantos erros relacionados a acesso à memória ou erros resultando de falha ao obter respostas válidas são observados enquanto o programa está em execução. O tempo-limite padrão para acesso de memória é de 2 segundos. O tempo de espera de resposta mais curto padrão é 10 segundos e o tempo de espera de resposta mas longo padrão é de 20 segundos.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
G-14
Apêndice G – Funções de script Função
Descrição
APUStartInstance
Inicia uma instância da Impressora de Alarme em um estado minimizado com o arquivo de configuração especificado. Retorna a instância iniciada para Instance ou um código de erro para ErrorCode. O programa de Impressora de Alarme não começará automaticamente o processamento do banco de dados de alarme. Use o comando APUStartQuery() para fazer com que a instância comece o processamento do banco de dados de alarme.
APUStartQuery
Estabelece os limites de data e de hora para registros serem processados e depois inicia a consulta. É um erro tentar iniciar uma consulta se uma consulta já estiver em execução. O ajuste de dados para todos 0 faz com que todos os alarmes sejam impressos. Qualquer 0 individual que implique em “estado não importante” faz o padrão para o valor razoável mais baixo. 01 de janeiro de 1900 à meia-noite é a hora mais antiga usada como o padrão. A hora e data especificada estão em horário local. Um valor –1 para o ano ajustará os dados para o horário atual em que o comando é processado
APUStopInstance
Para a instância especificada da Impressora de Alarme. Qualquer outra adição de registros a serem impressos parará, qualquer consulta que esteja em execução no momento comparada ao banco de dados de alarme para impressão será interrompida e a instância do programa sairá.
APUStopQuery
Solicita que a instância especificada pare de executar sua consulta. O aplicativo permanecerá em execução, mas não processará nenhuma outra consulta de banco de dados de alarme. Uma chamada para APUStartQuery() pode fazer com que a instância comece as consultas do banco de dados de alarme.
APUTranslateErrorCode
Converte um código de erro retornado por uma das funções APU em um string em inglês descrevendo rapidamente o código de erro. Pode falhar se um código de erro desconhecido for passado para conversão.
AttemptInvisibleLogon
Tenta conectar-se com o InTouch usando as credenciais fornecidas.
ChangePassword
Exibe a caixa de diálogo Change Password permitindo que o operador conectado mude sua senha.
ChangeWindowColor
A função script muda a cor da Janela InTouch usando valores vermelho, verde e azul que variam de 0 a 255.
DialogStringEntry
Exibe um teclado alfanumérico na tela, permitindo que o operador mude o valor de string atual de um tagname de mensagem no Dicionário Tagname.
DialogValueEntry
Exibe um teclado numérico na tela, permitindo que o usuário mude o valor atual de um tagname Discreta, Inteira ou Real no Dicionário Tagname.
EnableDisableKeys
Habilita/desabilita filtros de tecla para teclas Alt, Escape e Windows.
FilePrint
FilePrint é usado para dizer ao InTouch para imprimir o arquivo especificado.
FileSelect
Apresenta ao usuário a caixa de diálogo Windows File Open e retorna a inserção de arquivo especificada.
Treinamento Wonderware
Apêndice G – Funções de script
G-15
Função
Descrição
GetAccountStatus
Usado para determinar quando a senha do usuário expirará. O valor de retorno exibirá o número de dias (valor positivo) até que a senha do usuário expire. GetAccountStatus exibe também os valores de status de conta a seguir: Account password expired = -1 Account password will never expire = -2 Account locked out = -3 Account disabled = -4 Account info failed = -5 Os usuários podem escrever um script para exibir uma janela pop-up mostrando o número de dias até que a senha do usuário expire, ou a correta mensagem/advertência que corresponde ao valor de retorno da função.
GetNodeName
Retorna o nome do nó NetDDE para uma variável de string.
GetPropertyD
Recupera o valor discreto da propriedade especificada durante Runtime.
GetPropertyI
Recupera o valor inteiro da propriedade especificada durante Runtime.
GetPropertyM
Recupera o valor de mensagem da propriedade especificada durante Runtime.
Hide
Oculta várias janelas de dentro do QuickScript. Uma função Hide() deve preceder o nome de cada janela a ser ocultada.
HideSelf
Oculta a Janela ativa no momento.
HTGetLastError
Determina se houve um erro durante a última recuperação de uma pena especificada.
HTGetPenName
Retorna o tagname da tag usada no momento para a pena especificada # da tendência especificada
HTGetTimeAtScooter
Retorna a hora em segundos desde 00:00:00 horas GMT, 1 de janeiro de 1970 para a amostra na localização do scooter especificado pelo ScootNum e ScootLoc. UpdateCount, ScootNum e ScootLoc faz com que a expressão a ser avaliado quando qualquer um destes parâmetros muda. Isto garante que a expressão seja avaliada após novas recuperações ou após o movimento de um scooter.
HTGetTimeStringAtScooter
Retorna o string contendo a hora/data para a amostra na localização do scooter especificada por ScootNum e ScootLoc. UpdateCount, ScootNum e ScootLoc faz com que a expressão seja avaliada quando qualquer um destes parâmetros é alterado. Isto garante que os valores sejam atualizados após novas recuperações ou após o movimento do scooter. O formato do string determina o conteúdo do valor de retorno.
HTGetValue
Retorna um valor do tipo solicitado para toda a pena especificada da tendência. O parâmetro UpdateCount fará com que a expressão seja avaliada após a conclusão de uma recuperação.
HTGetValueAtScooter
Retorna um valor do tipo solicitado para a amostra na posição, tendência e pena #. scooter especificadas O parâmetro UpdateCount fará com que a expressão seja avaliada após a conclusão de uma recuperação.
HTGetValueAtZone
Retorna um valor do tipo solicitado para os dados contidos entre as posições scooter direita e esquerda para uma pena especificada da tendência. O parâmetro UpdateCount fará com que a expressão seja avaliada após a conclusão de uma recuperação.
HTScrollLeft
Estabelece a hora de início de uma tendência para um valor mais antigo do que o horário de início atual por um percentual da largura de tendência. O efeito é rolar a data/hora do gráfico para a esquerda com base em um determinado percentual.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
G-16
Apêndice G – Funções de script Função
Descrição
HTScrollRight
Estabelece a hora de início de uma tendência para um valor mais novo do que o horário de início atual por um percentual da largura de tendência. O efeito é rolar a data/hora do gráfico para a direita com base em um determinado percentual.
HTSelectTag
Exibe a caixa de diálogo Select Tag e o operador pode selecionar um tagname diferente para a pena especificada. (A caixa de diálogo somente lista os tagnames que foram definidos para armazenagem de histórico (Opção de Log Data selecionada) no Dicionário Tagname.
HTSetPenName
Atribui um tagname diferente à uma pena de tendência.
HTUpdateToCurrentTime
Faz com que os dados a serem recuperados e exibidos com uma hora final sejam iguais à hora atual. A hora de início corresponderá à EndTime menos a Largura do gráfico.
HTZoomIn
Calcula uma nova largura de gráfico e horário de início. Se .ScooterPosLeft da tendência for 0.0 e .ScooterPosRight for 1.0, a nova largura de gráfico corresponderá à largura de gráfico antiga dividida por dois. A nova hora será calculada com base no valor de LockString.
HTZoomOut
Calcula uma nova largura de gráfico e horário de início. A nova largura de gráfico é a antiga largura de gráfico multiplicada por dois. A nova hora será calculada com base no valor de LockString.
InfoAppStatus
Retorna um valor True ou False que informa o status atual do aplicativo especificado.
InfoAppTitleExpand
Retorna o título do Aplicativo ou a Lista de Tarefa Windows Microsoft de uma janela cujo título esteja parcialmente ou totalmente especificado.
InfoWinEnv
Recupera o valor de um atributo em particular para a sessão atual do Windows.
InTouchVersion
Habilita os usuários a obter a informação da versão do InTouch através de scripts.
InvisibleVerifyCredentials
Selecione para verificar as credenciais de um determinado usuário sem armazenar o usuário no InTouch.
IOGetApplication
Retorna o nome do aplicativo definido para um Nome de Acesso específico para o tagname especificado.
IOGetNode
Retorna a informação de nó (endereço) definida para um Nome de Acesso específico para o tagname especificado.
IOGetTopic
Retorna o nome de tópico definido para um Nome de Acesso específico para o tagname especificado.
IOReinitialize
Encerra todas as conversações de E/S existentes e reinicia todo o processo de configuração de conversações de E/S. Todos os pontos de E/S são afetados quando esta função executa.
IOSetAccessName
Modifica as partes de nome de aplicativo ou de tópico de um Nome de Acesso durante o Runtime o que permite a implementação de estratégias de hot-backup para InTouch.
IOSetItem
Muda o nome de acesso e/ou item em um campo de Referência de tagname do tipo E/S.
IOStartUnitConversations
Quando o WindowViewer é iniciado, ele processa automaticamente uma solicitação inicial para começar todas as conversações de E/S. Se um programa servidor de E/S não responder à solicitação inicial do WindowViewer, é possível forçar o WindowViewer a tentar novamente para estabelecer a conversação de E/S executando esta função em um QuickScript.
Treinamento Wonderware
Apêndice G – Funções de script
G-17
Função
Descrição
IsAnyAsynchFunctionBusy
Usado para descobrir se algum QuickFunction Assíncrono está executando. Esta função pode ser usada para fazer com que o QuickScript chame uma espera QuickFunction Assíncrono para que todos os outros QuickFunction Assíncronos concluam o processamento. Isto permite que o QuickScript sincronize novamente.
IsAssignedRole
Usado para descobrir se um usuário conectado tem o papel indicado.
LogMessage
Escreve uma mensagem definida pelo usuário para o Wonderware Logger.
Logoff
Encerra a sessão do usuário no InTouch.
LogonCurrentUser
Esta função script é projetada para o InTouch executar no modo de sistema operacional de segurança. Quando a função script é chamada, quem quer que esteja conectado ao computador será conectado no InTouch.
MessageBox
Esta função exibe uma caixa de mensagem Windows padrão com uma mensagem de texto específica.
MoveWindow
MoveWindow posiciona uma janela que está sendo usada sobre o InTouch.
OpenWindowsList
Exibe uma caixa de diálogo com uma lista das janelas abertas no momento.
PlaySound
Toca um som no formato wave especificado por um nome de arquivo .wav.
PostLogonDialog
Exibe a caixa de diálogo de Conexão InTouch Logon e retorna TRUE.
PrintHT
Pode ser usado em um botão para impressão do gráfico de Tendência de Histórico associado com o tagname de tipo Tendência de Histórico. A Tendência de Histórico deve estar visível na tela ao usar esta função.
PrintScreen
Imprime a tela especificada.
PrintWindow
Imprime a janela especificada.
ptGetTrendType ptLoadTrendCfg ptPanCurrentPen ptPanTime ptPauseTrend ptSaveTrendCfg ptSetCurrentPen ptSetPen ptSetPenEx ptSetTimeAxis ptSetTimeAxisToCurrent ptSetTrend ptSetTrendType ptZoomCurrentPen ptZoomTime
Estas funções de script são carregadas quando a tendência 16pen é instalada e somente aplica-se à tendência 16pen.
QueryGroupMembership
Válido somente para o modo de segurança OS e aplica-se ao usuário conectado no momento. Se um usuário estiver conectado no momento e se ele sair do grupo lpszGroup que está localizado no domínio lpszDomain, TRUE é retornado e em todos os outros casos, teremos o retorno de FALSE.
ReloadWindowViewer
Permite ao usuário controlar o recarregamento do WindowViewer.
RestartWindowViewer
Permite ao usuário controle sobre o encerramento e a reinicialização do WindowViewer.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
G-18
Apêndice G – Funções de script Função
Descrição
SendKeys
Envia teclas para um aplicativo. Para o aplicativo que recebe, as teclas parecem ter sido inseridas a partir do teclado. Esta capacidade pode ser usada para inserir dados em um aplicativo ou para emitir comandos ao aplicativo. A maioria das teclas do teclado podem ser usadas em uma declaração SendKeys. Cada tecla é representada por um ou mais caracteres como A para a letra A ou {ENTER} para a tecla Enter.
SetPropertyD
Especifica o valor discreto da propriedade que deve ser escrito durante o Runtime.
SetPropertyI
Especifica o valor inteiro da propriedade que deve ser escrito durante o Runtime.
SetPropertyM
Especifica o valor de mensagem da propriedade que deve ser escrito durante o Runtime.
SetWindowPrinter
Pode ser usado para fazer o WindowViewer imprimir em um local diferente da impressora padrão.
Show
Exibe uma janela especificada. (O nome da janela deve estar entre aspas.)
ShowAt
Especifica a localização horizontal e vertical em pixel de uma janela quando ela é exibida.
ShowHome
Exibe a janela "home". Janelas Home são as selecionadas para abrirem automaticamente quando o WindowViewer é iniciado. (As janelas são selecionadas no folha de propriedade WindowViewer Properties - Home Windows.)
ShowTopLeftAt
Especifica a localização horizontal e vertical em pixel do canto superior esquerdo de uma janela quando ela é exibida.
TseGetClientId
Retorna uma versão string da identificação do cliente (o endereço TCP/IP do cliente) se o aplicativo View estiver em execução em um cliente servidor Terminal. Caso contrário, ele retorna um string vazio.
TseQueryRunningOnClient
Retorna um valor inteiro diferente de zero se o aplicativo View estiver em execução em um cliente servidor Terminal. Caso contrário, ele retorna um valor zero (0).
TseQueryRunningOnConsole
Retorna um valor inteiro diferente de zero se o aplicativo View estiver em execução em um console de servidor Terminal. Caso contrário, ele retorna um valor zero (0).
UTCDateTime
Permite ao usuário obter a hora UTC (Coordinated Universal Time), o fuso horário atual e o desvio do GMT e o status do horário de verão.
wcAddItem
Adiciona o string fornecido para a caixa de listagem ou a caixa combinada. Se a caixa de listagem ou a caixa combinada não foi criada como classificada, o string é adicionado ao final da lista. Caso contrário, o string é inserido na lista e a lista é classificada.
wcClear
Remove todos os itens da caixa de listagem ou da caixa combinada.
wcDeleteItem
Exclui o item associado ao argumento de índice de item nas caixas listagem e combinada.
wcDeleteSelection
Exclui o item selecionado no momento a partir da lista.
wcErrorMessage
Retorna um string de mensagem descrevendo o erro.
wcFindItem
Determina o índice correspondente do primeiro item na caixa de listagem ou caixa combinada que corresponde ao string de mensagem fornecido.
wcGetItem
Retorna a propriedade do valor do string de item associado com o ItemIndex correspondente na caixa de listagem ou caixa combinada.
Treinamento Wonderware
Apêndice G – Funções de script
G-19
Função
Descrição
wcGetItemData
Determina o valor inteiro associado ao item de lista identificado pelo parâmetro ItemIndex.
wcInsertItem
Insere o string de mensagem na lista. ItemIndex é o número de índice correspondente à posição na caixa de listagem que receberá o string. Diferente de wcAddItem(), wcInsertItem() não classificará a lista, mesmo que tenha sido criado como uma caixa de listagem ou caixa combinada classificada.
wcLoadList
Substitui o conteúdo da caixa de listagem ou da caixa combinada com os itens contidos no FileName.
wcLoadText
Substitui o conteúdo da caixa de Texto pelo conteúdo do FileName.
wcSaveList
Substitui o conteúdo de FileName pelos itens listados no objeto caixa de listagem ou caixa combinada.
wcSaveText
Salva o texto contido na caixa Texto para FileName. Se o arquivo não existir, ele será criado. Se ele existir, ele deve ser Leitura/Escrita.
wcSetItemData
Atribui um valor inteiro do item (número) ao item na lista especificado pelo ItemIndex. Esta função permite a atribuição de um número a um string.
WindowState
Retorna um valor discreto se uma janela especificada está aberta ou não.
WWAlwaysOnTop
Fará com que um aplicativo Windows especificado permaneça sobre todas as outras janelas de aplicativo.
WWContext
Usado para determinar quando o cursor está sobre uma determinada região de uma janela de aplicativo InTouch .
WWControl
Permite a você Recuperar, Minimizar, Maximizar ou Fechar um aplicativo do InTouch.
WWControlPanel
Inicia o Painel de Controle e posiciona o applet nomeado.
WWDosCommand
Inicia uma Caixa Windows DOS em um estado inicial especificado e executa uma linha de comando especificada.
WWExecute
Envia um comando (usando um DDE Execute ) a um Application e Topic especificados.
WWExitWindows
Permite ao usuário InTouch encerrar com segurança o sistema operacional Windows de dentro de um aplicativo InTouch .
WWFreeHandles
Retorna o número de alças de dimensionamento livres de Global Memory.
WWIsDayLightSaving
Esta função script retorna 1 se Daylight Savings estiver habilitado e 0 se Daylight Savings não estiver habilitado.
WWMoveWindow
Esta função script redimensiona e move a janela inserida à nova localização especificada.
WWPoke
Faz um poke para um valor (usando um DDE Poke) para um Application, Topic e Item especificados.
WWRequest
Faz uma única solicitação para um valor (usando DDE Request) de um Application, Topic e Item especificados.
WWStartApp
Inicia um aplicativo Windows especificado e posiciona o aplicativo dentro do estado Window desejado.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
Apêndice H
Como usar InTouch em um microcomputador Tablet
H-2
Apêndice H – Como usar InTouch em um microcomputador Tablet Objetivos do apêndice z
Apresentar as funções destacadas do Windows XP para Microcomputadores Tablet
z
Apresentar as funções de destaque do Wonderware InTouch
z
Demonstrar a função script AnnotateLayout
z
Mudar a orientação da tela de paisagem para retrato
z
Apresentação de dicas para usar microcomputadores Tablet
Os microcomputadores Tablet são usados há anos em ambientes de Utilidades, Petróleo e Gás e Resposta de Emergência. Eles são extremamente duráveis e têm diversas funções que os tornam apropriados para uso industrial.
Hardware Os microcomputadores Tablet robustos são unidades seladas à prova d'água e resistentes à vibração. A maioria vem equipada com um sensor de luz que permite o ajuste automático do brilho da tela com base na luz em volta deles. Eles têm baterias duplas que permitem que as baterias sejam trocadas em movimento quando necessário. A maioria vem com estações de ancoragem e um painel digital. Um cartão de rede sem fio os torna completamente portáteis em um ambiente sem fio.
Sistema Operacional Os microcomputadores Tablet executam em Microsoft Windows XP Tablet PC Edition, totalmente compatíveis com a funcionalidade de todo o software, incluindo extensões para caneta que permitem que os dados sejam inseridos com uma caneta digital. A pena digital também é usada como um dispositivo de indicação.
Usuários Alvo Estas funções tornam os microcomputadores Tablet uma ferramenta ideal para criar eficiência em configurações de fábrica. Elas permitem aos usuários acessar aplicativos InTouch em qualquer lugar a qualquer hora em uma faixa de rede sem fio. Eles são perfeitos para usuários que precisam se movimentar, monitorar atividades de planta, inserir pequenas quantidades de dados ou inserir dados sem um teclado. Eles também são ideais para ambientes desfavoráveis.
Funções de destaque do sistema operacional Esta informação tem por objetivo apresentar as funções mais aplicáveis aos clientes Wonderware. Consulte o manual do usuário do seu microcomputador Tablet especificado para obter instruções detalhadas.
Tinta digital Tinta digital em termos práticos é simplesmente escrita manual eletrônica. O uso de pena digital permite inserir dados, mudar valores de referência e fazer anotações escritas. Isto é especialmente útil quando o tablet não está ancorado.
Treinamento Wonderware
Apêndice H – Como usar InTouch em um microcomputador Tablet
H-3
Windows Journal Windows Journal é um aplicativo de anotações que permite criar e organizar notas escritas manualmente em um microcomputador Tablet usando uma caneta digital. É possível vê-lo como uma versão do Notepad que lida com "digital ink". Ele também fornece capacidades de reconhecimento de caractere de forma que sua escrita manual possa ser convertida em texto; embora seja possível inserir, gerenciar e manter suas notas em tinta digital se desejar.
Ele inclui capacidades de busca e de destaque
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
H-4
Apêndice H – Como usar InTouch em um microcomputador Tablet Ele converterá também sua escrita manual em texto.
Rotação da Tela A ferramenta XRT Screen Rotation é especialmente útil quando o Tablet não está ancorado. Isto permite mudar da orientação paisagem para retrato. Isto é mais confortável quando estiver segurando o Tablet e fazendo anotações. Para tanto, é necessário mudar a resolução da tela.
Treinamento Wonderware
Apêndice H – Como usar InTouch em um microcomputador Tablet
H-5
Write Anywhere Com a função Write Anywhere, é possível usar a maior parte da tela sem seu microcomputador Tablet como uma área de escrita. Isto é especialmente útil para tarefas de escrita longas. A função Write Anywhere converte sua escrita manual em texto digitado e a insere em um local que você especificar, como um documento de processamento de texto. É possível usar a função Write Anywhere para inserir texto em qualquer local onde seja possível usar um teclado padrão para inserir texto. A função Write Anywhere reconhece a escrita manual em inglês apenas. Esta função também permite escrever ou destacar um aplicativo em uso com a caneta digital e pode funcionar como uma transparência. Acesse esta função pelo Tablet PC Input Panel. Tools / Options e clique na guia Write Anywhere. Selecione o botão Show the Turn on Write Anywhere na barra de título. Clique em Apply. Clique em OK. O ícone Write Anywhere estará agora visível em seu Tablet PC Input Panel.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
H-6
Apêndice H – Como usar InTouch em um microcomputador Tablet Funções de destaque do InTouch Uma listagem detalhada dos Requisitos de Sistema, Informação de Instalação, Melhorias, etc., está contida no documento Readme que acompanha o InTouch. Este documento tem por objetivo apresentar rapidamente as características gerais das funções selecionadas.
Função Script AnnotateLayout O InTouch inclui uma função script denominada AnnotateLayout. Esta função script somente está disponível quando usar o sistema operacional Windows XP Tablet PC Edition. Ativar a função script capta um instantâneo da tela da parte visível da janela ativa. É possível usar o painel digital para fazer anotações e destacar informações. É possível salvar esta captura de tela com suas anotações como um arquivo .jpg ou .gif para uso posterior. A caixa de diálogo Annotate Layout contém uma barra de ferramentas e itens de menu e exibe a captura de tela InTouch WindowViewer em sua área cliente. A caixa de diálogo tem um botão Close na barra de legenda, mas não tem os botões minimizar ou maximizar.
Treinamento Wonderware
Apêndice H – Como usar InTouch em um microcomputador Tablet
H-7
Painel de Entrada de Caneta Com a caneta digital, você escreve manualmente em qualquer campo de entrada de dados em Runtime do InTouch. O InTouch WindowViewer exibe caixas de edição quando o usuário clica em links touchscreen dos tipos Analógico ou Mensagem. Além destas caixas de edição, o WindowViewer exibe o Pen Input Panel para facilitar a entrada de dados usando a caneta digital.
Rotação da Tela A ferramenta XRT Screen Rotation pode ser usada no InTouch. Observe que o InTouch somente seleciona a resolução de tela Windows quando um aplicativo é iniciado. As mudanças feitas enquanto o aplicativo está em execução resultará em conseqüências estranhas. É necessário configurar as Propriedades do InTouch Node para permitir que o uso do WindowViewer ou a mudança dinâmica da resolução.
InTouch® HMI 9.5 Fundamentos do curso de desenvolvimento de aplicativos
H-8
Apêndice H – Como usar InTouch em um microcomputador Tablet Dicas para usar microcomputadores Tablet Se solicitar um microcomputador tablet do Wonderware, o InTouch já estará instalado assim como o arquivo de licença. Se comprou um de outro fornecedor, observe o seguinte: z
A instalação requer o .NET Framework Versão 1.1. Ele pode ser instalado usando o menu Start. Start / Windows Updates / Scan for updates Role para a parte de baixo e selecione .NET Framework Version 1.1. Clique em Review and install updates.
z
Os microcomputadores Tablet podem ser ancorados e têm portas externas. Entretanto, eles não vêm com drives de CD-ROM. Faça uma planejamento antecipado e crie compartilhamento com outros nós para acessar o InTouch e um arquivo de licença para instalação.
Equivalentes ao Mouse/Caneta Digital É possível usar também a caneta digital do microcomputador Tablet para emitir comandos no lugar do mouse. A tabela abaixo exibe exemplos de ações comuns realizadas com o mouse assim como os ajustes padrões correspondentes para ações usando a caneta digital. Para mais informações sobre a funcionalidade do microcomputador Tablet, consulte a documentação de microcomputador Tablet. Mouse
Caneta digital
Apontar
Apontar
Clicar
Tap
Clicar duas vezes com o mouse
Tap duplo
Clicar com o botão direito do mouse
Tap e manter
Clicar e arrastar
Arrastar
Control Alt Delete A combinação Control Alt Delete é acessada pressionando o botão Power duas vezes.
Desligar O microcomputador tablet pode ser desligado pressionando e mantendo pressionado o botão power.
Treinamento Wonderware
Apêndice I
Atalhos de teclado para InTouch
I-2
Apêndice I – Atalhos de teclado para InTouch Introdução A fim de criar um ambiente de trabalho mais eficiente, o InTouch permite salvar diversas vezes atalhos de teclado para executar os comandos. Isto elimina a necessidade de movimentos extras com o mouse para algumas ações comuns. Atalho
Comando
F2
Selecionar tudo
Ctrl + A
Links de animação
Ctrl + E
Substituir tags
Ctrl + L
Substituir strings
Ctrl + T
Dicionário tagname
Ctrl + W
Propriedades da janela
Ctrl + N
Nova janela
Ctrl + O
Abrir janela
Ctrl + S
Salvar janela
Ctrl + Mais
Aumentar fonte
Ctrl + Menos
Reduzir fonte
Ctrl + Z
Desfazer
Ctrl + Y
Refazer
Ctrl + D
Duplicar
Ctrl + X
Recortar
Ctrl + C
Copiar
Ctrl + V
Colar
Del
Apagar
Shift + Mais
Aumentar raio (retângulo com cantos arredondados)
Shift + Menos
Reduzir raio (retângulo com cantos arredondados)
Ctrl + R
Reformatar objeto (polígono)
F9
Enviar para trás
Shift + F9
Trazer para frente
Ctrl + H
Espaço horizontal
F6
Girar sentido horário
Shift + F6
Girar sentido anti-horário
F7
Inverter horizontal
Shift + F7
Inverter vertical
F5
Fazer símbolo
Shift + F5
Desagrupar símbolo
F3
Fazer célula
Shift + F3
Desagrupar célula
Treinamento Wonderware