Apostila Indusoft - 1
Apostila Indusoft - 1
Apostila Indusoft - 1
InduSoft 25/Novembro/2004
© Copyright InduSoft Ltd. 2001
Introdução ao
Treinamento do
InduSoft Web Studio
www.InduSoft.com
Conteúdo
INTRODUÇÃO ..........................................................................................................................................................5
COMUNICAÇÃO.....................................................................................................................................................27
TREND.....................................................................................................................................................................94
Indusoft LTD.
Para Windows NT e CE
Introdução
Você vai conhecer o InduSoft Web Studio uma ferramenta fácil de usar, flexível e poderosa para
desenvolver suas aplicações em automação industrial. Durante o treinamento explore o conceito da
arquitetura orientada a módulos funcionais, deixando detalhes de configuração para a etapa
seguinte, quando estiver de fato desenvolvendo seu projeto. Neste módulo de Apresentação você
deve entender como o produto funciona, pois isso é fundamental para a construção de uma
aplicação que explora os recursos do produto e ao mesmo tempo preserva ótima performance.
Hardware
O InduSoft Web Studio requer a seguinte configuração mínima:
Software
• Windows 9X/ME/NT/2000, até versão 4.1 (Ansi) ou Windows NT/2000/XP para versão 4.4 ou
superior (Unicode).
• Para conectividade em rede intranet ou internet, é necessário um cartão Ethernet configurado
com o protocolos TCP/IP do Windows.
Service Pack é uma atualização da versão corrente que contém pequenas alterações. Qualquer
Service Pack contém todas as atualizações dos Service Packs anteriores, de forma que você deve
instalar apenas o último deles.
Após a instalação são criados os seguintes diretórios, supondo uma instalação padrão:
4. Estrutura Interna
O Database desempenha um importante papel na estrutura de funcionamento do InduSoft Web
Studio. É através dele que as informações trafegam. Para mandar dados do driver para uma
planilha matemática, o valor do tag gerado pelo driver vai para o Database e só quando necessário
é enviado para a planilha matemática. Assim dá-se o processamento por exceção. Os dados não
trafegam desnecessariamente.
Note também que os módulos de Engenharia também se comunicam com o Database. Toda
configuração em um módulo de engenharia envolve um tag, e este já deve estar criado no
Database, ou então o Studio solicitará que você o crie, de modo que a configuração permanece
consistente.
Background Tasks: Esta tarefa é responsável pela execução das lógicas (scripts) contidos
nas planilhas matemáticas, scheduler e gerencia os módulos configurados como nas
planilhas de alarmes, Receitas, Trends, e relatórios.
Database Spy: Ferramenta de depuração usada para: Ler dados do TAG Database (ex.:
valores de TAGs); Escrever dados no TAG Database (ex.: valores de TAGs); Executar
funções/expressões e verificar seu funcionamento.
DDE Client: Gerencia a troca de mensagens DDE com qualquer DDE Server local ou
remoto, de acordo com as configurações das planilhas DDE.
DDE Server: Gerencia a comunicação DDE com qualquer DDE Server local ou remoto.
LogWin: Ferramenta de depuração onde é possível verificar mensagens geradas por outras
tarefas.
ODBC Runtime: Gerencia a comunicação ODBC com bancos de dados relacionais (SQL),
de acordo com as configurações contidas na planilha ODBC.
OPC Client Runtime: Gerencia a comunicação OPC com OPC Server local ou remoto,
obedecendo aos parâmetros presentes na planilha OPC.
OPC Server: Administra a comunicação OPC com OPC Client local ou remoto.
Criação:
Execução:
Depuração ou Debug:
O objetivo deste treinamento é torna-lo familiar a estas categorias de módulos, para que saiba
utiliza-la da melhor forma durante a execução, partida ou manutenção de um sistema desenvolvido
com a plataforma InduSoft Web Studio.
- Para criar um novo projeto usando o InduSoft Web Studio, rode o InduSoft Web Studio
clicando no atalho na área de trabalho para este programa.
- .
ou usando o botão Iniciar-> Programas-> InduSoft Web Studio v6.0 -> InduSoft Web
Studio v6.0 ou Start -> Programs-> InduSoft Web Studio v6.0 -> InduSoft Web Studio
v6.0 ( no caso do Windows em Inglês).
- Já no ambiente do InduSoft Web Studio, selecione File e clique em New para abrir a janela
New.
- Selecione a plataforma para essa aplicação na lista “Target Platform”, levando em conta a
dimensão do projeto a ser criado.
IMPORTANTE:
Nota:
A resolução escolhida define somente o tamanho default das novas telas que serão criadas na aplicação.
Cada tela inserida pode ter uma resolução totalmente customizável.
- Clique OK.
- O Tab "Communication" permite definir algumas características do InduSoft Web Studio para
trabalhar como Servidor de mensagens criptografadas ou não e ainda determinar a porta de
comunicação TCP e o tempo de envio de mensagens.
- O Tab "Web" permite definir algumas características do InduSoft Web Studio para trabalhar
como Servidor Web da aplicação final. Este Tab será melhor explicado, mais à frente, quando
estudarmos configurações Web.
- O Tab "Preferences" permite definir como o próprio nome já expressa, preferências sobre a
apresentação ou não de algumas mensagens de alerta durante determinadas ações realizadas
pelo desenvolvedor, no ambiente do InduSoft Web Studio.
- O Tab "Execution Tasks" permite controlar a execução de cada módulo de Runtime, iniciando
ou finalizando estes módulos, usando os botões "Start" e "Stop”.
- Se estiver em dúvida sobre quais módulos devem ser configurados para start automático, estude
novamente o quadro sinótico do capítulo Apresentação, que mostra quais funcionalidades são
executadas por quais módulos de runtime.
Nota:
Quando o sistema operacional para o qual está sendo desenvolvida a aplicação é o Windows CE o
tab “Execution Tasks” não estará acessível. No CEView, todos os módulos do Runtime (BGTask,
Viewer, TCP/IP Client / Server e Driver Runtime) são iniciados simultaneamente quando a
aplicação é iniciada. Portanto também não é possível fechá-los individualmente.
- O Tab “Information” mostra algumas informações gerais sobre a aplicação. Tais como:
- Versão do produto;
- Local onde a aplicação está sendo criada;
- Tipo de Licença;
- Número de Tags Internos da Aplicação;
- Número de Tags Criados Durante a Aplicação;
- Número de Mensagens de Alarmes Criadas na Aplicação.
- Pressione OK.
Definição de Tags
Tags são as variáveis utilizadas na aplicação. São utilizados em todas as configurações dos módulos
de supervisão. Tags podem ser de comunicação com o equipamento de campo ou utilizados
internamente na aplicação, para cálculos, para gerar bases de tempo ou eventos.
No InduSoft Web Studio, os tags criados pelo usuário são chamados application tags ou tags de
aplicação; O InduSoft possui alguns tags pré-definidos que são chamados internal tags ou tags
internos. Esses tags internos possuem informações do sistema como data e hora corrente, usuário
logado, entre outros, ou ainda podem ser usados como comando de alguma função como o beepoff,
ackalr e outros.
Exemplo:
Temperatura
Pressao
Nivel
InduSoft Web Studio não diferencia letras maiúsculas de minúsculas, portanto NIVEL = Nivel =
nivel, sendo assim a interpretação deles é da mesma forma.
Contudo o sistema mantém conforme foi digitado. Adote um padrão que lhe convém para facilitar a
leitura a partir da visualização, como em NivelTanque, PressaoTanque, que torna a leitura mais
fácil do que em niveltanque, pressaotanque.
Tipos de Tags
O tipo de um tag pode ser de um dos seguintes tipos padrões:
Boolean (digital):
Variável digital ou Booleana (0 ou 1).
Integer (analógica):
Números inteiros (Podem ser positivos, negativos ou zero).
Equivalente ao tipo long integer. (De –2147483647 a 2147483648).
Exemplos:
0
50
-200
Exemplos:
25,40
0.00009
-2960
3,141516
String (ASCII):
String de caracteres com o comprimento de até 255 caracteres (de 0 a 254) e suporta letras,
números, ou caracteres especiais.
Exemplos:
Receita do produto X123
01/01/90
*** On ***
Além dos quatro tipos previamente listados, você pode definir novos tipos chamados Classes.
Array tags
Os tags do InduSoft Web Studio podem armazenar um valor de um tag ou de um vetor de tags. Um
tag com a opção “array” é um grupo de tags com o mesmo nome, mas com índices diferentes (uma
matriz de n linhas e 1 coluna).
Exemplo:
Temperatura[1]
Temperatura[2]
InduSoft do Brasil – InduSoft Web Studio v6.0+SP3 20
Tutorial – Programa de Treinamento Básico
InduSoft 25/Novembro/2004
© Copyright InduSoft Ltd. 2001
Temperatura[3]
Temperatura[500]
Use um tag array sempre que possível, pois otimiza a memória e simplifica a configuração das
tarefas. Suponha que você quer ter um display para monitorar cada tanque. Usando tags array torna
possível configurar somente um display que contém tags linkados a qualquer um dos Tanques:
Pressao[tk]
Temperatura[tk]
Temperatura[tk +1]
O tag tk é o tag que contém o número do tanque que se deseja visualizar. Um índice para array deve
ser um tag, um valor numérico, ou uma expressão incluindo uma adição.
Para se referir a um array usando a operação adição, você deve seguir a seguinte sintaxe:
tag_name[tag + N], onde N é uma constante numérica.
Exemplos:
Temperatura[tk+2]
Temperatura[tk+6]
O uso de tags com a opção de array economiza tempo no desenvolvimento da aplicação. Suponha
que você necessita da temperatura de quatro Tanques.
Quando você cria um tag array de quatro posições, o sistema cria cinco posições (de 0 a 4).
Exemplo:
IMPORTANTE:
Quando o programa tenta usar um índice inválido, como por exemplo, a posição 20 de um array
com 15 posições, a posição 0 é usada para armazenar esse valor em rascunho.
Devido a isso NÃO é aconselhável utilizar a posição 0.
@<nome_do_tag_indireto>.
Por exemplo, assumindo que um tag string chamado X contem o valor TEMP. Ler ou escrever em
@X permite acessar o valor do tag TEMP. Para acessar um tag tipo Class.
Exemplo:
@X.Nivel
Neste caso você está acessando o membro Nivel do tag para o qual X aponta.
Apesar de que qualquer tag string pode ser usado como um ponteiro, quando você criar tags para
esse propósito, coloque o @ antes do nome do tag e escolha o tipo de dado que este ponteiro
carrega, pois isso permite que o InduSoft faça a consistência para o tipo boolean, integer, real.
TagName Type
@Z Integer
@X Class: TANQUE
Classes
Em adição aos tipos padrão de tags você também pode definir tags do tipo Classe.
Class: Classes são estruturas que permitem um alto grau de organização do application database.
Quando um tag do tipo class é criado, este não irá conter um simples valor, mas um grupo de
valores. Criar tags tipo class equivale a agrupar tags simples, que passam a ser elementos.
InduSoft do Brasil – InduSoft Web Studio v6.0+SP3 22
Tutorial – Programa de Treinamento Básico
InduSoft 25/Novembro/2004
© Copyright InduSoft Ltd. 2001
Exemplo:
Se você criar um novo tag tk do tipo Class Tanque, você está na verdade criando o tag com as
propriedades Class: Tanque.
Para acessar os membros de um tag tipo Class use o ponto (.) como separador.
Exemplo:
tk.NIVEL
tk.TEMPERATURA
tk[1].NIVEL
tk[n].TEMPERATURA
NomeDoTag->field
Nota:
Se a aplicação tentar escrever um valor e este valor estiver fora do range especificado, o database
não aceita e uma mensagem de aviso é enviada ao Logwin.
Unit Este field aceita qualquer string (até 8 caracteres) relativo ao tag como uma breve descrição ou
referência.
*HiHiLimit Quando se criam alarmes tipo HighHigh, este field contém o limite.
*HiLimit Quando se criam alarmes tipo High, este field contém o limite.
*LoLimit Quando se criam alarmes tipo Low, este field contém o limite.
*LoLoLimit Quando se criam alarmes tipo LowLow, este field contém o limite.
*DevSetpoint Refere-se ao setpoint do alarme do tipo Dev para um valor de tag que gera um
alarme.
TP->HiLimit =70
TMP->AlrDisable=1
Exemplos:
Nivel->Max
Temperatura->Unit
pv101->HiLimit
Nota:
Durante o runtime, é possível modificar valores dos fields relativos aos limites de alarmes, bem
como desabilitá-los, utilizando-se dos fields apontados nessa descrição por “*”.
Internal tags
São tags pré-existentes em todas as aplicações, que possuem funções e valores específicos e podem
ser utilizados em qualquer parte da aplicação, mas não podem ser apagados, modificados e nem
terem seu valor alterado no banco de dados.
Exemplo:
Application tags
Shared tags
Tags adquiridos pelo compartilhamento do database de um Soft-PLC. Podem ser utilizados em toda
a aplicação, mas não podem ser apagados.
Nota:
Atualmente este tipo de compartilhamento caiu em desuso. No entanto o InduSoft Web Studio tem
a possibilidade de fazer esse tipo de comunicação com os seguintes produtos: First ISaGRAF,
ISaGRAF, Think & Do SteepleChase, SixNet e OpenControl.
- No Workspace, selecione o tab Database. Clique duas vezes na pasta Application Tags para
expandi-la.
Desta forma você estará criando o tag CONTADOR, que servirá para a exemplificação da
comunicação do Indusoft Web Studio com o PLC.
Comunicação
Drivers de Comunicação
Os drivers são os responsáveis pela transferência de dados entre os dispositivos de campo (CLP,
remotas, controladores, unidades concentradoras, etc.) e o InduSoft Web Studio.
Temos em torno de 150 drivers disponíveis nas versões para Win9x, NT e Windows CE.
Selecionando um Driver
- Quando o InduSoft é instalado, todos os drivers são instalados juntos. Vá a pasta Drivers do tab
Comm, e clique com o botão direito nesta pasta e escolha a opção Add/Remove Drivers.
- Escolha para o tutorial o ABTCP. Após selecionar o driver (ABTCP), clique no botão Select
>> ,clique em OK.
- Agora clique com o botão direito do mouse sobre a pasta ABTCP, aparecerão as opções Insert,
que insere uma nova planilha, e Settings que configura alguns parâmetros da comunicação.
COM COM1 COM1 à COM8 Porta Serial do PC usada para comunicação com
o equipamento (se for um driver serial).
Nota:
Os campos da seção Configuration Parameters variam de acordo com o driver utilizado, podendo
ser diferentes ou estar desativadas em outros drivers.
- Os quatro campos da parte de baixo desta janela são configurados de forma diferente para cada
driver e são configurados com parâmetros diferentes para cada driver. Para o driver ModBus, os
campos são: Signed Value, FP swap (0=Byte/1=Word), Protocol (ASCII or RTU), e Custom
Command (ERO-xxx).
Se você entrar com um tipo de valor inválido em um desses campos, o InduSoft Web Studio pode
aceitar o valor, mas quando você for fechar a janela Communication Parameters, uma mensagem
de erro será apresentada e lhe informará o erro antes de ser fechada.
Especificando o Advanced Settings
Clicando no botão Advanced na janela Communication Parameters são apresentadas as
possibilidades possíveis para configurar outros parâmetros para a comunicação serial (verifique as
possibilidades na tabela abaixo):
Interval between 500 0 a 10000 Tempo Máximo entre caracteres enviados para o
char equipamento
Wait CTS (ms) 100 0 a 10000 Tempo para recebimento sinal CTS (Clear to Send),
após o sinal RTS (Request to Send) signal (Nota:
Valido apenas se selecionado Yes no campo Verify
CTS).
Disable DTR Not • Not checked Se habilitado, o driver não seta o sinal DTR antes
checked • Checked de iniciar a comunicação.
Parâmetros de Comunicação
Note que os primeiros parâmetros desta janela estão desabilitados. Estes se referem a uma
comunicação SERIAL. Como essa janela é padrão para todos os drivers de comunicação, eles
aparecem, neste caso, porém desabilitados.
Read Completed: O tag deste campo apenas recebe um feedback se a operação de leitura já foi
efetuada, trigando o seu valor entre 0 e 1.
Read Status: Este tag recebe o Status da última comunicação. Zero significa Ok. Qualquer outro
valor, positivo ou negativo é considerado ERRO. (Veja tabela de erros na documentação específica
do driver).
Write Complete: Feedback se a operação de escrita foi completada ou não, alternando os valores entre 0 e 1.
Write Status: Feedback do status da última comunicação. O tag deste campo receberá o valor 0 se
a comunicação está Ok ou diferente de zero se não está. (Veja tabela de erros na documentação
específica do driver).
Check Box Min e Max: Habilita os campos Max e Min, onde colocamos a faixa de validade dos
dados.Exemplo, valores de memória variam de 0 to 4095 equivalem de 0% a 100% na interface
com o usuário. Esta configuração é válida para TODOS TAGs da planilha, porém podemos colocar
valores independentes de Max e Min em cada linha. No exemplo os valores seriam 0 e 100 para o
Min e Max respectivamente.
Cabeçalho
No cabeçalho temos o controle da comunicação, enquanto no corpo os endereços dos tags que estão
operando no CLP.
É no Cabeçalho que configuramos várias informações, incluindo o tipo de operando que será usado
na comunicação.
Increase priority - check Box: Em caso de ser uma planilha de leitura aumenta a prioridade desta
planilha.
Read Trigger: Coloque aqui um tag que, sempre que seu valor for mudado será efetuada uma
leitura no CLP. Isso permite um maior controle do fluxo de comunicação
Enable Read when Idle: Se o tag colocado aqui possuir o valor maior que zero, a leitura desta
planilha será efetuada continuamente.
Read Completed: O tag deste campo apenas recebe um feedback se a operação de leitura já foi
efetuada, trigando o seu valor entre 0 e 1.
Read Status: Já este tag recebe o Status da última comunicação. Zero significa Ok. Qualquer outro
valor, positivo ou negativo é considerado ERRO.
Write Trigger: A mudança do valor do tag deste campo efetua uma escrita de toda a planilha no
CLP.
Enable Write on Tag Change: Se este campo contiver um TAG com o valor maior que zero,
sempre que algum tag do corpo da planilha mudar de valor somente este tag será escrito no CLP.
Write Complete: Feedback se a operação de escrita foi completada ou não, alternando os valores
entre 0 e 1.
Write Status: Feedback do status da última comunicação. O tag deste campo receberá o valor 0 se
a comunicação está Ok ou 1 se não está.
Nota:
Este campo é totalmente variável em função do equipamento que estiver sendo utilizado.
Header: Cada driver tem a sua própria sintaxe para este campo, uma vez que cada dispositivo tem o
seu próprio método de nomenclatura de operandos. Mas, na maioria dos casos, colocamos neste
campo o tipo de operando com o qual queremos comunicar e o endereço inicial da planilha.
Corpo
O corpo da planilha de drivers é composto de 4 colunas: Tag Name, Address, Add e Div.
Tag Name: Nome do tag que terá a função de leitura ou de escrita de dados do PLC.
Nos exemplos dos drivers, você ajusta os Offsets relativos ao endereço inicial configurado no
Header. Isto não é válido teclando um valor negativo. O valor zero 0 será subscrito.
Div Todos Integer e Real Em comando de leitura: Tag = (Valor de campo) / DIV
Em comando de escrita: Valor em campo = Tag * DIV
Add Todos Integer e Real Em comando de leitura: Tag = (Valor de campo) + ADD
Em comando de escrita: Valor em campo = Tag - ADD
Min Todos Integer e Real Faixa de validade dos dados independentes de Max e Min do
cabeçalho da planilha
Max Todos Integer e Real Faixa de validade dos dados independentes de Max e Min do
cabeçalho da planilha
Nota:
- Apesar de o InduSoft Web Studio suportar caracteres acentuados, de acordo com a configuração
International do Control Panel, do Windows, é recomendável não usa-los, pois se incorre no erro de
declarar com acento e tentar referenciá-los sem acento em outros pontos do projeto. Contudo, isso é
uma opção do desenvolvedor do sistema.
Quando aparecer a tela Group Account como mostrado abaixo: clique em New... para poder abrir o
menu New Group Account
O Group Account Guest é padrão, não pode ser apagado (assim como o usuário Guest) e
corresponde ao Group Account que fica válido sempre que uma operação Logoff ocorre. Esse grupo
deve ser restrito ao mínimo acesso que seu projeto vai permitir a quem não é usuário do sistema.
- Configure a tela New Group Account, com o nome de Operacao como mostrado abaixo:
- Pressione OK, o menu Group Account abrirá novamente, configure a janela Group Account
como mostrado abaixo:
- Pressione OK.
- Clicando em New na janela User Account, Crie um novo usuário chamado: Joao.
- Pressione OK.
- O próximo usuário será Jose. Repita todo o processo, mas crie-o no grupo Manutencao.
- Por último, o mesmo deve ser feito com o usuário Maria, no grupo Engenharia.
Nas configurações de telas, botões e outros objetos de “input” do operador, você vai usar os níveis
de acesso que acaba de criar nesse módulo.
- Clique com o botão da direita sobre a pasta Security, para ter acesso a esta janela de diálogo:
IMPORTANTE:
- Essa senha só poderá ser “quebrada” enviando o sistema a InduSoft e este processo desconfigura
todo o Security System, ou seja, perdem-se as configurações de todos os grupos e usuários.
- No Workspace, selecione o tab Database. Clique duas vezes na pasta Application Tags para
expandi-la.
Para sabermos o estado da primeira válvula, teremos o tag EstadoEnche e para a segunda
EstadoEsvazia.
Como cada válvula só pode estar aberta ou fechada, estes tags devem ser booleanos.
Sendo três Tanque, precisaremos de três válvulas para enche-los e outras três para esvaziá-los.
Portanto usaremos Arrays para rapidamente criarmos as válvulas.
Vamos criar agora os tags que enviarão os comandos para abrir ou fechar as válvulas.
Esses comandos, num sistema real, seriam enviados aos CLPs através do driver, endereçando esses
tags para serem pontos de I/O.
Antes de criar uma tela, vamos entender o que o programa nos oferece para a criação de um bom
aplicativo. Vamos deixar alguns comandos e animações sendo mostrados o tempo todo na tela e em
outro espaço vamos variar o que está sendo mostrado. Assim criaremos uma tela para os comandos,
animações constantes e variações:
• CABEÇALHO: Mostrará data e hora o tempo todo, bem como terá os links para as outras
telas.
• PRINCIPAL: As telas de Trend, Alarmes, Processo, Receitas, etc… terão as mesmas medidas,
que será dada por essa tela.
Usando a estrutura acima recomendada, vamos começar a criar nossas telas. Primeiramente
criaremos o CABEÇALHO em uma tela (STANDARD) que servirá de padrão para as demais.
- Na janela Screen Attributes devemos configurar alguns atributos gerais sobre a tela que está
sendo criada. Primeiro configure a tela STANDARD como mostrado na figura abaixo:
Pressione o botão OK e uma tela vazia deverá aparecer com os atributos configurados para ela.
- Depois de criar a tela, mudemos a cor de fundo usando o background color. Selecione uma
Crie agora a navegação para as telas. Inicie criando um botão como todos os seus elementos: texto,
comando, tamanho correto. Só então copie os outros sete botões a partir deste.
- Utilizando o ícone Button do Toolbar, arraste o mouse traçando o botão no tamanho adequado.
- Ao terminar o desenho do botão, dê um duplo clique sobre ele. Você terá a janela de Object
Properties como esta:
Ao clicar no ícone Command, você notará que a janela Object Properties modificou-se. Se ela não
estiver visível, dê um duplo clique no botão.
- Digite no campo Expression a função Open(“Principal”) como mostra a figura. Você está
programando este botão para abrir uma tela cujo nome do arquivo é Principal.
- Execute esse mesmo procedimento para, criar todos os outros botões digitando as suas
descrições:
Trend Online
Trend Histórico
Receitas
Relatórios
Alarme Online
Alarme Histórico
Sair
Nota:
- É possível copiar e colar objetos das telas utilizando-se do recurso Ctrl+C Ctrl+V. Os objetos
copiados serão colocados sempre no canto superior esquerdo da tela.
- Outra forma é pressionar a tecla Ctrl e clicar no objeto a ser duplicado, depois disso é só arrasta-
lo.
Nota:
Pode ser interessante utilizar-se do recurso Disable Drag através do atalho Ctrl+D. Este recurso faz
com que os objetos não possam mais ser movimentados na tela utilizando o mouse. Para desabilitar
esta opção, basta pressionar Ctrl+D novamente.
- Clique em cada objeto, para mudar sua propriedade Caption, modificando para o nome da tela
adequado e modificando também no parâmetro da função Open( ). Em cada botão você fará
duas alterações, de modo que a tela fique como esta:
IMPORTANTE:
Nota:
A função Open( ), abre uma tela. Não é necessário que a janela tenha sido criada para que
programemos um botão para chamá-la. Mas para que a função funcione ai sim a tela já deve ter sido
criada. O nome da tela a ser chamada, deve estar entre aspas por tratar-se de uma constante do tipo
String. Se colocarmos ao invés disso um tag do tipo string, sendo que este tag possui como valor, o
nome de uma tela, aí então podemos colocar o nome do tag sem as aspas.
Agora desenharemos alguns retângulos e textos que farão parte da tela no canto superior esquerdo.
Esses campos mostrarão a data e hora atual, bem como o nome do usuário logado.
Para isso, aprenderemos mais algumas coisas do Toolbar. Quando mudamos algum dado (setting),
como por exemplo, cor e espessura das linhas, cor de preenchimento de objetos, formatação de
fontes de texto etc., essas mudanças passam a ter efeito no próximo objeto desenhado e em todos
que estejam selecionados.
- Para desenhar os três retângulos clique no ícone mostrado ao lado e desenhe como
mostra a figura abaixo:
- Para inserir caracteres de texto nos retângulos, usaremos o ícone mostrado ao lado .
- Clique no ícone e depois clique dentro de um dos retângulos que foram desenhados.
- Para mostrarmos o valor de um tag na tela, usamos o caractere # (sustenido, cerquinha, jogo da
velha etc.). O objeto texto pode combinar texto fixo com a máscara para dinâmica Text, como é
o caso em Usuário: ##########. O mesmo número de caracteres sustenido (#) que for digitado,
será o mesmo número de caracteres do tag que serão mostrados. Como queremos mostrar a data
utilizando o formato MM/DD/AAAA, precisamos de 10 caracteres no retângulo da esquerda, 8
caracteres para o retângulo da direita e 10 (ou mais) caracteres no retângulo inferior.
- Para mostrar o valor de um tag ou mesmo expressões numa tela, aplicaremos nos textos onde
houver os caracteres #####. a propriedade Text I/O, através do ícone:
- Clique duas vezes no retângulo com 8 caracteres sustenido (#) para hora, e em seguida no ícone
Text I/O, a janela Objects Properties aparecerá. Note que o check -list superior direito terá
além da opção Text, a propriedade Text I/O.
- Selecione o outro retângulo com texto ######, com 10 caracteres para data; aplique a
propriedade Text I/O.
- No último retângulo com o texto Usuário: ########## aplique a propriedade Text I/O e digite
UserName no campo Tag/Expression.
Nota:
- Salve a tela como Standard. Se você já a salvou no início, basta clicar no ícone Save do
Toolbar.
- Para salvar, clique no menu File na barra superior, e no item Save As.
- Agora crie a tela Sair, para inserir uma nova tela clique com o botão direito na pasta Screens,
clique em Insert e configure como na figura abaixo:
- Verifique as medidas e as configurações da tela.
- Como você já aprendeu a criar botões com dinâmicas de comando, não vamos repeti-las. Na
nova tela desenhe os dois botões e aplique dinâmica Command:
- No botão OK, a propriedade Command terá a Expression Shutdown( ), como mostra a figura
abaixo.
- Para salvar, clique no menu File na barra superior, e no item Save As.
- Para fechar a tela confirmação clique com o botão direito em algum lugar vazio da tela, em
seguida clique na opção close, ou pela tecla de atalho CTRL+F4.
- Para abrir uma tela no Workspace, selecione o tab Graphics. Clique duas vezes na pasta
Screen para expandi-la.
A tela Principal será a primeira tela a ser exibida na partida do sistema. Vamos aproveitar o
cabeçalho já desenvolvido na tela Standard e inserir novos objetos a partir desta.
- Clique em File, Save As, para salvar esta tela como Principal.
- Clique duas vezes no objeto texto, clique no ícone da propriedade de Text I/O e digite
GetAppPath( ), no campo Tag/Expression:, como na figura abaixo:
Nota:
Observe que ao final do campo Tag/Expression há um botão com reticências... Este chama a janela
denominada Object Finder, que entre outras facilidades, proporciona uma busca de todas as
funções de Script Language do Indusoft Web Studio.
Experimente inserir as funções GetComputerName( ) no campo Nome do Computador e
GetComputerIP( ) no campo Endereço IP, utilizando o Object Finder.
Nota:
InduSoft do Brasil – InduSoft Web Studio v6.0+SP3 58
Tutorial – Programa de Treinamento Básico
InduSoft 25/Novembro/2004
© Copyright InduSoft Ltd. 2001
Partindo do princípio que os três Tanques serão idênticos, aproveitaremos esta aplicação para
entender o conceito de Vetores. Portanto criaremos uma tela com tags indexados onde mostraremos
os valores das variáveis de um Tanque por vez.
- Para criar o tanque, os canos e as válvulas, usaremos objetos da biblioteca. Abra a janela da
biblioteca de símbolos, clicando no ícone mostrado na figura abaixo:
- Para importar um objeto da biblioteca para a tela da aplicação, simplesmente clique no objeto e
depois na tela.
- Há outras formas de se desenhar além de utilizar a biblioteca, mas o propósito deste tutorial é
também que você perceba como pode otimizar o desenvolvimento de seus projetos através da
manutenção de uma biblioteca com seus símbolos típicos.
- Selecione objetos como válvulas (na janela Valves da biblioteca) e o tanque (em Tanks) como
mostrado abaixo.
Nota:
Desenho os retângulos, e não utilize os objetos de bargraph da biblioteca, pois eles têm
configurações diferentes das propostas nesse tutorial.
IMPORTANTE:
- Clique duas vezes no texto ### abaixo da palavra Temperatura, clique no ícone da propriedade
- Selecione o texto ### abaixo de da palavra Pressão, atribua propriedade de Text/IO e configure
como mostrado abaixo:
- Por último, selecione o texto ## abaixo da palavra Nível. Configure seu Text I/O como os
anteriores, seguindo o exemplo abaixo:
No nosso exemplo, o retângulo vai ser preenchido de acordo com o valor do tag associado ao seu
bargraph.
- Clique duas vezes no retângulo acima do texto Temperatura e clique no ícone da propriedade
Bargraph .
- Clique duas vezes no retângulo sobre o texto Pressão e clique no ícone Bargraph. Configure
como mostra o exemplo abaixo:
- Por último, clique duas vezes no retângulo sobre o texto Nível e clique a propriedade Bargraph
e configure como mostrado abaixo.
- Clique sobre a válvula e aplique a propriedade de Command, da mesma forma como fez com os
botões ou a moldura para nome do Usuário.
Tag Expression
ComandoEnche[Tanque] not ComandoEnche[Tanque]
Numa aplicação real, este tag enviaria comandos para abrir e fechar as válvulas do sistema. Portanto
este tag seria um tag de ESCRITA no campo.
Finalmente crie os comandos para o tag Tanque. Observe a figura abaixo. Nela há um objeto texto
e um objeto ComboBox. O objetivo é criar uma interface para selecionar o número do tanque que se
vai monitorar.
- Duplo clique sobre o ComboBox para configurar suas propriedades dinâmicas, conforme as
figuras que seguem:
- Clique em OK.
- Salve a tela como Principal.
- Para salvar, clique no menu File na barra superior, e no item Save As e digite o nome
Principal no campo Nome do arquivo, e clique em Salvar.
- É interessante configurarmos a tela que dará inicio, quando a aplicação for Startada em modo de
RunTime.
- Para isso vá ao Menu Project / Settings, Aba RunTime Desktop e Configure o campo Startup
Screen, como mostrado abaixo:
A tela Principal já está pronta para ser executada. Clique no ícone Run Application do Toolbar:
Este capítulo visa apresentar a linguagem do programa InduSoft Web Studio e como utilizá-la em
diversas partes da construção de sua aplicação, como por exemplo:
Exemplo:
IMPORTANTE:
NOTA:
- O InduSoft Web Studio não é sensível a letras maiúsculas ou minúsculas. Por tanto
Nivel é igual a NIVEL
- Para poder fazer comentários nas linhas de programa utilize os caracteres de barras
“//” no inicio do comentário a ser feito.
Tipos de dados
Números Inteiros: 1, 23, 45, -123
Ponto Flutuante: 1.234, 3.1416, -775.344
Números inteiros hexadecimais: 0x5, 0xA0, 0xBC4.
Strings: “demo”, “new demo”
Números inteiros são números de 32 bits, pontos flutuantes de 8 bytes e strings suportam até 255
caracteres.
Para ler um valor corrente do tag no database, use o nome tag diretamente.
Exemplo 1:
Exemplo 2:
InduSoft Web Studio permite leitura e escrita de tags indiretamente através de apontadores
(ponteiros ou pointers). Um tag usado como ponteiro para outro tag pode ser criado de duas formas:
como qualquer tag string (um ponteiro para qualquer tipo de tag) ou como um ponteiro para um
tipo específico de tag.
Operando Aritméticos
+ adição
- subtração
* multiplicação
/ divisão
> maior que
InduSoft do Brasil – InduSoft Web Studio v6.0+SP3 68
Tutorial – Programa de Treinamento Básico
InduSoft 25/Novembro/2004
© Copyright InduSoft Ltd. 2001
Operandos Lógicos
AND E lógico
NOT NOT lógico.
OR OU lógico
XOR OU EXCLUSIVO lógico
& AND, bit a bit.
| OR, bit a bit.
~ NOT, bit.
^ XOR, bit a bit
>> rotate right - rotaciona n bits para a direita.
<< rotate left - rotaciona n bits para a esquerda
Usando Funções
Estas sintaxes identificam o tipo do argumento requerido por cada parâmetro das funções do
InduSoft Web Studio.
Lista de Funções
O InduSoft Web Studio tem mais de uma centena de funções, que podem ser usadas em toda a
aplicação, abaixo estas funções estão descritas resumidamente. Dentro dos parênteses há uma
descrição resumida do tipo de operação que deve ser passado como parâmetro. Exemplo: TRACE(
strOutputMessage ), a função TRACE envia uma string mostrada no módulo LogWin, chamada de
mensagem de saída (Output message).
DialError() Synchronous
DialGetClientIP() Synchronous
DialGetServerIP() Synchronous
DialStatus() Synchronous
DialUp() Asynchronous
DialUpToCE() Asynchronous
FindAllDevices() Synchronous
InduSoft do Brasil – InduSoft Web Studio v6.0+SP3 77
Tutorial – Programa de Treinamento Básico
InduSoft 25/Novembro/2004
© Copyright InduSoft Ltd. 2001
FindModem() Synchronous
HangUp() Synchronous
PhoneDialUp() Asynchronous
PhoneDisableListen() Synchronous
PhoneEnableListen() Synchronous
PhoneHangUp() Asynchronous
PhoneStatus() Synchronous
Página 79
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Portanto o campo Execution será preenchido com o valor 1. Isto habilita a execução contínua
desta planilha uma vez que 1 será sempre um valor verdadeiro (TRUE). Como na figura abaixo.
IMPORTANTE:
- Para simular o estado de cada válvula, vamos transferir o valor do Comando para o Estado, uma
vez que não estamos numa aplicação real.
- Para simular a propriedade Nivel de cada Tanque, usaremos os estados das válvulas de Encher e
Esvaziar para incrementar ou decrementar o valor da variável Nivel.
- Utilizaremos a função de Laço – FOR/NEXT – para acessar todas as posições do vetor (tanques
1, 2 e 3), sem precisar digitar repetidamente as simulações para os três tanques.
- Veja na segunda listagem, como poderia ser a mesma configuração sem a utilização da função
FOR( ).
IMPORTANTE:
IMPORTANTE:
- A planilha a seguir NÃO deve ser configurada, serve somente como exemplo.
Página 81
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
EstadoEnche[3] ComandoEnche[3]
EstadoEsvazia[3] ComandoEsvazia [3]
Temperatura[1] (Sin((Second/10)*PI( ))+1)*50
Temperatura[2] (Sin((Second/20)*PI( ))+1)*50
Temperatura[3] (Sin((Second/30)*PI( ))+1)*50
Pressao[1] (Cos((Second/10)*PI( ))+1)*50
Pressao[2] (Cos((Second/20)*PI( ))+1)*50
Pressao[3] (Cos((Second/30)*PI( ))+1)*50
Nivel[1] if ((Not EstadoEsvazia[1] and EstadoEnche[1] ) and Nivel[1] < 100, Nivel[1] + 1)
Nivel[1] if ((Not EstadoEnche[1] and EstadoEsvazia[1] ) and Nivel[1] > 0, Nivel[1] - 1)
Nivel[2] if ((Not EstadoEsvazia[2] and EstadoEnche[2] ) and Nivel[2] < 100, Nivel[2] + 1)
Nivel[2] if ((Not EstadoEnche[2] and EstadoEsvazia[2] ) and Nivel[2] > 0, Nivel[2] - 1)
Nivel[3] if ((Not EstadoEsvazia[3] and EstadoEnche[3] ) and Nivel[3] < 100, Nivel[3] + 1)
Nivel[3] if ((Not EstadoEnche[3] and EstadoEsvazia[3] ) and Nivel[3] > 0, Nivel[3] - 1)
IMPORTANTE:
Página 82
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Página 83
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Criando esta planilha, você está informando ao sistema quais tags devem ter a função de
alarmes, que tipo de alarmes, quais os seus limites, as mensagens para tais, prioridades e filtros
(dados)
- O check box Disk permite escolher salvar o histórico destes alarmes em disco, em formato
ASCII na pasta alarm da aplicação.
IMPORTANTE:
Página 84
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
CAMPO DESCRIPTION
Ajuda na descrição do grupo.
CAMPO DISABLE
É um tag que, se seu valor for maior do que zero, os alarmes serão desabilitados.
Group Box
Summary Check-box – Quando selecionada permite que estes alarmes sejam mostrados em um
objeto de alarme.
IMPORTANTE:
- Se esta opção Summary não estiver escolhida, os alarmes deste grupo não serão
mostrados nos grupos de alarme. Pode ser útil para o controle de eventos.
Check-box Ack– Permite o reconhecimento do alarme. Alguns alarmes, usados apenas por alerta,
não precisam de reconhecimento. Só é habilitado se o campo Summary também estiver habilitado.
Check-box Beep– Faz soar o Bip do computador quando há alarmes não reconhecidos. Disponível
apenas se Ack e Summary estiverem habilitados.
Check-box Printer– Envia o alarme para uma impressora. Não tem sido mais utilizado, pois as
impressoras de hoje não permitem a impressão linha a linha, e só página a página. Já pensou se
acontecer 5 alarmes simultâneos e forem impressas 5 páginas de uma linha?
Check-box Save to Disk– Habilita a gravação dos alarmes em disco, permitindo o seu uso em
objetos de alarme histórico. Se não for escolhido não será registrado nenhum alarme desta planilha
em disco.
Página 85
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Check-box Generate Ack Messages e Check-box Generate Norm Message– Se a opção Disk
estiver habilitada, permite decidir que se grave em disco as informações de quando e se o alarme
ocorrido foi reconhecido e/ou normalizado .
Group Box Colors– Define as cores dos alarmes no objeto de alarme, tanto da fonte quanto do seu
background (fundo). Só tem efeito se a opção radio estiver em Custom. No caso de Default, a cor
do alarme que será mostrada será a mesma que configurada no objeto de alarme da tela
Página 86
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Abra a tela Standard e desenhe um objeto de Alarm como se fosse um botão, utilizando o ícone
Página 87
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Ou trigando um tag que estaria no campo Ack Tag dentro do Object Properties/Advanced no
objeto de alarme.
Página 88
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Mas ainda há outra maneira. Há três tags internos que estudaremos agora: Alarm, AckAlr e
AckAll.
Página 89
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Clique duas vezes no botão Reconhecer Todos e configure o tag interno AckAll como
mostrado abaixo:.
IMPORTANTE:
Página 90
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
IMPORTANTE:
- Abra a tela Standard e desenhe um objeto de Alarm como se fosse um botão, utilizando o ícone
- Esta tela de histórico dos alarmes mostrará todos os alarmes que aconteceram e foram gravados
em disco, de acordo com um período definido como parâmetro.
Página 91
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Clique duas vezes no objeto de alarmes e configure a janela Object Properties como mostrado
abaixo.
- Não se esqueça de mudar a opção de On-line para History
IMPORTANTE:
- Note o campo Selection: o tag AlarmSel foi configurado entre chaves { }. Isso
acontece em todo campo que pode ser preenchido com uma constante string. Se você
deseja configurar com um tag, este deve estar entre chaves: {AlarmSel}.
Agora vamos configurar as entradas de texto para seleções e filtros por data.
IMPORTANTE:
Página 92
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Todos os textos ####### devem conter a propriedade Text I/O, e para permitir a
entrada de valor no tag devem estar com o Check Box “ Input Enabled”
habilitado.
- Configure os demais campos da mesma forma, utilizando na seqüência os tags
AlarmIni, AlarmFim e AlarmSel.
IMPORTANTE:
*HiHiLimit
*HiLimit
*LoLimit
*LoLoLimit
*DevLimit
*RateLimit
*DevSetpoint
Exemplo: TMP->AlrDisable=1
Página 93
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Trend
Trend On line
Nosso Trend On Line mostrará algumas variáveis e será atualizado uma vez por segundo.
- Clique duas vezes no objeto Trend recém desenhado (tela branca) e configure a janela Object
Properties. Na tela inicial, nenhuma alteração deve ser feita. As configurações default atendem
nossa aplicação.
Página 94
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Clique em OK . Agora clique no botão Vertical Scale e configure como mostrado a seguir:
Página 95
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
IMPORTANTE:
Página 96
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Nesta parte do tutorial mostraremos vários recursos ao mesmo tempo, incluindo tags indiretos e
outras operações usadas nos controles do gráfico.
- Agora informaremos ao sistema quais os tags de processo queremos amostrar seus valores em
disco, e de quanto em quanto tempo.
- Clique com o botão direito na pasta Trend (tab "Tasks") e clique em Insert.
Página 97
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
IMPORTANTE:
Página 98
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Nesta tela de histórico criaremos alguns campos para entrada de valores como data inicial do
gráfico, hora inicial, duração, etc… O gráfico estará apresentando um cursor vertical que,
sempre em intersecção com as curvas, indicará o valor daquela curva naquele momento. Além
disso, mostraremos as penas com as opções de escondê-las ou não, utilizando-se de tags
indiretos para tal.
Página 99
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Clique OK.
- Clique com o botão direito em qualquer lugar vazio da tela e escolha a opção Screen Atributes,
Página 100
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Página 101
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Página 102
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
IMPORTANTE:
Página 103
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
O módulo Recipes permite criar, recuperar e apagar receitas. Receitas são arquivos que contêm
qualquer conjunto de valores de tags, sejam de fato uma receita de processo ou parâmetros para o
sistema operar em determinadas situações. Na indústria alimentícia, química, podemos facilmente
imaginar receitas compostas por matérias-primas e suas respectivas quantidades. Isso compõe uma
receita. Mas também um forno pode precisar deste módulo para armazenar rampas de aquecimento,
desaquecimento onde as receitas são compostas de patamares de tempos e temperaturas respectivas.
Utilizaremos este último exemplo para a nossa aplicação de receita.
- Abordaremos agora o conceito de CLASSE, para isso crie uma classe com o nome FORNO com
os membros: TEMPERATURA, PRESSAO, QUEIMADOR, VALVULAABERTURA e
VALVULAFECHAMENTO.
- Faremos um exemplo como se fosse a preparação de um Forno.
- Para criar a CLASSE, clique com o botão direito na pasta Classes na Aba Database e escolha
Insert.
- Na caixa de dialogo, digite o nome da classe, como, por exemplo, Forno e clique em OK.
- Na planilha da classe, crie os nomes dos membros da Classe. Configure como mostrado abaixo:
Página 104
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
IMPORTANTE:
- Para criar uma Receita, clique com o botão direito na pasta Recipes e depois clique em Insert,
como na figura abaixo:
- Chech-Box Save As XML – Se você habilitar a opção de salvar como XML, serão gerados
arquivos de Receita no formato XML, os arquivos gerados em XML incluem todos os valores
do Tag, junto com o nome do Tag de que aqueles valores originaram.Caso a opção não seja
checada os arquivos serão salvos no formato DAT.
IMPORTANTE:
Nota:
Como com páginas do HTML, você deve startar o web server para ver dados de XML
via Web. Ao contrário das páginas do HTML no sistema run-time, as páginas de XML
não necessitam ter a aplicação funcionando para ver os dados de XML. (você deve ter a
versão 5.0 ou superior do Internet Explorer para ver dados de XML).
- Campo File Name - é colocado o nome do arquivo de receita que será salvo.
IMPORTANTE:
- Campo Register Number – Digite um Tag para definir o número do registro a ser lido ou
escrito em um arquivo de DBF. O InduSoft permite habilitar este campo para que alguma
aplicações mais velhas criadas para usar arquivos de DBF, mas é inutilizados para os projetos
mais novos.
- Check-Box Unicode: Habilite este check-box para salvar o arquivo de receita no formato
UNICODE (dois bytes por caracter) ou desabilite para salvar o arquivo de receita no formato
ANSI (um byte por caracter).
Página 106
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Nota:
Quando salvamos uma planilha, você pode salva-lá usando algum nome que você
escolher (você não precisa usar um nome predefinido do arquivo). Um arquivo de
configuração que usa a extensão padrão RCP (ou o XSL se você especificar Salvar como
XML) contém a configuração da receita e o arquivo que o campo File Name contem o
nome do arquivo de dados a ser lido ou escrito.
- Coluna Tag Name: Digite o nome do tag para atualizar o conteúdo do arquivo ou com valores
ou criar um arquivo. Se o tag é um array, você pode especificar a primeira posição a ser
utilizada.
- Coluna Number of Elements: Usado para tags do tipo vetor, para evitar a digitação de todas as
posições. Configura-se a primeira posição do array e o número de posições subseqüentes.
IMPORTANTE:
- Quando você define um Tag array, sua posição inicial é zero, embora IWS use o Tag
no caso de uma configuração inválida de posição.
IMPORTANTE:
Página 107
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Nota:
- Lembre-se que a sintaxe usada para acessar um valor de um Tag do tipo classe é:
< nome_tag>.<nome_membro >
(para o exemplo, SetPoint.Temperatura, ou SetPoint.Pressao, etc.).
Página 108
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Abra a tela Standard no tab Graphics na pasta Screens, e desenhe os objetos como mostrado na
figura a seguir e SALVE-A como Receita.
IMPORTANTE:
- No passo a seguir deixe sempre a opção Input Enabled habilitada em todos eles.
Isso permitirá digitar valores.
- Junto ao texto Nome do Forno, coloque um texto com propriedade Text I/O para o tag
NomeForno
- Junto ao texto Temperatura, coloque um texto com propriedade Text I/O para o tag SetPoint.
Temperatura
- Junto ao texto Pressão coloque um texto com propriedade Text I/O para o tag SetPoint.
Pressao
- Junto ao texto Queimador coloque um texto com propriedade Text I/O para o tag SetPoint.
Queimador
- Junto ao texto Válvula de Abertura coloque um texto com propriedade Text I/O para o tag
SetPoint.ValvulaAbertura
- Junto ao texto Valvula de Fechamento coloque um texto com propriedade Text I/O para o tag
SetPoint.ValvulaFechamento
Página 109
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Insira dois botões, um com Caption com valor Salvar e outro Carregar.
- Clique duas vezes sobre o botão Salvar. Insira a propriedade Command. Em Expression digite
o seguinte comando como na figura abaixo:
Página 110
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Clique em Ok.
IMPORTANTE:
Página 111
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Clique com o botão direito na pasta Reports (tab Tasks) e selecione a opção Insert para criar
uma nova planilha de Relatório
NOTA:
No caso de relatório em ASCII, é importante saber quantos caracteres serão mostrados (valor do
tag) e prever esse espaço dentro das chaves {}, inclusive os caracteres abre-chave e fecha-chave.
Ou seja, para mostrar o tag Date, no caso de relatório ASCII, {Date } afim de que
caibam todos os caracteres de uma data formato DD/MM/AAAA
No caso do relatório RTF, isto não é considerado. No entanto, nem sempre o número de
caracteres do tag vai permitir um alinhamento correto de colunas no relatório. A função Format
ajuda muito e, além disso, na hora de escolher a fonte, lembre-se que há fontes proporcionais,
em que caracteres diferentes ocupam espaços diferentes.
Página 112
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Certifique-se que sua aplicação esteja rodando. Se não estiver coloque-a em execução através do
botão Run Application do Toolbar.
- Volte ao mode de Engenharia InduSoft Web Studio.
Página 113
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Página 114
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
A maioria dos relatórios é baseada em conceito cabeçalho/corpo. Isto significa um cabeçalho que
pode incluir um bitmap com o nome da empresa, logotipo, nome das variáveis, etc… e a seguir
valores das várias coletas de dados.
IMPORTANTE:
- Vá ao tab Tasks e clique com o botão direito na pasta Reports, clique em Insert e crie uma
nova planilha (Report2), e configure como mostrado abaixo,
Página 116
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Como pudemos ver acima, as diferenças entre Report2 e Report3 se encontram nos textos
RTF e no check box Disk Append.
Página 117
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
O evento Clock é utilizado para disparar eventos baseados em temporizadores. Na coluna Time,
configuramos a base de tempo (mínimo de 100ms). Isso significa que, a cada HH: MM: SS.100ms o
evento será executado. Na coluna Tag, devemos configurar o tag que receberá o valor da expressão
da coluna Expression. Finalmente, a coluna Disable pode conter um tag, função ou expressão que,
se verdadeira, impedirá a execução do comando. Desta maneira é possível controlar a base de
tempo da execução bem como se deve executar sim ou não. As colunas Trigger e Date não são
utilizadas para este tipo de evento
O tipo Calendar dispara eventos em uma data e hora definida, ou sempre no mesmo horário todos
os dias. A coluna Trigger não é utilizada. Já as colunas Tag, Expression e Disable são utilizadas
da mesma forma que é explicado acima para o evento Clock.
Já o tipo Change dispara uma ação sempre que o tag colocado na coluna Trigger tem o seu valor
alterado. As colunas Time e Date não são utilizadas e as demais têm o mesmo comportamento
descrito para os tipos anteriores.
Página 118
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Essa configuração faz com que a cada minuto se inicie um novo relatório, que será adicionado de
novas informações (Report3), uma vez por segundo. Até que no minuto seguinte se inicie um novo
relatório, conforme muda o valor do tag NomeRelatorio.
- Verifique os arquivos que estão sendo gerados a partir dos Report2 e Report3. Se sua aplicação
não estiver rodando, coloque-a em execução usando o ícone Run Application
Página 119
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Abra a tela Standard no tab Graphics na pasta Screens, e desenhe os objetos como mostrado na
figura a seguir e SALVE-A como Relatórios.
- Junto ao texto Nome do Relatório, coloque um texto com propriedade Text I/O para o tag
NomeRelatorio
IMPORTANTE:
- Deixe sempre a opção Input Enabled habilitada em todos eles. Isso permitirá digitar
valores.
IMPORTANTE:
Página 120
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Clique duas vezes sobre o botão Salvar TXT. Insira a propriedade Command. Em Expression
digite o seguinte comando como na figura abaixo:
Estaremos dessa forma utilizando o programa Notepad do windows para abrir o relatório em ASCII
(formato texto).
A função WinExec permite a execução de programas que podem ser executados com o
comandoRun do Windows.
Faça o mesmo com o botão Salvar Cabeçalho RTF e insira o comando abaixo:
Repita o procedimeto com o botão Salvar Valores RTF e insira o comando abaixo:
Página 121
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
- Clique em Ok.
Página 122
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Página 123
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Data Server IP: É o endereço TCP/IP do micro onde está rodando a aplicação (Server) do
InduSoft Web Studio.
Send Period: Período em milisegundos que o InduSoft Web Studio leva para atualizar no micro
client, os valores dos tags configurados como Server.
Enable ToolTips – Tool Tips é quando paramos por alguns instantes sobre um objeto, e então
aparece uma janela dizendo o que é aquele objeto. Esta função habilita e desabilita está opção na
Web.
Enable File Compression – Se esta opção estiver habilitada os arquivos do diretório Web da
aplicação serão transferidos do Micro Server para o Micro Client, de modo reduzido facilitando
assim o download das telas e atualizações de dados no Micro Client.
Log – Salva na área de trabalho em arquivo .dat, as mensagens de debug da conexão Web.
Página 124
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
O módulo TCP/ IP server, deve ser configurado como Automatic, assim como o Viewer.
Para configurar o módulo TCP/ IP server como Automatic deve-se clicar no menu Project, Status...
Em seguida conferir se está na aba Execution Tasks, de um clique sobre o módulo TCP/ IP Server,
em seguida clique no botão Startup...
Clique em Ok novamente.
Página 125
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Para que a aplicação funcione via Web, é preciso fazer algumas configurações no Micro Server em
que a aplicação foi desenvolvida.
Vamos a elas:
IMPORTANTE:
- O aplicativo NTWebServer,não deve ser movido da pasta Bin e sim copiado para
dentro pasta Web da aplicação.
NTWebServer.exe
Localize e COPIE o aplicativo , COLE dentro da pasta Web da sua aplicação.
IMPORTANTE:
- Não arraste este aplicativo para a sua pasta, pois este procedimento pode provocar
erros de funcionamento. Somente copie o NTWebServer.exe.
Depois de ter copiado o aplicativo NTWebService para a pasta Web da sua aplicação, duplo clique
sobre o aplicativo e miniminize-o .
De volta ao ambiente de Engenharia do InduSoft Web Studio, vá ao menu superior e clique em File.
Em seguida clique sobre a opção Save All As HTML, como mostra a figura abaixo.
Página 126
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Perceba que ao clicar sobre a opção Save As HTML, o ponteiro do mouse irá piscar algumas vezes,
este fato é normal e depois disso a tela automaticamente será convertida para o formato HTML.
Vá até o tab DataBase e clique duas vezes sobre a pasta Application Tags, clique duas vezes sobre
Datasheet View, aparecerá a janela Application Tags, nela verifique se os tags da aplicação estão
configurados como Server no campo Web Data, caso não estejam configure-os já os que se
mantiverem como Local, só receberam comando do Micro Server e nenhum comando do Micro
Client, como mostra a figura abaixo.
Página 127
Apresentação - Programa de Treinamento Básico
InduSoft 26/Abr/2004
© Copyright InduSoft Ltd. 2001
Em seguida clique sobre a opção Verify Application, como mostra a afigura abaixo.
Depois de clicar sobre a opção Verify Application, o sistema faz uma varredura na aplicação
procurando por erros.
Caso o sistema não encontre erros será informada uma mensagem de que aplicação foi verificada
com sucesso.Como mostrado na figura abaixo.
Clique em OK.
Página 128