Referências
Application Note TwinCAT HMI
TwinCAT HMI
1
TwinCAT HMI
CONTEÚDO
Server ............................................................................................................................................................................ 5
Client ............................................................................................................................................................................. 5
Engenharia .................................................................................................................................................................... 5
3. Arquiteturas. .............................................................................................................................................. 8
4. Licenciamento ......................................................................................................................................... 10
Textblock ..................................................................................................................................................................... 18
Eventos ........................................................................................................................................................................ 22
Botões ......................................................................................................................................................................... 23
2
TwinCAT HMI
Datagrid ....................................................................................................................................................................... 31
Eventlogger ................................................................................................................................................................. 49
Scripts .......................................................................................................................................................................... 71
Temas .......................................................................................................................................................................... 74
IFrame ......................................................................................................................................................................... 91
7. Versão ..................................................................................................................................................... 92
3
TwinCAT HMI
Este documento tem por objetivo fornecer os primeiros passos para trabalhar com o TwinCAT HMI,
produto lançado oficialmente em abril de 2018.
Este documento se destina a usuários familiarizados com o TwinCAT e com a tecnologia Beckhoff,
conhecimentos prévios do protocolo ADS e programação dos nosso produtos são um pré-requisito.
Não é o escopo deste documento realizar uma descrição detalhada de todos os parâmetros
disponíveis em todos os componentes do TwinCAT HMI, isso tornaria o documento muito longo e seria
meramente uma repetição do que já existe no seguinte endereço.
https://infosys.beckhoff.com/content/1033/te2000_tc3_hmi_engineering/index.html?id=4989414722711
336036
4
TwinCAT HMI
SERVER
É o componente que trata de “rodar” a lógica que dá suporte para fazer a IHM funcionar, o Server
deve ser instalado separadamente no PC que irá rodar a aplicação (que não necessariamente é o
mesmo que irá mostrar as telas, mais detalhes a seguir).
CLIENT
O Client é sempre um Browser (navegar de internet, como o Google Chrome, Firefox etc….), o detalhe
é que o Browser deve suportar HTML 5, uma vez que o Server disponibiliza as telas para serem
visualizadas nesse formato. Não é necessário que o client e o Server rodem, necessariamente, no
mesmo PC podendo abrir caminho para arquiteturas muito flexíveis.
ENGENHARIA
Diferenças entre TwinCAT HMI, TwinCAT PLC HMI, e TwinCAT PLC HMI WEB.
Quando se trata de software de IHM a Beckhof disponibiliza 3 pacotes básicos, sendo eles:
Pacote mais básico da Beckhoff, ativação da configuração gera um arquivo executável que, uma vez
aberto, inicia uma aplicação que mostra as telas desenvolvidas. É o pacote mais simples que tem, e
possui limitações em suas funcionalidades, por exemplo, esse pacote não possui gráfico.
https://www.beckhoff.com/english/twincat/tf1800.htm?id=2353036919922238
5
TwinCAT HMI
Igual ao PLC HMI, porém trata-se de um sistema que roda em um Browser, é possível fazer todas as
telas e descarregá-las em um IPC que irá rodar o Server e visualizá-las em outro PC que possua um
browser compatível com HTML5, isso possibilita visualizar a IHM em um Celular com Android/IOS
etc…
Tanto no PLC HMI quanto no PLC HMI Web deve-se criar as telas na mesma interface de
desenvolvimento onde se desenvolve a aplicação de PLC (no mesmo software onde se desenvolve o
Ladder, ST, etc…)
https://www.beckhoff.com/english/twincat/tf1810.htm?id=2353036919922246
6
TwinCAT HMI
TWINCAT HMI
Pacote de software mais poderoso e que detém a maior quantidade de recursos. Roda em um
Browser independente de ser local ou remoto, também oferece a possibilidade de criar telas
responsivas, que tem um formato em um PC e outro formato em Smartphones, Tablets etc…
TwinCAT HMI
https://www.beckhoff.com/english/twincat/twincat-3-hmi.htm?id=1890110977661595
7
TwinCAT HMI
3. ARQUITETURAS.
Como mencionado acima o TwinCAT HMI roda em um Browser e é composto por um server, um cliente
e um software de programação / configuração, isso possibilta inúmeras arquiteturas dependendo da
necessidade.
É fato que sempre deverá existir um server e um cliente, embora estes não precisem estar,
necessariamente, rodando na mesma máquina.
Computador 1
Browser de mercado (Google
TwinCAT HMI Client
Chrome, firefox, etc…
Comunicação entre o
HMI Server e o Client
Aplicação que faz o TwinCAT HMI
TwinCAT HMI Server
funcionar
Comunicação entre o
PLC e o HMI Server
Lógica que faz com que a
TwinCAT Runtime (PLC)
máquina funcione
Essa primeira arquitetura é a mais comum, requer a instalação do HMI Server no PC (computador 1) e
também a instalação de um browser compatível com HTML 5.
Em termos de licença também é muito simples, necessitando apenas de um licença (além das licenças
relativas ao controle da máquina) a TF2000-00PP que já inclui um Server e um client por padrão.
8
TwinCAT HMI
A segunda arquitetura mostrada acima já tem como característica o fato de que os clients estão rodando em
máquinas separadas, sejam estas: computadores, tablets ou smartphones. Esta arquitetura requer um licença a
mais do que a arquitetura 1 sendo necessárias a TF2000-00PP e a TF2010-00PP.
9
TwinCAT HMI
4. LICENCIAMENTO
O TwinCAT HMI requer, para funcionar, algumas licenças dependo da configuração, a licença básica (TF2000-
00PP) deve sempre ser incluida.
TF2000 Licença básica que deve sempre ser incluída, inclui um Server e um Client, já possui a conectividade
ADS por padrão (para comunicar com PLCs Beckhoff), não possui limite de Tags, é licenciada de acordo com a
performance do IPC que está rodando o Server.
TF2050 .. TF2090 Adicionar a funcionalidade de conectar com mais de um Runtime de TwinCAT (conexão a
mais de um PLC).
TF2100 TwinCAT ADS para comunicação com o TwinCAT (Lógica do PLC), já está incluso na TF2000.
TF2110 TwinCAT HMI OPC-UA, caso seja necessário comunicar com outro tipo de PLC (Siemens, Rockwell
ou outros) pode-se utilizar o OPC-UA adicionando essa licença, também não tem limite de tags, sendo licenciada
de acordo com a performance do hardware onde está rodando.
TF2200 TC3 HMI Extension SDK : funcionalidade necessária para escrever as suas próprias extensões em C#
ou JavaScript.
TF2210 TC3 HMI Recipe Management: Gerenciamento de receitas, já está incluso na licença básica, não há
cobrança adicional.
TF2300 TC3 HMI Scope : Adiciona a possibilidade de incluir o TwinCAT Scope View dentro do TwinCAT HMI
10
TwinCAT HMI
Como visto anteriormente o TwinCAT HMI é composto pela engenharia, o TwinCAT HMI Server e o
client.
O client trata-se de um Browser (Google Chrome, Firefox, etc…), logo basta instalar o browser
desejado. Já a instalação da engenharia e do TwinCAT HMI Server devem ser realizadas pelo usuário.
A engenharia do TwinCAT HMI é completamente integrada ao Microsoft Visual Studio, bem como o
TwinCAT já é.
É recomendável que para instalar se clique com o botão direito do Mouse no instalador baixado do site
e rodá-lo como administrador.
O TwinCAT HMI Server também pode ser baixado na área de download do site da Beckhoff.
11
TwinCAT HMI
O procedimento para instalação do TwinCAT HMI Server será parecido com o do TwinCAT HMI
engenharia (clicar com o botão direito e executar como administrador).
TwinCAT HMI Server Instalar na máquina de desenvolvimento e no IPC que irá rodar o Server (que
não necessariamente precisa ser o mesmo onde a aplicação irá rodar).
12
TwinCAT HMI
https://visualstudio.microsoft.com/downloads/
13
TwinCAT HMI
6. COMPONENTES BÁSICOS
Uma vez instalados, conforme mostrado no item 5 podemos começar a criar o primeiro projeto. Para
iniciar o primeiro projeto, devemos iniciar o Visual Studio e criar um novo projeto de TwinCAT HMI.
14
TwinCAT HMI
Seguir os passos da figura acima irá criar um nova solução do Visual Studio, a solução será como na
figura abaixo:
Uma ver criada a solução, já é possível clicar em Debug Start Debugging, conforme mostrada na
figura abaixo (ou apertar F5), isso irá automaticamente abrir o seu navegador de internet padrão (ex.
Google Chrome) com a tela padrão do TwinCAT HMI.
Toolbox
Área de design
da IHM
Solution Janela de
Explorer propriedades
Caso seja capaz de iniciar a aplicação corretamente significa que a instalação do TwinCAT HMI ocorreu
corretamente e pode-se iniciar a desenhar as telas conforme necessidade.
INICIANDO A ENGENHARIA
15
TwinCAT HMI
Todo software de IHM começa por definir variáveis que serão utilizadas, sejam elas vindas diretamente
do PLC ou variáveis internas do HMI. A seguir temos um guia de como criar os dois tipos de variáveis.
A seguir veremos como configurar a conexão ADS entre o TwinCAT HMI e o TwinCAT PLC.
Para tal utilizaremos as configurações padrões, ou seja, fazendo uso do TwinCAT ativado localmente
(TwinCAT PLC rodando na mesma máquina onde roda o TwinCAT HMI).
O primeiro passo é o de configurar o Target. Isso pode ser feito clicando-se sobre a configuração do
server/extensions/ADS.
Da maneira como está configurado acima o TwinCAT HMI está levando em consideração que o
TwinCAT PLC está rodando no mesmo PC onde está rodando o TwinCAT HMI Server.
Essas variáveis estão criadas no PLC, devemos mapeá-las para o TwinCAT HMI.
16
TwinCAT HMI
Variáveis mapeadas
Uma vez mapeadas, as variáveis podem ser utilizadas nos campos criados na IHM.
Também é possível criar variáveis internas para serem utilizadas apenas na IHM. Esse procedimento é
útil para quando desejamos ter variávies que não irão se comunicar com o PLC.
17
TwinCAT HMI
Uma vez criadas as variáveis (do PLC ou internas), podemos partir para construção das telas.
TEXTBLOCK
Elemento mais simples do TwinCAT HMI, o textBlock serve para mostrar um texto simples na tela que
pode ser um texto fixo ou uma variável. Para tal deve-se arrastar o elemento da caixa de ferramentas e
soltar em qualquer lugar da tela.
18
TwinCAT HMI
Também é possível fazer o link de uma variável mapeada, bastando clicar no botão e depois em “Create
data binding”.
Criar um “Data
Binding”
19
TwinCAT HMI
Caso a variável desejada não esteja presente na lista na aba “Mapped symbols”, é possível escolher a
variável desejada na aba “Server Symbols”.
É importante ter em mente que as variáveis não irão aparecer caso o server não esteja acessível por
qualquer motivo (como falta de conexão entre o PC de engenharia e o PC no qual o TwinCAT PLC está
rodando).
20
TwinCAT HMI
O Live engineering trata-se de uma ferramenta capaz de mostrar em tempo real o que está acontecendo
durante o processo de engenharia, adicionar um campo de texto ou um botão na tela de
desenvolvimento irá adicionar automaticamente a mesma na janela criada pelo Live engineering.
21
TwinCAT HMI
Componentes adicionados à
tela criada
Qualquer elemento adicionado à tela será adicionado automaticamente ao Live engineering, tornando o
ato de construir as telas bem mais dinâmico.
É importante ressaltar que nem todos os componentes que funcionam no Browser funcionam
completamente no Live engineering.
EVENTOS
No TwinCAT HMI qualquer elemento colocado na tela pode acionar um evento, existem eventos dos
mais variados e o programador pode se valer destes afim de criar a lógica necessária para o
funcionamento de sua aplicação
Para configurar os eventos disponíveis para cada objeto basta que, uma vez adicionado o elemento, se
clique sobre ele e depois, na janela de propriedades, verificar os eventos.
22
TwinCAT HMI
Elemento selecionado
BOTÕES
A função TAP quando a variável é acionada ao manter o botão pressionado e volta para o seu estado
normal ao soltar o botão
A função Toggle faz com que a variável mude de estado quando se toca o botão, se verdadeiro vai
para falso e vice-versa.
23
TwinCAT HMI
Essas funções podem ser configuradas nos eventos de qualquer dos elementos presentes no TwinCAT
HMI.
Arrastar e soltar o
componente na área
de trabalho da tela
que se está editando
Adicionar um Data
binding normalmente
E selecionar a variável
booleana que se deseja
utilizar
24
TwinCAT HMI
Após realizar os passos acima será possível verificar o funcionamento do botão TAP.
Proceder da mesma forma com foi feito com o botão do tipo TAP, utilizando a função propriedade “State
Symbol”.
TEXT BOX
Diferente do elemento textblock o Textbox permite edição, sendo o elemento usado qdo desejamos
mostrar e editar valores na IHM.
25
TwinCAT HMI
Contudo no textobox desejamos também ser capazes de editar a variável, para tal devemos mudar o
tipo de binding associado à variável vinculado ao campo, vejamos como fazer esse ajuste.
Selecionar
A seleção do binding mode conforme descrito acima irá fazer com que alterações na variável na tela
sejam transferidas para o PLC e vice-versa. Caso o usuário digite um valor incompatível com o tipo de
dado do PLC (ex. digitar um texto onde só cabe um número), este será automaticamente rejeitado.
26
TwinCAT HMI
Às vezes é necessário formatar o texto mostrado em um Text Box, (mostrar um texto, uma variável real,
inteiros, colocar unidades ou textos juntamente com uma variável).
Ao selecionar um campo de texto podemos utilizar a função para limitar o número de casas decimais,
por exemplo.
Para delimitar o número de casas decimais utilizadas em um campo de texto usando uma variável real,
podemos fazer da seguinte forma:
Ao selecionar a variável que será mostrada devemos utilizar a função “FormatString” com a seguinte
sintaxe:
FormatString('{0|.2f}', <Simbolo>)
Onde:
'{0|.2f}' Formato que será mostrado (número real com duas casas decimais).
<Simbolo> Simbolo cujo valor será exibido, nesse caso deve ser uma variável do tipo real.
A função
Para adicionar variáveis seguidas de texto é simples, basta colocar o texto desejado na formatação da
String.
Por exemplo:
350.00 RPM
27
TwinCAT HMI
TECLADO NA TELA
O desenvolvedor pode querer adicionar um teclado na tela de maneira a permitir que o usuário utilize a
tela de toque, também é possível limitar o tipo de teclado pelo campo utilizado.
O teclado deve, entretanto, ser manipulado pelo usuário, que deve controlar os momentos nos quais
este irá aparecer.
Depois devemos configurá-lo da forma como quisermos, neste exemplo para a edição de campos
essencialmente numéricos devemos configurar o teclado como numpad.
28
TwinCAT HMI
Após acertar o tamanho do teclado podemos torná-lo invisível, uma vez que o que o fará visível é o foco
no campo de texto que será editado.
Também é recomendável
trocar o nome do teclado para
um nome mais amigável e
fácil de lembrar, uma vez que
teremos que manipulá-lo em
quase todo o projeto.
Lembre-se que não são
permitidos caracteres
especiais e espaços.
O próximo passo é selecionar o campo de texto que será editado pelo teclado numérico criado.
No diálogo aberto
devemos adicionar um
comando “Write To
Symbol”.
29
TwinCAT HMI
Para tornar o teclado invisível podemos fazer da maneira acima, utilizando isso no evento
“.onUserInteractionFinished”. Desta vez devemos mudar a propriedade “visibility” do teclado para
“Collapsed”.
30
TwinCAT HMI
DATAGRID
O Datagrid é um componente útil para mostrar várias informações condensadas em forma de tabela
A melhor maneira de se utilizar um Datagrid é criar um tipo de dado no PLC, fazer dele um vetor, e
mostrar os vários elementos deste vetor através do Datagrid.
Para este exemplo criaremos uma estrutura no PLC que irá conter uma variável de cada tipo, e criaremos
também um vetor deste mesmo tipo:
O próximo passo é adicionar o Datagrid ao projeto de HMI e configurá-lo de maneira a ler as variáveis
provenientes do PLC.
31
TwinCAT HMI
32
TwinCAT HMI
User control são elementos muito úteis para criar um “padrão” de controle personalizado pelo usuário e
replicá-los quantas vezes forem necessárias.
33
TwinCAT HMI
34
TwinCAT HMI
No User Control podem ser utilizados todos os controles normais usados na nas telas normais, logo os
componentes como: TextBox, TextBlock, se aplicam normalmente.
Após a criação dessas variáveis as mesmas poderão ser selecionadas tanto dentro do User Control
quanto fora dele.
35
TwinCAT HMI
Parâmetros criados na
tela anterior
Basta adicionar os controles normalmente no User Control e, depois ao fazer o “Data Binding” selecionar
os parâmetros criados.
Após criado o User Control irá aparecer na caixa de ferramentas, conforme figura abaixo:
36
TwinCAT HMI
Como qualquer software de IHM o TwinCAT HMI oferece a possibilidade de se navegar por várias telas
feitas previamente pelo usuário.
Para tal a forma mais rápida é criar as diversas telas no solution explorer
37
TwinCAT HMI
Nas figuras acima temos a sequência para adição de uma nova página.
Uma vez criado o Content podemos começar a adicionar os elementos dentro da mesma.
38
TwinCAT HMI
Após criada a página e dimensionada corretamente devemos adicionar uma região que irá receber as
páginas criadas
É recomendável deixar a região ocupando apenas uma parte da tela de trabalho, permitindo que no
restante das telas se adicione os botôes para realizar a navegação.
39
Botões de navegação Região adicionada
TwinCAT HMI
Parar poder utilizar os botões de navegação para mudar de tela devemos configurá-los para tal, o que
pode ser feito utilizando um evento conforme mostrado abaixo.
40
TwinCAT HMI
O TwinCAT HMI oferece várias formas de mostrar graficamente as informações na tela, são elas:
Graficos de dados históricos, salvos em um banco de dados SQLlite rodando localmente e logados
automaticamente pelo TwinCAT HMI.
O tipo iniciar de gráfico é o gráfico no qual há uma pena que é adicionada ao mesmo com o intuito de
se monitorar uma variável proveniente do PLC, também é possível adicionar várias penas para serem
visualizadas através do PLC.
A vantagem desse tipo de gráfico com o TwinCAT HMI é que o mesmo oferece a possibilidade de se
criar um vetor dentro do PLC e utilizar o mesmo vetor para poder visualizar a variável, assim sendo, a
cada ciclo do PLC a variável monitorada é atualizada, o que permite que a IHM tenhamos uma variável
mostrada com a mesma taxa de amostragem que se mostraria em uma ferramenta de comissionamento
de Scope, como o TwinCAT Scope View.
Na figura acima temos o elemento que deve ser adicionado para poder monitorar uma variável do PLC.
41
TwinCAT HMI
para criar uma variável no PLC devemos criar um vetor que será preenchido, colocando um tipo de dado
que irá conter as variáveis x e y, sendo x o tempo e y o valor a ser monitorado.
Após a criação desse tipo de dados devemos criamos um vetor de duas dimensões para o mesmo,
conforme na figura a seguir.
42
TwinCAT HMI
Selecionar a variável
43
TwinCAT HMI
Após realizar essa configuração o gráfico deverá funcionar normalmente, mas a escala ainda pode estar
errada.
Ao clicar na opção acima é possível selecionar a escala dos eixos entre outras opções.
Esse tipo de gráfico é obtido através de uma variável que é gravada em um banco de dados SQLlite,
que roda localmente, bastando para tal selecionar a variável que se deseja monitorar e colocar o gráfico
para a mesma.
44
TwinCAT HMI
O elemento que pode visualizar as variáveis que estão sendo historizadas é o TcHmiTrendChart.
45
TwinCAT HMI
Após isso
selecionar a opção
ao lado
E adicionar uma
pena ao gráfico.
Após isso devemos configurar a pena para mostrar os dados provenientes do histórico.
A variável permanecerá sendo historizada enquanto o server do TwinCAT HMI estiver ativo, ao desativar
o server a variável não será mais armazenada.
Uma vez iniciado o projeto é possível começar a fazer a seleção dos momentos onde se inicia e termina
a plotagem do gráfico na barra de menu.
GRÁFICO DE BARRAS
O gráfico de barras, também disponível no TwinCAT HMI é muito útil para mostrar uma série de valores,
tais como harmônicas em um espectro.
O funcionamento do mesmo é mais simples que os outros gráficos acima, bastando adicionar o elemento
conforme na figura abaixo:
Também é necessário adicionar um vetor no PLC, que pode ser um vetor simples como o mostrado
abaixo.
47
TwinCAT HMI
adicionado.
48
TwinCAT HMI
Também é possível adicionar um gráfico de barras com duas variáveis, da mesma forma como foi feito
para plotar duas variáveis no gráfico linear.
EVENTLOGGER
O Eventlogger trata-se de um componente de software que gerencia todos os eventos que podem
acontecer no TwinCAT, que podem ser alarmes acionados pelo PLC, por módulos C++ ou por outro
elemento capaz de ativar eventos no TwinCAT eventlogger.
Targets adicionados
49
TwinCAT HMI
O uso do eventlogger se divide em duas partes, sendo elas gerar os alarmes no PLC (ou outros
softwares com essa capacidade) ler os alarmes no TwinCAT HMI.
Os eventos podem ser gerados em vários softwares sendo que o mais comum deles é justamente o
TwinCAT PLC. Gerar esses eventos a criação dos mesmos através do editor de TMC (TwinCAT Module
Class) e a construção do código de PLC para poder acioná-los.
50
TwinCAT HMI
A compilação do projeto de PLC irá gerar um tipo de dado automaticamente, coforme mostrado na figura
abaixo, perceba que esse tipo de dado possui uma variável para cada um dos eventos criados no editor
de TMC.
O próximo passo é criar o código de PLC para ativação dos alarmes internamente no PLC.
Os eventos podem ser classificados em cinco categorias, sendo elas: Verbose, Info, Warning, Error e
Critical, dependendo da gravidade do alarme.
51
TwinCAT HMI
52
TwinCAT HMI
Após declaradas as variáveis conforme acima devemos inicializar os blocos funcionais adicionando as
variáveis criadas automaticamente através da mundança no arquivo .tmc.
Após adicionados os alarmes, devemos adicionar o componente da IHM, que nada mais é do que a
barra de eventos.
A EventGrid também pode ser adicionada com filtros, para que apenas alguns tipos de alarmes sejam
mostrados.
53
TwinCAT HMI
CONTROLE DE USUÁRIOS
A função de controle de usuários no TwinCAT HMI pode ser implementada para várias funcionalidades,
entre elas:
O controle de usuários é feito com base em grupos, após criar novos grupos é necessário adicionar
usuários que irão pertencer a determinados grupos, Ex
Depois temos : João pertence ao grupo Administradores, Pedro pertence do grupo operadores
54
TwinCAT HMI
Quando os usuários fizerem login no TwinCAT esses estarão limitados de acordo com o grupo ao qual
pertencem.
A criação de grupos pode ser feita no configurador do TwinCAT HMI, clicando no menu TwinCAT HMI
Windows TwinCAT HMI Configuration.
55
TwinCAT HMI
A imagem acima mostra a criação de um usuário chamado “Usuario”, a definição da senha de acesso
para o mesmo, juntamente com a definição da linguagem padrão deste usuário, também fica definido
que o usuário criado pertence ao grupo “operador”.
O próximo passo para fazer funcionar é definir os acessos em cada um dos elementos.
Para tal devemos clicar nas propriedades do objeto (Ex. um botão), e editar os acessos desse elemento.
56
TwinCAT HMI
Na coluna “Inherit” é possível selecionar cada um dos elementos para herdar o acesso do seu container
pai, por exemplo, suponha que um botão seja inserido dentro de um User Control e esse mesmo User
Control tenha acesso negado aos usuários do grupo “Operador”, logo quando um operador estiver
logado este não poderá manipular nenhum dos elementos que fizerem parte daquele user control e que
tiverem a propriedade selecionada como “inherit”.
Também é possível modificar o acesso de um determinado grupo a uma pasta, página, UserControl,
enfim, qualquer arquivo feito no TwinCAT HMI.
57
TwinCAT HMI
Na opção ao lado vemos que o nível de usuário “Técnico” não tem acesso de escrita ao arquivo
“Pagina2.content”.
Para trocar de usuário é necessário fazer o Logout do Browser. Por padrão deve-se fazer login ao iniciar
o TwinCAT HMI Server, o que obriga o usuário a inserir a senha.
Para fazer Logout existe uma função que pode ser adicionada em algum botão.
58
TwinCAT HMI
Ao apertar o botão o usuário será levado à página de Login do TwinCAT HMI, onde poderá realizar o
login com outro usuário.
Ou ponto importante ao se trabalhar com controle de usuários é ter a ciência de qual usuário está logado
no momento.
Isso pode ser alcançado vinculando esta propriedade em algum campo de texto.
Devemos:
59
TwinCAT HMI
Várias linguagens podem ser utilizadas com o TwinCAT HMI, todos os elementos textuais das telas
podem ser traduzidos. Por padrão o TwinCAT HMI já traz as linguagens inglês e alemão, português do
Brasil pode ser adicionado conforme figura abaixo.
60
TwinCAT HMI
A partir desse ponto é possível utilizar os arquivos criados para fazer a tradução.
Tradução do mesmo
Nome do símbolo para PT-BR
Após a criação dos símbolos é possível traduzi-los para outros idiomas, bastando para isso clicar nas
outras linguagens disponíveis (ou adicionar outras, conforma mostrado acima) e traduzir. É importante
notar que os símbolos somente ficarão disponíveis nos arquivos das outras linguagens quando o
arquivos no qual o símbolo for criado for salvo, é recomendável criar todos os símbolos em uma
linguagem e, só depois abrir o arquivo da outra linguagem.
61
O TwinCAT HMI oferece várias possibilidades para redimensionar automaticamente a tela, desde utilizar
o tamanho dos views, contents, UserControls baseados em um fator percentual até algumas opções
mais avançadas, algumas delas mostradas abaixo:
Esse Viewport é a representação padrão na qual as telas criadas no TwinCAT HMI serão exibidas, se
um usuário tiver uma tela da mesma resolução desse Viewport terá uma visualizaçao equivalente à
aquela que ele possui na área de desenho do TwinCAT HMI.
De qualquer forma, é possivel que a resolução da tela seja diferente no Client, em relação ao Viewport
definido pelo usuário no início da aplicação sem prejuízos à legibilidade dos componentes na tela, para
tal existem várias opções usadas para tornar a tela responsiva.
Views:
Ao criar uma nova aplicação já é criado automaticamente o “Desktop.view”, que é o padrão para tela
inicial. Ao selecionar o Desktop.view e clicar na área de trabalho do mesmo, podemos verificar que o
Viewport já vem configurado da maneira colocada na janela de propriedades.
Além disso podemos usar outras propriedades dos Views (que também se extendem a vários outros
objetos), afim de parametrizar o redimensionamento automático destes.
62
TwinCAT HMI
O objeto pai nada mais é do que o objeto no qual o componente com o qual estamos trabalhando está
ou estará contido em determinado momento, do qual este pode ou não herdar propriedades. Por
exemplo, ao abrir um Live View mostrando o Desktop.view a janela do Live view é o pai, uma vez que é
o componente básico no qual estarão contidos os outros componentes.
Já o componente filho é o elemento que é inserido em outro elemento, (seja este a janela do browser,
do Live View) de um conteúdo.
Ao analisar um botão inserido em um content fica muito claro que o content é o pai enquanto que o
botão é o filho, ao chamarmos um content dentro de uma region a region é o pai, ao passo que o content
é o filho.
Pai
Filho
Pai
Filho
63
TwinCAT HMI
Repare que o browser está exibindo um view (Browser é o pai, enquanto o view é o filho), enquanto o
view contém botão (view é o pai enquanto o botão é o filho). É importante reparar nesse tipo de dinâmica
para entender como os elementos serão redimensionados quando o TwinCAT HMI for executado em
diferentes tipos de dispositivos.
Todo elemento adicionar nas telas (e as telas propriamente ditas) possui em suas propriedades uma
série de elementos referentes ao Layout.
Dimensionamento
Relacionamento
Limites
64
TwinCAT HMI
Dimensionamento: são parâmetros que determinam o tamanho do elemento selecionado e podem ser
medidos em pixels ou em porcentagem. A relevância de cada um desses parâmetros no tamanho do
elemento selecionado depende dos parâmetros colocados em “Relacionamentos”.
Relacionamentos: determinam como o tamanho do elemento se relaciona com o elemento pai ou com
o que está contido nele. As possíveis configurações para largura a altura são:
Content: Controle será automaticamente dimensionado de acordo com o que existir dentro do
mesmo. Por exemplo, se isso for aplicação a um view, o tamanho do mesmo será exatamente o
tamanho necessário para abrigar os elementos contidos neste. Cuidado, se não houver nada
dentro do controle este não tera tamanho nenhum (tera o tamanho de um ponto e sera dificil de
localizar na tela).
Limites: limite máximo e mínimo para o tamanho do elemento em questão, por exemplo se
determinarmos para a largura Mindidth = 300px e MaxWidth = 450 pixels o controle parametrizado terá
entre 300 e 450 pixels dependendo do tamanho do cliente onde o mesmo for aberto. Essa configuração
é muito útil para abrir o mesmo view tanto em telas pequenas quanto em telas grandes, neste caso ao
abrir em um Smartphone o elemento terá no mínimo 300 pixels, já ao abri-lo em uma tela de computador
este terá no máximo 450 pixels.
Zindex: supondo que os elementos sejam dimensionados de acordo com o tamanho do elemento que
os contém pode acontecer de um elemento se sobrepor ao outro. Este parâmetro serve para determinar
qual elemento será mostrado primeiro caso isso ocorra.
65
TwinCAT HMI
GRID CONTROL
O grid control trata-se de um elemento que auxilia na construção de telas responsivas, essa podem ser
utilizadas tanto para que possam se encaixar em qualquer tamanho de tela quanto para mostrar em
dispositivos móveis, sendo possível posicionar o dispositivo tanto na vertical quanto na horizontal e,
ainda assim, manter a visualização dos elementos correta.
O Grid control deve ser usado quando se deseja criar uma tela responsiva, adaptando-se ao tamanho
do client.
A seguir há um exemplo de configuração do Grid control para a tela inicial do TwinCAT HMI, tornando
toda a aplicação responsiva, o que está correto do ponto de vista de funcionalidade: todo o supervisório
deve ser responsivo, até mesmo pensando em compatibilidade com conectividade WEB.
Para começar, podemos criar um novo projeto da mesma forma como feito acima.
Essa tela vem, por padrão, com resolução fixa e deve ser adaptada para se ajustar automaticamente ao
tamanho do Browser. Como sabemos o TwinCAT HMI irá rodar em um browser e podemos fazer com
que o tamanho do mesmo siga o tamanho do Browser, para tal podemos ajustar a largura da tela
Desktop.view para percentual, dessa forma a mesma terá sempre um tamanho relativo ao tamanho do
Browser no qual a mesma irá abrir.
66
TwinCAT HMI
67
TwinCAT HMI
Após isso devemos adicionar a quantidade de colunas necessárias para a nossa aplicação, nesse
exemplo iremos adicionar duas colunas e duas linhas.
Configuração
para que o Grid
tenha duas
colunas. Basta
adicionar mais
uma coluna em
“ColummOptions”.
O próximo passo é fazer o mesmo para as linhas em “RowOptions” adicionar mais uma linha.
Isso irá criar um Grid Control com células quatro células (0,0)(0,1)(1,0)(1,1), nas quais podemos
adicionar elementos que irão acompanhar a movimentação das células, por exemplo, adicionando um
textblock em cada uma das células. Ao fazer isso, podemos também fixar a posição dos elementos
dentro da célula (quer usando pixels ou percentual). Podemos então selecionar “Content” no parâmetro
“heightMode” isso fará com que as células ajustem sua altura automaticamente ao conteúdo que está
inserido nelas.
Também podemos repetir o mesmo ajuste (selecionar “Content” em “HeightMode”) para a tela
Desktop.view.
68
TwinCAT HMI
Devemos inserir 4 células utilizando o menu “CellOptions”, podemos inserir cores diferentes para cada
uma das células e determinar qual índice de coluna e de linha cada célula terá.
69
TwinCAT HMI
Podemos notar que, ao selecionar a opção para que o grid se ajuste ao conteúdo do mesmo os
TextBlocks adicionados são posicionados na parte inferior do mesmo, ao movimentar o textblock o
tamanho da célula será redimensionado automaticamente, para fixar uma altura mínima nas linhas
podemos acessar a janela de configuração do “Row Options”.
Apos isso devemos alterar o parâmetro “Minimum Height” do “Desktop.view” para 100%.
Uma vez finalizados os preparativos acima podemos iniciar o Live-View e redimensioná-lo, verifique que
o redimensionamento do mesmo irá fazer com que a as células do Grid sejam reposicionadas
acomodando os componentes de acordo com o tamanho do client.
Esse tipo de configuração é ideal para mostrar em aparelhos móveis pois, ao manter o aparelho de pé
vemos os elementos mostrados como uma “linha” e ao colocá-lo deitado o TwinCAT HMI irá se auto-
ajustar ao formato do browser.
70
TwinCAT HMI
SCRIPTS
O TwinCAT HMI oferece a possibilidade de realizar vários tipos de Script, desde scripts realizados na
sua linguagem gráfica, passando por outros feitos em JavaScript ou Server Extensions em C#. Aqui
discutiremos as funções básicas em JavaScript, é claro, sem focar na linguagem propriamente dita, mas
em como criar scripts a partir do TwinCAT HMI.
É claro que as funções feitas (seja em JavaScript ou outras linguagens) podem receber e retornar
valores, que podem ser usados como for necessário dentro do TwinCAT HMI.
Nome da função a
ser adicionada.
Para editar a função primeiro devemos definir quais parâmetros ela irá receber ou retornar.
71
TwinCAT HMI
Na figura acima, temos uma representação da janela de edição dos parâmetros de interface da função,
na qual podemos adicionar parâmetros a serem passados para a mesma.
Exemplos do uso de funções no TwinCAT HMI são: conversão de unidades, colocação de unidades em
campos de texto, etc…
A seguir temos o exemplo de uma função em JavaScript para adicionar a unidade a campos de texto
que irão mostrar valores numéricos, seguidos sua respectiva unidade (ºC, Volts, kgf/cm²), um função
parecida com aquilo que pode ser feito com a função FormatString.
72
TwinCAT HMI
Editar as
variáveis de
interface,
adicionando
duas variáveis
para serem
passadas toda
vez que a função
for chamada.
Nesse exemplo chamarei as variáveis de “valor” do tipo “Number” e “unidade” do tipo ”String”.
Isso irá fazer com que a definição da função seja alterada, de acordo com figura abaixo:
O próximo passo é realizar a programação da função de maneira a fazer a concatenação do valor com
a unidade.
73
TwinCAT HMI
Adicionar um simples Textbox e colocar a função na propriedade “Text”. Colocar a variável que se deseja
mostrar e, em seguida, colocar a unidade que se deseja mostrar, o resultado é mostrado acima.
TEMAS
O TwinCAT HMI oferece a possibilidade de construir o próprio tema, sendo possível trocar os temas até
mesmo durante a execução da aplicação.
A seguir temos um breve tutorial de como criar um tema próprio, e defini-lo como tema principal, bem
como trocá-lo em tempo real.
O tema padrão que será utilizado para todos os componentes adicionados à visualização é mostrado
nas propriedades do projeto, conforme na figura abaixo.
74
TwinCAT HMI
75
TwinCAT HMI
É importante ressaltar que o tema criado pode ser trocado com o HMI rodando.
Para tal podemos adicionar um botão para setar o tema ativo para o tema desejado.
É possível alterar o
tema ativo com o
evento “SetTheme”,
que pode ser
adicionado a um
evento de qualquer
botão, conforme visto
anteriormente.
Caso não seja necessário alterar o tema enquanto o TwinCAT HMI está rodando, basta alterar o tema
padrão nas propriedades do projeto como visto anteriormente.
76
TwinCAT HMI
PUBLICANDO A APLICAÇÃO
Uma vez que a aplicação esteja validada, ou até mesmo para testar algumas funcionalidades (como
controle de usuários) é necessário publicar diretamente a aplicação do TwinCAT HMI e iniciá-la através
de um browser. Para testar a aplicação (exceto a parte de usuários) podemos utilizar o Live-View, que
oferece uma visão fiel de como será a aparência final das telas desenvolvidas.
Para iniciar a aplicação devemos, inicialmente, iniciar o servidor do TwinCAT HMI, o que pode ser feito
através de um atalho no menu iniciar do PC onde o mesmo foi instalado, ou executando o arquivo
“C:\TwinCAT\Functions\TF2000-HMI-Server\ TcHmiSrv.exe”
77
TwinCAT HMI
Isso irá iniciar o TwinCAT HMI Server no PC desejado (que pode ou não ser o mesmo PC onde se está
rodando a engenharia).
É imprescindível para esse passo que haja uma licença ativa do TwinCAT HMI (mesmo que uma licença
trial de 7 dias).
Verificando as
licenças ativas, basta
clicar no ícone do
TwinCAT e verificar a
opção “About
TwinCAT”. Deverá ter
o item “TF2000” no
mínimo para que se
possa rodar o
TwinCAT HMI. Sem
uma licença ativa o
TwinCAT HMI irá
retornar um erro
quando se tentar
iniciar o servidor.
Caso não haja uma,
você deve colocar
uma licença no
TwinCAT e gerar uma
de 7 dias, ou ativar a
licença final.
78
TwinCAT HMI
Para tal devemos criar um usuário (ou utilizar o administrador do sistema que vem como padrão em
todas configuração do TwinCAT HMI).
Caso for utilizar o usuário padrão do sistema, é recomendado trocar a senha do mesmo.
Na árvore do projeto
selecionar Extensions,
clicar em
TcHmiUserManagement,
definir e confirmar a nova
senha e clicar em “Change
password”.
79
TwinCAT HMI
Após a criação do perfil para publicar o trabalho devemos selecionar qual TwinCAT HMI Server iremos
selecionar para a publicação. Os passos ao lado descrevem como fazer isso. Após selecionar para
publicar de maneira segura (usando o SSL/TLS) devemos importar o certificado do Server.
E publicar.
80
TwinCAT HMI
Ao final da publicação provavelmente o navegador padrão irá abrir com a tela de login, na qual é possível
definir o usuário e digitar a senha. A aplicação irá começar automaticamente.
Ou simplesmente ir até a barra de endereço do navegador e digitar o IP seguido da porta, que pode ser
“1010” (HTTP) ou “1020” (HTTPS).
81
TwinCAT HMI
https://support.microsoft.com/pt-br/help/4028544/windows-10-
turn-windows-defender-firewall-on-or-off
RECEITAS (DEFINIÇÃO)
82
TwinCAT HMI
Para um melhor gerenciamento das receitas é importante entender os conceitos de “Tipo de receita” e
“Receita” propriamente ditos.
De maneira simplificada podemos definir o “tipo de receita” como sendo a especificação dos parâmetros
que serão salvos, já a receita é um elemento derivado do tipo definido, por exemplo, digamos que para
realizar a produção de um determinado produto sejam necessários 3 parâmetros, sendo eles:
velocidade, temperatura e pressão. Assim sendo, o tipo fica sendo esse (a velocidade, a temperatura e
a pressão). As receitas, por sua vez, serão derivadas desse tipo.
Receita 1 (Tipo 1)
Velocidade = 100
Temperatura = 150
Pressão = 80
Receita 2 (Tipo 1)
Velocidade = 50
Temperatura = 70
Pressão = 50
É óbvio que se criarmos um outro tipo de receita, com variáveis diferentes (por exemplo PH e tempo), e
criarmos receitas baseadas nesse tipo, ao ativarmos essas receitas (chamar a receita) não haverá
alteração alguma nas variáveis que estão associadas a receitas de outro tipo.
A edição dos tipos de receita e criação de receitas pode ser feita através da ferramenta de engenharia
do TwinCAT HMI, integrada ao visual Studio
83
TwinCAT HMI
84
TwinCAT HMI
Ao final desse procedimento o tipo estará criado e poderá ser editado, para tal devemos dar um duplo
clique sobre o mesmo, o que irá abrir a seguinte janela.
Para adicionar os símbolos à receita os mesmos deverão estar previamente mapeados (ver sessão
sobre como mapear os símbolos).
Uma vez mapeados, será possível arrastar e soltar os símbolos da pasta “Mapped Simbols” para a
definiação de receita, conforme figura abaixo.
85
TwinCAT HMI
Além de símbolos mapeados do PLC também é possível utilizar símbolos internos do projeto de IHM
nas receitas, para configurá-los basta arrastar e soltar da mesma forma.
Após a criação do tipo e a determinação das variavies que fazem parte deste, podemos criar algumas
receitas derivadas desse tipo ainda no ambiente de engenharia.
Para tal devemos abrir novamente a janela de configuração das receitas do TwinCAT HMI.
Isso irá abrir a janela de configuração das receitas na engenharia do TwinCAT HMI, conforme mostrado
abaixo.
As receitas aqui editadas são armazenadas em formato “JSON” e os valores inseridos, tanto do tipo de
receita quanto das receitas propriamente ditas, podem ser verificados nas extensões de servidor.
86
TwinCAT HMI
Todas as
informações, seja
de definição do
tipo da receita
quanto dos
membros desta
são salvos em
forma JSON e
podem ser
encontrados na
figura ao lado.
RECEITAS (MANIPULAÇÃO)
Agora devemos salvar, carregar, excluir e criar novas receitas. Para isso faremos uso de algumas
funções prontas do TwinCAT, bem como algumas funções desenvolvidas em JavaScript que iremos
importar.
A primeira tarefa que iremos executar ao manipular receitas é de listar as receitas existentes, para tal
iremos importar uma serié de funções feitas em JavaScript (que podem ser fornecidas junto com o
manual, ou baixadas no exemplo).
87
TwinCAT HMI
Dentre as funções importadas está a “ListRecipesAsReferenceArray”, que podemos utilizar para inserir
as receitas existentes em um combobox.
Ao adicionar o combobox podemos editar a sua propriedade “SrcData”, que determina as informações
que serão mostradas nele.
ListRecipesAsReferenceArray(%s%TcHmiRecipeManagement.Config::recipeList%/s%)
Que irá fazer com que as receitas salvas sejam mostradas no Combobox selecionado.
Para tal temos a função “TeachAsNewRecipe”, que pode ser utilizada para este fim.
Esta função pode ser utilizada em um botão qualquer, basta adicionar um botão comum e realizar o
duplo clique sobre o mesmo, o que irá abrir a edição do evento “.OnPressed”.
88
TwinCAT HMI
A partir deste momento basta arrastar a função “TeachAsNewRecipe”, que demandará 2 parâmetros,
sendo um deles uma receita do mesmo tipo que a receita a ser criada e o segundo deverá ser o nome
da nova receita.
Para determinar o nome de uma receita do mesmo tipo da que será criada podemos usar o valor
selecionado no combobox utilizado no item anterior em “recipeReference”, já em “newRecipeName”
devemos utilizar uma variável contendo o nome da nova receita a ser criada.
Para ler os dados da receita em arquivo e transferir esses valores para as variáveis do PLC utilizamos
a função de ativar a receita.
É essencial a primeira parte que consiste em mostrar as receitas existentes. No mais o comando de
ativação de receita é bem simples.
Ao dar um duplo clique sobre o botão podemos adicionar a função para ativar a receita.
89
TwinCAT HMI
Tanto para excluir quanto para atualizar as receitas os passos são os mesmos que para ativar a
receita, mudando apenas o comando usado.
90
TwinCAT HMI
IFRAME
Elemento bastatante versátil que pode funcionar como um “Mini browser” dentro de qualquer página do
TwinCAT HMI, sendo útil para mostrar páginas web, estejam estas no mesmo PC ou na web
propriamente dita, também pode ser utilizado para mostrar documentos em PDF.
Para poder utilizar um arquivo em pdf no projeto devemos adicioná-lo a uma das pastas.
Adicionar um item
existente.
Ao selecionar o
arquivo é possível
verificar o
caminho do
mesmo.
91
TwinCAT HMI
7. VERSÃO
92
TwinCAT HMI
8. SUPORTE TÉCNICO
93