Você está na página 1de 50

O que é SCADA

A sigla SCADA é uma sigla do inglês para Supervisory Control And Data
Acquisition, o que significa Controle Supervisório e Aquisição de Dados.
Sistemas SCADA servem como interface entre o operador e processos dos
mais variados tipos, como máquinas industriais, controladores automáticos
e sensores dos mais variados tipos. Com sistemas SCADA são construídos
desde aplicativos simples de sensoriamento e automação de pequenas
plantas, até "Painéis de Controle" para grandes sistemas como sistemas de
geração e distribuição de energia, centrais de controle de tráfego e assim
por diante. Um SCADA típico deve oferecer drivers de comunicação com
equipamentos (CLPs, RTUs, SDCDs, etc), um sistema para registro contínuo
de dados ("datalogger") e uma interface gráfica para usuário, conhecida
como "IHM" ou Interface Homem-Máquina. Na IHM são disponibilizados
elementos gráficos como botões, ícones e displays, representando o
processo real que está sendo monitorado ou controlado. Entre algumas das
funções mais utilizadas em sistemas SCADA estão:

- Geração de gráficos e relatórios com o histórico do processo;


- Detecção de alarmes e registro de eventos em sistemas automatizados;
- Controle de processos incluindo envio remoto de parâmetros e set-points,
acionamento e comando de equipamentos;
- Uso de linguagens de script para desenvolvimento de lógicas de
automação

O Sistema SCADA pode ser desenvolvido diretamente em linguagem de


programação ou utilizando uma suíte de desenvolvimento. Essa suíte é um
programa sobre a qual será desenvolvida a aplicação (projeto), assim com
uma mesma suíte é possível desenvolver rapidamente sistemas SCADA para
diferentes plantas e processos

A suíte a ser utilizada nesse curso é o software RSView32 da Rockwell


Software. Esse é um software comercial e não é gratuito. Existem soluções
alternativas gratuitas como os softwares OpenSCADA, FreeSCADA, SCADABr
que são open source e versões de teste ou versões gratuitas (porem
limitadas) de softwares comerciais como CSWorks e etc.

O curso se baseará no software RSView32 porem os conhecimentos podem


ser estendidos a qualquer desses softwares.

Arquitetura e Comunicação

Numa planta existem instrumentos, sensores e atuadores que se


comunicam com os CLPs (controlador lógico programável) que possui a
lógica de controle da planta. Os CLPs, por sua vez, devem se comunicar com
as estações de trabalho (PCs) e IHMs onde as informações e comandos
serão visualizados nas telas. A comunicação entre CLPs e PCs deve ser feita
por protocolos de comunicação que podem ser privados ou abertos. Quando
o protocolo comunicação utilizado é privado (normalmente de propriedade
do fabricante do hardware), é necessário que o sistema SCADA possua o
driver de comunicação daquele protocolo, gerando uma relação de
dependência do software em relação ao hardware. Ou seja, limitando o
sistema SCADA a supervisionar apenas aquele tipo de hardware, ou
limitando aquele hardware utilizar apenas aquele software disponibilizado
pelo fabricante. A tendência então é utilizar protocolos abertos. O padrão
OPC (OLE for proccess control) é um conjunto de tecnologias criada pela
Microsoft e mantida pela OPC foundation com o objetivo de padronizar a
comunicação entre equipamentos industriais. O padrão OPC é aberto e tem
grande aceitação no mercado sendo suportado pela maioria dos softwares e
hardwares comercializados. A comunicação via padrão OPC é realizada
através de um servidor OPC que é um software que faz a interface entre o
CLP e o softwares. O servidor OPC utiliza os drivers de comunicação do
protocolo proprietário e disponibiliza aquela informação em protocolo OPC
assim o sistema SCADA pode utilizar aquela informação. Nesse curso
utilizaremos o CLP ControlLogix500 da Rockwell Automation, esse CLP se
comunica com o PC pelo software RS Linx que é um servidor de
comunicação. O RS Linx utiliza o driver de comunicação proprietário da
Rockwell e também serve de servidor OPC. Normalmente o fabricante do
hardware (CLP) disponibiliza o servidor OPC, mas caso isso não aconteça
também existem no mercado outros servidores OPC que possuem drivers
para uma grande variedade de hardwares. Caso o projetista necessitar
comunicar vários CLPs de fabricantes diferentes é também aconselhável
procurar um desses servidores.

O que é um protocolo de comunicação? Um protocolo é uma convenção ou


padrão que controla e possibilita uma conexão, comunicação ou
transferência de dados entre dois sistemas computacionais. De maneira
simples, um protocolo pode ser definido como "as regras que governam" a
sintaxe, semântica e sincronização da comunicação, ou seja, de que forma a
informação deve ser “empacotada” e enviada para que o destino consiga
identificar qual informação foi transmitida.

O que é um driver de comunicação? Um driver é um micro programa que


“conhece” o protocolo e decodifica a informação contida no “pacote”

Configurando a comunicação com o RS Linx

• Adicionando e configurando os drivers.

- Abra o linx
- Clique na aba Communications
- Clique em configure drivers
- Escolha no menu suspenso qual o driver será utilizado
- Clique em add new
- Escolha um nome qualquer para o driver

Repare que existe uma grande quantidade de drivers, pois o CLP pode se
comunicar com o PC através de diversas arquiteturas de rede. Nesse curso
assumiremos que o CLP está ligado a uma rede ethernet sobre protocolos
TCP/IP porem essa rede não é uma rede robusta e está sujeita a
interferências. Como o ambiente industrial é um ambiente com fortes ruídos
eletromagnéticos esse tipo de rede não é a mais indicada, sendo mais
comumente utilizadas as redes devicenet, datahighway, etc. O driver
utilizado para esse tipo de rede é o ethernet/IP driver.

- Clique em configure
- escolha entre local subnet e remote subnet
- Browse Local Subnet. Escolha essa opção se o CLP e o PC estiverem
conectados na mesma subrede (normalmente significa se ambos
estiverem conectados no mesmo roteador)
- Escolha qual placa de rede será utilizada nessa conexão (caso
o PC possua mais de uma placa de rede) ou a placa padrão
utilizada pelo Windows

- Browse Remote Subnet. Escolha essa opção se o CLP e o PC


estiverem conectados em diferente subredes (ou seja, se estiverem
conectados em roteadores diferentes.
- Digite o endereço de IP e a mascara de subrede para a
subrede na qual se encontra o CLP

• Configurando o servidor OPC

Será necessária a configuração de um tópico DDE/OPC para


comunicação do Linx com os demais softwares que não seja o RSView.
Esse tipo de comunicação também serve para comunicar com softwares
como Excel, matlab, lótus e qualquer outro que tenha suporte a
comunicação OPC ou DDE

- No Linx clique na aba DDE/OPC


- Topic Configuration
- New
- Escolha um nome
- Na aba Data Collection escolha o tipo de CLP
- escolha o período de transmissão (polled messages) em volta de 20
msec
- escolha o tempo de Time-Out em torno de 1 sec
- na aba Advanced Comunications escolha o driver que será
disponibilizado em OPC
- escolha o numero da estação (CLP) conectado por aquele driver que
será disponibilizado em OPC (o numero da estação pode ser visualizado
na aba Data Source)

- Clique em Apply

• O RSView

Possui dois módulos, o RSView Works e o Runtime. O Works serve para


desenvolver aplicações e rodá-las, e o Runtime serve apenas para rodar
aplicações já prontas. A separação em dois módulos é útil quando
apenas o modulo de Runtime é instalado na estação de trabalho, assim o
operador não poderá fazer alterações no projeto da aplicação.

• Criando um novo projeto

-clique em File, New


- escolha o nome do projeto, o local aonde será salvo os arquivos de
projeto e o nome do subdiretório.
-clique em abrir

A primeira coisa a se fazer é configurar o canal de comunicação e os nós.


O canal é a rede utilizada na comunicação e o driver a ser utilizado para
que haja a comunicação direta por essa rede. O RSView suporta 4 canais
diferentes e para cada canal podem ser associados diferentes nós. Nós
são os PLCs e PCs que estão em rede ou outras aplicações como MATLAB
e EXCELL. Uma pratica muito utilizada na industria é a redundância de
rede, onde são utilizadas 2 redes para se conectar com o mesmo CLP,
assim se uma das redes falhar a outra estará funcionando, dando mais
confiabilidade a comunicação. Para isso utiliza-se 2 placas de rede no PC
e configura-se 2 canais. A configuração de um canal só é necessária se a
comunicação com o CLP for direta pelo driver proprietário (não utilizando
o servidor OPC), essa opção é sempre a melhor, pois a comunicação fica
mais eficiente, porem se por qualquer razão houver a necessidade de
usar o servidor OPC então não é preciso configurar o canal.

Para configurar um canal:


-vá na aba Edit mode, na pasta system
-clique em channel
-escolha o tipo de conexão, no caso TCP/IP
-escolha o driver primário, no caso o AB_ethip-1 ou o nome que você
tenha configurado no Linx
-se quiser escolha o driver secundário (não necessário para redes TCP/IP)
- messages : é o numero de mensagens de requisição enviados ao PLC
antes do sistema aguardar o retorno. Alguns PLCs não aceitam que o
sistema SCADA solicite outra informação enquanto a anterior não foi
retornada, gerando mensagens de erro. Pode-se colocar então o numero
de mensagens como 1

Como dito anteriormente um Nó pode representar um CLP, um PC em


rede ou uma outra aplicação que esteja rodando na mesma maquina ou
em outra maquina na rede. Os nós se comunicam pela rede utilizando
drivers diretos (proprietários) ou servidores DDE ou OPC. O padrão DDE
(dinamic data Exchange) é um padrão de comunicação entre aplicações
criada pela Microsoft. Um nó DDE é utilizado quando deseja-se obter um
dado de uma planilha Excel, por exemplo, ou de qualquer software que
tenha servidor DDE como o Matlab ou o próprio RSView.

Para configurar um Nó:


-Na aba Edit mode, na pasta System
- clique em Node
- escolha um numero para o novo nó escolhendo uma linha da lista
- Escolha o nome para o novo Nó
- escolha a forma de conexão (direta, OPC ou DDE)
- se for direta escolha o canal, a station (CLP), o tipo do CLP e o
tempo de timeout

- se for OPC escolha o servidor OPC que será utilizado, no caso o


RSLinx OPC Server in-process
-escolha o caminho (Access path), que no caso é o nome do tópico
configurado no RSLinx
-escolha o período de atualização dos dados, por volta de 0.2
segundos

- se for DDE, escolhe-se o nome da aplicação que serve de servidor


DDE e o nome do tópico DDE

Veja que quando foi configurado um nó OPC existia na lista de servidores o


servidor do RSView. Assim o RSView funciona tanto como cliente e como
servidor DDE e OPC, assim é possível conectar o RSView a diversos tipos de
aplicativos rodando na mesma maquina ou em um local remoto, inclusive
conectar com outro projeto do RSView em outra maquina, compartilhando
dados.

Um servidor OPC pode ser:


Local – se for um aplicativo executável (arquivo.exe)
In-process – se for uma biblioteca de ligação dinâmica (arquivo.dll)
que é executada em processo no RS-View
Remote – se for um aplicativo executável (arquivo.exe) rodando em
outra maquina na rede
Sendo servidor OPC Remote o campo “Server computer name or adress”
será habilitado e nele deve-se inserir o endereço IP do computador (ou o
nome do computador na rede) onde está sendo rodado a aplicação.

Caso o servidor OPC não apareça na lista a configuração de nome de


servidor e Access Path deve ser feita manualmente e essas informações
devem ser buscadas junto ao desenvolvedor do servidor OPC.

TAGs e o TAG DATABASE

Tags são variáveis, ou símbolos, que registram a informação de um certo


dado. Como por exemplo, pressão, temperatura, válvula aberta, válvula
fechada, maquina ligada, maquina desligada, etc... O Tag Database é o
banco de dados ou tabela de dados onde são armazenados os valores e
configurações de todas as tags.

Para acessar o tag database vá na aba Edit mode – na pasta System – tag
database. Para criar uma nova tag clique em new ou clique numa linha em
branco e escreva um nome para a tag.

Uma Tag pode ser de 3 tipos (type):


Digital – se armazena apenas valores booleanos/digitais (como aberto
e fechado, ligado e desligado, falso e verdadeiro...)
Analog – se armazena valores analógicos (valores numéricos, como
pressão, temperatura, carga, etc)
String – se armazena valores alfanuméricos (textos)

Todas as tags possuem um campo de descrição (description) onde se pode


escrever uma breve descrição daquela tag.

Caso a tag seja digital deve-se configurar os rótulos (labels) de on e off.


Exemplos: ligado/desligado , Verdadeiro/Falso , Funcionando/Parado ,
OK/Erro , Aberto/Fechado. Esses valores que serão visualizados nas telas do
supervisorio.

Caso a tag seja analógica deve-se configurar os valores máximo e mínimo


que aquela tag poderá atingir, assim como a scala (scale) e o offset
(deslocamento). O scale e o offset serve para adaptar a informação vinda do
CLP (codificada em binario) para, por exemplo, mudar a unidade métrica
(centímetro para metro ou pé, centigrado para fahrenheit). Deve-se
configurar também o tipo de codificação binária que a tag recebe do CLP (se
é inteiro, com sinal ou sem sinal, de ponto flutuante, BCD, etc). o campo de
unidade é opcional e serve para visualização apenas.

Caso a tag seja string, deve-se configurar o tamanho da string, ou seja,


quantos caracteres ela terá.
Uma tag pode ter 2 tipos de fontes de dados (data source). A tag pode ser
DEVICE, ou seja, o dado é obtido de um CLP ou outra aplicação externa ao
RSView. Ou a tag pode ser MEMORY, onde o valor da tag é local e não é
obtido de nenhum outro dispositivo. Tags memory servem para certos tipos
de controle, como animações de telas e armazenamento de dados
gerenciais.

Se a tag for DEVICE deve-se especificar o nome do Nó ao qual aquela


informação será extraída e o endereço de memória que se refere ao dado
em especifico. Se o nó for direct driver ainda deve-se especificar qual a
SCAN CLASS utilizada (explicada mais adiante). Se o nó for OPC Server ou
DDE Server essa opção não é habilitada pois foi configurado o update rate
na configuração do nó. Se o dispositivo ao qual se extrairá a informação for
um CLP de lógica Alen-Bradley (do tipo fabricado pela Rockwel Automation)
o RSView disponibiliza uma ferramenta para navegar no banco de dados do
dispositivo e escolher o endereço de memória para a tag de forma mais
rápida. Caso o dispositivo não seja Alen-Bradley deve-se escolher o
endereço de memória de forma manual e deve-se consultar a
documentação do fabricante do dispositivo ou servidor OPC/DDE.

Se a tag for MEMORY deve-se apenas especificar o valor inicial que a tag vai
receber ao iniciar a aplicação RSView.

A tag ainda pode ser System, que são as tags de sistema como data e hora
atual, tags de referencia de alarme e erros de comunicação, entre outras...

Tags podem ser organizadas em pastas. Para criar uma nova pasta va no
menu Edit – new folder, ou no atalho da toolbox, e escreva o caminho e o
nome da nova pasta, separando as sub pastas por uma barra ( / ). Quando
quiser criar Tags dentro dessas pastas o nome da tag deve conter também
o caminho. A utilidade disso alem de organizar é de poder copiar varias tags
utilizando o Duplicate Folder. Assim caso se tenha vários equipamentos com
tags iguais, pode-se criar as tags para um em uma pasta e duplicar a pasta.
Para duplicar uma pasta, selecione a pasta desejada e clique em Duplicate
Tag Folder no Toolbar ou no menu Edit – Duplicate folder... (observe que
duplicate folder é diferente de duplicate, que duplica uma tag)

Obs.: os campos de ALARM e SECURITY serão abordados mais a frente.

O SCAN CLASS (classe de varredura) é semelhante ao update rate e é uma


opção disponibilizada pelo RS-view quando forem utilizados CLPs com lógica
AB. Com o SCAN CLASS pode-se definir diferentes update rate para
diferentes tags. O que otimiza a comunicação, pois tags criticas podem ser
atualizadas mais rapidamente e tags não criticas podem ser atualizadas
mais lentamente, assim não se sobrecarrega a rede industrial caso essa
seja limitada ou tenha muito trafego de informações. Em contraste com o
update rate dos servidores DDE/OPC que atualiza todas as tags em uma
taxa única. Veja que se a rede for de alta velocidade ou se esta não tiver
muito trafego, não é critico a configuração dos níveis de varredura.

Os vários níveis de SCAN CLASS podem ser configurados na aba Edit mode –
pasta system – scan class.

É possível configurar 11 classes de varredura ( de A a K) cada uma com 2


períodos. O período de foreground é o período de atualização da tag quando
esta está sendo visualizada na tela do supervisório e o de background é o
período de atualização da tag quando esta não está sendo visualizada na
tela do supervisório.

GRAFICOS E TELAS

O foco principal de um sistema supervisório são as telas. Para criar uma


nova tela (também chamada de Display) vá na aba Edit mode, na pasta
graphics, duplo clique em Display e será aberta um novo display

Perceba que quando a janela do display está selecionada toda a janela do


RSView muda, e são disposponibilizadas opções especificas do display

• Salvando telas: para salvar a tela, vá em File – Save as, ou pelo atalho
ctrl + S. telas são salvas em formato .gfx e ficam armazenadas na pasta
gfx dentro do diretório raiz do seu projeto.

Após salvar algumas telas a lista de todas as telas salvas no seu projeto
pode ser visualizada ao selecionar a opção “Display” dentro da pasta
graphics. Para editar uma tela salva dê dois cliques no nome da tela que
deseja editar

• Objetos: Objetos gráficos podem ser adicionados às telas. Todos os


objetos podem ser acessados pelo menu “Objects” ou pelos botões da
“drawing toolbox”. Dentre os objetos simples existem: Retangulo,
retângulo com borda arredondada, linha reta, polilinha, polígono, linha
livre, elipse, arco, fatia e texto. Não explicitarei o funcionamento destas
ferramentas por ser intuitivo. Após criado o objeto ele pode ser reeditado
dando um duplo clique no mesmo.

Objetos gráficos simples possuem atributos (cor da linha, cor do


preenchimento, grossura da linha, estilo da linha... etc). estes podem ser
editados clicando com o botão direito no objeto em questão, selecionando
attributes e selecionando o atributo que deseja editar ou pelo menu
attributes com o objeto selecionado.

Line color: cor da linha


Fill color: cor do preenchimento
Line properties: espessura da linha e estilo da linha (continua, pontilhado,
tracejado etc)
Font e Font Size (para texto): tamanho e estilo de fonte
Padrões de preenchimento: no menu de atributos existe uma lista com
padrões de preenchimento:
Hollow – vazio, sem preenchimento
Solid – preenchimento comum, solido
Vertical lines – linhas verticais
Entre outros...

Objetos podem ser rotacionados com a ferramenta ROTATE: pode-se


selecionar o centro de rotação simplesmente arrastando o símbolo de centro

Organização de objetos (arrange) :


Pode-se organizar os objetos para quando estes se sobreporem,
selecionando o objeto e utilizando o “send to back” e o “bring to front”.
Estas opções podem ser acessadas no menu arrange, ou clicando com botão
direito no objeto, ou nos atalhos na toolbar.

Pode-se agrupar objetos utilizando o group. Basta selecionar os objetos que


deseja-se agrupar (pode-se segurar o ctrl para fazer a seleção). A ferramenta
group encontra-se no menu Arrange, e na toolbar, ou pode-se utilizar o
atalho ctrl+G. para editar um grupo basta clicar duas vezes no mesmo.
Pode-se criar um grupo de grupos, ou um grupo dentro de um grupo. Pode-
se desagrupar com a opção ungroup.

Pode-se inverter (espelhar) os objetos e grupos com as opções flip vertical e


flip horizontal

Pode-se fazer o arranjo espacial (distribuição espacial) e o alinhamento de


uma seleção de objetos com as opções align e space

Ao selecionar um ou mais objetos pode-se alinhá-los às linhas de grade com


a opção align to grid

Ao selecionar 2 ou mais objetos pode-se alinhá-los com as opções:


Align left – para alinhar os extremos à esquerda dos objetos a uma linha
horizontal à esquerda
Align right – para alinhar os extremos à direita dos objetos a uma linha
horizontal à direita
Align Center – para alinhar os centros dos objetos à uma linha horizontal ao
centro

Align top
Align botton
Align middle
Align center points – para alinhar os centros dos objetos a um ponto no
centro

Ao selecionar 3 ou mais objetos pode-se espaça-los igualmente (distribuir no


espaço) com as opções:
Space Vertical – distribui os objetos no sentido vertical
Space Horizontal – distribui os objetos no sentido horizontal

Opções de GRADE: pode-se visualizar linhas de grade e ativar o SNAP TO


GRID no menu View, ativando as opções Show Grid e Snap On. Pode-se
mudar as configurações da grade em Grid Settings... pode-se alterar a cor
da grade e o espaçamento vertical e horizontal

Converter em Wallpaper: qualquer objeto gráfico pode ser convertido em


plano de fundo. Quando um objeto está convertido em plano de fundo este
não será selecionado quando for clicado. Essa ferramenta é útil no estagio
de edição do projeto, numa tela com vários objetos gráficos e quando estes
formam um plano de fundo. Para converter um objeto, grupo ou seleção vá
no menu Edit – wallpaper – convert to wallpaper, ou clique com o botão
direito – convert to wallpaper. Quando precisar editar algum objeto
convertido para wallpaper va no menu Edit – wallpaper – unlock all
wallpaper, e todos os objetos convertidos poderão ser editados novamente.

BIBLIOTECA DE OBJETOS GRAFICOS


Pode-se utilizar bibliotecas de obejetos gráficos para projetar mais
rapidamente o supervisório ou para compartilhar objetos gráficos entre
projetos. Vá na aba Edit Mode – Graphics – Library para acessar uma lista
das bibliotecas de gráficos. Para visualizar o conteúdo de uma biblioteca
basta dar duplo clique no nome desta, assim abrirá aquela biblioteca em
modo de edição. Para utilizar os objetos contidos na biblioteca
simplesmente o selecione, copie e cole no display do seu projeto. Pode-se
criar novas librarys dando duplo clique em library. Os arquivos de library
são idênticos aos de displays (.gfx) e tudo que é valido para edição de
display também é valido para edição de librarys. porem librarys estão
armazenados no diretório raiz do RSView e podem ser acessados em
qualquer projeto. Também pode-se achar librarys adicionais para download
na internet.

ANIMAÇÕES: em uma tela de supervisório é muito mais eficiente informar


sobre o estado de uma variável graficamente ao invés de simplesmente um
mostrador numérico. Também é necessário variar dados de entrada
qualitativamente, ao invés de quantitativamente. Para isso utilizamos
animações, assim podemos animar ponteiros, VU’s, indicadores, etc

Animações são associadas a um objeto ou a um grupo. Para adicionar uma


animação clique com o botão direito no objeto – animation e escolha a
animação que deseja adicionar, ou selecione o objeto e no menu animation
escolha a animação. Será aberta uma janela contendo abas. Cada aba
refere-se a uma animação. Quando a animação for adicionada será posto
uma seta ao lado do nome da animação. Pode-se adicionar varias
animações diferentes para cada objeto. Pode-se visualizar as animações de
outros objetos, mantendo a janela de animações aberta e selecionando um
outro objeto (isto muitas vezes confunde o projetista quando seleciona um
objeto errado). Para testar a animação utilize o TEST RUN no menu View, ou
o atalho na toolbox.

Dentre as animações temos animações apenas para mostrar algo, ou para


realizar uma operação de entrada de dados:

Vertical e horizontal Slider: são animações de entrada de dados. Com esta


animação podemos variar uma tag em uma barra de rolagem. Pode-se
utilizar os objetos da biblioteca Sliders e associar a tag à animação
preconfigurada (já adicionada ao botão dentro do grupo).
Configurações da animação:

Associe uma tag analógica ou digital, escrevendo seu nome ou


clicando em Tags... (também pode-se criar e editar tags e pastas
enquanto se associa uma tag a uma animação)

Vertical Offset (pixels): é o deslocamento (em pixels) da animação em


relação à posição atual do objeto. At minimun (normalmente é 0) é a
posição quando a tag se encontra com o valor mínimo. At maximun é
a posição quando a tag está com valor Maximo. Pode-se editar esses
valores do seguinte modo:

desabilite as check boxes


mova o objeto para a posição de valor mínimo
abilite a check Box de at minimun
mova o objeto para a posição de valor Maximo
abilite a check Box de at maximum
clique em aply

Specify min e max: pode-se especificar o min e máximo da tag, ou


utilizar o máximo e mínimo especificado na configuração da tag
(quando foi criada a tag especificou-se o máximo e mínimo alcançado
pela tag). Para especificar um máximo e mínimo diferente dos valores
da tag abilite a check Box Specify, e escreva os valores desejados
(estes devem estar no range da tag, ou seja o máximo deve ser
menor ou igual ao maximo da tag e o minimo deve ser maior ou igual
ao minimo da tag)

Não deve-se associar tags que não sejam manipulaveis à animação


de Slider (apesar de ser possível). Tais tags (como aquelas
relacionadas com Inputs no CLP) tem proteção de escrita e não serão
alteradas, gerando erro caso tente-se...

Vertical e Horizontal position: parecida com a animação Vertical e horizontal


Slider, porem o operador não pode manipular a tag. A animação é apenas
para visualização do estado da tag associada. Também pode-se associar
uma expressão, ao invés de apenas uma tag.

Uma expressão contem Tags, operadores (aritméticos, booleanos,


relacionais, condicionais, etc) e funções. Assim podemos associar, à
animação, valores que dependem de condições. Por exemplo:

IF bit1 == 1 AND bit2 == 0 then analog1 + 10


Else if analog1 >= 50 OR analog2 <= 70 then analog1 - 50
Else then Sin(analog2 / 5)

Onde analog1, analog2, bit1 e bit2 são tags. IF ELSE THEN são
condicionais. == >= são relacionais, - + / são aritméticos, AND e OR
são Logicos (booleanos) e Sin é uma função (seno).

Assim associam-se os valores (analog1 + 10) (analog1 – 50) e


( sin(analog2 / 5) ) dependendo das condições (bit1 == 1 AND bit2
== 0) (analog1 >= 50 OR analog2 <= 70) (nenhuma das anteriores)

Repare que o operador lógico AND é diferente do operador bitwise


and (&), e assim também para o OR (|) . Os operadores bitwise OR e
AND são aplicados em tags analogicas do tipo inteiro e fazem a
operação booleana bit a bit, retornando um valor inteiro que é o
resultado dessas operações. Os outros operadores bitwise também
fazem operações bit a bit em tags do tipo inteiro e não são de grande
relevância nesse curso. Caso deseje mais informações, deve-se
consultar a documentação.

Funções retornam um valor que depende do argumento. Existem


funções trigonométricas (seno cosseno tangente etc...) e funções que
retornam valores booleanos, ou seja funções que avaliam uma
situação e retornam uma confirmação ou negação. Exemplos:
COMM_ERR(tag) retorna 1 se houve um erro na comunicação
do valor da tag
ALM_IN_ALARM(tag*) retorna 1 se a tag está em alarme
AFTER_TIME("time") retorna 1 se o horário atual for superior ao
horario especificado )
As funções não serão mais abordadas neste curso e deve-se
consultar a documentação para maiores informações. Consulte o help
do RSView no caminho: Expressions / math and other functions in
expressions / Quick Reference to Math and Other Functions

Touch: animação de entrada de dados, com esta animação pode-se criar


botões, ou objetos nos quais ao serem clicados realizam-se ações.
Configuração da animação:
Temos 3 ações a serem realizadas: uma quando o objeto for clicado
(press action), outra se o objeto continuar clicado (repeat action), e
outra ao soltar o clique (release action). O Repeat Rate é o intervalo
entre o clicar (press) e o continuar clicado (repeat). O padrão 0,25
segundos é um bom intervalo, mas caso deseje pode-se alterar esse
intervalo.

Para adicionar uma ação ou comando clique no botão (...) ao lado da


caixa, navegue entre as opções de comandos (comand wizard) e
escolha uma opção.

Comandos são nativos do RSView e diferem das Funções (functions) e


Operadores que vimos anteriormente, e das subrotinas que também
veremos mais adiante. Existem comandos para manipular tags,
configurar comunicação, iniciar registro, navegar entre telas, entre
outros. Abordaremos com profundidade os comandos mais adiante.
Alguns comandos simples são: toggle, ramp e set
O toggle alterna o valor de uma tag digital de 0 para 1 ou vice
e versa

O ramp incrementa (ou decrementa) o valor de uma tag


analógica de um valor definido, do valor atual de uma tag, ou
de uma porcentagem do valor da própria tag.

O set ajusta o valor de uma tag qualquer a um valor qualquer


(desde que esteja dentro do range) que pode ser um valor fixo
definido, o valor de uma tag, ou uma porcentagem do valor
maximo,

O comand wizard te guiará por dentre as opções para formular a


sintaxe do comando (repare no canto inferior do comand wizard a
Comand String). Caso o projetista conheça a sintaxe pode-se escrever
diretamente na caixa. Pode-se adicionar mais de um comando para
uma determinada ação, basta separa-los por linha ou por ponto-e-
virgula.

Fill: o fill faz o preenchimento do objeto dependendo do valor da tag ou


expressão associada
Configuração da animação:
Fill (percent): percentual de preenchimento em valor maximo e
minimo da tag ou expressão. Normalente 0 para minimum e 100 para
maximum. Semelhante ao offset do Slider e Position.

Fill direction: é a direção de preenchimento do objeto

Inside only: marque a checkbox caso deseje manter a linha de borda


e adicionar animação apenas ao preenchimento do objeto

Width e height: faz uma escala da largura (width) e da altura (height)


dependendo do valor da tag ou expressão associada. Efeito semelhante ao
fill.
Configuração da animação:
Horizontal e vertical change (percent): percentual da escala
(modificação).

Anchor: posição de ancoramento (left, right, top, botton e middle) de


que ponto o objeto irá “crescer”

Rotation: rotacionar o objeto dependendo do valor da tag ou expressão


associado
Configuração da animação:
Rotation (degrees): grau de rotação para os valores maximo e minimo
da tag

Center of rotation: centro da rotação. Pode-se escolher um ponto


extremo do objeto (cantos, centros das arestas laterais e centro) ou
escolher um ponto qualquer. Para escolher um ponto qualquer
marque a check Box ao lado de (0,0) e arraste o simbolo de centro
pelo objeto até o local desejado.

Visibility: mostrar ou esconder o objeto a depender do valor da tag ou


expressão.
Configuração da animação:
Expression True State invisible, visible: estado do objeto para caso a
expressão seja verdadeira, visível ou invisível.

Pode-se utilizar apenas uma tag binária para a expressão, quando


tiver valor 1 a expressão será verdadeira

Pode-se utilizar uma tag analógica para a expressão, quanto esta


tiver valor maior que zero a expressão será verdadeira.

Pode-se usar operaradores condicionais. Esses associam uma tag ou


expressão diferente de acordo com as condições. exemplo:
IF analog > 50 then 1
Else IF analog < 20 then 0
Else then bit

Assim se analog > 50 a expressão é verdadeira


Se analo <20 a expressão é falsa
Se 20 < analog < 50 então a expressão depende da tag “Bit”

Color: altera a cor do preenchimento do objeto. Depende do valor da


expressão ou tag.
Pode-se usar apenas uma tag binária (valores 0 e 1) ou uma tag analógica
com mais valores, ou uma expressão condicional que associe diferentes
valores a expressão.
Configuração da animação:
Pode-se escolher 16 valores (ou cores) diferentes para a animação.
Os valores são associados as letras de A-P, selecionando a letra e
escrevendo o valor no campo Value. normalmente escolhe-se valores
de 0 a 15, somente para referencia. Utiliza-se o condicional caso
queira associar cores a intervalos de valores de tag. Exemplo:

IF analog <15 then 0


Else IF analog >= 15 and analog < 30 then 1
Else if analog >= 30 and analog < 45 then 2
Else if analog >= 45 and analog < 60 then 3
Else if analog >= 60 and analog < 75 then 4
Else if analog >= 75 and analog < 90 then 5
Else then 6

É comum associar cores quentes a valores que estejam alertando


algum perigo ou desconformidade.

Para cada letra (valor) pode-se escolher cores diferentes para a linha
e para o preenchimento do objeto. Alem disso pode-se escolher que a
linha e/ou o preenchimento fiquem piscando. Para que pisquem deve-
se marcar a opção Blink. Com esta opção marcada um novo quadro é
disponibilizado e esta é a cor que alternará (piscará). Para escolher as
cores basta clicar nos quadros.

Blink rate (seconds): é o período para piscar (alternar a cor). Pode-se


usar frações de segundo, exemplo: (0.5) . Essa taxa é a mesma para
todas as opções de pisca.

OLE VERB: essa animação só deve ser adicionada a objetos OLE (object
linked and embeded), falaremos sobre eles mais tarde.
ADVANCED OBJECTS: alem dos objetos simples (circulo, retângulo, reta
etc...) existem os objetos avançados. Alguns objetos avançados não aceitam
algumas animações.

Numeric imputs e numeric displays: os numeric displays mostram valores


numéricos de tags ou expressões e os numeric imputs podem modificar o
valor de tags numéricas (tags apenas). Os dois objetos são muito
semelhantes apenas com algumas diferenças.
Semelhanças:
Field Length: tamanho do campo (quantos dígitos serão visualizados
no campo). Depois de criado o campo se desejar aumentar o tamanho
da fonte ou o tamanho da campo não deve-se utilizar o Scale no
objeto e sim alterar essa configuração ou alterar o atributo Font Size.

Format: o formato da informação (hexadecimal, inteiro/decimal, ponto


flutuante, etc)

Leading character blanks/zeroes: se haverá zeros a esquerda ou


apenas espaços vazios

Justification: justificação de texto, a esquerda a direita e ao centro.


Apenas útil se o leading character estiver configurado em blanks.

Caso o formato seja de ponto flutuante (floating point) deve-se


configurar o numero de casas decimais (decimal places), e configurar
a maneira de lidar com o overflow (estouro de valor). O overflow
ocorre quando o valor a ser exibido não cabe no tamanho de campo.
Caso escolha show exponent o valor será exibido em notação
exponencial, caso esolha rounded value o valor será arredondado
perdendo casas decimais, caso escolha fill with asterisks o campo
será preenchido com asteriscos e nenhum valor será visualizado.

No numeric imput temos as opções índex, default data, continuously


update que não têm no numeric display. O índex é o índice de imput
(utilizado em receitas, veremos mais a frente) todo objeto de imput
(numeric, string e botões) tem um índice diferente que o identifica. O
índice é útil para identificar o campo de input assim e possivel
realizar comandos automáticos de input de dados, como receitas e
outros... Default data é o valor padrão que será exibido assim que o
input for exibido (enquanto o valor da tag não for atualizado). Marque
continuously update para que o valor do campo seja atualizado
continuamente para o valor atual da tag, funcionando também como
um numeric display. Caso seja desmarcado o valor do campo nunca
será atualizado, e só será mudado caso o operador o ajuste.
Obs.: o valor da tag associada ao numeric imput só será atualizado ao
pressionar a tecla enter ou utilizar os comandos Download e
Download All

String input e display: semelhante ao numeric input e display, porem


com texto ao invés de valores numéricos.
Semelhanças entre input e display:
Dimension – dimensão em numero de caracteres: width (largura) e
height (altura)
Justification – justifição de texto

Somente no string DISPLAY:


character offset – digite no campo o numero do primeiro caractere da
string a ser exibido, assim pode-se exibir toda a string ou apenas
parte dela. Por exemplo, digamos que uma tag string contenha 20
caracteres, deseja-se exibi-la em dois string displays diferentes, cada
um com apenas 10 caracteres de comprimento. Assim coloca-se no
primeiro lenght 10 e offset 0 e no segundo lenght 10 e offset 9. Assim
os 10 primeiros caracteres serão exibidos no primeiro campo e os 10
ultimos serão exibidos no segundo campo

somente no sintring input:


índex, default data e continuously update: igual como no numeric
input.

Arrow: é um mostrador do valor da tag utilizando uma seta que se


desloca. Pode ser usada ao invez de objetos com animação para
poupar tempo de projeto.
Range Specify min e max: semelhante a todas as animações, se
deve-se utilizar o min e max da tag ou um range especifico.
Direction: direção do deslocamento da seta

Label: rotulo, exibe uma informação sobre uma tag. Associa-se uma
tag ao rotulo e especifica-se o tipo do rotulo. Alguns tipos utéis são:
descrição, unidade de medida, nome da tag, status... essas
informações são configuradas no tag database. Utilizar rótulos é útil
quando se deseja exibir uma informação varias vezes ou em varias
telas diferentes, sem a necessidade de escreve-la varias vezes. Alem
disso quando se alterar uma dessas informações num supervisório já
pronto (por exemplo, mudar a unidade de medida de uma variável,
ou traduzir para uma outra língua a descrição da tag) não há a
necessidade de altera-lo varias vezes. Também o rotulo de Status
(apenas para tags digitais) é útil para exibir valores lógicos ao invés
de exibir zeros e uns (0, 1), assim exibe-se a informação
qualitativamente (ligado/desligado, aberto/fechado, etc...)
Buttons: botões que ao serem pressionados realizam ações igual à
animação Touch. Ao criar um botão, abre-se a janela de configuração
de botões com 4 abas. A primeira (general) contem informações de
estilo e formato do botão (pode-se testar as animações do botão
clicando nos exemplos). O estilo beveled tem a configuração width
que é a espessura da borda.

High light cursor: marque esta opção caso deseje que o botão seja
destacado (circulado por um retângulo colorido) quando este for
clicado.

Capture cursor: marque essa opção caso deseje que o cursor fique
retido no campo do botão até que este seja liberado. Útil quando se
tem botões pequenos e telas touchscreen.

Na aba actions temos as opções de ação para quando o botão for


pressionado.
Set to 1 e Reset to 0: ao clicar no botão a tag associada muda
para 1 (ou continua em 1) caso seja set ou para 0 caso seja
reset. (pode-se usar tags analógicas ou digitais)

Toogle bit: muda o estado do bit de 0 para 1 ou vice e versa. O


botão também mantem-se pressionado quando a tag está em
1.

Momentary on: momentariamente ajusta o valor da tag para 1


e ao ser liberado o botão ajusta o valor da tag para 0
Idem para momentary off

Command: realiza comandos ao ser pressionado (press), ao


continuar pressionado (continue) e ao ser liberado (release),
assim como na animação touch. Pode-se fazer botões toggle,
set/reset e momentary on/off também com comandos

Na aba Up Apearence temos opções da aparência do botão quando


este não estiver acionado: Button label é o rotulo ou texto que fica
exibido no botão, pode-se escolher a cor e a fonte do texto
Fill: opções de preenchimento do botão. Pode-se escolher um
padrão de preenchimento (solido, vazio, hachurado, etc...), a
cor de preenchimento, ou que este seja preechido por uma
figura .bmp ou .ico em Import. Caso deseje retirar a figura do
preenchimento, clique em clear import.

Na aba down apearence podemos escolher se queremos que o botão


tenha a mesma aparência acionado e não acionado ou que tenha
aparências diferentes (útil quando o botão é toogle. exemplo, botão
com duas cores, ou com dois rótulos ligado e desligado, etc).
marcando Same as Up Apearence o botão terá a mesma aparência
acionado e não acionado. Desmarcando Same as Up Apearence
podemos configurar a aparência para o botão quando este tiver
acionado

Falaremos sobre outros advanced objects mais tarde para agora falar sobre
comandos e macros e configuração de telas. Como já foi visto comandos
são nativos do RSView e realizam funções do programa. Já foram vistos o
ramp o set e o toogle. Os comandos devem ser abordados durante todo o
curso pois certos comandos se referem a certas ferramentas ainda não
abordadas. Iremos agora abordar alguns outros comandos de navegação de
telas, estes podem ser encontrados no command wizard, no quadro
command categories, no caminho Graphics / Graphics display / Navigation:
Display: comando que chama uma nova tela. Escolhe-se a tela a ser
chamada em file, que exibirá uma lista de todas as telas já salvas em
Graphics. Esse comando possui uma serie de modificadores que
podem ser utilizados. Os mais importantes são:
Windows position: especificar a posição que a tela será aberta
(canto superior/inferior, centro a esquerda, centro acima etc...)

X/Y Left/Top: também especifica a posição que a tela será


aberta. Especifica a linha e a coluna das laterais superior e
esquerda (em pixels)

Height e Width: especifica o tamanho da tela (altura e


espessura). caso a tela tenha valores diferentes de altura e
espessura esta pode ser modificada em escala (scale) ou então
será adicionada uma barra de rolagem (pan), dependendo da
configuração do display exibido. Falaremos sobre configuração
de display a seguir.

Cache display e Cache allways updating: opções para que a


tela seja carregada na memoria cache do computador, assim
quando a tela for chamada novamente está será carregada
mais rapidamente. Porem essa opção consome recursos do
computador. Bom somente para telas que são constantemente
acessadas ou telas criticas, como tela de gerenciamento de
falhas.

Veja que os modificadores configuram a posição e tamanho da


tela, caso não haja modificadores no comando display a tela
será exibida de acordo com as configurações do display.

Abort: comando utilizado para fechar telas abertas.


Pode-se fechar a janela ativa (mais a frente) – abort
Pode-se fechar a janela de onde saiu o comando abort – abort
me
Pode-se fechar uma janela especifica – abort <nome>
Pode-se fechar todas as janelas – abort *

OBS.: Diferenças entre test Run, Run mode e Run Project.


O test run (botão de play quando editando graficos) é diferente do Run
mode e do Run Project.

O test run roda a tela em modo teste, mantendo as dimensões e


posição da tela como está no modo de edição. Também não executa
o comportamento configurado na configuração da tela.

Já o Run Mode a tela roda com as dimensões e posição configuradas e


executa o comportamento configurado na configuração da tela. para
rodar uma tela em run mode vá na aba run mode na pasta graphics –
display e escolha a tela que deseja rodar.

O Run Project Roda o Projeto (ao invez de uma tela), ajustando a


janela de projeto às configurações de projeto e rodando as rotinas de
inicialização de projeto (Startup)

Para alterar as configurações da tela, abra em Edit mode a tela que deseja
configurar e vá no menu Edit – display settings... aqui podemos configurar
as propriedades (properties) e o comportamento (behavior) da tela. na aba
properties temos:
Display type: tipo de display

Replace: fecha todas as telas já abertas e abre esta

Overlay e On Top: não fecham as telas já abertas e se


posicionam na frente delas. Displays On Top tem prioridade,
assim se estiver um display On Top já aberto e abrir-se um
Overlay, o On Top continuará a frente.

Allow multiple running copies: se desejar que seja possível abrir


varias copias da mesma janela quando for solicitado

Cache after displayins: carregar o display na cache como visto no


modificador

Size: tamanho em pixels


Use current Size: usar o tamanho que a tela esta em modo de
edição
Specify Size in Pixels: especificar o tamanho em pixels da
altura e largura da tela. caso a tela seja carregada por um
comando display com modificador de tamanho este tamanho
não será mais usado.

Resize:
Allow display to be resized: marque se desejar que seja
possível alterar o tamanho da tela durante a execução
em modo run. Assim o usuário poderá fazer o Scale livre
arrastando as arestas da tela. desmarque se desejar que
isso não seja possível. Desmarcando essa opção não
impede de usar o comando display com o modificador de
tamanho.

When Resized: escolha oque deve acontecer quando a


tela mudar de tamanho (seja pelo usuário, seja pelo
modificador do comando display)
Pan: a escala dos gráficos não é alterada e
adiciona-se barras de rolagem para visualizar o
conteúdo da tela

Scale: altera-se a escala dos gráficos para que a


tela caiba na nova dimensão

Position: igual ao Size, porem configura a posição.

Title Bar: marque se deseja exibir uma barra de titulo (aquela barra
azul em cima de qualquer janela do Windows)

System Menu : Se deseja exibir os botões de maximizar, minimizar e


fechar a tela no canto direito da barra de titulo. Essa opção é
desselecionada se a tela não tiver barra de titulo.

Maximize e minimize Button: se deseja HABILITAR os botões de


maximize e minimize do system Menu. Normalmente a opção de
habilitar o botão de maximizar não esta acessível pois maximizando a
janela de gráfico pode-se confundir o system menu da tela com o
system menu do projeto e o operador pode fechar o RSView por
engano.

Size to main Window at Runtime – ajustar á janela principal em modo


Runtime, ajusta a tela no tamanho da tela do projeto.

Show last acquired value – mostrar ultimo valor adiquirido. Quando


uma tela é chamada, inicia a comunicação de dados para a aquisição
dos valores das tags que estão envolvidas na tela. é possível que a
tela carregue mais rápido do que a aquisição dos valores. Marcando
essa opção quando isso acontecer, será assumido o ultimo valor
adquirido da tag. Caso a opção seja desmarcada, as tags serão
exibidas como fora do ar.

Background color: cor de fundo

Security code: código de segurança (será abordado mais adiante)

Na aba behavior configuramos o comportamento da tela:


Commands Startup/shutdown: pode-se configurar um comando ou
uma macro a ser executada quando a tela for carregada (startup) e
quando for fechada (shutdown)

Obs.: macros são listas de comandos que podem ser editadas e


salvas. Macros se comportam como se fossem comandos e aparecem
no command wizard. Mais a frente abordaremos macros.

Input Field Colors: as cores dos campos de entrada de dados (cor do


texto e do preenchiemento) quando estes estão selecionados e
quando estes não estão selecionados.

Behavior of interactive objects: comportamento de objetos interativos


(botões, com animação touch ou Slide, etc...)
Beep on press: bipar ao clicar
Highlight when cursor passes over it: destacar quando o cursor
passar por cima do objeto. Caso marcado selecione a cor do
destaque.

Behavior of object with input focus: comportamento de objetos de


input
Disable highlight whn object has focus: quando um objeto de
input realiza a transmissão de dados (quando o operador digita
um valor e aperta enter, ou quando é utilizado o comando
download) o objeto recebe um destaque diferenciado.
Desabilite essa opção caso não deseje que o objeto fique
destacado ou configure a cor do destaque.

Display On-Screen Keyboard: mostrar um teclado na tela. essa opção


é útil em telas touchscreen sem teclado externo. Marcando essa
opção, sempre que um input Field (numeric ou string) for clicado em
modo run time, exibirá um teclado na tela onde o operador poderá
entrar com dados.

A opção set as Default: caso o projetista deseje criar varias telas com essas
mesmas configurações, é possível manter essa configuração como padrão
(default). Assim toda tela nova criada terá essa configuração predefinida a
não ser que o projetista a mude.
Para configurar as opções de projeto (para o Project Run), vá na aba Edit
mode, na pasta system, sturtup

Na primeira aba (preferences):


Title bar, maximize e minimize: igual ao de configuração de tela
Control Box: é o system menu, os botões de fechar maximizar e
minimizar.
Menu: é o menu superior (File, view, Windows, help...) com algumas
opções para o Run Time
Activity bar: visualizar a barra de atividades (mensagens) que fica no
canto inferior da tela
Project manager: visualizar o administrador de projeto (janela com
todos os caminhos do projeto)

Disable:
Ctrl alt P – desabilita o atalho que exibe o Project manager a
qualquer momento
Switch to other apps – desabilita trocar o projeto em run time
para outra aplicação Windows corrente. Assim o projeto nunca
é minimizado. Essa opção também desabiliza os botões de
maximizar minimizar e fechar .

As configurações de Startup abordaremos mais adiante.

Macros: Como já visto Macros são sequencias de comandos e servem para


automatizar configurações e outras ações. Para criar uma macro vá na aba
Edit mode, na pasta logic and control, macro. Clicando uma vez exibirá a
lista das macros já salvas. Clicando 2 vezes abrirá uma nova macro em
modo de edição. Os comandos podem ser adicionados manualmente, um
por linha, ou pelo command wizard (Ctrl + M ou menu Edit – Command
Wizard). Para salvar a macro vá no menu file – Save. Para editar uma macro
já salva duplo clique no nome da macro (pelo Edit mode). Para executar a
macro digite o nome da macro no command line ou nas ações de botão , ou
de um duplo clique no nome da macro (pelo run mode). Note que macros
não podem ter o nome igual a nenhum comando. Macros não executam
nenhum operando condicional, caso o projetista deseje executar uma rotina
com condições deverá programar em linguagem de script. O RSView
disponibiliza a ferramenta para executar linhas de comando escritas em
VBA (visual basic for aplications). O conteudo de programação em VBA não
será abordado nesse curso.
O Objeto Command Line e outros Objetos Avançados. Ao criar um objeto
comand line ele irá aparecer em test run, clique fora dele para sair do test
run. Em run mode (ou test run) o comand line terá um botão para abrir o
command wizard (...). o comand line é útil para operadores treinados
realizarem ações rápidas por entrada de texto ao invez de clicando em
botões. Há também um comand line na pasta system (tanto na aba Edit
mode qunato na run mode).

Receitas e o objeto recipe: receitas são utilizadas para ajustar vários valores
rapidamente. Útil para se utilizar quando os valores de certas variáveis
variam em diferentes processos ou na produção de diferentes produtos
(automação flexível). O objeto recipe atua em numeric imputs, utilizando o
indice (índex) dos mesmos.
Para criar uma receita, crie uma nova tela para receitas, coloque nela
numeric inputs associados as tags desejadas para a receita e coloque um
objeto recipe. Em run mode ou test run, coloque o valor das variáveis nos
numeric inputs (lembre de dar enter para a tag ser atualizada), para serem
salvas na receita. De duplo clique no objeto recipe e abrirá uma janela de
receita. No campo recipe file coloque o nome da receita que deseja salvar e
clique em save.

Para restaurar uma receita. Na tela já criada, em run mode duplo clique
objeto recipe, escolha na lista suspensa o nome da receita que deseja
restaurar e clique em restore. Note que os valores apenas são transferidas
para os numeric inputs, porem as tags não são atualizadas. Deve-se usar o
comando DownloadAll para atualizar todas as tags. O comando downloadall
atualiza todas as tags que estão associadas com os input Fields com o valor
escrito neles, é como se fosse dado enter em todos os input Fields. Já o
comando Download faz a atualização daquele imput Field que estiver
selecionado .
Receitas são salvas, e podem ser editadas em forma de texto. Para isso vá
na aba Edit mode, na pasta graphics – recipes. Clique duas vezes no nome
da receita que deseja editar. Perceba que cada linha começa com um
numero seguido de uma virgula, um valor uma exclamação e o nome da
tag. O primeiro numero é o índice do input Field, a virgula é o separador e o
segundo numero é o valor da tag na receita. Essa é a sintaxe dos arquivos
de receita, a exclamação serve para adição de comentários. Tudo que está
a direita da exclamação é apenas comentário e não será lido pela receita.
Assim o nome da tag não importa, apenas o índice do imput Field. Sendo
assim deve-se tomar cuidado ao editar os input Fields de telas de receita
pois alterando-se os índices , a receita não será restaurada da maneira
correta. Também é possível criar receitas por texto, para isso duplo clique
em recipes na pasta graphics, edite a receita e salve. Pode-se usar também
os comandos recipe restore <nome> e recipe save <nome> para restaurar
e editar receitas, ou usar o comando recipe Edit <nome> para abrir o
arquivo de receita para edição em modo de texto.
Objetos OLE (object linked and embeded). OLE é uma tecnologia
desenvolvida pela Microsoft para linkar e embarcar objetos de outros
programas em aplicações com suporte OLE, ou seja, para serem
visualizados e editados em outras aplicações. Pode-se embarcar imagens de
bitmap, planilhas Excel e open document, apresentações de Slides, vídeos,
sons wave, etc... pode-se criar um objeto novo criando um novo arquivo
(planilha de Excel, bitmap etc...) ou apartir de um arquivo já salvo. Veja que
ao criar um arquivo novo, não é possível “salvar” esse arquivo. Esses
arquivos ficam armazenados em uma base de dados do próprio RSView e só
podem ser editados pelo RSView. Já se criarmos um objeto OLE apartir de
um arquivo já salvo temos 2 opções, ou vincular o arquivo ou embarcar o
arquivo. Quando se embarca um arquivo, o conteúdo daquele arquivo é
copiado para a base de dados, assim ao se alterar o arquivo original não
será realizada nenhuma alteração na base de dados (ou seja as alterações
não serão vistas no supervisório). Já quando se vincula um arquivo, ao se
alterar o arquivo original, se alterará também no supervisório.

Tag monitor: é uma tabela onde se vê informações sobre tags. Quando se


cria um objeto de tag monitor abre-se em modo de edição, e deve-se
adicionar os nomes das tags que desejam ser monitoradas, assim serão
exibidos o valor atual da tag, o Status da tag e a descrição da tag. O campo
“?” indica se a tag existe na tag database ou se o nome não foi encontrado.
Os possíveis status de uma tag são: Disabled, Error, None, Stale,
Uninitialized, or Valid.

Valid: quando o valor da tag é corrente e valido.

Disabled: o nó da tag está desabilitado

Stale: já foi requisitado o valor da tag, porem ainda não houve resposta da
parte do nó. Porem ainda não estourou o período de wait time. difere do
status unitialized, pois o valor da tag foi adiquirido em algum ponto no
passado.

Unitialized: igual a stale, porem nunca houve a aquisição de dados antes.

Error: a tag esta em erro de comunicação e não houve aquisição do valor


atual da tag.

None: a tag não corresponde a uma tag valida RSView

O objeto tag monitor pode ser editado em run time.

Exite também os arquivos tag monitor que diferem do objeto tag monitor
por não ficarem embarcados nas telas. Os arquivos tag monitor podem ser
criados clicando em tag monitor dentro da pasta graphics. Os arquivos
funcionam iguais aos objetos tag monitor, e podem ser visualizados pelo
comando MONITOR <nome>. Pode-se salvar vários arquivos tag monitor,
assim fica fácil o acesso a informações quando se deseja monitorar uma
grande quantidade de variáveis.

ActiveX é um framework para definição de componentes de software reutilizáveis


(conhecidos como controles) que realizam uma função particular ou um conjunto delas de
um modo que é independente da linguagem de programação que as implementa.
Controles active x extremamente utilizados em quase todas aplicações são os controles
Microsoft forms – scroll bar, combo Box, list Box, check Box, etc... o RSView possui
suporte activeX, que é uma poderosa ferramenta de programação, e deve ser usada por
projetistas avançados. O conteúdo de activeX não será abordado nesse curso.

USUARIOS E SEGURANÇA: o sistema de segurança do RSView possui uma


ferramenta de login, e aos usuários deve-se dar privilégios de acesso a
certas tags e telas e utilizar certos comandos. Pode-se adicionar e editar
usuários em USERS ACCOUNT dentro da pasta system, na aba Edit mode.
Ao abrir o editor de contas de usuários pela primeira vista, será exibido a
lista de usuários (contando apenas com o usuário DEFAULT). O usuario
DEFAULT é o usuario padrão que, na pratica, não é usuário algum. Ou seja
quando o supervisório é iniciado sem nenhum login, o usuário corrente é o
DEFAULT. Assim não se deve excluir esse usuário. Para adicionar um usuário
basta escolher uma nova linha, definir o nome de usuário (account ID) e o
password para esse usuário. Nos campos login macro e loggout macro são
opcionais e pode-se definir macros que serão executadas automaticamente
ao se fazer login e loggout naquele usuário (realiza-se o login e o logout
pelos comandos login e logout). Os códigos de segurança (security codes)
são para especificar quais telas, tags e comandos serão acessíveis a aquele
usuário. É possível definir 16 niveis de segurança (de A a P) porem não é
necessário utilizar todos. Um security code marcado significa que aquele
usuário possui acesso às tags e telas com aquele mesmo security code.

Ao editarmos uma tag, no tag database, vemos o campo security, aonde


podemos definir um security code à tag. Assim só os usuários que tenham
permissão a aquele security code terão acesso para alterar o valor da tag,
porem poderão visualizar seu valor, seja por input filds, display fields,
animações, etc... ao deixarmos o asterisco (*) no campo security, significa
que qualquer usuário tem acesso aquela tag.

Ao editarmos as configurações de uma tela (display settings) também


vemos um campo de security code. Caso um usuário tente acessar telas
que ele não possui acesso, uma mensagem de erro será exibida.
Também podemos fazer restrição de uso de certos comandos e macros.
Para isso va na aba Edit Mode, na pasta system – security codes. Abrira uma
planilha, e na primeira linha vemos os campos Command como DEFAULT ,
security code como * e description como Default undefined-object security
code. É necessário deixar essa primeira linha como está (na verdade ela não
é editavel). Para associar um código de segurança a um comando escolha
uma linha vazia, escolha o comando ou macro que deseja restringir e o
codigo de segurança que dará acesso aquele comando. Assim apenas
usuários com acesso aquele código poderão utilizar aquele comando (ou
macro), mesmo que o comando esteja associado a um botão ou listado
numa macro que o usuário tenha acesso. O campo description é opicional e
dará apenas uma descrição ao comando ou macro.

Observação sobre a linha 1: não existe o comando DEFAULT. Na realidade


na primeira linha podemos configurar um security code de acesso ilimitado
diferente do asterisco. Isso pode abrir a possibilidade de criar estratégias de
restrição de comandos por EXCLUSÃO, porem pode causar certa confusão.

A estratégia de restrição por INCLUSÃO, é a técnica vista até agora. Nessa


estratégia a maior parte do conteúdo seria acessível a qualquer usuário, ou
seja o conteúdo com security code * seria acessível a qualquer usuário, e
apenas o conteúdo com security code diferente de * que seria restringido a
certos usuários. Assim para INCLUIR a restrição, configuramos um security
code diferente de * para o objeto que queremos restringir.

Na estratégia de restrição por EXCLUSÃO, a maior parte do conteúdo NÃO


seria acessível a maioria dos usuários (menos normalmente ao
administrador). Assim todo objeto com security code * seria restrito, logo
deve-se EXCLUIR a restrição a certos objetos que devem ser acessados por
todos ou por parte dos usuários. Para excluir a restrição, configuramos o
security code diferente de * para o objeto que queremos que vários usuários
tenham acesso.

É possível utilizar essa estratégia apenas para restringir COMANDOS (e


apenas comandos). Para isso deve-se configurar a primeira linha da tabela
de security codes (linha DEFAULT), mudando o campo “security code” para
algo diferente de asterisco (normalmente P). assim somente os usuários
com acesso ao código de segurança (P por exemplo) terão acesso a maioria
dos comandos que está sem código associado (não listado aqui). Como
existem muitos comandos, caso queira-se restringir a maioria deles, essa
estratégia é mais eficaz (melhor do que restringir os comandos um a um).
Assim apenas os comandos que não serão restritos que devem ser
associados a um security code (diferente do DEFAULT, “P” por exemplo).
Lembre-se que isso não afetará o acesso às tags e telas com código *,
somente os COMANDOS.

Pode-se também desabilitar a segurança de comandos para isso vá na tela


de security codes, no menu SETUP, strict security, e desabilite o strict
security.
OBS.: repare que ao criar o projeto o usuário DEFAULT aparece com todos
os códigos de segurança. É provável que se queira desabilitar o usuário
desses códigos.

OBS.: repare que a restrição só é valida se o usuário não tiver acesso ao


RSView Works, já que qualquer um pode editar as contas de usuários.

Utilizando contas de usuários Windows como contas RSView:

É possível sincronizar as contas de usuários Windows com as contas de


usuários do supervisório. Para isso va em users account, no menu Setup,
Windows security options, e marque a opção “ use Windows user accounts
as source for RSView32 User account”. Assim ao se logar com um usuario
pelo logon do windows, o usuario estará automaticamente logado no
RSView quando o projeto for aberto.

Windows domain: é o domínio, normalmente só tem um que é o


domínio da própria maquina.

Synchronize RSView32 user accounts with Windows user accounts:


para utilizar todas as contas do windows (normalmente existem
contas inuteis como ASPNET, HelpAssistant…) marque essa opção.
para selecionar quais contas serem vinculadas e quais não
desmarque e edite a lista “RSView32 User Accounts”.

Veja que quando se usa as contas de usuários Windows como fonte das
contas RSView não é possível adicionar novos usuários pelo USER
ACCOUNT. Isso por que, utilizando essa opção, quem faz a validação de
usuário e senha é o Windows NT e não mais o RSView. Assim para adicionar
novos usuários, deve-se fazer pelo gerenciamento de contas do Windows.
Veja também que os campos account ID e Password agora não são
editáveis. Porem o password das contas ainda pode ser alterado utilizando o
comando PASSWORD. O comando password irá alterar o password do
usuário atualmente conectado. O comando ao ser executado irá abrir uma
janela onde deve-se colocar o password antigo e o novo. Ao alterar o
password de uma conta Windows aqui também se alterará o password que
logon do Windows.

Alarmes:

Em processos, certas variáveis devem permanecer dentro de uma faixa de


operação para segurança das pessoas e equipamentos. É comum também
utilizar tags que indicam situações de alarme ou alerta. Essas tags são
controladas pela lógica do CLP, e indicam que alguma inconformidade
ocorreu no processo. Essas tags podem acionar alarmes. Alarmes servem
para indicar ao operador que certa inconformidade ocorreu. Alarmes podem
ser visualizados em BANNERS de alarme ou no SUMARIO DE ALARMES.
Alarmes também podem disparar rotinas, animações entre outras coisas
que chamem a atenção do operador de supervisório, e este deve tomar
alguma decisão para solucionar o problema.

Para configurar alarmes de tags, va no tag database, selecione a tag a qual


deseja-se configurar um alarme e marque a checkbox ao lado do botão de
alarme. Alarmes podem ser configurados em tags digitais ou analógicas, e a
configuração para cada tipo de tag é diferente.

CONFIGURAÇÃO DE ALARME DE TAG ANALOGICA

Alarme thresholds: limiar de alarme, é um valor ao qual se o valor da


tag ultrapassa-lo, a tag entra em alarme. Pode-se configurar 8
limiares de alarme assim como pode-se configurar 8 severidades de
alarmes (severitys). As severidades de alarme servem para indicar o
grau de perigo do alarme ( de 1 a 8 sendo o grau 1 o mais urgente ou
perigoso ). Limiares também podem ser acendentes ou descendentes
(increasing e decreasing), assim caso um limiar seja acendente, se a
tag atingir um valor ACIMA do valor de limiar a tag estará em alarme.
Caso um limiar seja descendente, se a tag atingir um valor ABAIXO do
valor de limiar a tag estará em alarme.

Há uma regra para posicionar os limiares: deve-se colocar os limiares


acendentes nos números maiores (1-8, cuidado para não confundir
com severitys) e os decendentes nos numeros menores, de forma que
os valores de limiar também estejam em ordem crescente diacordo
com o numero de limiar (1-8, cuidado para não confundir com
severitys). Também não é possível que, caso o limiar de numero 4
seja acendente o de numero 5 seja descendente. Assim se o limiar de
numero N seja ascendente todo limiar de numero maior que N deve
ser ascendente. Também caso o limiar de numero M seja
descendente todo limiar de numero menor que M deve ser
descendente. Caso tente-se configurar um limiar fora desses padrões
uma mensagem de erro será exibida. Essas regras são definidas pois
só deve existir uma faixa de valor no qual a tag não estará em
alarme, mesmo que essa faixa não tenha um dos limites inferior ou
superior.

Também é possível configurar um rotulo para cada limiar de alarme


(Alarm Label) que será visualizado nas mensagens de alarme.
Exemplos de rotulo: “pressão baixa no tanque”, “pressão alta no
tanque”, “pressão muito alta no tanque”, “PERIGO! Pressão alta no
tanque”...

OBS.: Ferramentas para visualizar alarmes


O Alarm summary: o sumario de alarme é um objeto avançado que exibe
um registro de todos os alarmes que ocorreram e a atual situação dos
alarmes (se já foram resolvidos ou não). Após criarmos um sumario de
alarme este é aberto em modo de edição. A primeira coisa a se configurar é
quais informações serão exibidas no sumario de alarme. O projetista do
sistema pode escolher entre varias informações sobre os alarmes, para isso
clique no menu Insert (enquanto edita o sumario de alarme) e escolha as
informações que serão visualiza e a posição que esta será exibida ( ou seja,
a disposição das informações). Pode-se escolher visualizar:

Nome da tag, valor da tag (na hora que ocorreu o alarme), descrição
da tag, unidade de medida da tag o tipo de alarme (InAlarm,
OutAlarm ou InOutAlarm), a hora e data do alarme, a severidade do
alarme, o rotulo do alarme (alarm label), o limiar do alarme (se for
analógico), o numero de limiar de 1-8 (analog level), o tipo de alarme
digital (falaremos em seguida), a hora e data de reconhecimento do
alarme (acknowledge time e date, também falaremos em seguida) e o
nome do operador (usuário) logado na hora que ocorreu o alarme.

veja que o sumario é dividido em dois retângulos, um superior e um inferior.


O retângulo superior contem as legenda (legenda das colunas). É possível
alterar a legenda clicando no retângulo de cima da informação que deseja
alterar a legenda. Também é possível inserir um texto qualquer no
retângulo de cima (como um titulo), para isso no menu insert clique em
TEXT, posicione o campo de texto, clique duas vezes e edite o texto.

TESTANDO O SUMARIO: primeiro é necessário ligar o monitoramento de


alarmes. Por padrão o monitoramente de alarme está desligado. Pode-se
ligar o monitoramento de alarmes com o comando Alarmon . tambem pode-
se colocar o comando alarmon no behavior de uma tela, ou configurar o
StartUp do projeto para já iniciar com o monitoramento ligado. O comando
antônimo é o alarmoff que desabilita o monitoramento de alarme. OBS.:
por um “bug” do RSView, ao se fazer alterações na configuração de
alarmes de tags, tendo o monitoramento ligado, estas alterações
não serão levadas em consideração e deve-se desligar e religar o
monitoramento para que as alterações passem a valer.

Em run mode o sumario é preenchido com as informações de alarme na


medida que estes ocorrem. Quando uma tag entra em alarme uma nova
linha em vermelho é criada no sumario, caso a tag ultrapasse outros
limiares, novas linhas são criadas e ambas continuam em vermelho. Quando
aquela tag volta a faixa de operação normal as linhas de alarme passam de
vermelha para azul e uma mensagem de OutAlarm é exibida no sumario
indicando que a tag saiu de alarme. É possível alterar essas cores, podendo
também configurar cores diferentes para cada severidade de alarme
(severity).

Ainda em run mode, perceba os botões:


Ack significa Acknowledge, ou reconhecer. Sempre que um alarme é
soado o operador deve reconhecer o alarme, assim fica registrado
que o operador tomou conhecimento da situação e quando isso
aconteceu. Ao se reconhecer um alarme a mensagem de InAlarm
muda de cor, também são apagadas mensagens velhas de OutAlarm,
permanecendo apenas as mensagens recentes. Pode-se reconhecer
um alarme isolado selecionando-o e clicando em ack current, pode-se
reconhecer uma pagina de alarme (pagina é tudo que for visível no
sumario) clicando em Ack Page, ou pode-se reconhecer todos os
alarmes de uma só vez clicando em Ack ALL.

Silence serve para silenciar um alarme. Alarmes podem soar avisos


sonoros como sirenes (veremos mais a frente como fazer isso), e o
botão de Silence silencia o alarme. Também pode-se silenciar um
alarme, uma pagina ou todos.

O botão identify serve para executar um comando ou macro


associado a cada alarm (falaremos mais adiante)

O botão filter e sort servem para filtrar e organizar temporariamente


as mensagens do sumario. Em filter é possível escolher quais tags
serão visualizadas. É possível listar tags especificas (digite a lista de
tags a serem visualizadas ou asterisco para visualizar todas), tipos de
tags (analógicas ou digitais), tipo de mensagem (falha, OutAlarm), e
listar por severidade. Em sort pode-se estabelecer 3 regras de
organização (cronologicamente, por severidade, e por nome da tag)
e se será em ordem crescente (ou alfabética) ou ordem decrescente.

Pode-se escolher quais botões exibir ou não e aonde estes estarão


posicionados editando o objeto alarm summary.

Pode-se usar também os comandos identify, acknowledge, acknoowledgeall,


silence, e silenceall ao invez dos botões usuais do sumario.

Para editar novamente o sumario basta clicar 2 vezes no objeto. No menu


FORMAT é possível editar a fonte e tamanho do texto do cabeçalho e do
corpo (header e body font). Também é possível configurar as cores (colors).
Para cada nível (severity) é possível configurar mensagens de InAlarm.
Essas mensagens podem ser visualizadas em 3 situações: quando a tag
ainda está em alarme, quando a tag já saiu do estado de alarme, ou quando
a tag está em alarme porem o operador já reconheceu o alarme
(acknowledge). Também é possível escolher se a mensagem irá piscar
(blink) e as cores caso a mensagem esteja selecionada (highlight) . a
mensagem de out of alarm state é diferente da mensagem de in alarm
quando está não esta mais em alarme, e tambem pode-se configurar cores
para ela. As mensagens de Fault State serão exibidas caso ocorra alguma
falha de comunicação que ocasione a perda da informação de uma tag que
possua alarme (uma falha de comunicação pode ocasionar a perda de
informação de certas tags, porem não necessariamente de todas).
Mensagens de fault state também podem ter as cores configuradas. Ainda é
possível configurar as cores do texto e fundo do cabeçalho (header) e as
cores de fundo da área de corpo e da área de botões do sumario.

Ainda no menu Format é possível escolher quais botões serão exibidos e em


qual posição a barra de botões será exibida. Repare que existe também o
botão Execute, normalmente não exibido. O botão execute serve para
executar um comando, macro ou rotina VBA sempre que for pressionado.
Pode-se definir o comando, macro ou rotina do botão execute no menu Data
– Execute... preencha com o comando ou macro e escolha os parâmetros.
Esses parâmetros serão repassados em run time para o texto do comando e
dependem da tag e da mensagem selecionada no sumario (lembre que não
se pode fazer isso em macros, botões etc...). repare o texto completo do
comando no retângulo cinza inferior. assim pode-se por exemplo:

Ramp TagName Value – somar a tag selecionada o valor dela no


momento do alarme... nada muito útil.

Os parâmetros do botão execute tem mais utilidade se forem


utilizados com rotinas VBA. Pode-se por exemplo programar uma
função VBA que tome todas as medidas necessárias para tirar a tag
da situação de alarme, assim bastaria passar alguns paramentros
como nome da tag, valor, etc... assim o comando ficaria algo do tipo:

VBAexec funcaoVBA TagName, Value, etc...

Veja que para passar parâmetros para rotinas VBA deve-se utilizar
virgulas para separa-los. Assim marque a opção Separate Parameters
With Commas.

No menu Data tambem podemos escolher como serão filtradas e


organizadas as mensagens do sumario (agora não mais temporariamente).

Sumários de alarme também podem ser criados em arquivo. Para criar um


duplo clique em alarm sumary, na pasta alarm, na aba Edit mode. E para
visualiza-lo duplo clique no nome do sumario pela aba run mode ou utilize o
comando SUMMARY <nome>

Supressão de alarmes: certas tags podem ter seus alarmes suprimidos.


Assim esses deixam de ser monitorados até que sejam dessuprimidos. É
conveniente suprimir alarmes quando sabemos que eles irão ocorrer, por
exemplo, quando uma planta entra em manutenção. Para suprimir o
monitoramento de alarme de uma tag utilize o comando SupressOn <nome
da tag>. Para voltar o monitoramento de alarmes de uma tag utilize o
comando SupressOff <nome da tag> ou SupressOffAll para voltar o
monitoramento de todas as tags. É possível visualizar uma lista de tags que
estão suprimidas, para isso duplo clique em Supressed List, na pasta Alarm.
Por essa lista também é possível desligar a supressão de tags pelos botões
supress off (tira a tag selecionada da lista) e all off (tira todas as tags da
lista).

Voltemos à configuração de alarme das tags.

Em Tags Analogicas, na aba advanced temos as seguintes opções:

Alarm identification: é um comando ou macro que será executado


quando o botão identify for pressionado com aquela tag selecionada.

Out of Alarm label: é o rotulo a ser exibido na mensagem de


OutAlarm daquela tag.

Deadband: zona morta, ou histerese ( apesar de possuírem conceitos


diferentes zona morta e histerese são comumente confundidos, e
nesse caso o termo mais correto seria histerese e não zona morta). A
histerese serve para previnir que tags oscilantes disparem muitos
alarmes de uma só vez, pois tags oscilantes ultrapassam o limiar de
alarme e voltam ao estado normal rapidamente, e logo ultrapassam o
limiar denovo. Certas tags oscilam por possuírem algum tipo de ruído
interferindo nelas, assim a mudanças rápidas porem a variação da
media instantânea é suave. Para prevenir o disparo de vários alarmes
utiliza-se a histerese. A histerese funciona da seguinte maneira: caso
uma tag ultrapasse um limiar ASCENDENTE esta estará em alarme e
só sairá do alarme caso atinja um valor menor que o limiar MENOS o
valor de histerese (seja absoluto ou em percentagem do valor de
limiar). Caso uma tag ultrapasse um limiar DESCENDENTE esta estará
em alarme e só sairá do alarme caso atinja um valor maior que o
limiar MAIS o vaor de histerese. Assim tome cuidado com os valores
de histerese para não consumir toda a faixa de operação.

Para definir o valor de histerese deve-se estudar o


comportamento da tag. Tags intermitentes geralmente
possuem uma componente de variação rápida (frequentemente
chamado de ruído) porem com um alcance limitado. Convem
medir esse alcance para definir o valor de histerese.

Alarm acknowledgment bit: pode-se definir uma outra tag binária


como bit de reconhecimento de alarme, assim quando o operador
pressionar o botão de reconhecimento o estado desse bit irá alterar
para 1. Esse bit pode ser usado pela lógica do CLP para realizar algum
tipo de controle. Caso seja selecionado Auto Reset, o bit retornará
altomaticamente para zero quando a tag sair de alarme. Caso não
seja selecionado, a lógica do CLP deverá retornar o bit para zero em
um momento propicio.

Alarm Handshake bit: pode-se definir uma outra tag binária como um
bit de handshake. Esse bit pode ser utilizado por outros CLPs, que não
monitorem a tag em alarme, mas que estão envolvidos no processo.
Esse bit pode ser usado na lógica desses CLPs para realizar algum
tipo de controle. Para que esse bit possa funcionar deve-se ligar o
handshake. Para isso pode-se usar o modificador do comando
alarmon [/h] ou utilizar o comando handshakeon. Existe também o
comando antônimo handshakeoff.

Mensagens de alarme: mensagens de alarme podem ser configuradas. Estas


mensagens serão armazenadas no REGISTRO DE ALARME (alarm log).
Existem 3 tipos de mensagens: mensagem de In Alarm quando a tag
ultrapassa algum dos 8 valores de limiar, out of alarm quando volta ao
normal, e acknowledge quando o operador reconhece o alarme. Para cada
um dos 8 limiares e para as mensagens de out of alarme e acknowledge
pode-se configurar uma mensagem diferente. Pode-se usar as mensagens
padrão do sistema e padrão do usuário ou definir uma mensagem
customizada. Pode-se utilizar marcadores (PlaceHolders) para serem
substituidos por valores em runtime. Os place holders são:

\d Data da mensagem
\t Hora da mensagem
\n Nome da tag em alarme
\c Valor da tag no momento que entrou em alarme
\v Valor de limiar que foi ultrapassado
\s Descrição da tag em alarme
\l Rotulo de alarme da mensagem
\u Unidade de medida da tag em alarme

Também pode-se configurar mensagens diferentes para os dois tipos de


registro de alarmes (alarmes podem ser registrados em um arquivo de texto
– file – ou atravez de impressão – printer)

A mensagem padrão do sistema não pode ser editada, porem a mensagem


padrão de usuário pode. Para isso acesse o Alarm Setup na pasta Alarm, na
aba Edit mode. No setup de alarm serão definidas as configurações de
registro de alarmes entre outras. Na aba user msgs definem-se as
mensagens padrão de usuário da mesma forma como se define as
customizadas (utiliza-se placeholdes, configura-se mensagens de arquivo de
registro e de impressora).
Na aba Severitys pode-se configurar aonde e se cada uma das mensagens
serão registradas. Alem das mensagens já conhecidas temos também a
mensagem de supressão, gerada sempre que alguma tag for suprimida ou
dessuprimida. Para cada mensagem podemos escolher o destino: registro
em arquivo de texto (log to alarm log file), registro em impressora (log to
printer), ambos ou nenhum. Também é possível configurar uma
“anunciação” para cada nível de severidade. Trata-se de um sinal sonoro
que pode ser interno (um arquivo de som wave que será executado no PC)
ou externo (uma sirene externa). No caso da sirene externa, configura-se
uma tag que o CLP utilizará para acionar uma sirene em campo
(alimentando a sirene ou acionando um relê para ligar a sirene).

Na aba Setup configuramos o registro de alarme em arquivo. Os arquivos de


registro de alarme são armazenados no caminho primário que fica dentro da
pasta raiz do projeto. Esse caminho (primary path) pode ser editado, para
isso clique em browse e escolha o caminho que deseja armazenar os
arquivos de log.

Marque “Generate Alarms When Approaching Normal Operating Range”


caso deseje gerar mensagens de alarme quando se ultrapassar de volta um
limiar porem ainda não voltar à faixa normal de operação. Repare que a tag
pode ultrapassar vários limiares e para voltar à faixa normal deve retornar
por todos esses. Normalmente não é feito o registro do retorno por cada
limiar e sim apenas do retorno à faixa normal.

Use RSView32 6.0 log file format – marque se deseja usar um formato de
registro antigo (da versão 6.0) – sem importância, mantenha desmarcado.

Use long file names (IF supported) – os arquivos de log são salvos no
formato .dbf, no caminho especificado. Quando o sistema se inicia ( quando
o projeto é aberto ) um novo arquivo de log é criado. O nome de tais
arquivos .dbf segue a forma YYMMDDnz.dbf se a forma for curta (short) ou
YYYYMMDDnz.dbf se a forma for longa (long file name). Marque essa opção
se deseja que os nomes dos arquivos de log tenham a forma longa.
Também é possível dividir o registro em vários arquivos pelo gerenciamento
de arquivos (file management).

Na aba file management vemos as opções para começar novos arquivos


(start new files). Quando um novo arquivo começa, o antigo permanece lá
para consulta, esse gerenciamento serve apenas para organizar os arquivos
de registro. Pode-se iniciar novos arquivos periodicamente (a cada hora, a
cada dia, a cada semana, a cada mês...) , em momentos específicos (utilize
uma sintaxe compatível), num determinado evento (gerado pela validação
de uma expressão) ou nunca (para que todo o registro seja feito em um
único arquivo).

A sintaxe de momentos específicos é:


Day - Sun, Mon, Tue, Wed, Thu, Fri, or Sat

Date - 1 - 31

Hour - 00: - 23:

Minute - :00 - :59

Exemplos:

Mon 12:00 – novo arquivo toda segunda, meio dia

12:00 – novo arquivo todo dia, meio dia

:30 – novo arquivo a cada hora e 30 minutos.

Os campos delete oldest files servem para definir quando arquivos antigos serão
automaticamente excluídos

Depois de um tempo de criado (X dias, semanas ou meses)

Depois de uma certa quantidade de arquivos já criados.

Celecionando ambas, os arquivos serão deletados quando uma das duas


condições acontecer primeiro

Repare que o registro de alarme, por padrão está ligado. Pode-se desligar o registro de
alarme com o comando AlarmLogOff, e religar com o comando AlarmLogOn. O
comando alarmlogon habilita o registro tanto em arquivo como em impressora, para
habilitar somente o registro em impressora ou desabilitar utilize os comandos
AlarmPrintOn e AlarmPrintOff.

Configurando alarmes de tags digitais: a configuração de alarme de tags


digitais muda em poucas coisas, comparando-se com a de tags analógicas.
Em tags digitais não existem limiares. Ao invés disso alarmes digitais serão
disparados baseados em seu estado (On ou Off) ou na transição de estado.

O tipo de alarme (alarm type) ON, gerará um alarme quando a tag


tiver valor 1

O tipo de alarme OFF gerará um alarme quando a tag tiver valor 0.

O tipo de alarme any change gerará um alarme no exato momento


em que se detectar uma variação de estado da tag (de 1 para 0 ou de
0 para 1). Repare que esse tipo de alarme acontece apenas no
momento da transição e imediatamente sai do status de alarme (é o
alarme de tipo InOutAlarm)

O tipo changes to on e changes to off tem funcionamento similar ao


de tipo any change.

Esses tipos podem ser visualizados no campo digital alarm type do


sumario de alarme, quando a tag entrar em alarme.

O restante da configuração de alarmes de tag digitais é idêntico ao de


alarmes de tags analógicas.

Outros comandos de alarmes:

Pode-se utilizar o comando Alarmlogremark para registrar uma mensagem


customizada nos registros de alarme (porem a mensagem não aparecerá no
alarm summary).

No campo text escrevemos o texto da mensagem podendo utilizar


placeholders.

Pelo comand wizard vemos as opções de modificadores:

Log to printer – registrar também em impressora alem de registrar


em arquivo

Severity – pode-se escolher um nível de severidade do alarme para o


qual a mensagem se refere

Tag name – pode-se escolher uma tag a qual a mensagem se refere.


Veja que os placeholders de tag name, unit e description utilizaram
esse modificador como base.

Prompt for remark – ao ser executado o comando uma janela se


abrirá onde pode-se reeditar a mensagem (text).

Para que o registro seja realizado pelo comando Alarmlogremark é


necessário que o registro de alarmes esteja ligado. Assim o comando só
deve ser utilizado após o comando alarmlogon.

Pode-se utilizar também o comando AlarmEvent para criar um evento de


alarme, evento esse não gerado pelo sistema de monitoramento de alarme.
Leia evento de alarme, quando uma tag entra em alarme, sai do alarme, ou
entra em falha.

No campo event name deve-se colocar o nome da tag que sofreu o


evento de alarme.

No campo alarm type deve-se especificar se o evento é de alarm


analógico ou digital (não selecionando utilizará o tipo da tag)

No campo tag value deve-se especificar o tag value que será


mostrado no sumario e registrado no alarm log. Caso não se
especifique o valor da tag será zero.

No campo severity deve-se especificar o nível de severidade que será


mostrado no sumario e registrado no alarm log. Caso não se
especifique o valor da severity será 1

Time stamp e date: data e hora. Caso não se especifique será


utilizado os valores atuais de data e hora.

Log message: é a mensagem que será armazenada nos registros de


alarme. Pode-se usar placeholders.

Mais uma vez o registro de mensagem de alarme só ocorrerá se o registro


estiver ligado.

Alarm Log Viewer:

O alarm log viewer é uma ferramenta para visualizar os arquivos de log de


alarmes (salvos em .dbf). o alarm log viewer pode ser acessado pela pasta
alarms ou pelo comando AlarmViewer.

o campo description é a mensagem de alarme definida pelo sistema, pelo


usuário, ou a mensagem customizada. O campo user contem o usuário
logado na hora do alarme. E o campo loggin station o nome do computador
configurado no Windows.

Obs.: por um bug no RSView é possível que o texto de diferentes colunas se


sobreponham.

Pode-se abrir arquivos de registro diferentes no botão SELECT LOG FILE

Também é possível visualizar os arquivos de logo pelo Excel. O Excel tem


compatibilidade com database IV (.dbf) basta clicar com o botão direito do
mouse no arquivo e selecionar abrir com... Excel.
As tags do sistema de alarme:

na pasta system do tag database, pode-se acessar por meio de tags algumas informações
referentes aos alarmes mais recentes. A importância dessas tags é que, não se pode
colocar em todas as telas um sumario de alarmes, porem é recomendável que se coloque
um banner de alarme em todas as telas. Assim o operador de supervisório terá acesso
rápido a informações do alarme. Um alarm banner nada mais é do que um campo de
string display (ou vários campos) associados a tags de informações de alarmes. Pode-se
utilizar apenas a tag alarm banner (que contem a hora e a tag que entrou em alarme) ou
agrupar vários displays para formar uma mensagem mais completa.

GRAFICOS DE TENDENCIAS E REGISTRO DE DADOS:

Gráficos de tendências (trends) são gráficos que mostram a evolução no tempo das tags
selecionadas. Gráficos de tendências são advanced objects (trends). Quando criado um
trend será aberta uma janela de configurações. A primeira coisa a se configurar num
gráfico de tendências são as tags que serão visualizadas nele. Para isso vá na aba pen
configuration. Uma pena (pen) é uma linha ou legenda de um gráfico. A uma pena se
associa uma tag, uma cor de linha, um estilo de linha, entre outras configurações. Nos
gráficos de tendências do RSView é possível se configurar 16 penas num mesmo
gráfico (Caso deseje-se visualizar mais penas é necessário sobrepor dois ou mais
gráficos).

Escolha o numero de uma pena para edita-la.

No campo “Tag or Value” pode-se associar à pena uma tag ou um valor


numérico fixo. (valores numéricos fixos normalmente servem como referencia)

Em Style configura-se o estilo da linha

Show line: mostra a linha. Desabilite caso não deseje visualizar a pena no
grafico (assima pena servirá apenas de referencia)

Show Plot Symbol: caso queira que a linha seja composta de simbolos

Custom pen width: configure uma espessura para a linha da pena.

Line interpolation: configure a interpolação da linha (lembre que o


gráfico é composto de pontos – amostras – que devem ser interpolados
para formar linhas continuas)

Linear – variação gradual

Digital – variações em degrais


Automatic – escolhe linear para tags analógicas e digital para tags
digitais.

Full width – apresenta apenas o valor corrente da tag em uma


linha reta horizontal no gráfico

Shading (sombreamento): pode-se configurar um sombreamento do gráfico para


conferir destaque à pena quando essa ultrapassa certos limites. É possível definir
2 limites, um superior (upper bound) e um inferior (lower bound). O valor desse
limite deve estar em uma pena, e pode ser uma tag (valor variável) ou um valor
numérico fixo (desde que esteja associado a alguma pena. Esses valores são os
de referencia.

Pen Scale: escala vertical da pena. São os limites que aparecem no gráfico.
Pode-se usar os valores Maximo e mínimo da tag ou um valor diferente para
ajustar o gráfico para uma boa visualização.

Legend: o gráfico de tendências possui uma área de legendas, marcando


“include in legend” a pena selecionada será incluída na legenda

Na aba trend configuration: temos mais opções de configuração do gráfico

Time axis: eixo do tempo ou eixo horizontal

Time range: intervalo ou alcance de temo (o intervalo de tempo que cabe


no eixo horizontal de tempo). Deve-se especificar também a unidade de
tempo. Unidades validas são: Sec, Min, Hour, Day and Week

Divisions: são divisões da área no sentido horizontal, divisões da grade,


apenas visíveis se for marcado a opção de visualizar a grade (grid).

Major são divisões maiores: quantidade de áreas que a área total é


dividida

Minors são divisões menores: quantidade de áreas que as áreas


major serão divididas.

Scale: marque para exibir a escala de tempo (graduação)

Date e time: marque para exibir data e hora na escala de tempo

Gride: marque para exibir as linhas de grade.

Scroll axis: marque essa opção para que as linhas de grade se


movimentem na medida que o gráfico é atualizado. Caso seja
desmarcado as linhas de grade ficarão estáticas e apenas as linhas das
penas se moviementarão pelo gráfico

Vertical axis: configura o eixo vertical


Divisions, scale e grid: idem ao eixo do tempo.

Digits: determine o numero de dígitos que os valores na escala do eixo


vertical terão. Tome cuidado para que seja possível visualizar o valor
Maximo da tag

Legend: marque essa opção deseja visualizar o campo de legenda do gráfico.

Control: configurações de controle do gráfico

Rate: é o período de atualização do gráfico em segundos. O mínimo


(mais rápido) é de 1 segundo.

Control tag: os objetos trend utilizam tags de controle que controlam o


funcionamento do gráfico. Ao criar um trend criam-se automaticamente
essas tags. Quando-se deseja configurar vários gráficos diferentes é
necessário diferenciar cada gráfico utilizando tags diferente. Digite no
campo control tag o caminho (pastas) aonde deverão ser criadas as tags
de controle daquele grafico. 2 graficos diferentes também podem
compartilhar as mesmas tags, basta que os 2 graficos tenham o mesmo
caminho no campo control tag.

Data source: fonte de dados. Falaremos sobre fontes de dados e gráficos


históricos mais afrente.

Testando e controlando gráficos:

Primeiro coloque todos os objetos contidos na library trends (inclusive o gráfico) em


uma tela qualquer. Repare que a control tag configurada para o gráfico é da pasta
“trend”. Repare nas ações de cada botão, em todos há comandos que agem sobre tags da
pasta trend.

Vamos testar alguns comandos e relacionar as tags de comando as suas respectivas


funções:

O slider “zoom Y-axis” – zoom do eixo vertical. O slider altera o valor da tag
“Ymag” dentro da pasta “trend”. Quando a tag Ymag tiver valor zero o alcance
(range) do eixo vertical é o definido nas configurações da trend e ao diminuir ou
aumentar seu valor este range é modificado dando um zoom in ou zoom out doo
eixo Y

Scroll Y-axis – esses botões incrementam e decrementam o valor da tag


“Yoffset” dentro da pasta “trend” (veja o comando: trend\yoffset = trend\yoffset
+ 10). A tag Yoffset desloca o grafico para baixo se o seu valor for incrementado
e desloca o grafico para cima se o seu valor for decrementado. Assim pode-se
navegar pelo eixo vertical.
Reset Y-axis – esse botão retorna as tags Ymag e Yoffset para os valores iniciais
(zero e zero).

O slider Time Range altera a tag “TimeRange” dentro da pasta trend. Ao iniciar
a tela em modo run o valor dessa tag tem o valor definido nas configurações da
trend. A tag indica o alcance do eixo de tempo em segundos.

O botão reset X-axis – ajusta a tag TimeRange a um valor preestabelecido (veja


que não é necessariamente o mesmo que é definido nas configurações da trend.

O botão Pause/Resume alternam o valor da tag binária “Paused” dentro da pasta


trend. Essa tag faz o gráfico pausar quando o valor da mesma é 1. Alternando-se
novamente para 0 o gráfico retorna a atualizar. Alem disso o botão tem um label
que exibe o Rotulo de estado da tag “Paused”, os rótulos são “resumed” para 0 e
“paused” para 1.

Os botões Scroll forward e scroll backwards: alteram o valor da tag StartTime


incrementando ou decrementando do valor de time range. Porem é aconselhável
alterar o comando, substituindo o incremento por um valor abaixo do timerange
(como timerange/5) assim realizando uma navegação mais suave. Pode-se
definir também para a ação de repeat um incremento maior (como timerange/2)
para uma navegação mais veloz quando se desejar. A tag StartTime representa a
posição do tempo da ponta direita do gráfico, com valor em segundos relativo a
data primeiro de janeiro de 1970 a meia noite ( Ou seja a diferença de tempo em
segundos ). Enquanto esta tag esta sendo atualizada o valor da mesma é o valor
de tempo atual.

Os botões oldest time e newest time, ajustam o valor de StarTime utilizando os


valores das tags OldestTime e NewestTime, assim visualizando os dados mais
antigos (oldest) ou os dados mais recentes (newest). A tag NewestTime contem
um numero de segundos (da mesma forma que o StartTime) que representa o
momento que foram adiquiridos os dados mais recentes (normalmente o tempo
atual). Já a tag OldestTime contem um numero de segundos que representa a
amostra de dados mais antiga disponível... ( os dados que estão sendo
visualizados no gráfico precisam ser salvos em uma tabela. O RSView aloca um
espaço da memória Ram – buffer de memória – para armazenar tais dados. Esse
espaço é limitado, assim só consegue-se visualizar no gráfico uma certa
quantidade de amostras. Assim dados muito antigos não ficam para sempre
disponíveis, ocorrendo uma perda de dados a não ser que se faça o registro de
dados – Data Log)

A legenda e a escala:

pode-se selecionar uma pena pelo espaço de legenda. Ao selecionar a pena a


escala do eixo vertical exibirá a escala correspondente a pena selecionada (note
que cada pena possui uma escala de eixo vertical diferente, mesmo por que são
variáveis diferentes, possivelmente de unidades de medida diferentes). Pode-se
selecionar um ponto no tempo clicando no gráfico em run time. assim na legenda
será exibido, ao lado do rotulo de cada pena, o correspondente valor naquele
ponto do tempo selecionado.

Os botões show only selected, hide selected e show all pens:

O primeiro esconde todas as penas menos a selecionada na legenda. O segundo


esconde a pena selecionada e não altera o estado dos outras. O terceiro faz
reaparecer todas as penas no gráfico.

Esses botões alteram o valor da tag “penmask” utilizando como base o valor da
tag “currentpen”. A tag “currentpen” é o numero de 1-16 que representa o
numero da pena selecionada na legenda. A tag “penmask” é uma variável de 16
bits, onde cada bit desta variável representa se a pena será visualizada ou não.
Exemplo: quando a tag “penmask” tem valor = 0000100010001100 então apenas
as penas 3, 4, 8 e 16 serão visualizadas. para fazer uma seleção utilizando a tag
“currentpen” o botão utiliza o operado bit shift (<<) que realiza um
deslocamento bit a bit. A seleção de penas fica um tanto complicado pela
necessidade de operações bit a bit, e não é do interesse do curso desenvolver
muito esse assunto.

Os botões de Oldes e newest file, back one e forward one file serão vistos mais
adiante.

Para criar um outro gráfico que necessite de tags de controle diferentes é aconselhado
utilizar a ferramenta TAG SUBSTITUTION. Para isso basta copiar novamente os
objetos da library TRENDS (lembre que esses estão associados as tags da pasta Trend),
clicar na seleção com o botão direito – tag substitution, ou no menu Edit, ou pelo atalho
CTRL + R. bote no campo “Search for”, o nome ou parte do nome da tag antiga, a qual
deseja substituir, e coloque no campo “Replace with” o nome ou parte do nome da tag
para a qual deseja substituir. Confirme as mudanças que deseja realmente fazer, cancele
ou clique em Replace all para realizar mudanças em qualquer resultado valido
encontrado. No exempo, em search for coloque “Trend” (sem aspas) e em Replace with
coloque o nome de uma pasta nova aonde deseje salvar as tags de controle do novo
gráfico, clique em replace e replace all. Veja que ao realizar a troca, automaticamente se
criam a pasta e as tags de controle dentro dela (não é necessário criar as tags antes de
substituir).

A ferramenta tag substitution realiza a troca em todo campo de configuração de tag,


caminho, comando, animações, etc... que esteja dentro da seleção. No caso se selecionar
um grupo será realizada a troca em todos os objetos compreendidos naquele grupo.

Gráficos também têm atributos (cor e estilo da linha, cor de preenchimento e padrão do
preenchimento). Estes devem ser editados como qualquer outro objeto. Para sobrepor
gráficos é necessário que os gráficos sobrepostos tenham o preenchimento do tipo
Hollow (vazio) e que estejam organizados da maneira correta, ou seja, todos os gráficos
devem ser hollow, menos um e este que não é hollow deve estar atraz de todos os outros
gráficos. Normalmente gráficos sobrepostos compartilham as tags de controle ou estas
estão relacionadas de alguma outra maneira, assim a navegação entre os gráficos é feita
com sincronização.
O registro de Dados (data log): pode-se fazer o registro de dados, criando tabelas com
uma serie de amostras de valores das tags no tempo. Esses pontos juntos formam
gráficos e podem ser utilizados posteriormente em experiências, para comparação com
dados atuais (para verificar ganho de eficiência por exemplo) ou para simples
conferencia.

Para configurar o registro de dados vá na aba Edit mode, na pasta Data Log, em Data
Log Setup. Os arquivos de configuração de registros podem ser salvos, esses arquivos
são chamados de models, e pode-se ter varias configurações de registro diferentes em
um mesmo projeto (vários Models). A primeira coisa a se configurar em um model são
quais as tags terão seus valores registrados. Para isso vá na aba Tags in Model:

No campo Tag(s) to add, digite o nome de uma tag ou navegue pelo tag database. Após
isso clique em add para adicionar a lista de tags do model. Utilize o botão remove, e
remove all para remover tags adicionadas por engano ou que não se queira mais. (veja
que models diferentes podem registrar grupos de tags diferentes ou iguais. Veja também
que pode-se realizar o registro apartir de vários models ao mesmo tempo).

Na aba log triggers deve-se configurar o evento que disparará o registro. O registro pode
ser periódico ( realizando amostras a cada segundo, décimo de segundo, centésimo de
segundo, etc...). pode ser On Change, ou seja, quando houver mudança do valor da
variável (utilize esse disparo caso a tag não altere frequentemente de valor ou se a tag
for digital – para monitorar tags digitais basta saber quando houve transição). Ou pode
ser On Demand (por demanda), no caso seria registrado a amostra apenas quando o
comando DataLogSnapshot <nome do model> fosse solicitado.

Na aba Setup configura-se, antes de tudo, o formato de armazenamento dos registros.


Pode-se escolher 3 formatos de armazenamento: dBase IV (narrow), dBaseIV (Wide) e
ODBC. O formato dBase (de extensão .dbf) é um formato simples, antigo e pouco
utilizado atualmente, pois apresenta restrições de uso do banco de dados. O formato
ODBC (acrônimo para Open Data Base Connectivity) , que não é na verdade um formato
de arquivo, é um padrão para acesso a sistemas gerenciadores de bancos de dados. Este
padrão define um conjunto de interfaces que permitem o uso de linguagens de
programação como Visual Basic, Delphi, Visual C++, entre outras capazes de utilizar estas
interfaces, para ter acesso a uma vasta gama de bases de dados distintas sem a
necessidade de codificar métodos de acesso especializados.

O ODBC possui uma implementação específica da linguagem SQL (os querys de pesquisa
de dados) com a qual a aplicação pode se comunicar com a base de dados de forma
transparente, permitindo, por exemplo, que um mesmo programa possa utilizar
simultaneamente diferentes sistemas de gerenciamento de banco de dados (SGBD ou
DBMS) como o MySQL, o Access, o SQL Server ou até mesmo o Excel, sem a
necessidade de mudanças no código fonte. O reistro de dados em fontes ODBC também
dá versatilidade ao banco de dados pois esse pode ser acessado por diversas aplicações
que realizem querys. Por ser um padrão mais difundido e poderoso as explicações sobre
registro de dados se aterão a esse formato.

O formato dBase IV é mais fácil de configurar, e tem quase todas as opções iguais
às opções de registro de alarmes já vista (alarm log são armazenados no formato
dBase IV). O interessado deve conferir por si só, consultando se necessário a
documentação, como se dá a configuração.

Para configuração de registro em ODBC deve-se escolher o formato ODBC e clicar no


botão (...) ao lado do campo ODBC Data Source. Deve-se criar um novo arquivo de fonte
de dados (arquivo.dsn) esse arquivo conterá informações sobre a configuração da fonte de
dados ODBC. Clique em new, selecione fonte de dados de arquivo (as outras opções
geram restrições da fonte de dados para outros usuários ou outras maquinas), e selecione
o driver do sistema de gerenciamento de banco de dados. Os drivers são arquivos de
extensão que conferem o interfaciamento entre aplicações mediante o padrão ODBC.
Normalmente utiliza-se como gerenciador de base de dados o Microsoft Acces ou
soluções gratuitas como o MySQL. Deve-se escolher o driver especifico para o SGDB a
ser utilizado. Depois deve-se salvar o arquivo de fonte de dados (.dsn) que contem tais
configurações. Digite o caminho e o nome do arquivo ou clique em procurar e defina o
nome e o caminho do arquivo.dsn. clique em concluir e será aberta a tela de configuração
do driver (para cada driver uma janela diferente, deve-se consultar a documentação de
cada driver) no caso do driver do MS Access clique em Criar... selecione um local para
salvar o arquivo .mdb (arquivo do access) e um nome

Criado o arquivo de fonte de dados (.dsn) escolha o arquivo criado na lista e dê OK.

Em seguida crie as tabelas, TAG FLOAT e STRING. (create tables)

Na tag table – são registrados o índice de cada tag, o nome e o tipo da tag, e o
tamanho do dado (long, float ou string)

Na FloatTable são registrados a data e hora da amostra, os milisegundos que


comprelementam a hora da amostra, o valor da amostra e o status da tag (valid,
error, disabled, stale, unitialized), ambas relacionadas ao índice de cada tag (tags
analógicas e digitais apenas).

Na StringTable as mesmas informações que existem na Float Table são também


disponibilizadas, com a diferença que o valor da amostra é uma String)
O campo description é opcional, o campo log file identifier String e a opção use long
file names não são suportados em registro em ODBC pois não são criados vários
arquivos.

Na aba Paths (configurando model ODBC) pode-se adicionar um caminho de backup


ODBC, caso o caminho primário não esteja acessível (por exemplo se o caminho
primário for um arquivo em rede (remoto e não local). Para isso marque enable ODBC
backup path e escolha o caminho da base de dados ou escolha a opção de caminho
relativo ao projeto (logging path relative to Project).

Na aba File Management é possível configure se desejar a exclusão automática das


entradas mais antigas (purge oldest records), marcando after maximum time e
escolhendo o tempo Maximo de permanência da entrada no banco de dados. Repare que
é diferente dos formatos dBase IV que deletam arquivos de registro antigos. Aqui se
deletam as ENTRADAS antigas.

Agora clique em OK e salve o arquivo de model (arquivo.mdf)

Pode-se editar o model clicando 2 vezes no seu nome na lista, ou pode-se criar outros
models. Para iniciar o registro de dados de um model utilize o comando DataLogOn
<nome do model> e para desligar o registro de dados de um model utilize o comando
DataLogOff <nome do model> ou DataLogOff * para desligar todos os registros de
dados.

Outros comandos de registros de dados:

DataLogSnapshot <nome do model> - pode ser utilizado em qualquer model, porem é


mais comum em models com disparo On Demand. Lembre que para o registro ocorrer o
arquivo de model deve estar rodando, ou seja, deve-se requisitar o comando DataLogOn
<nome do model> antes de requisitar o comando DataLogSnapshot.

DataLogChangeRate <nome do model> <valor da taxa> <unidade de medida> - altera o


valor do período de amostragem caso o model seja de disparo periódico. Utilize para as
unidades de medida: hundredths, tenths, seconds, minutes, hours ou days

DataLogSwitchBack <nome do model> quando ocorre uma falha, que o arquivo de


armazenamento de dados não está acessível por algum motivo, e se for habilitado o uso
de backup path, o registro de dados é feito na base de dados de backup. Pode-se tentar
voltar a registrar na base de dados primaria com o comando DataLogSwitchBack. Caso
não obtenha sucesso (o locar primário ainda está inacessível) o registro continuará
sendo realizado no local secundário.

Também pode-se configurar o Switchback automático, para isso edite


novamente o arquivo model, va na aba paths e clique em advanced...
Switchback – configure um período em minutos para tentar o Switchback
automatico para o local primário.

Switchover – é possível armazenar em memória (ao invez de em um


arquivo de disco secundário) uma certa quantidade de dados antes de
trocar do local primário para o local secundário (switchover). Nesse
campo configure a quantidade de dados que podem ser armazenados em
memoria antes de ocorrer o switch over. A quantidade de dados é medida
em minutos de amostras.

DataLogMergeToPrimary – quando se consegue executar o switchback deve-se fundir o


conteúdo registrado no local secundário ao local primário, completando a lacuna de
dados que ficou no local primário. O Comando DataLogMergeToPrimary faz isso, e
ainda faz o SwitchBack. Esse comando pode ser utilizado a qualquer hora, esteja o
model sendo executado ou não.

GRAFICOS HISTORICOS:

Gráficos de tendências podem usar fontes de dados como os models, para visualizar
dados históricos. Para isso ao editar um Trend, na seção Data Source, escolha uma das
opções de fonte de dados histórica ou invés de tempo real (real time). as opções são:

Histórical, oldest file, newest file, choose file. Porem fontes de dados ODBC não
diferenciam os registros em arquivos, assim deve-se escolher Historical.

Escolha o model que contem a base de dados que deseja acessar os dados (o model pode
ser local ou remoto, isso é, pode estar em outra maquina ou pertencer a outro projeto
RSView diferente nessa mesma maquina.

Escolhido o model que fornecerá dados ao gráfico, va na aba pen configuration. Perceba
que apenas as tags associadas ao model escolhido estão disponíveis.

Também há a opção de visualizar um tempo relativo na escala do eixo do tempo (aba


trend configurarion, time axis, Relative Time). marcando essa opção será visualizado na
escala do eixo X a diferença de tempo desde o primeiro dado registrado e o dado
exibido.(ou seja se for visualizado o numero 2 na escala em determinado ponto,
significa que aquela amostra foi retirada 2 horas depois da primeira amostra registrada).

O registro de atividades (activity log): o registro de atividade registra informações sobre


o sistema, como o uso de comandos e macros pelo usuário, mensagens de alerta e erro
relacionadas a aplicação, mensagens de erro de comunicação, leitura e escrita de valores
de tags, etc... o registro de atividades serve para monitorar posteriormente o
comportamento dos operadores, diagnosticar e identificar falhas.
A barra de atividades (activity bar), localizada no canto inferior da tela, tambem exibe
informações sobre o sistema. As mensagens de atividade que serão exibidas na barra de
atividades devem ser configuradas no acitivity log setup.

O Activity Log Setup: aqui se definem as opções de registro de atividades. Na primeira


aba temos o caminho primário (o arquivo de registro de atividades é salvo no formato
dBase IV .dbf). o caminho da impressora (caso deseje-se fazer registro na impressora).
As opções use RSView326.0 log file format (usar o formato antigo, apenas para
compatibilidade), use long file names (usar nomes longos de arquivo).

Na segunda aba de file management, temos tudo igual à como era no registro de alarme
(afinal estes usam o mesmo formato dBase IV)

Na terceira aba de Categories, vemos uma lista de categorias de mensagens a serem


registadas. As possíveis categorias de mensagens de atividades são:

Sobre comandos

Sobre a aplicação RSView e suas ferramentas (como ferramenta de login, etc...)

Sobre comunicação

Sobre as operações de escrita e leitura de valores das tags.

Remarks – que são comentários do usuário, iseridos usando o comando Remark <texto>

(as categorias custom 1,2,3 e 4 são definidos pelo usuário e podem ser utilizados com
rotinas VBA)

Veja que para cada categoria ainda existem 3 tipos de mensagem (de erro, de aviso –
warning - , e de informação)

Para cada categoria e cada tipo de mensagem pode-se escolher se e aonde a mensagem
será registrada. As mensagens podem ser exibidas na barra de atividades (activity bar),
podem ser registradas em arquivo (log file), registradas em impressão (printer), ou
enviadas para base de dados de um software de diagnostico da rockwell chamado
Factory Talk ( o conteúdo desse software não será abordado nesse curso, portanto essa
opção deve ser mantida desmarcada).

É comum registrar apenas mensagens de erro e alerta na barra de atividades, para não
tirar a atenção do operador durante a operação da planta (devido a quantidade de
mensagens de informações sendo exibidas).

Os arquivos de registro de atividades podem ser visualizados pelo símbolo activity log
viewer, ou pelo comando ActivityViewer, arquivos de registro também podem ser
vistos em programas com suporte dBase IV, como o excell por exemplo. Repare que,
caso deseje visualizar os arquivos de registro (qualquer que seja, de alarme, dados ou
atividades) com o excel (ou outro) durante a execução do sistema deve-se abrir os
arquivos em modo de apenas leitura. Caso os arquivos sejam abertos em modo de
leitura e escrita, o RSView não poderá realizar o registro nestes arquivos, até estes
serem fechados.

Outros comandos uteis são:

ActivityOn activityOff – iniciam ou param o registro de atividades. Por padrão,


ao se inicializar o projeto o registro de atividades está ligado.

ActivityPrintOn/Off – idem

ActivityBarOff/On – esconde e exibe a barra de atividades

EchoOff/On – desabilita/habilita o registro de mensagens da categoria


comandos. Frequentemente utilizados como primeiro e ultimo comando de
macros, assim registra-se apenas que a macro foi executada sem registrar cada
comando contido na macro.

Mais configurações de StartUp

Placeholders em comandos:

Display screen$tagname$ se tagname = “BM”

O commando executado sera – Display screenBM

Botão de assinatura eletrônica ctrlX


adicionar tags de banco de dados de CLP, exportar e editar os arquivos .csv

parametros, derived tags, events, global e local Keys, VBA