You are on page 1of 201

TR3030 – TwinCAT 3 Basic Programming

TR3050 TwinCAT 3 Basic Programming


TR3050 – TwinCAT 3 Basics

Conteúdo do Treinamento
 TwinCAT3 XAE Concepção

 TwinCAT3 Basic Programming

 TwinCAT3 Measurement Scope

 TwinCAT3 PLC HMI


TwinCAT 3 Overview e Concepção
The Windows Control and Automation Technology, versão 3
TwinCAT 3 – Concepção

 eXtended Automation (XAA) overview


 Engineering (XAE)
 Runtime (XAR)
eXtended Automation (XA) – Arquitetura (XA)

Modular runtime system

TcCOM

TcCOM

TcCOM
PLC Safety NC

TcCOM

TcCOM
C++ …
eXtended Module
eXtended
Architecture (XA) Automation
Runtime (XAR)

TwinCAT 3
eXtended
Automation (XA)

eXtended
Automation
Engineering (XAE) TwinCAT 3 Ambiente de
desenvolvimento baseado no Visual
Studio @2010

TwinCAT 3
TwinCAT 3
Standard
Integrated
Tc3XaeShell
eXtended Automation (XA) – Engenharia x Runtime

XA eXtended Automation

XAE eXtended Automation Engineering XAR eXtended Automation Runtime

ADS (TCP/IP)
Automation
Device
Specification

TwinCAT 3 Engineering Environment


TcCOM

TcCOM
TcCOM

TcCOM

TcCOM
TcCOM
PLC Safety
PLC ® 201x
PL on Visual Studio
based NC
PL PLC
PL Safety
PLC NC
PL
C C C C
TwinCAT 3 TwinCAT 3
TcCOM

TcCOM

TcCOM

TcCOM
C++
PLC Studio® CNC
PLC C++
PLC CNC
PLC
Visual Visual Studio®
Module Module
201x Shell 201x
eXtended Automation (XA) - local

PC-System

Windows 32/64 Bit

TwinCAT 3 Engineering Environment based on Visual Studio®

System Manager Programming


- Configuration - IEC 61131-3
- object-oriented extensions
Application XAE
- C/C++ eXtended
Automation
TwinCAT Transport Layer - ADS Engineering
TwinCAT 3 Runtime

Real-time core
TcCOM

TcCOM

TcCOM

TcCOM
PLC
PLC Safety
PLC NC
PLC CPLC
Module

Kernel XAR
TcCOM

TcCOM

TcCOM

TcCOM
CNC
PLC Simulink®
PLC C++
PLC PLC
PLC
Module Module
eXtended
Automation
TwinCAT Automation Device Driver - ADD Runtime

Fieldbus
TC3 – Visual Studio

Pode ser integrado no Visual Studio, versões:

• Microsoft Visual Studio 2010


• Microsoft Visual Studio 2012
• Microsoft Visual Studio 2013
• Microsoft Visual Studio 2015 Team Foundation
• Microsoft Visual Studio 2017
• Microsoft Visual Studio 2019

Para utilizar programação em C/C++ é necessário a versão Professional


Diferenças entre as versões: Standard | Integrado

TwinCAT 3 Standard TwinCAT 3 Integrated


 Integração dentro do ambiente Microsoft Visual
 Baseado no Microsoft Visual Studio® 2010/12/13/15/17
Studio® Shell 2013  TwinCAT System Manager Integrado
 Integrado com IEC-61131-3 3rd edition (OOP)
 TwinCAT System Manager
 Integrado com Safety PLC
Integrado
 Integrado com Motion Control
 Integrado com IEC-61131-3 3rd  Programação C/C++
edition (OOP)  Matlab®/Simulink®
 Programação C# and .NET p/ aplicação que não
 Integrado com Safety PLC necessitem de „tempo real“
 Opcional: Implementação de ferramentas de
 Integrado com Motion Control softwares de terceiros
 Ambiente e ferramentas Microsoft Visual Studio
(F#, ASP Net, MVC, etc)
Arquitetura (XAE)
eXtended Automation – Engineering (XAR)

TC3 com Múltiplos “núcleos”


Multi-core CPU

Windows OS No Windows OS – 100 % for TwinCAT!

Core 0 Core 1 Core 2 Core 3 Core ...

Engineering User HMI PLC Runtime 0 PLC Runtime 1 NC Runtime 1


Windows
Tools
Apps
Task 0 Task 1

Windows ADS ADS ADS ADS ADS


Drivers

ADS Router Engine

L2 Shared Cache

ADS Router Message Queues

System Memory
Escolha da linguaguem conforme sua necessidade

IEC 61131 e programação em C++ em um único ambiente


TwinCAT System Manager

System configuration

Motion control configuration

PLC configuration
Safety PLC configuration

C++ module configuration

I/O configuration
C#/.NET programming

Aplicação Não-real-time
Ex.: HMI

Real-time code

PLC module

C++ module
Produtos e soluções para Indústria 4.0 e IoT
Cenário de Cloud que suportamos

Microsoft Azure TM Amazon AWS TM SAP HANA © Beckhoff


Cloud Platform
Storage Analytics Storage Analytics Storage Analytics Storage Analytics

Message Broker Message Broker Message Broker Sevices/Functions

MQTT TwinCAT IoT TwinCAT IoT


AMQP Data Agent Data Agent
OPC UA ADS OPC UA

TwinCAT 3 TwinCAT 2 Third Party TwinCAT Analytics


Controller Controller Controller
End Machine Auto-
User Builder mation
Third Party
New Machine Existing Machine Machine I/O Signals Working Station
Iniciando TwinCAT3 ou Microsoft Visual Studio (2013/15/17)

TwinCAT3 Standard
Não Integrado

TwinCAT3 Integrado no
Microsoft Visual Studio
2013

TwinCAT3 Integrado no Microsoft


Visual Studio
2015

TwinCAT 3 icone

1
Iniciando TwinCAT3 ou Microsoft Visual Studio (2013/15/17)

TwinCAT 3 Standard - TcXaeShell Visual Studio 2015 Community


Diferença entre o ambiente TwinCAT3 Standard x Integrado

TwinCAT3 Standard TwinCAT3 Integrado com MS Visual Studio 2015

Extensão de Projetos do
MS Visual Studio 2015

Extensão de Projetos
TwinCAT3

Extensão de Projetos
TwinCAT3
Criando novo projeto – XAE Project

Selecionar
TwinCAT Projects

Local onde será


criado a
Solution/Projeto
C:\_TREINAMENTO\TREINAMENTO

Nome do Projeto
Solution name

Cria diretório com nome da 1


Nome da Solution Solution informado em
“Solution name”
Ambiente – XAE Project

Menu
bar Tool bar

Properties
window
Solution
Explorer

Toolbox
window
Information
and status bar Runtime
Message window
mode
Ambiente Multi janelas – XAE Project
Adicionando um novo projeto de PLC

Um ou diversos projetos de PLC podem ser


criados.

1
2

3
Adicionando um novo projeto de PLC

Standard PLC Project: Cria um projeto de PLC com


toda estrutura: interfaces, referências, DUT, GVL,
POUS, VISUs, etc.
Empty PLC Project: Cria apenas um projeto de PLC
vazio

Name: Nome para o projeto de PLC. Digite aqui um


nome mais específico e característico para o
controle, ou nome de CPU. Alguns exemplos:
• CX5120
• CPU
• Maquina_X
• Corte_laser
• PLC_1
• Formulacao_ProdutoX
Não é recomendado alterar o caminho (Location)
onde será criado o projeto de PLC ! • Dosadora_Controle
Estrutura de um projeto de PLC
External Types:
Estruturas externa e Interfaces
References:
Bibliotecas
DUTs:
User-defined data types
Tipo de dados definidos pelo Usuário
GVLs:
Global Variable Lists
Listas de variáveis Globais
POUs:
Program Organization Units
Unidades para Organização de Programas
VISUs:
Visualisations - TwinCAT PLC HMI
PlcTask é
automaticamente
criada

Programa MAIN já configurado


automaticamente para execução através da task
PlcTask
TwinCAT3 – Programação e Configuração
TwinCAT System – Linguagens

IEC 61131-3 (CodeSys)


Linguagens Textuais
ST – Structured Text (Texto Estruturado)

IL – Instruction List (Lista de Instruções)


Linguagens Gráficas

LD – Ladder

FBD – Function Block Diagram (Diagramas de Blocos de Função)

SFC – Sequential Flow Chart (Logica de passos “GrafSet” )

CFC – Continuous Flow Chart (Blocos de Função Continuo)


Linguagem LD

[LD] - Ladder (Diagrama de Contatos)

• Linguagem bastante difundida

• Ideal para lógicas possuem muitos


intertravamentos, controles gerais

• Comumente utilizada para


programação de pequenas, médias e
grandes aplicações.

• Malhas de controles (controle de


processos)

• Controles discretos

• Controle de Motion
Linguagem FBD
[FBD] - Function Block Diagram
(Diagrama Blocos de Função)

• Linguagem bastante difundida

• Comumente utilizada para


programação de pequenas e médias
aplicações

• Malhas de controles (controle de


processos)

• Controles discretos

• Controle de processos

• Bastante utilizada para Controle de


Motion
Linguagem ST
[ST] - Structure Text
(Texto Estruturado)

• Linguagem bastante difundida

• Comumente utilizada para programação


de pequenas, médias e grandes
aplicações

• Malhas de controles (controle de


processos)

• Controles discretos

• Controle de Motion

• Possibilita solução de problemas mais


complexos, algoritmos de controle

• Muito utilizada para programações


avançadas com uso de matrizes, laços de
repetição e condicionais
Linguagem SFC
[SFC] - Sequence Flow Chart
(Seqüência de fluxo) - Grafcet

• Linguagem pouco difundida

• Comumente utilizada para programação


de pequenas, médias e grandes
aplicações, pois em cada passo (Step)
pode agrupar bastante funcionalidades

• Muito indicada para controles discretos e


sequenciais

• Controle de Motion (pouco utilizada)

• Oferece uma metodologia de


programação estruturada “Top Down”,
agrupando funcionalidades e controles
bem distintos e claros

• Claridade, legibilidade e apresentação


sintética
Linguagem CFC
[CFC] - Continuous Flow Chart
(Diagramas de Função Contínuo)

• Linguagem bastante (FBD) difundida

• Semelhante ao FBD, porém permite


maior flexibilidade na programação

• Comumente utilizada para programação


de pequenas, médias e grandes
aplicações

• Muito indicada e para controles de


processos e malhas de controle

• Controle de Motion

• Números de identificação dos blocos


indicam o fluxo de execução da lógica

• Não faz parte a IEC


MAIN “Task” | Tarefa de Controle e Chamada de Programas
TC3 permite a configuração de chamadas de
programas, à partir de uma ou mais tarefas (tasks):

Programa_A

MAIN
Programa_B “Task” Programa_C

10ms
Execução cíclica

Programa...N
Tarefa (PLC Task) Comportamento

SCAN

T#10ms – refere-se ao tempo base para


que o sistema (runtime) faça interrupções na
CPU. A cada 10ms o sistema interrompe
a CPU para executar a tarefa (PlcTask) - Execução
MAIN Leitura Tarefa Atualização
Entradas saídas

Windows NOTA:
Task (Intervalo de Interrupção) Task (Intervalo de Interrupção) O tempo de SCAN pode variar em
função do tipo de processador,
tamanho do programa, tamanho do
SCAN SCAN I/O, comunicações envolvidas...

MAIN MAIN
Windows Windows MAIN …
ProgA ProgB ProgC ProgA ProgB ProgC

0 24.42us 10 24.43us 20 t
Criando Programas

Nome do
Programa

1 3
2

5
Linguagens
Laboratório 1 – Subprogramas / Tarefa de controle

Criar 3 programas:
 ProgramaA - LD
 Conter uma lógica AND E OR

 ProgramaB - ST
 Conter uma lógica AND E OR

 ProgramaC - CFC
 Conter uma lógica AND E OR

Configurar a chamada dos programas dentro do


programa (task) principal “MAIN”
Rodar e testar no Runtime “remoto” (DEMOKIT)
Operadores | Overview
Operadores Operadores Operadores Operadores
Descrição Descrição Descrição Descrição
Numéricos Aritméticos Comparação binários
ABS Valor Absoluto de um número ADD Soma EQ Igual AND Comparação binária AND
ACOS Arc Coseno (Coseno inverso) SUB Subtração GE Maior do que OR Comparação binária OR
ASIN Arc Seno (Seno inverso) MUL Multiplicação GT Maior ou igual NOT Inversão binária
ATAN Arc Tangente (Tangente inversa) DIV Divisão LE Menor ou igual XOR Comparação binária XOR
Operadores
COS Coseno de um número MOVE Atribuição LT Menor do que Descrição
Binários
Número de byte de Verifica o limite entre dois
EXP Função exponencial SIZEOF NE Diferente LIMIT
uma variável valores
Retorna o endereço Operadores de Retorna o maior valor
EXPT Exponencial (base, expoente) ADR Descrição MAX
de um argumento Endereços entre dois valores
Retorna o
Operadores endereço de Retorna o menor valor
LN Logaritmo natural Descrição ADR MIN
Binários memória de uma entre dois valores
variável
Cria um Ponteiro
Deslocamento bit a bit
LOG Lagaritmo base 10 SHL POINTER_TO para endereço MUX Multiplexador
para esquerda
de memória
Retorna um bit
Deslocamento bit a bit offset de um
SIN Seno de um número SHR BITADR SEL Seleção bit a bit
para direita segmento em
uma DWORD
Rotação bit a bit para
SQRT Raíz quadrada de um número ROL
esquerda
Rotação bit a bit para
TAN Tangente de um número ROR
direita
Operadores - Help
O help para os operadores estão no caminho:

Welcome to the Beckhoff Information System


TwinCAT3
TE1000 XAE
PLC
Reference Programming
Operators
Inserindo um Operador (LD)
Clique operador desejado e arraste até “Start
here” e solte

1
Inserindo um Operador (LD)

1 Operador inserido
3

Pressione a tecla F2
Ao pressionar a tecla F2, é aberto o Input Assistant.
Clique em Keywords para selecionar o operador desejado

2
Inserindo um Operador (ST)

Pressione a
tecla F2 Na área de programação, pressione a tecla F2 para abrir
3 o Input Assistant.
Clique em Keywords e selecione o operador desejado.
Operadores - Help

Ao Selecionar o
operando e pressionar
tecla “F1” HELP, o
Information System é
chamado, trazendo
informações sobre a
instrução desejada
Beckhoff Information System

Ou ...... Http://infosys.beckhoff.com
Recursos Infomation System
Tipo de dados elementares: Bit / bit string

Tipo de Dado Limite Mínimo Limite Máximo Tamanho Prefixo

BOOL FALSE TRUE 1 Bit b

BYTE 0 255 8 Bit by

WORD 0 65,535 16 Bit w

DWORD 0 4,294,967,295 32 Bit w

LWORD 0 264-1 64 Bit w


Tipo de dados elementares: Numerical

Tipo de Dado Limite Mínimo Limite Máximo Tamanho Prefixo

SINT -128 127 8 Bit n

USINT 0 255 8 Bit n

INT -32,768 32,767 16 Bit i

UINT 0 65,535 16 Bit n

DINT -2,147,483,648 2,147,483,647 32 Bit n

UDINT 0 4,294,967,295 32 Bit n

LINT -263 263-1 64 Bit n

ULINT 0 264-1 64 Bit n


Tipo de dados elementares: Floating-point

Data type Lower limit Upper limit Size Prefix

REAL ~-3.402823*1038 ~3.402823*1038 4 Byte f ou r

LREAL ~-1.7976931…*10308 ~1.7976931…*10308 8 Byte f


Tipo de dados elementares: Date / Time

Tipo de Dado Limite Mínimo Limite Máximo Tamanho Prefixo

TIME_OF_DAY TOD#0:0:0 TOD#23:59:59.999 32 Bit tod

DATE D#1970-01-01 D#2106-02-07 32 Bit d

DATE_AND_TIME DT#1970-01-01-00:00:00 DT#2106-02-07-06:28:15 32 Bit dt

TIME T#0ms T#49d17h2m47s295ms 32 Bit t

LTIME#213503d23h34m
LTIME LTIME#0ns 64 Bit t
33s709ms551us615ns
Tipo de dados elementares: STRING character strings
Tipo Descrição Exemplo Tamanho Prefixo

STRING String em ASCII code. ‘1234ABCDE’ Standard: s


Padrão tamanho 80 caracteres. 80+1
Max. tamanhho 255 caracteres. Maximum:
255+1
1 byte para cada caracter e 1 byte
para terminação zero

‘ABCDE$R$L’

‘ABCDE$0D$0A’

Exemplo de declaração Atribuição Resultado com SIZEOF Resultado com LEN

sVAR :STRING; sVAR := ‘ABC’; 81 3

sVAR :STRING(1); sVAR := ‘X’; 2 1

sVAR :STRING(255); sVAR := ‘ABC’; 256 3


Tipo de dados elementares: WSTRING caracteres strings
Tipo Descrição Exemplo Tamanho Prefixo

WSTRING Alfabetos não baseados em "привет мир" Padrão: ws


latim também são suportados. "こんにちは世界" 80*2+2 = 162
Comprimento padrão de 80 "Hello World" Máximo: 255*2+2 = 512
caracteres.
Max. comprimento 255
caracteres.
2 bytes para cada caractere e 2
bytes para a terminação zero.

Exemplo de declaração Atribuição Resultado com SIZEOF Resultado com WLEN

wsVAR :WSTRING; wsVAR := "ABC"; 162 3

wsVAR :WSTRING(1); wsVAR := "X"; 4 1

wsVAR :WSTRING(255); wsVAR := "ABC"; 512 3


Tipo de dados elementares : Exemplos Literais

Tipo de dado Exemplos

BOOL TRUE 2#1 16#1 1


FALSE 2#0 16#0 0

WORD, DWORD 2#1010111111111110 16#AFFE 45054

INT 2#1000000000000001 16#8001 -32768

TIME d t#1h t#60m t#3600000ms


h day t#0.5d t#12h t#43200000ms
m hours
s min t#30m18s90ms t#0.505025h t#1818090ms
ms sec
ms

REAL 0.3333 3.333e-1


Declaração de Variáveis – Identificadores

 Para declaração de variáveis é necessário um identificador, esses identificadores devem


seguir as seguintes regras:
 O Identificador deve iniciar com letras ou underscore (_)
 O TwinCAT3 não é “case sensitive”

 Não é permitido
 Caracteres especiais (!,@,$,%...)
 Espaços
 Underscore consecutivos
 Tremas ( ¨ )
 Não é aceito início com números
Declaração de Variáveis – Keywords

 Keywords ou Palavras-Chave são identificadores especificados internamente para


programação IEC61131-3. Não podem ser utilizados para outros propósitos.

 Exemplos:
 Operadores padrão: AND, OR, NOT, ADD, MUL...
 Tipos de variáveis: BOOL, INT, REAL, STRING...
 Tipos de Dados: TYPE, STRUCT...
 Tipos de Blocos: FUNCTION, FUNCTION_BLOCK, PROGRAM
Tipos de Variáveis

 Variável Interna (à ser utilizada Internamente na Lógica)


 Nome:Tipo; ( Ex.: bBotao1:BOOL; )
b ou x Boolean bMaquinaPronta, xMaquinaPronta
f ou r Real fSetPoint, rSetPoint
i Integer iTemperaturaMaquina
w word wAlarmes
s String sNomeProduto
ST_ Struct Declaração ST_MOTOR (Declaração)
st Struct Instância stMotor1 (Instância)
FB_ Function Block Declaração FB_MOTOR (Declaração)
fb Function Block Instância fbMotor1 (Instância)

 Variável de Conexão (Variável “Física” – I/O)


 Nome AT%I*:Tipo; (Ex.: bBotao1 AT%I*:BOOL; )
 Nome AT%Q*:Tipo; (Ex.: bSaida1 AT%Q*:BOOL; ) As variáveis de conexão podem ser do tipo
 Outros Exemplos: globais e/ou locais.
 iAnalogIn AT%I*:INT;
 iAnalogOut AT%Q*:INT;
Auto declaração – Assistente para declaração de variáveis

Escopo para
Valor de
declaração da Identicador Tipo de dado
inicialização
variável

Marcadores para Comentário para Para endereçamento fixo ou


constantes variável variáveis físicas de E/S, usar:
e dados %I*  Entradas
remanescentes %Q*  Saídas
Laboratório – Tipos de Variáveis

 Utilização de Operadores
 Comparação
 GT, GE, LT, LE, EQ, NE
 Aritméticos
 ADD, SUB, MUL, DIV
Calcular o DELTA = B²-4AC

 Declarar uma variável


 wVar1 : WORD;
 wVar2 : WORD;
 Utilizar os operadores lógicos bit a bit
 AND
Laboratório – Utilização de variáveis mista

2.1 – Dentro do subprograma ProgramaA (LD), declarar variáveis locais:

 bFalhaGeral : BOOL;
 byCodErro : BYTE;
 wAlarmes : WORD;
 rSetPoint : REAL :=50;
 iRefVelocidade : INT :=100;
 sStatusMaquina : STRING;
 Trig1 : R_TRIG; (pulso por 1scan)

2.2 - Criar lógica utilizando essas variáveis, conforme orientação do instrutor


PLC Project – Keywords e Comentários

 Os comentários são delimitados por sequências de caracteres:


 (* Comentário *)

(*Sinal Digital de Entrada*)


bStart AT %I*: BOOL; (*Start Máquina*)
(*Sinal Analógico de Entrada*)
iTemperature AT %I*: INT; (*Temperatura Máquina – PT100*)

 Comentários no final da linha

 bStart AT %I*: BOOL; // Start Máquina


Data Types - Array
 Array ou vetor é um conjunto ou coleção de variáveis do mesmo tipo, separados por posição
 Cada informação (dado/valor) no array é chamado de elemento do array
 Os “arrays” podem ser declarados à partir de qualquer tipo padrão :
BOOL, BYTE, WORD, INT, REAL, STRING...
Ex.: Declarando um array de variáveis do tipo BOOL com 5 posições:
Programa online

[Posição]

[0] [1] [2] [3] [4]


bArray TRUE FALSE FALSE TRUE FALSE

Elemento
(valor)
Data Types - Array

Outros exemplos

Programa Online
Data Types – Array (dimensões)
Tridimensional

Unidimensional

Bidimensional
Laboratório - Arrays

1. Criar variáveis Array de 3 posições [0..2] do tipo: BOOL, WORD, REAL, STRING
bArray: ARRAY[0..2] of BOOL;
1.1 Escrever valores em cada uma das posições dos Arrays

2. Declarar um Array do tipo INT, contendo 4 posições [0...3]:

1. Para as posições [0],[1], atribuir os valores: 10,20

2. Para as posições [2],[3], atribuir os valores [0]+100, [1]+200


Data User Types (DUT) – Estruturas (Structs)

Struct/Estrutura é um conjunto ou coleção de dados/membros que contém diversas outras


variáveis. A estrutura é criada à partir de variáveis padrão. Exemplo:

Zonas de Aquecimento

8 7 6 5 4 3 2 1

TemperaturaAtual Variáveis
ValorEfetivo necessárias
SpAlarmeMax para controle
bAlarmeMax de Alarme das
SpAlarmeMin zonas de
bAlarmeMin aquecimento
Data User Types (DUT) – Estruturas (Structs)

1 Nome da Estrutura

Variáveis/membros
que compõem a
estrutura

3
Data User Type (DUT) – Estruturas (Structs)

Declaração/Instância da Estrutura

Uma vez declarada a instância da estrutura, os elementos


dessa estrutura são acessadas pelo <Nome>ponto(.) .Ex.:
Zona1.<membroDeclarado>
Dessa forma o intelisense abrirá uma lista contendo os
mebros declaradas p/ utilização, junto com comentário

Exemplo de lógica com uso de estrutura Programa Online


Laboratório
1. Criar uma Estrutura de Dados para automação de uma sala, chamada: “ST_ROOM_CONTROL”

2. “Declarar” uma variável estrutura em “GVL”: Room1:ST_ROOM_CONTROL;

3. Criar lógica usando a estrutura “Room1”:


(BOOL)
 Se houver alguma pessoa na sala (Occupancy Sensor):
 Ligar iIuminação (Ligthing) e Aquecimento (Heating) (REAL) / SetPoint (REAL)

(BOOL)
 Se a qualidade do ar CO2 (Air Quality) estiver acima do
SetPoint: (INT)
 Ligar sistema de ventilação (Ventilation)

GVL
VAR GLOBAL
Room1 : ST_ROOM_CONTROL (BOOL)
END_VAR
-------------------------------------------------------------------
IF GVL.Room1.OccupancySensor then
GVL.Room1.Lighting:=TRUE; (BOOL)
Else
GVL.Room1.Lighting:=FALSE; (BOOL)

END_IF
Data User Types (DUT) – Estruturas (Structs) encadeadas

Uma estrutura pode ser encadeada de outra estrutura, tornando o programa mais
estruturado, organizado e intuitivo.
INJETORA

ZONA DE AQUECIMENTO

8 7 6 5 4 3 2 1
bAvanca :BOOL; bAvanca :BOOL;
bRecua :BOOL; bRecua :BOOL;
rPressao :REAL;

TemperaturaAtual
ValorEfetivo
Primario Secundario SpAlarmeMax
bAlarmeMax
SpAlarmeMin
bAlarmeMin

MOLDE CANHÃO
Data User Type (DUT) – Arrays e Estruturas

Estruturas prontas
p/ cada Zona de
controle

Dica: Uso de arrays e estruturas facilitam o


entendimento, abstração, organização e
reutilização do código em uma programação
estruturada

Programa Online
Laboratório – Arrays e estruturas
1. Criar um Array de Estrutura stRoomControl, contendo 3 posições, para controle de 3 salas
1. Room : array[1..3] of stRoomControl;

2. Criar lógica para cada Sala:


 Se houver alguma pessoa na sala (Occupancy Sensor):  Se a qualidade do ar CO2 (Air Quality) estiver acima do
 Ligar iIuminação (Ligthing) e Aquecimento (Heating) SetPoint:
 Ligar sistema de ventilação (Ventilation)

Sala 1 Sala 2 Sala 3


Data User Type - Enumeradores

Enumerador é um tipo de dado ou máscara/enumeração que associa um valor a um parâmetro ou nome


correspondente:

AQUECIMENTO
RESFRIAMENTO
PAUSA
EM_FALHA

8 7 6 5 4 3 2 1

Zonas de Aquecimento

Injetora
Data User Type (DUT) – Enumeradores (Enumeration)

1
Construção do
2 enumerador

Valor Enumeração
3

Enumeradores são muito


utilizados p/ indicação de status, Programa online
modo de operação, etapa de
operação, parametrizações, etc.
Laboratório
1. Criar uma Estrutura de Dados para automação de uma sala, chamada: “ST_ROOM_CONTROL”

2. “Declarar” uma variável estrutura em “GVL”: Room1:ST_ROOM_CONTROL;

3. Criar lógica usando a estrutura “Room1”:


(BOOL)
 Se houver alguma pessoa na sala (Occupancy Sensor):
 Ligar iIuminação (Ligthing) e Aquecimento (Heating) (REAL) / SetPoint (REAL)

(BOOL)
 Se a qualidade do ar CO2 (Air Quality) estiver acima
do SetPoint: (INT)
 Ligar sistema de ventilação (Ventilation)

(BOOL)

(BOOL)

(BOOL)
Laboratório - Enumeradores

1. Criar um Enumerador com nome: (eRoomTempStatus), contendo máscara/valores:

2. Declarar uma variável eSala1: eRoomTempStatus

Criar uma lógica:


Se a Temperatura (Temperature) for maior do que 28°C, indicar temperatura “ALTA” no enumerador.
Se a Temperatura (Temperature) for maior do que 30°C, indicar temperatura “MUITO ALTA” no enumerador.

IDLE =0
BAIXA =1
NORMAL =2
MODERADA =3
ALTA =4
MUITO ALTA =5
Data User Type (DUT) – Arrays de Enumeradores

8 7 6 5 4 3 21

Zonas de Aquecimento

Programa Online
Laboratório – Arrays de Enumeradores

1. Criar um “array” de Enumerador para Monitorar a temperatura de 3 salas

Criar uma lógica para cada enumerador:


Se a Temperatura (Temperature) for maior do que 28°C, indicar temperatura “ALTA” no enumerador.
Se a Temperatura (Temperature) for maior do que 30°C, indicar temperatura “MUITO ALTA” no enumerador.

eSalaStatus[1] eSalaStatus[2] eSalaStatus[3]

Sala 1 Sala 2 Sala 3


Laboratório geral – estruturas e enumeradores

 Criar um ENUMERADOR, chamado E_TEMP_STATUS com


as seguintes máscaras:
IDLE =0
BAIXA =1
NORMAL =2
MODERADA =3
(BOOL)
ALTA =4
MUITO ALTA =5
(REAL) / SetPoint (REAL)

 Declará-lo dentro da estrutura ST_ROOM_CONTROL: (BOOL)


 eTemperatura : E_TEMP_STATUS;
(INT)

Logica com enumerador:


0..20 =BAIXA
21..24 =NORMAL
(BOOL)
25..27 =MODERADA
28..32 =ALTA
33.. =MUITO ALTA
(BOOL)

(BOOL)
Variáveis Locais
Variáveis Locais são de acesso exclusivo ao escopo do programa ao qual foi declarada, não podendo ter acesso externo

Variáveis
Locais ao
Programa_A

Variáveis
Locais ao
Programa_B
PLC Project – Variáveis Globais

1
2

É possível adicionar diversas Listas de


variáveis globais
Variáveis Globais
Acessando uma variável Global

<Nome da Global Variable List>.<Nome da variável>

Dica: Crie uma Global Variable List com nome


intuitivo ao propósito. Exemplos:

IO  para declaração de variáveis físicas E/S


GVL, glo  Para variáveis gerais
IHM  Para variáveis de IHM
SSC  Para variáveis que trocam dados com
Sistemas de Supervisão e Controle
Dados “Remanecentes“ ou persistentes

Variáveis “remanescentes” são utilizadas para


armazenar/guardar o valor das variáveis em caso de uma
queda de energia.

Uma variável declarada local ou global perdem seu último


estado/valor em caso de uma queda de energia, para que
isso não aconteça elas devem possuir uma tratativa diferente
As variáveis remanescentes para armazenamento.
pode ser: persistentes ou
retentivas Variáveis persistentes são salvas em um HD ou cartão de
memória (C-FAST, COMPACT-FLASH, MicroSD).
Dados “Remanecentes“ ou persistentes

Para utilização de variáveis persistentes é necessário o uso


de “UPS”.

Alguns controladores Embedded PC possuem a opção de


1second-UPS (hardware) interna, outros, como IPC’s
necessitam de UPS externa, instalado junto com a fonte na
placa mãe. Esses dispositivos proporcionam alguns
minutos/segundos adicionais de alimentação para que os
dados persistentes possam ser armazenados.

Para algumas CPU´s Embedded também há opção de


dispositivos NOV-RAM, como alternativa, caso não seja
possível a utilização de UPS.

Dados persistentes: até 1MB de dados !


Variáveis persistentes precisam ser declaradas !
Podem ter escopo “Local” ou “Global”
Dados “Remanecentes“ ou persistentes

Verificar o FB de
acordo com a
CPU aplicada

FB Utilizado p/ gravar
dados Persistentes sem
uso de UPS.
Manualmente !
UPS / 1 Second- UPS

UPS (IPC) e 1-Second UPS (Embedded PC) são dispositivos


adquiridos/comprados à parte.
 Precisam ser especificados !
1 Second-UPS
 1Second-UPS também deve ser especificada para família de
IPC´s – CPxxxx

Embedded PC
 1Second-UPS – de fábrica –CX80xx, CX81xx UPS

 CX51xx, CX50xx, CX52xx


 NOV RAM
 CX20xx, CX9020
 Opcionalmente por ser especificado 1Second-UPS

 Caso um produto não tenha UPS ou 1-Second UPS ou seja


necessário aumento de memória persistente a alternativa é a
utilização do módulo NOV-RAM - EL6080 – 128Kb
Bibliotecas
As bibliotecas possuem um conjunto de blocos de
Inserindo uma biblioteca no Programa...
funções, funções, tipos de dados, estrutura de dados,
de acordo com o tipo de funcionalidade

1
2
Bibliotecas - Propriedades

Existem bibliotecas free e licenciadas.

É possível criar bibliotecas personalizadas

Tipos de dados, variáveis globais


1
Duplo Click

Blocos de Funções organizados


por funcionalidades
Adicionando Bibliotecas

2 Filtro para pesquisa

Pressione a
tecla F2

Bibliotecas
referenciadas
Bibliotecas e Funções/Funcionalidades
Os componentes básicos podem ser estendidos por funções. As
O TC3 XAR é divido em diversos
funções são classificadas em várias categorias: Controle de
componentes ou funções/funcionalidades Movimento, tecnologia de medição, tecnologia de controle e
(Functions). comunicação.
Bibliotecas e Funções e Suplementos
Dependendo da função é necessário o uso de Bibliotecas: São usadas para programação (FB, Functions, Data Types),
bibliotecas, instalação de suplementos (ou da própria em casos de necessidade da aquisição de licença ela deve ser solicitada
função), ou até mesmo o uso de bibliotecas de acordo com a quantidade Target´s (CPU´s). Ex.:
juntamente com a instalação de suplementos no  TC3 Controller ToolBox
target  TC3 Temperature Controller
 TC3 HVAC
 TC3 Solar Position Algorithm
 TC3 IoT Communication MQTT

Suplementos/Funções: Os suplementos instalados (*.exe, *.cab)


diretamente no target (PC Beckhoff). Ex.:
 TC3 TwinCAT PLC HMI
 TC3 TwinCAT HMI
 TC3 TwinCAT IoT Data Agent

Bibliotecas + Suplementos: Algumas funções possuem a necessidade


do uso de bibliotecas e instalação de suplementos para funcionamento.
Ex.:
 TC3 Modbus TCP
https://download.beckhoff.com/download/document/c  TC3 OPC UA
atalog/Beckhoff_TwinCAT3_042012_e.pdf  TC3 SMS SMTP
Performance Class
Laboratório – Bibliotecas

Adicionar ao projeto Laboratório.pro a biblioteca “TcUtilities.lib” e implementar o


Function Block: FB_LOCALSYSTEMTIME
Function Blocks

Bloco de Função é uma “abstração” de um de um controle/lógica que, em função de um ou


mais parâmetros de entrada, pode gerar um ou mais parâmetros/resultados na saída.
Muito aplicado para criação de elementos/lógicas/algoritmos de controle totalmente
reutilizáveis.

Nome
Parâmetros Instância Parâmetros Parâmetros
Entrada Saída Entrada

Parâmetros
Saída

Linguagem LD Linguagem ST
Construindo um Function Block

Construindo um FB para conversão de valor um decimal para unidade de engenharia


(escalonado):

Parâmetros Parâmetros
Entrada Saída

Valor
Convertido
0 0…99,9876 REAL

32767 0…100
Valor
Valor de Entrada Convertido
(Entrada Analógica) INT
0
100(%)
Construindo um Function Block

Nome do
Function Block

1
2 3

5
Construindo um Function Block

Parâmetros de Entrada
Parâmetros que fornecem valores de entrada ao
controle/lógica/cálculo

Parâmetros de Saída
Parâmetros que fornecem os valores a saída do
controle/lógica/cálculo

Parâmetros Internos
Parâmetros auxiliares utilizados internamente ao
controle.

Funcionalidade
Lógica/Controle/cálculo/algoritmo à ser executado
Inserindo um Function Block

1
2

Principal vantagem
do uso de FB´s:
Reutilização !
Laboratório - Function Block

 Utilizar o FB_SCALE no ProgramaA (LD) e configurá-lo


 Declare uma variável global de conexão (física) chamada iEntradaAnalogica_EA1, efetuar o link
físico dessa variável.
Laboratório – Function Block

 Utilizar o programa Laboratório.pro


 Construir um FB chamado: FB_MOTOR, contendo os seguintes parâmetros:

INPUT
OUTPUT
bLD :BOOL; (Liga Desliga)
bOut :BOOL; (Comando)
bStatus :BOOL; (Retorno ligado)
bFalha :BOOL; (Indicação Falha)
tTempoFalha :TIME; (Tempo de falha)
tTempoAcc :TIME; (Tempo de falha Acumulado)
bReset :BOOL; (Reset de Falha)

LÓGICA DO FB

1. Comando LIGA/DESLIGA (bLD) >> Saída Out (bOut) deve ser Ligada/Desligada
2. Caso a saída (bOut) seja acionada e dentro de Xs (tTempoFalha) e não houver Retorno de ligado (bStatus) >>
Saída bOut deve ser desligada e indicar falha (bFalha)
3. Reset de falha (bReset) >> Reconhece a falha (bFalha)
4. (tTempoFalhaAcc) >> indica o tempo decorrido da falha
Functions

Função ou procedimento são trechos de códigos chamados pelos programas, gerando


resultados a cada execução. Uma função retorna apenas 1(um) único parâmetro!

Parâmetros Parâmetro
Entrada Saída
14,72357 15
14,32357 14
‘Beckhoff’ ‘Beckhoff Automation’
‘Automation’
Tc PLC Control – Construindo uma Function

Construindo uma função para converter o valor de Temperatura de graus “Celsius” para
graus “Fahrenheit”

Parâmetro Parâmetro
Entrada Saída

24ºC 75,2ºF
Functions

Nome da Function

1
2 3
Construindo uma Function

Nome da Função é uma


variável
Parâmetros de Entrada

Parâmetro Auxiliar Interno

Parâmetro único de saída (nome da função)

Equação de Cálculo
Laboratório – Functions

 Utilizar o programa Laboratório.pro


 Construir a função Bar_to_Psi, utilizando a linguagem (ST) e implementá-la no ProgramaB (ST)
 1bar = 14.5PSI

 Construir a função de tradução chamada FUN_I_to_P, utilizando a linguagem (ST):


 Parâmetro de Entrada: sPalavraIngles : STRING;
 Lógica:
 Se receber um parâmetro de entrada (sPalavraIngles) chamado ‘Apple’, retornar ‘Maçã’,
senão retornar ‘Não sei’
Function Blocks e Functions – Informações complementares
Programas
 Pode chamar outros programas, FB´s e
Functions
 Mantém o estado das variáveis locais entre as
chamadas de programa
 Permite chamadas de múltiplos programas

Function Block
fbScale1 :FB_SCALE
 Internamente pode chamar outros FB´s e Functions
 Mantém o estado das variáveis locais entre as chamadas dos programas
fbScale2 :FB_SCALE
 Permite múltiplas instâncias, pois cada FB possui alocação de memória
específica
fbScale3 :FB_SCALE

Function
x

 Não aloca memória


 Retorna o resultado através do nome da function
Estrutura para utilização de Programas, FB, Functions

Dentro dos Programas pode conter Múltiplas instâncias de FB´s e chamada de funções

Programa 1 Programa 2

FB1 FB2 FB1 FB2


Function1 Function1
FB1 FB2 FB1 FB2

Function1 Function1
Function2 Function2
Function2 Function2

Dentro de um FB é possível instanciar outros FB´s e Funções externos


Funcionalidades Online
Login

Login com mudança Online.


Após o Login será transferida a alteração realizada sem
a parada da CPU (Alteração online).

Login com Download


Após o Login será transferida a alteração realizada mas
a CPU entre em modo STOP, causando uma parada no
processamento.

Login sem nenhuma mudança


Atualização do boot project Após o Login não será transferido a alteração realizada.
Após o Login o arquivo de boot (boot O sistema apenas entra em modo online.
project) é automaticamente
atualizado
Login

Após o download o programa compilado é


transferido para memória RAM do target

RAM
Atenção: Se não for realizado o Activate Boot
Project ou Update boot project, o programa
ou alteração realizada será perdida !
Ativando Autostart Boot Project
Para garantir a carga do último programa ou alteração realizada, é
necessário Ativar o comando de Boot  Activate Boot Project e
selecionar o Autostart Boot Project

Active Boot Project


Ativa manualmente o boot project
1
Autostart Boot Project
Carrega automaticamente o arquivo de boot em toda inicialização do
XAR.

Após o download (Login), o


sistema atualiza
automaticamente o Boot Project
Start Automático do Controlador

3 Power ON C:\TwinCAT\3.1\Boot\Plc
1

Windows start

4
Windows login
Boot
Para iniciar o TwinCAT XAR automaticamente,
settings
em “Boot Settings” defina a configuração “Auto
Boot” para “Run Mode (Enable)“. Start TwinCAT XAR

Para o login automático do Windows, marque a


opção “Auto Logon” e insira os dados de login. Load boot project
Autostart
boot
project Start PLC
Auto Save TwinCAT Project no PLC (Arquivo)

Para efetuar o UPLOAD é obrigatório efetuar o envio do Arquivo de Backup


do projeto ao PC/PLC: “AUTO SAVE TWINCAT PROJECT TO TARGET AS
ARQUIVE”

1
O download automático do “Projeto TwinCAT 3” para Target (PLC) é
definido como padrão no sistema, embora possa ser desativado.
2

O arquivo fonte de download que contém O envio do arquivo fonte é


toda a estrutura do projeto pode ser automaticamente realizado ao
encontrado no diretório de boot do TwinCAT: efetuar o Active Boot Project
TwinCAT\3.x\Boot\CurrentConfig.tszip ou Update Boot Project
Proteção do Projeto

Nas opções do projeto de PLC é possível selecionar e configurar


os arquivos que serão enviado ao target.

Proteção Projeto – código fonte


Para evitar o armazenamento do código-fonte do 1
2x
programa PLC no target, desative a opção Project
Sources. Dessa forma não será possível carregar o
projeto de PLC (UPLOAD)
Simbolos/ Variáveis Tc2
Simbolos/ Variáveis Tc3
Carrega as bibliotecas que foram referenciadas no projeto
Carrega as bibliotecas de forma compilada
Código fonte do PLC
Informação de mudança online
Upload do projeto TwinCAT3

1 2

4
 O upload do projeto é realizado Selecione o target desejado Selecione o diretório onde será salvo o
através do ambiente do Visual Studio projeto de Upload
 Só é possível efetuar Upload com um Upload feito
projeto XAE vazio. com
sucesso !

Após selecionar o diretório o projeto é carregado do target escolhido e


salvas na pasta de destino, em seguida a solução é aberta no TwinCAT
XAE.
Laboratório – Bootproject, Sourcecode Download, Upload

Download
– Activate Boot Project
– Testar o Boot Project desligando e religando o PC/PLC

Upload
– Selecionar “Auto Save Project to target as Archive”
– Ativar Configuração (Active Boot Project)
– Efetuar Upload
Breakpoint

Atenção: breakpoint causa STOP na CPU !

 Breakpoint permite efetuar uma análise mais detalhada


do código de programa, podendo efetua execuções
passo à passo facilitando o entendimento e
interpretação do código em tempo real.

 Quando acionado em um programa, o breakpoint


causa uma parada (STOP) imediata no ciclo de
execução do programa. O programa para exatamente
na tarefa/linha de programação que encontrou o ponto
de interrupção. 1

 O breakpoint pode ser acionado em qualquer programa


em qualquer linguagem: LD, ST, FBD, CFC... 2
Breackpoint – teclas de controle e comandos
Key(s) Símbolo Descrição
F9 Ativa e desativa o breakpoint
Ativa e desativa o comando de breakpoint

F10 Executa ao final (step over)


Executa um passo individual. Pula a chamada interna de blocos de função,
indo direto para a saída do bloco.

F11 Execução passo à passo (step into)


Execução completa passo a passo individualmente de cada linha de
programação, seguindo o a idéia do “SCAN”.

SHIFT Execução até um passo atrás (step out)


+F11 Executa conforme a hierarquia programada, salta entre chamadas de
programas.
Breakpoint - símbolos
Símbolo Descrição

Breakpoint no modo onlie


Breakpoint habilitado no modo online. A execução do programa é interrompida quando o
breakpoint é ativado no código de programação em modo onlie

Indicação do ponto de parada do programa e início do passo a passo


A execução do programa foi interrompida nesse ponto no programa. Esse símbolo mostra a exata
posição no código onde o breakpoint foi ativado.

Posição atual ao percorrer o programa


Depois de ativar o breakpoint é possível a execução do programa (linhas de código) passo à
passo. Esse símbolo mostra a posição atual de execução no código.

Desabilita o breakpoint
O breakpoint é desabilitado após o logout. Esse símbolo indica a posição anterior do breakpoint,
onde ele foi acionado.
Essa indicação na tela pode ser cancelada pressionando F9 uma vez na linha onde foi acionado.
Efeito de um breakpoint

Como na maioria dos sistemas de barramento a troca de dados é solicitada pelo


Mestre, após uma parada originada por um breakpoint a troca de dados não
serão mais executadas. O estado dos I/Os remotos caem, mas não indicam falha
de comunicação.

Como resultado, o watchdog do módulo escravo é desativado após 100ms e as


saídas são reinicializadas.

Ex.:
 Contatores serão desacionados.
 Válvulas pneumáticas caem
Watch variables

O observador de variáveis permite criar uma lista de A lista de variáveis aparece automaticamente ao adicionar
variáveis para monitorar e comandar seu estado qualquer variável.

Valor da Local p/
variável escrita

1
2

A lista de variáveis permite adicionar variáveis locais e


globais, efetuar leitura e escrita de valores.
Flow control

O controle de fluxo pode ser ativado para rastrear seções Flow control off:
processadas do programa aplicativo. Em contraste com o
monitoramento padrão, que exibe apenas o valor de uma
variável entre dois ciclos, o controle de fluxo fornece o valor
para cada etapa de processamento com precisão no momento Flow control on:
do processamento.

Ativar/Desativar o flow control:


Flow control - Function Block Diagram (FBD)

Network Mostra valores


Ativa/ inativa Resultados intermediários alterados online
Flow control – Texto estruturado (ST)

Valor online preciso no momento


do processamento

Linha ativa
Linha inativa
Cross-reference

 Referência cruzada permite uma verificação geral no projeto onde a variável em questão
está sendo utilizada
1
2
2

Find All References 2


também chama a lista de
referência. Esse é o
modo mais rápido de 3
efetuar uma busca da
variável no projeto

4
Go To Definition

 O comando “Go To Definition”


pode ser usado se o cursor
estiver posicionado em um
identificador em uma janela do
1
Editor. Ele aciona uma busca
no projeto para o local que 2

contém a “definição” das


respectivas variáveis ou bloco
de funções. No caso de um FB,
ele abre definição da lógica interna
ao bloco.
Implicit Checks

 Implicit Checks podem ser


Erro, divisão por zero !
utilizados no projeto para
verificação do local exato onde
ocorreu uma violação de
programação condição
indevida, erros graves.
 No caso de uma violação ou
condição grave, em situação
normal o PLC entra em modo
STOP.
 O uso de Implicit Check evita a
parada no processamento,
indicando a falha indevida para
tratamento e correção
Adicionando um Implicit Check

Declare uma variável GLOBAL


do tipo BOOL
1

Altere o programa CheckDivReal,


confome a sugestão:

3
Implicit Check em execução

Programa em Execução
sem violação e divisão
por zero

O programa se mantém
em execução (CPU
RUN) e a variável
GLOBAL é acionada
indicando divisão por
zero
Export / Import

Projetos, programas, POU´s, GVLs, DUTs podem ser exportados a importados para outros projetos

É possível exportar/importar em formato *.ZIP ou


*.XML (padrão PLC Open)

1
Primeiro exporte o projeto com a extensão desejada,
em seguida importe no projeto novo conforme a
extensão
Comparação de projetos: Online/Offline

É possível comparar projeto Offline com projeto Online e verificar possíveis diferenças de código.

Programa Online

Programa Alterado

Diferença encontradas
Comparação de projetos: Online/Offline

Programa Offline Programa Online

2x 1
Duplo Clique

Bloco Adicionado
Mudança encontrada
Atualizando projeto Offline

Em caso de diferença entre o projeto Offline para o projeto Online é possível efetuar um “update”.

O Update atualiza o projeto Offline, ou seja, carrega o programa Online e substitui no programa Offline

Programa Offline
1

Programa Offline Atualizado !


Diretórios

Estrutura de arquivos e diretórios da Solution/Projeto criado:

<nome da solution>.sln é o arquivo principal do


projeto. Para abrir a Solution/Projeto, clique 2x PLC project
nesse arquivo.

Estrutura PLC
Project criada

O principal diretório de instalação do TwinCAT3 é a pasta C:\TwinCAT\3.1

As bibliotecas de funções ficam armazenadas no diretório:


C:\TwinCAT\3.1\Components\Plc\Managed Libraries
Salvando a Solution como Arquivo

Salvar uma Solution como Arquivo comprime o tamanho do diretório, tornando mais fácil o armazenamento
e envio de backup

Essa opção é mais comumente


utilizada para envio de backup
via e-mail, pen-drive, etc.
Abrindo uma Solution como Arquivo

Selecione o arquivo

2
2

3
Importando projeto TwinCAT2 para TwinCAT3

1
Arquivos No TwinCAT 2, diferente do TwinCAT3 a relação entre o PLC Control
TwinCAT2 e o System Manager é configurada pelo usuário adicionando o
arquivo *.tpy manualmente no System Manager. Deve-se tomar
muito cuidado com a localização desse arquivo. Um boa dica é que
2
os arquivos *.pro, *.tpy e *.tsm, estejam na mesma pasta, para que
evitar referência do arquivo *.tpy errado, causando problemas na
hora da importação.
Projeto Tc2 Importado p/ Tc3

5
3
O resultado da importação será um projeto em TwinCAT3 o
mais próximo possível do que se tinha em TwinCAT2.
Alguns detalhes podem não ser importados corretamente,
como a configuração de Tasks, etc. Nesses casos devemos
configurar manualmente, todavia a maior parte do trabalho
pesado é poupado com esse processo.
Licenciamento
Licenciamento – informações gerais
O TwinCAT 3 oferece algumas vantagens no processo de adquirir/licenciar software
de maneira a facilitar a vida do desenvolvedor e oferecer, entre outras coisas:

Redução de preço pago nas licenças, pois as licenças são compradas de acordo
com a performance do hardware a ser instalado, e, sendo esse um hardware
Beckhoff os valores estão menores quando comparados com o TwinCAT 2.

• Possibilidade de mudar o nível de TwinCAT posteriormente, acrescentando


funcionalidades ao controle original.
• Possibilidade de se utilizar um dispositivo “dongle” para manter o sistema
licenciado caso ocorra algum problema no IPC.
• Possibilidade de rodar, por 7 dias, quase todas as licenças de software
disponíveis, para fins de treinamento e desenvolvimento de aplicação e testes de
funcionalidade sem custo de licenciamento, após decorridos os 7 dias basta
reativar por mais 7 dias, o desenvolvimento não é cobrado.

 Trial License:
Licença de 7 dias “free”, utilizada para desenvolvimento, testes e educacional.
Licença pode ser gerada através do TwinCAT 3 e renovada a cada 7 dias sem custo.

 Standard License:

Licença padrão adquirida com Beckhoff Brasil e deve ser ativada no target (IPC).
Uma vez ativada esse tipo de licença fica vinculada a um único System ID
(identificação do IPC/dongle) e servirá apenas para aquele dispositivo.
Licença – Informações gerais

O Licenciamento em TwinCAT 3 é dividida em duas etapas:


 Procedimento relacionado com vendas
 Integração/configuração no TwinCAT3 XAE
Procedimento relacionado à venda
1. Solicitar o pacote desejado
Integração/configuração Técnica no TwinCAT3 XAE
2. Todas as licenças necessárias para o projeto são listadas automaticamente no TwinCAT XAE. Esta
lista também pode ser feita manualmente. Um arquivo de licença (Licence Request File) é gerado a
partir dele.
3. O arquivo de licença é enviado por e-mail para a ativação no servidor Beckhoff (Beckhoff
Activation Server)
4. O servidor de ativação cria um arquivo de licença válida (Licence Response File), que deve ser
importado no TwinCAT3 XAE
Diagrama para ativação de licenças

Envio por
Cliente email Beckhoff
Compra Licença Envia o “License Gera
TC3
Recebe VE…
Gera “License
Request File”
Request File” por
email
@ “License
Response File”

Cliente importa
“License
Response File”
@ Envia “License
Response File”

Resposta por
email
Ativando uma licença “trial” por 7 dias
Selecione a Licença desejada em Manage Licenses Digite o código de segurança informado

Nota1: Após ativação por 7 dias o status deve mudar para 7 dias após a
data atual de ativação. Para atualizar o status, feche e abra novamente a
janela de Licença.
Inicialmente o status da
licença aparecerá como
“missing”, pois ainda
não foi ativada.
Nota2: Após 7 dias de ativação a licença deverá expirar, bastando refazer o
processo de ativação novamente. Licença ativada por 7 dias.
Ativando uma licença definitiva
ATENÇÃO! A licença deve ser ativada no IPC (CX/CP) que irá ficar definitivamente na
Digitar o “VE...” ou “VA...” fornecido na nota fiscal e clique no botão máquina/processo. Não ativar a licença definitiva em IPCs de teste/bancada senão
“Generate File” será necessário adquirir uma nova licença.

Após envio do e-mail, o servidor (Beckhoff-Alemanha) deverá responder


o email com o arquivo de resposta (“.tclrs”), após recebê-lo, basta
adicioná-lo ao TwinCAT3 clicando em “License Response File..”

2
1

Ao clicar em “Generate File” o arquivo de solicitação será gerado


automaticamente e uma janela irá aparecer para salvá-lo. O arquivo
de solicitação possui extensão “.tclrq”. Após gerar o arquivo o
TwinCAT abre automaticamente o gerenciador de e-mail (Outlook, 3
etc...) utilizado para enviar o arquivo para o servidor de licenças da
Beckhoff-Alemanha, caso não utilize nenhum, basta enviar o arquivo
Depois que o arquivo de resposta da licença for integrado, ele será automaticamente
para o endereço de licenciamento. tclicense@beckhoff.com copiado para… \ TwinCAT \ 3.x \ Target \ License no Target e ativado quando o
TwinCAT for reiniciado.
Licencimento via Dongle
Dongle é um dispositivo que contém ou pode conter licença interna. Essa licença pode vir previamente registrada no
dispositivo ou pode ser ativada em ocasiões futuras. Esses dispositivos são conectados no IPC (via porta USB) ou
diretamente no barramento E-bus, sendo assim, é possível trocar de IPC, CX, CP (caso for danificado) sem a
necessidade de reativar a licença, pois elas ficarão registradas em um dispositivo externo. Existem dois modelos de
Dongle disponíveis: EL6070, C9900-L100 (usb).
A diferença no processo de licenciamento está na
hora de escolher o dispositivo a ser licenciado:

Para
licenciamento no
1 IPC,CX,CP

Todo hardware Beckhoff é reconhecido por


um “System ID” único, esse número está
Para
vinculado ao hardware correspondente à licenciamento via
licença. O Dispositivo Dongle, seja ele um dongle (EL6070
cartão ou USB possui um System ID ou USB
próprio e único.
Ativando uma licença definitiva via Dongle

ATENÇÃO! O dispositivo dongle deve estar conectado ao IPC, CX, CP na porta usb ou conectado no barramento E-Bus.

2
5

Após selecionar o License Device como Dongle, efetuar o


3 processo normal de licenciamento definitivo: Digitar o License
ID (VE... Ou VA...), clicar em Generate File (“.tclrq”), enviar
email ao servidor da Beckhoff (Alemanha), aguardar o
recebimento do arquivo de resposta (“.tclrs”) e clicar em
License Response File para ativar a licença no dongle.
4
TwinCAT Measurement - Scope
TwinCAT Measurement - Scope

As variáveis podem ser enviadas para o TwinCAT Measurement (Scope) para análise gráfica

1
2

3
Dica: Mantenha o caminho (Location) padrão. Mesmo
Y em função do Tempo Scope Project
diretório da Solution
TwinCAT Measurement – Adicionando uma variável ao Scope

2 Start/Stop
Record

Range de tempo (s)


de amostragem p/ o
eixo X

2x 1

Projeto TwinCAT
Measurement adicionado Os valores mínimo e máximo do eixo Y são automaticamente
na solution configurador, conforme a variação da grandeza medida
TwinCAT Measurement – Exibindo valores Mín. e Máx.

Start/Stop Display

Exibindo valores
Máximo e
Mínimo no
gráfico
2x 1
Duplo
click
TwinCAT Measurement – Tipo de exibição

Tipo de amostragem no display:

True  Amostragem por buffer


False  Inicia amostragem à partir do tempo 0s (eixo X) e vai até o valor final configurado
(1min), após isso o gráfico é reiniciado e retorna amostragem no instante t=0s
TwinCAT Measurement – Expandindo exibição

Ativa visualização do histórico desde o


início da gravação dos dados
TwinCAT Measurement – Salvando os dados

1 Scope Histórico com os dados


3
registrados para análise
2

2x 4
Duplo
click

Scope Histórico
adicionado ao projeto
TwinCAT PLC HMI | TwinCAT PLC HMI WEB
TwinCAT PLC HMI e TwinCAT PLC HMI Web

• Indicado para aplicações de HMI


• Única ferramenta – Programação, configuração e
visualização
• Única visualização p/ diferentes plataformas
• Integrado no ambiente TwinCAT XAE
• Fácil e simples de configurar
• Alto grau de reusabilidade
• Editor e visualização livre no ambiente TwinCAT XAE
• Integração com múltiplos idiomas
• Gerenciamento de usuário
• Gerenciador de Receitas
• Gerenciador de Alarmes
• Web plataforma via Http, Https

Documentação completa:
https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/3523377803.html&id=7251892297822772979
Arquiteturas possíveis

Opção 1: Opção 2: Opção 3:


• Desenvolvimento TwinCAT XAE • Desenvolvimento TwinCAT XAE • Desenvolvimento TwinCAT XAE Visual Studio
• Roda dentro do Ambiente de • Roda dentro do Ambiente de • Roda no IPC (CP, CX)
desenvolvimento TwinCAT XAE desenvolvimento TwinCAT XAE • Visualização em navegador web
• Não é necessário Licença • Roda no IPC (CP, CX) e clientes • Necessário licença TF1810 no IPC
• Necessário licença TF1800 no IPC

HTTP
Wi-fi HTTPS

PC/Mobile/HMTL5
 Internet Explorer
Client  iOS
DVI
 Linux

Monitor

https://www.beckhoff.com/english.asp?download/tc3-download-
Link p/ download:
tf1xxx.htm?id=1957281427660162
Adicionando Visualization Manager

1
P/ adicionar um visualization Manager é necessário
Logout, caso esteja online com programa

5
Visualization Manager

Recomendamos
manter o Style como
“Default”
Adicionando um Target Visualization

2 3

Indica a tela inicial Tempo de Task de


de abertura Visualization
Target Visualization insere as configurações (Update rate) a
gerais do Target, como: Tempo de task cada 200ms
(update rate), configuração da tela inicial, tipo
de entrada de dados, configuração da tela
4
dos IPCs clientes, etc...

Configuração de escala para tela do IPC


Client (Se tiver no projeto)

Configuração padrão do tipo de entrada dos


dados: Touchscreen ou por Teclado (usb)
Adicionando uma Tela (Visualization)

Mesmo procedimento para adicionar outras telas ao projeto Nome da tela

4
Configurações de Largura e Altura da Tela

Largura;Altura
P/ Size mode: Specified

Área p/ construção da Tela

Configurações do tamanho da tela:

AutoDetected: O tamanho da largura e altura serão


de acordo com a resolução do target conectado
AutoDetectWithBgImage: O tamanho da largura e
altura serão de acordo com uma imagem carregada p/
background (fundo)
Specified: O tamanho da largura e altura serão de
acordo com o especificado no campo Size

Ferramentas do TcPlcHMI para construção da tela


Configurando a Tela de Início

2
3

“Tela1” configurada
como tela inicial
Visualization (TCPLCHMI) Task

O Visualization (Tc3PlcHmi) é executado em


uma tarefa (task) separada, com intervalo
padrão de 200ms

Deixar o Auto Start sempre selecionado para


que a VISU_TASK inicialize
automaticamente.

Nota: Não recomendamos alterar o intervalo


de atualização padrão (200ms) para um
valor abaixo ou igual a Task de PLC
(PlcTask) . O Ideal é que a Task do
Visualization VISU_TASK esteja sempre com
intervalo maior do que a que PlcTask

Exemplos típicos:
PlcTask: 10ms
VISU_TASK: 200...100ms (recomendado)
Ferramentas, componentes e elementos disponíveis
Criando e Configurando uma tela
Para exemplo de utilização e aprendizado, declaramos
algumas variáveis globais:
O TCPLCHMI (Visualization) já é integrado ao ambiente de
programação TwinCAT XAE, dessa forma, todas as variáveis do
projeto (locais ou globais) já estão disponíveis para utilização na
construção das telas. Não é necessário utilizar uma base de dados
específica para IHM.

Importante: Após declarada uma variável (local ou global), e


utilizada em algum componente do TcPlcHMI (Label, Switches,
Lamps, TextField, etc), caso essa variável mude de nome na
declaração, a mesma terá de ser “atualizada” manualmente no
componente no TcPlcHMI onde foi utilizada/referenciada. Não será
atualizada automaticamente!

Para acesso as variáveis no TcPlcHMI, será necessário indicar o


escopo onde foi declarada. Ex.:
<escopo.nome da variável>
Programa_A.bLiga
HMI.rValor

Dica: Como sugestão, crie uma lista de variáveis chamada “HMI” p/ declarar as variáveis p/ “HMI”.
Toolbox: Common Controls – Label

Para inserir qualquer componente da Janela ToolBox, clique e arraste o elemento para
área de construção da Tela.

Configure o nível das


propriedades para Expert

Text: Campo para inserir o


3
texto

Clique e Label é um componente mais


arraste comumente utilizados para
inserção de textos estáticos na
tela
1
Toolbox: Common Controls – Button

O componente Button possui dois


tipos de comando:

Tap: Pulso. Enquanto pressionado


mantém a variável em TRUE.

Clique e Toggle: Mantém o estado até o


arraste
próximo clique do mouse. Clique
TRUE, CliqueFALSE
1

Nota: Em geral quase todos os


componentes Básicos como: Line,
Rectangle, Polygon, Ellipse,
Configuração da também aceitam comandos Tap e
variável (local,glocal) Toggle
Toolbox: Common Controls – Button-Tap, acesso a variável

Variável
1
Configurada para
receber o comando
Tap: HMI.bVar1

Acesso direto as
variáveis Globais
(GVLs) e
2
Locais (POUs)
declaradas no
programa

Outra opção é digitar diretamente o


nome da Global Variable List e
pressionar “.”, para que o TwinCAT
XAE ative o intelissense e liste as
variáveis declaradas na lista
correspondente
Toolbox: Common Controls – Button-Toggle, acesso a variável

Procedimento para inserir um outro elemento Button é igual ao anterior

Text Properties permite a


configuração das
propriedades do texto:
tipo de fonte, cor,
alinhamento, etc...

Configure a variável
HMI.bToggle
Toolbox: Common Controls: CheckBox

Configure a variável
desejada

Clique e
arraste

Nota: Para inserir qualquer elemento da “ToolBox na tela,


1 clique no elemento e arraste para a tela desejada
Toolbox: Common Controls: Progress Bar

Configure a variável
desejada

Valores Mínimo e Máx


para o Progress Bar

Clique e
Blocks Bar
arraste

1
Toolbox: Common Controls: Slider

Scale Format, utilize:

%d  INT

%i.df  REAL
i=número de casas inteiras
d=casas decimais
Ex: %3.2f (3 casas inteiras, 2
decimais)

1 Clique e
arraste
Toolbox: Lamps/Switches/Bitmaps: Dip Switch

Configure a variável
desejada

Clique e
arraste 1

Nota: Para inserir qualquer elemento da “ToolBox, clique no elemento e arraste para a tela desejada
Toolbox: Lamps/Switches/Bitmaps: Lamp

Configure a variável
desejada
1

Clique e
arraste Cor da lâmpada
Toolbox: Lamps/Switches/Bitmaps: Power Switch

Configure a variável
desejada

1
Cor interna

Clique e
arraste
Toolbox: Lamps/Switches/Bitmaps: Push Switch

Configure a variável
desejada

Cor interna
1

Clique e
arraste
Toolbox: Lamps/Switches/Bitmaps: Rocker Switch

Configure a variável
desejada

Cor interna
1

Clique e
arraste
Toolbox: Measurament Controls: Bar Display

Yellow
Red

Green
1
Blue
Gray

Scale beside bar


Scale in bar
Bar in Scale

No Scale

Scale Format, utilize:


Configuração
%d  INT
de escala,
conforme a
%i.df  REAL
grandeza
i=número de casas inteiras
escalonada
d=casas decimais
Ex: %3.2f (3 casas inteiras, 2 decimais)
Toolbox: Measurament Controls: Meter

Normal arrow Thin arrow Wide arrow

Thin 3D needle Thin 3D arrow Thi needle


Toolbox: Measurament Controls: Potentiometer

Circle Small arrow

Outside Inside
Inserindo uma nova tela

1 Nova tela inserida

Nome p/
tela
Configurando chamada de tela

Chamada
para Tela2
2 6

Insira um
botão
(opcional)
Abre tela
anterior
1

Abre próxima
tela

3
5
7
4
Inserindo uma imagem de fundo (background)

A imagem deve estar com altura e largada compatíveis com a tela.


Ex: (640,480)
2

O TCPLCHMI aceita
5 imagens com diversas
Um coleção de objetos extensões (bmp, jpeg,
(ImagePool) é utilizado para png, etc..)
carregar todas as imagens á
serem utilizadas em seu
projeto. Para toda imagem que
você queira inserir ao projeto, 6
ela terá de ser
carregada/adicionada Dica: Salve as imagens à serem inseridas no projeto dentro da pasta
primeiramente nessa lista, VISUs de sua Solutin ou crie um diretório dentro dessa pasta e salve
3

antes de inserir efetivamente nela todas suas imagens. Dessa forma, as imagens ficaram junto
na tela. com a Solution do projeto, facilitando o backup.
Inserindo uma imagem de fundo (background)

Imagem
carregada 3

2
Fundo de
tela
configurado
Inserindo uma imagem logotipo

3 Imagem/Logotipo
carregado(a)

1 Imagem/Logotipo
Inserido na tela

5
4 6

Clique e arraste para Tela


Inserindo uma imagem como botão

1 4

5 6

Clique e arraste para Tela


Inserindo uma imagem como botão: Associando com comando

2 3

Comando
associado à
imagem com a
variável
HMI.bToggle
Toolbox: Common Controls: TexFields – Visualização de valor

Definição do formatador
(%d) e unidade de
engenharia ºC (opcional)

Formatador:
%d  INT, DINT, USINT,
BYTE, SINT, WORD, TIME,
ENUM

%i.df  REAL, LREAL


i=número de casas inteiras
1 d=casas decimais
Ex: %3.2f (3 casas inteiras, 2
Clique e arraste para Tela decimais)
Variável associada p/ exibir o
valor da temperatura (exemplo)
%s  STRING, WSTRING
Toolbox: Common Controls: TexFields – Entrada de valor

Configuração
2 da entrada de
dados

3
1 4

Clique e arraste para Tela Limites Mín. e Máx.

Opcional para campos que forem entrada para digitação de senha.


Se selacionado o valor digitado é mascarado pelo caractere ( * ).
Ativando a configuração do TC PLC HMI

1 2
Login

Activate
Configuration

Nota: Caso não haja


licença ativa no Target,
deverá ser ativada uma
licença temporária (7dias)

Após o Login (download),aplicação deverá ser


executada/aberta no target automaticamente
Gerenciamento de usuário

O TC PLC HMI permite o gerenciamento de usuário à partir de duas formas:

1. Permite a configuração de usuário e


grupo padrão, ou seja, já pré-
2 estabelecidos:

 Grupo Admin com usuário Admin


 Grupo Service com usuário Service
 Grupo Operator com usuário Operator
 Grupo None

2. Permite a configuração de usuário e grupo


personalizada, ou seja, desenvolvedor é responsável
por criar grupos e usuários

2x 1
Gerenciamento de usuário – Usuários e Grupos padrão
Se marcado efetura Logout automático após 1minuto
Grupo Usuário
e inoperatividade
Download user data on every login
Os dados de gerenciamento de usuários, que são armazenados no sistema de
programação, são baixados no CLP a cada login. Os dados já existentes serão
sobrescritos.

Never download user data on login


Os dados de gerenciamento de usuários nunca são baixados, mesmo que tenham
sido alterados.

Allow decision on every day


Um download controlado por diálogo está ativado.
Restrições de Login

Usuário permitido para efetuar mudanças no sistema de gerenciamento e


dado dos usuários e grupos

Permite Marque a caixa de seleção se a visualização inicial for aberta


configuração de Desativa automaticamente quando um usuário fizer logout.
senha p/ cada usuário Os grupos são organizados hierarquicamente com base na configuração de grupos. Os
usuário direitos de acesso só podem ser atribuídos hierarquicamente.
Gerenciamento de usuário – Configurando Login e Logoff

Insira dois botões para


3
Login e Logoff
Action p/
5
Login
4
1

2 Action p/
Logoff

Mesma configuração para Logoff, alterando apenas action


Gerenciamento de usuário – Configurando grupo de acesso

Seleção de qual grupo Seleção de qual grupo


pode comandar o poderá visualizar o
componente na tela componente na tela

Na estrutura de hierarquia o grupo superior terá permissão de acesso ao


componente configurado para acesso com o grupo inferior. Ex.: Um Torna o componente
componente configurado para acesso grupo “Operador”, também poderá ter invisível na tela
acesso com grupo “Service” que por sua vez poderá ter acesso o grupo quando o grupo
“Admin”. respectivo estiver
logado
Admin  Service  Operator
Gerenciamento de usuário – Usuários e Grupos personalizados

Digite o nome Digite a senha


do(s) usuário(s) para o usuário

1
3

Digite o nome do(s) grupo(s)

Grupos digitados

Usuários devidamente
configurados e relacionados com
seus respectivos grupos
Gerenciamento de usuário – Configurando grupo de acesso
personalizado

Seleção de qual grupo Seleção de qual grupo


pode comandar o poderá visualizar o
componente na tela componente na tela

Na estrutura de hierarquia o grupo superior terá permissão de acesso ao


componente configurado para acesso com o grupo inferior. Ex.: Um Torna o componente
componente configurado para acesso grupo “Operador”, também poderá ter invisível na tela
acesso com grupo “Service” que por sua vez poderá ter acesso o grupo quando o grupo
“Admin”. respectivo estiver
logado
Admin  Service  Operator
Ativando a configuração do TC PLC HMI

Ao ativar a configuração, primeiro verifique se a tela inicial foi configurada corretamente e se a opção de Start Client on Startup foi marcada:

Nome da tela inicial Tempo de atualização com o qual os


de Startup dados serão atualizados no PLC HMI

Caso aplicação não seja carregada


(aberta) automaticamente, verifique
se o checkbox está selecionado

1
Ativando a configuração do TC PLC HMI

1 4

2 3
Após o comando Start(F5) a aplicação será aberta no
Target (IPC) e no TcXaeShell
TwinCAT PLC HMI WEB

Baixe a funcionalidade TF1810 | TC3 PLC HMI Web


O PLC HMI Web permite que o projeto desenvolvido seja
exibido em qualquer navegador da web. É realizado como
um script Java, que consulta as informações do servidor
web. Apenas as alterações na tela web são transferidas
ciclicamente. Quando um projeto de visualização é
transferido, todos os arquivos necessários para o PLC HMI
Web são transferidos para o diretório
C:\TwinCAT\3.1\Boot\Plc\ Port_851\Visu. Isso inclui o script
Java, a página HTML básica (arquivo HTM) para
visualização e todas as imagens necessárias na
visualização.

Navegadores compatíveis: Internet Explorer 10 ou mais


recente, Mozilla Firefox, Google Chrome e Safari.

Baixe e instale (arquivo ) no target (CP, CX, IPC)


onde a aplicação será executada

Nota: A funcionalidade TF1810 | TC3 PLC HMI Web é licenciada,


caso não tenha a licença, use a licença trial (7 dias).
TwinCAT PLC HMI web

WebVisualization
inserido no projeto

Tempo de Tela inicial de abertura


Atualização na web
do navegador
1 2 3

Fixed: tamanho da visualização no navegador, conforme as especificações em Client


width e Clien heigth
Isotropic: Tamanho da visualização conforme tamanho da tela no navegador, porém a
visualização mantém sua proporção
Anisotropic: Tamanho da visualização conforme tamanho da tela no navegador, porém a
visualização não mantém sua proporção
TwinCAT PLC HMI web – Ativando a configuração

Após as configurações realizar o Activate Configuration e Login (download)


1

5
http://<localhost> ou <devicename>/Tc3PlcHmiWeb/Port_851/Visu/webvisu.htm

Exemplo:
http://192.168.10.2/Tc3PlcHmiWeb/Port_851/Visu/webvisu.htm
2

4
TwinCAT PLC HMI – Elementos e funcionalidades compatíveis
Laboratório Final
Wind Energy – Monitoração da velocidade do vento

1. Criar uma função ou FB para converter o valor decimal (0...32767) em velocidade (0...30m/s)
Anemômetro unidade de engenharia. Utilizar o potenciômetro do kit p/ simular a velocidade do vento.

(Potenciômetro do Kit) 2. Criar uma Lógica ou FB para monitorar a velocidade do vento:


2.1 Velocidade < 20m/s, condição normal
2.2 Velocidade > 20m/s < 25m/s , condição de atenção
2.2 Velocidade > 25m/s durante 5s, condição de alarme
2.3 A falha deverá ser ter comando de reset
3. Criar uma STRUCT chamada ST_WIND_MONITOR, com membros necessários para o controle
4. Criar um enumerador para Status da velocidade do vento: NORMAL, ATENCAO, ALARME

5. Criar tela no TC PLC HMI contendo:


• Velocidade do vento
• SetPoint de Velocidade, SetPoint de Tempo do Alarme (em segundos, tipo INT)
• Indicação de condição (Normal,Atenção,Alarme)
• Indicação do Tempo decorrido qdo entrar no regime de alarme (tipo INT)
• Botão de Reset de Alarme
Tempo Estimado: 60min
17.05.2021 201

You might also like