Você está na página 1de 81

Aula

IEC 61131-3

dezembro de 1999

CLP
O que um CLP ?

uma soluo proprietria de HW e SW para aquisio de


dados e controle de processos
58584-00

CLP
Caractersticas bsicas
Sistema modular
n Hardware dedicado (CPU, memria, I/O, comunicao,
etc.)
n Software fechado (S.O., comunicao, etc.)
n Sistema de tempo real
n Execuo cclica do aplicativo (CLP padro)
n Limitao da capacidade e dos recursos de HW e SW por
classe de produto
n Software aplicativo dependente do hardware
n Alta integrao entre HW e SW aplicativo
n

58584-00

CLP
Vantagens
n
n
n
n

n
n

58584-00

Grande aceitao do mercado


Facilidade de configurao / programao
Soluo robusta de HW e SW
Alta confiabilidade (Redundncia, Fail Safe, Troca a
quente, etc.)
Desempenho comprovado
Tecnologia sedimentada

CLP
Desvantagens
Soluo proprietria de HW e SW
n Custo elevado dos mdulos inteligentes
n Custo elevado para expanso
n Requer maior especializao / treinamento no produto
n Dificuldade de atualizao e expanso de HW
n Capacidade de processamento restrita em comparao
aos sistemas computacionais
n

58584-00

Viso do Usurio (OMAC, 1994)


Dificuldades encontradas nos sistemas atuais
Tecnologia proprietria
n Poltica comercial (ditadura de preos)
n Interfaces proprietrias
n Elevado custo para integrao
n Treinamento orientado ao produto
n Alto custo para expanso
n

58584-00

Viso do Usurio (OMAC)


Necessidades (CNC, Motion, Discret Control)
Segurana, confiabilidade e robustez
n Baixo custo
n Flexibilidade
n Conectividade
n Mantenabilidade
n Facilidade de treinamento
n

58584-00

Desejo do Usurio (OMAC)


Open Modular Architecture Controller implica em uma
soluo
Econmica
n Aberta
n Modular
n Fcil manuteno
n Escalvel
n

58584-00

Soft Logic
O que Soft Logic?

uma soluo de SW baseada em HW aberto


para aquisio de dados, controle de processos e ...
58584-00

Soft Logic
Caractersticas
Hardware dedicado ou de mercado (padro PC)
n Software aberto (S.O., comunicao, etc.)
n Sistema de tempo real dependente da combinao de HW
e SW
n Execuo peridica ou engatilhada (multitarefa)
n Recursos de HW ilimitados
n Software independente do hardware
n Integrao entre HW e SW aplicativo atravs do S.O.
n

58584-00

10

Soft Logic
Vantagens
Soluo aberta
n Baixo custo de HW (HW de mercado)
n Maior desempenho (HW de ltima gerao)
n Maior integrao entre sistemas (controle, superviso,
BD, MES, ERP, etc.)
n Maior funcionalidade (CLP, CNC, Motion Control, DCS,
IHM, etc.)
n Flexibilidade
n Facilidade de expanso
n Maior conectividade
n Facilidade de manuteno / treinamento
n Etc...
n

58584-00

11

Soft Logic
Desvantagens
Baixa aceitao devido ao desconhecimento e falta de
experincia do mercado
n Confiabilidade questionvel em aplicaes crticas
n

58584-00

12

PC Based Control
O que controle baseado em PC?
Rede de Dados Aberta

Software de
Controle

Hardware PC Padro
ou Embedded

S.O. de Mercado
(WNT, CE, QNX,
Vx Works, UNIX,
LINUX, etc...)

Rede de I/O Aberta

I/O de Mercado

17008472

uma soluo Soft Logic baseada na arquitetura PC


58584-00

13

PC Based Control
Em 1992, o IEC publicou a norma IEC 61131, a qual
estabelece padres para Controladores Programveis
A norma 61131 dividida em 5 partes
n 61131-1 - Informaes gerais
n 61131-2 - Requisitos de hardware
n 61131-3 - Linguagens de programao
n 61131-4 - Guia de orientao ao usurio
n 61131-5 - Comunicao
Outras trs partes esto em fase de elaborao
n 61131-6 - Comunicao via Fieldbus
n 61131-7 - Programao utilizando Lgica Fuzzy
n 61131-8 - Guia para implementao das linguagens
58584-00

14

Norma IEC 61131


Combina linguagens de SDCD e CLP numa soluo nica
Objetivo: tornar SW de CLP modular, reutilizvel e portvel

Modelo de Estruturao do Software


58584-00

15

Norma IEC 61131


Definies
Configurao
Corresponde ao sistema do controlador programvel,
composto pelos diversos recursos
n Recurso
Corresponde a uma funo para processamento de sinais
e suas funes para Interface Homem-Mquina (IHM) e
interface com sensores e atuadores
n Tarefa
Elemento para controle de execuo peridica ou
engatilhada (condies de disparo = eventos) de um
grupo de unidades
n Unidade de organizao de programa (POU)
Uma funo, bloco de funo ou programa
n

58584-00

16

Norma IEC 61131


Definies
Varivel global
Varivel cujo escopo global
n Caminho de acesso
Associao de um nome simblico para a varivel a fim
de associar as entradas/sadas fsicas ao SW de
processamento de varivel
n Endereamento hierrquico
Representao direta de um elemento de dado como
membro de uma hierarquia fsica ou lgica
n Tipos de dados
Conjunto de valores + conjunto de aes permitidas
(procedimentos)
n

58584-00

17

Norma IEC 61131


Mecanismo de execuo
CLP tradicional

L
entradas

Executa
programa

CLP IEC 61131


Task 1

peridica

perodo_1

Task 2

evento

event_id

Task 3

evento

event_id

peridica

perodo_N

...
Define
sadas

Task N

n
n

58584-00

Ambiente multitarefa
Usurios devem definir cada varivel
antes de us-la
18

Norma IEC 61131

Apesar do esforo estabelecido pela norma IEC 61131-3


para padronizao das linguagens de programao, alguns
aspectos da norma so dependentes da forma de
implementao
Empresas americanas no se preocupam muito com
normas, elas possuem poucos engenheiros, escolhem um
fornecedor e ficam ligadas a ele

58584-00

19

Open PLC

Controle baseado em PC
Soft PLC

Programao transportvel (IEC 61131-3)


PLCopen - Netherlands - 1992

Opennes implies more than open communication networks, it


also implies open software [The state of PLC - InTech - April - 96]

58584-00

20

Open PLC
PLC Open uma associao independente que promove
uma padronizao na implementao da norma IEC 61131-3
n Atuao
l Divulgao da norma
l Definio de interfaces comuns
l Certificao de produtos
n Testes de compatibilidade
l Base level
l Portability level
l Full compliance
n Recomendaes sobre utilizao da norma

58584-00

21

PLC x Open PLC


Caractersticas dos CLPs abertos baseados em PC
Maior velocidade que CLPs convencionais
n No h limite de quantidade de memria
n Maiores facilidades de comunicao via diversas
tecnologias de rede
n Mltiplas linguagens de programao (padro 61131-3)
n Incorpora todas as vantagens e funcionalidades dos PCs
convencionais
n

58584-00

22

PLC x Open PLC


Mercado para o CLP aberto hoje
Automobilstica
n Bebidas
n Alimentos
n Cigarros
n Farmacutica
n Predial
n Manufatura em geral
n

58584-00

23

PLC x Open PLC


Produtos Soft Logic (Control Engineering - Maro, 1999)
PC Control Vendors

PC Control Vendors
Company

Software

3S

CoDeSys

Strategy
Window s NT

Company
Mitsubishi Electric Automation

Software
MELsoft

Strategy
NT/Intime

ABB

Advant OCS

Window s NT, RTX

Moore Automation

APACS Process Control System NT

Adept Technology

AdeptWindow s

NT, 95

National Instruments

Bridgeview , Labview RT

NT, NT w ith PC board

Aerotech Inc.

U500, U600

95, NT

NemaSoft

OpenControl, Paragon

NT/Hyperkernel, NT

Afcon

P-CIM

NT

New Monics

PERC Virtual Machine

NT/RTX/Java

AlterSys

QNX

Object Automation

OAenterprise 98

NT/RTX/Java

Apilogic

Soft logic/DCS, solution PCP


Virgo
Apigraf

NT

OMNX

OMNX Direct Control

NT/QNX

ASAP

ASIC-300

NT

Omron

Sysmac

PLC on PC board

Aspen Technology

Plantelligence

NT

Opto 22

OptoRuntimePC, Factory Floor

NT

Cegelec

Alspa P3200 for utilities

Java

OSI

PI System

NT

Ci Technologies

Citect

NT

PC Soft

WizPLC, WizDCS

NT/RTX, NT

CJ International

IsaGraf

NT

PEP Modular Computers

Smart2 PLC

NT

Comdale Technologies

Expert systems

QNX

PharLap

Real-time ETS kernel for NT

Control Systems
International
CTC Parker

Field Control System

QNX

Phoenix Contact

Remote Field Controller

Real-time systems,
tools
Rtos, CE (in beta)

MachineLogic

DOS/RTX

Cutler-Hammer/Eaton

NetSolver

NT/INtime

Cyberonics

HMI & PLCs for process control

Java

Elsag Bailey

Symphony, Freelance 2000

NT, NT

Fisher-Rosemount

PlantWeb

NT

Foxboro

FoxDMM

Java

GE Fanuc

PC Control

NT

Hew lett-Packard

Chai

Java

Honeyw ell/MicroSw itch

Smart Control

NT/INtime

Honeyw ell IAC

Total Plant Solution

NT

Iconics

Genesis32

NT

Imagination Systems

Hyperkernel

Real-time system

Integrated Systems Inc.

Psos, psos +

Real-time system, tools

Intellution

FIX Paradym-31

NT (RTX), CE

Intrinsyc Softw are


Intuitive Technology

Integration Expert for Window s


NT
Web@aGlance server

NT, CE Development
Tools
Java

Klopper & Wiege

ProConOS

NT w ith real-time kernel

Labtech

Control, Control Pro

DOS, Windows 3.1, 95

Lynx

LynxOS

Rtos

MDSI

Open CNC

NT w ith RTX/QNX

58584-00

QNX Softw are Systems

QNX

Real-time systems

Radisys

INtime

Real-time systems

Rockw ell Automation

Allen-Bradley SoftLogix 5

NT

Rockw ell Softw are

ControlPak

NT

Schneider Automation

TSX Premium

PLC on PC board

Sequentia

OpenBatch

NT

Siemens

WinAC, MP270

NT, CE

Softing

4 Control

NT

SoftPLC

SoftPLC

Embedded RTOS/Java

Steeplechase

Visual Logic Controller

NT/Intime

TA Engineering

AIMAX

NT

Think & Do

Think & Do

NT/RTX

Total Control Products

Framew orX

NT/CE/RTX

VenturCom

RTX

Real-time systems

VMIC

IOWorks NT/VxWorks

NT/Rtos

Westinghouse PC

Java

Wind River Systems

Web Access View Enabler


(WAVE)
VxWorks

Real-time systems

Wonderw are

FactorySuite 2000, InControl

NT, CE

Yokogaw a Industrial
Automation

Centum CS 1000

NT

24

IEC 61131-3

Caractersticas
da Norma
IEC 61131-3

58584-00

25

Caractersticas
Conveno de nomes
Endereamento simblico

Endereamento fsico

DIGESTOR_1
SEQUNCIA
FATOR_H
CONTROLE_TEMP

DIGESTOR_1
DIGESTOR_1.SEQUNCIA
DIGESTOR_1.SEQUNCIA.FATOR_H
DIGESTOR_1.SEQUNCIA.FATOR_H.CONTROLE_TEMP
DIGESTOR_1.SEQUNCIA.FATOR_H.CONTROLE_TEMP.TIC101_VP
58584-00

17051021

26

Caractersticas
Conveno de nomes
Tornam o banco de dados e a estratgia de controle mais
claros e perceptveis
n Segue hierarquia top-down
n Nome embutido no nvel de recurso, o computador ou
sistema externo solicita dado pelo nome ao invs de
buscar endereo
n Facilita integrao com outros sistemas: administrativo,
gesto
n Facilita e exportao da base de dados
n Uso de Literais: -12, 0.45, 2#1010, FALSE, TRUE,
Time#14ms
n Etc
n

58584-00

27

Caractersticas
Tipos de dados
Elementares (Bool, INT, Real, Time, Date, String, Byte,
Word, etc )
n Genricos
l ANY
l ANY - NUM
l ANY - BIT
l STRING
l ANY - DATE
l TIME
l DERIVADOS
n Derivados (enumerated, subrange, array, struct)
n

58584-00

28

Caractersticas
Variveis (Declarao, Atribuio de tipos, Inicializao)
n

Elemento simples
Consiste de um nico elemento de um tipo de dado
Ex:
%QX75 e %Q75
Bit de sada 75
%IW215
Palavra de entrada 215
%IW2.5.7.1 (hierrquico)
Canal 1, mdulo 7, rack 5,
barramento 2

Mltiplos elementos
l Array - Coleo de dados do mesmo tipo
Ex: Vetores, matrizes
l Structure - Estrutura de dados (Registro)

58584-00

29

Caractersticas
Exemplo de variveis

58584-00

VAR
AT %IW6.2 : WORD;
AT %MW6
: INT ;
END_VAR
VAR_GLOBAL
LIM_SW_S5 AT %IX27 : BOOL;
TEMPERATURE AT %IW28: INT;
END_VAR
VAR
INARY AT %IW6 : ARRAY [0..9] OF INT;
END_VAR

Declarao direta (posio


de memria)

VAR
CONDITION_RED : BOOL;
IBOUNCE : WORD ;
AWORD, BWORD, CWORD : INT;
MYSTR: STRING[10] ;
END_VAR
TYPE PRESSURE_SENSOR :
STRUCT
INPUT : REAL := 2.0 ;
STATUS : BOOL := 0 ;
CALIBRATION : DATE := DT#1999-05-20 ;
HIGH_LIMIT : REAL := 30.0 ;
ALARM_COUNT : INT := 0 ;
END_STRUCT
END_TYPE

Alocao dinmcia de
variveis simblicas

Declarao de variveis
simblicas como alocao
direta
Declarao de array com
alocao direta

Declarao do tipo de
dados e inicializao de
variavl structure

30

Caractersticas
Controle de Tarefas
n Engatilhada (Single)
n Peridica (Interval)
n Prioridades (Preemptivo ou no)
Graphical representation of TASKs within a RESOURCE
TASKNAME
+---------+
| TASK
|
BOOL---|SINGLE
|
TIME---|INTERVAL |
UINT---|PRIORITY |
+---------+
Graphical representation of periodic TASKs
SLOW_1
FAST_1
+---------+
+---------+
| TASK
|
| TASK
|
|SINGLE
|
|SINGLE
|
t#20ms---|INTERVAL |
t#10ms---|INTERVAL |
2---|PRIORITY |
1---|PRIORITY |
+---------+
+---------+
Graphical representation of non-periodic TASK
INT_2
+---------+
| TASK
|
%IX2---|SINGLE
|
|INTERVAL |
1---|PRIORITY |
+---------+

58584-00

Graphical association with PROGRAMs (within RESOURCEs)


RESOURCE STATION_2
P1
P4
+-------+
+-------+
|
F
|
|
H
|
|
|
|
|
|
|
|
|
+-------+
+-------+
| PER_2 |
| INT_2 |
+-------+
+-------+
END_RESOURCE
Graphical association with function blocks
(within PROGRAMs inside RESOURCEs)
RESOURCE STATION_1
P2
+------------------------------------------------+
|
G
|
|
FB1
FB2
|
|
+------+
+------+
|
|
|
A |
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+------+
+------+
|
|
|SLOW_1|
|FAST_1|
|
|
+------+
+------+
|
+------------------------------------------------+
END_RESOURCE

31

POU
Unidades de Organizao de Programas (POU)
n Funo (Function)
n Bloco de Funo (Function Block)
n Programa (Program)
Caractersticas
n Fornecidas pelo fabricante (software, equipamentos, etc )
n Desenvolvidas pelo usurio
n No recursivas

58584-00

32

POU
Funo
Deve ser declarada
n Quando executada produz um elemento de dado simples
ou mltiplo (array ou structure)
n Pode ser invocada nas linguagens textuais como
operando
n No possui memria de estados. Isto , invocar uma
funo com os mesmos argumentos (parmetros de
entrada), sempre produzir o mesmo valor (sada)
n Type overloading: a funo pode trabalhar com todos os
tipos de dados de um tipo genrico
n Uma funo pode ser utilizada na declarao de outra
POU
n

58584-00

33

POU
Exemplo de funo

Example
+-----+
| ADD |
B---|
|---A
C---|
|
D---|
|
+-----+
A := ADD(B,C,D);
+-----+
| SHL |
B---|IN
|---A
C---|N
|
+-----+
A := SHL(IN := B,N := C);

58584-00

Explanation
Graphical use of ADD function
(No formal parameter names)

Textual use of ADD function


Graphical use of SHL function
(Formal parameter names)

Textual use of SHL function

34

POU
Funes Padres
Classe
Converso de tipo

Numricas
Aritmticas
Deslocamento de Bit

SHL, SHR, ROR, ROL

Booleanas

AND (&), OR (>=1), XOR, NOT


SEL, MAX, MIN, LIMIT, MUX

Seleo
Comparao
String
Tempo

Enumeraes

58584-00

Funes
*_TO_**, TRUNC,
BCD_TO_**,
*_TO_BCD
ABS, SQRT, LN, LOG, EXP, SIN, COS,
TAN, ASIN, ACOS, ATAN
ADD (+), MUL (*), SUB (-), DIV (/),
MOD, EXPT (**), MOVE (:=)

GT (>), GE (>=), EQ (=),


LE (<=), LT (<), NE (<>)
LEN, LEFT, RIGHT, MID, CONCAT,
INSERT, DELETE, REPLACE, FIND
ADD (+), SUB (-), MUL (*), DIV (/),
CONCAT,
DATE_AND_TIME_TO_TIME_OF_DAY,
DATE_AND_TIME_TO_DATE
SEL, MUX, EQ, NE

35

POU
Funes Derivadas
Podem ser criadas usando-se
l Funes padres ou derivadas
l Tipos de dados padres ou derivados
l Qualquer uma das linguagens IL, ST, LD, ou FBD
l Linguagens adicionais

58584-00

36

POU
Funes Derivadas - Exemplo
A textual form of the declaration of this function is:

An equivalent graphical declaration of function WEIGH is:

FUNCTION WEIGH : WORD


(* BCD encoded *)
VAR_INPUT (* "EN" input is used to indicate "scale ready" *)
weigh_command : BOOL;
gross_weight : WORD ; (* BCD encoded *)
tare_weight : INT ;
END_VAR

+-------------------------+
|
WEIGH
|
BOOL---|EN
ENO|---BOOL
BOOL---|weigh_command
|---WORD
WORD---|gross_weight
|
INT----|tare_weight
|
+-------------------------+

(* Function Body *)
END_FUNCTION

(* Implicit "ENO" *)

The body of function WEIGH in the IL language is:

WEIGH_NOW:

LD
JMPC
ST
RET
LD
BCD_TO_INT
SUB
INT_TO_BCD
ST

weigh_command
WEIGH_NOW
ENO

(* No weighing, 0 to "ENO" *)

gross_weight
tare_weight
(* Return evaluated weight *)
WEIGH

The body of function WEIGH in the ST language is:


IF weigh_command THEN
WEIGH := INT_TO_BCD (BCD_TO_INT(gross_weight) - tare_weight);
END_IF ;

58584-00

The function body in the LD language is:


|
+--------+
+--------+
|
|
| BCD_ | +-------+ | INT_ |
|
| weigh_command | TO_INT | | SUB | | TO_BCD |
ENO
|
+-------| |-----|EN ENO|--|EN ENO|---|EN ENO|----( )------+
|
|
| |
| |
|
|
| gross_weight--|
|--|
|---|
|--WEIGH
|
|
+--------+ |
| +--------+
|
| tare_weight---------------|
|
|
|
+-------+
|

The function body in the FBD language is:


+--------+
+--------+
| BCD_ | +-------+ | INT_ |
| TO_INT | | SUB | | TO_BCD |
weigh_command---|EN ENO|---|EN ENO|---|EN ENO|---ENO
gross_weight----|
|---|
|---|
|--WEIGH
+--------+ |
| +--------+
tare_weight------------------|
|
+-------+

37

POU
Funes Derivadas Exemplo IsaGraf
Representao grfica

FUNO
BRUTO
TARA

PESO

Lista de Instrues

LD Bruto
SUB Tara
ST Peso_IL

Texto Estruturado

Peso_ST := Bruto - Tara

58584-00

38

POU
Funes Derivadas Exemplo IsaGraf
Ladder
Habilita

Concluida

en

eno

Bruto in1

q Peso_LD

Tara in2

Function Block

Bruto
Tara

58584-00

IN1
IN2

Peso_FBD

39

POU
Bloco de Funo
Deve ser declarado
n Quando executado produz um ou mais valores
n Instanciao: vrias instncias (identificador + estrutura
de dados) podem ser criadas
n Possui memria de dados: todas as variveis internas e
de sada so mantidas entre as execues de um bloco
de funo
n Pode ser invocado pelas linguagens textuais
n Um bloco de funo pode ser usado na declarao de
outro bloco de funo ou programa (instanciao)
n

58584-00

40

POU
Exemplo de bloco de funo
FUNCTION_BLOCK DEBOUNCE
(*** External Interface ***)
VAR_INPUT
IN : BOOL ;
DB_TIME : TIME := t#10ms ;
END_VAR
VAR_OUTPUT OUT : BOOL ;
ET_OFF : TIME ;
END_VAR
VAR DB_ON : TON ;
DB_OFF : TON ;
DB_FF : SR ;
END_VAR

(* Default = 0 *)
(* Default = t#10ms *)
(* Default = 0 *)
(* Default = t#0s *)
(** Internal Variables **)
(** and FB Instances **)

(** Function Block Body **)


DB_ON(IN := IN, PT := DB_TIME) ;
DB_OFF(IN := NOT IN, PT:=DB_TIME) ;
DB_FF(S1 :=DB_ON.Q, R := DB_OFF.Q) ;
OUT := DB_FF.Q ;
ET_OFF := DB_OFF.ET ;
END_FUNCTION_BLOCK

58584-00

FUNCTION_BLOCK
(** External Interface **)
+---------------+
|
DEBOUNCE
|
BOOL---|IN
OUT|---BOOL
TIME---|DB_TIME ET_OFF|---TIME
+---------------+
(** Function Block Body **)
DB_ON
DB_FF
+-----+
+----+
| TON |
| SR |
IN----+------|IN Q|-----|S1 Q|---OUT
| +---|PT ET| +--|R
|
| |
+-----+ | +----+
| |
|
| |
DB_OFF |
| |
+-----+ |
| |
| TON | |
+--|--O|IN Q|--+
DB_TIME--+---|PT ET|--------------ET_OFF
+-----+
END_FUNCTION_BLOCK

41

POU
Blocos de Funo Padres
Biestveis
+-----+
| SR |
BOOL---|S1 Q1|---BOOL
BOOL---|R
|
+-----+

+-----+
| RS |
BOOL---|S Q1|---BOOL
BOOL---|R1
|
+-----+

Deteco de Borda
+--------+
| R_TRIG |
BOOL---|CLK
Q|---BOOL
+--------+

+--------+
| F_TRIG |
BOOL---|CLK
Q|---BOOL
+--------+

Comunicao (IEC 61131-5)


Conexo
CONNECT
Verificao de Dispositivos STATUS, USTATUS
Aquisio de Dados
READ, USEND, URCV
Controle
WRITE, SEND, RCV
Alarmes
NOTIFY, ALARM

Contagem
+-----+
| CTU |
BOOL--->CU Q|---BOOL
BOOL---|R
|
INT---|PV CV|---INT
+-----+
+------+
| CTUD |
BOOL--->CU QU|---BOOL
BOOL--->CD QD|---BOOL
BOOL---|R
|
BOOL---|LD
|
INT---|PV CV|---INT
+------+

+-----+
| CTD |
BOOL--->CD Q|---BOOL
BOOL---|LD
|
INT---|PV CV|---INT
+-----+

Temporizao
+-------+
| TON |
BOOL---|IN
Q|---BOOL
TIME---|PT
ET|---TIME
+-------+
+-------+
| TP
|
BOOL---|IN
Q|---BOOL
TIME---|PT
ET|---TIME
+-------+

58584-00

+-------+
| TOF |
BOOL---|IN
Q|---BOOL
TIME---|PT
ET|---TIME
+-------+
+-------+
| RTC |
BOOL---|IN
Q|---BOOL
DT-----|PDT CDT|-----DT
+-------+

42

POU
Blocos de Funo Derivados
Podem ser criados usando-se
n Blocos de funo padres ou derivados
n Tipos de dados padres ou derivados
n Qualquer uma das linguagens: IL, ST, LD, FBD ou SFC
n Linguagens adicionais

58584-00

43

POU
Blocos de Funo Derivados
Exemplo

+----------------------+
|
FWD_REV_MON
|
BOOL---|AUTO
KLAXON|---BOOL
BOOL---|ACK
FWD_REV_ALRM|---BOOL
BOOL---|AUTO_FWD
FWD_CMD|---BOOL
BOOL---|MAN_FWD
FWD_ALRM|---BOOL
BOOL---|MAN_FWD_CHK
|
TIME---|T_FWD_MAX
|
BOOL---|FWD_FDBK
|
BOOL---|AUTO_REV
REV_CMD|---BOOL
BOOL---|MAN_REV
REV_ALRM|---BOOL
BOOL---|MAN_REV_CHK
|
TIME---|T_REV_MAX
|
BOOL---|REV_FDBK
|
+----------------------+

58584-00

|
FWD_MON
|
|
+---------------+
|
| AUTO_FWD
| CMD_MONITOR |
|
+--| |---------|AUTO_CMD
CMD|
|
| AUTO
|
|
FWD_ALRM |
+--| |---------|AUTO_MODE ALRM|-------( )---+
| MAN_FWD
|
|
|
+--| |---------|MAN_CMD
|
|
| MAN_FWD_CHK |
|
|
+--| |---------|MAN_CMD_CHK
|
|
| FWD_FDBK
|
|
|
+--| |---------|FDBK
|
|
| ACK
|
|
|
+--| |---------|ACK
|
|
|
|
|
|
| T_FWD_MAX---|T_CMD_MAX
|
|
|
+---------------+
|
|
|
|
REV_MON
|
|
+---------------+
|
| AUTO_REV
| CMD_MONITOR |
|
+--| |---------|AUTO_CMD
CMD|
|
| AUTO
|
|
REV_ALRM |
+--| |---------|AUTO_MODE ALRM|-------( )---+
| MAN_REV
|
|
|
+--| |---------|MAN_CMD
|
|
| MAN_REV_CHK |
|
|
+--| |---------|MAN_CMD_CHK
|
|
| REV_FDBK
|
|
|
+--| |---------|FDBK
|
|
| ACK
|
|
|
+--| |---------|ACK
|
|
|
|
|
|
| T_REV_MAX---|T_CMD_MAX
|
|
|
+---------------+
|
|
|
|
ACK
FWD_REV_ALRM |
+-----| |--------------------------(R)-------+
|
|
| FWD_MON.CMD
REV_MON.CMD
FWD_REV_ALRM |
+-----| |-----------| |------------(S)-------+
|
|
| FWD_MON.CMD
FWD_REV_ALRM
FWD_CMD
|
+-----| |-----------|/|-------------( )------+
|
|
| REV_MON.CMD
FWD_REV_ALRM
REV_CMD
|
+-----| |-----------|/|-------------( )------+
|
|
| FWD_REV_ALRM
KLAXON
|
+-----| |------+--------------------( )------+
|
|
|
| FWD_ALRM
|
|
+-----| |------+
|
|
|
|
| REV_ALRM
|
|
+-----| |------+
|
|
|

FWD_MON
+---------------+
| CMD_MONITOR |
AUTO_FWD----------|AUTO_CMD
CMD|--+
AUTO---------+----|AUTO_MODE ALRM|--|-------FWD_ALRM
MAN_FWD------|----|MAN_CMD
| |
MAN_FWD_CHK--|----|MAN_CMD_CHK
| |
FWD_FDBK-----|----|FDBK
| |
ACK----------|-+--|ACK
| |
T_FWD_MAX----|-|--|T_CMD_MAX
| | +---+
| | +---------------+ +--| & |-------------+
| |
+--|
|
|
| |
REV_MON
| +---+
|
| | +---------------+ |
|
| | | CMD_MONITOR | |
|
AUTO_REV-----|-|--|AUTO_CMD
CMD|--+
|
+-|--|AUTO_MODE ALRM|---------REV_ALRM
|
MAN_REV--------|--|MAN_CMD
|
|
MAN_REV_CHK----|--|MAN_CMD_CHK
|
|
REV_FDBK-------|--|FDBK
|
|
+--|ACK
|
|
T_REV_MAX---------|T_CMD_MAX
|
|
+---------------+
|
+------------------------------------------------+
|
FWD_REV_FF
|
+------+
|
| SR |
+-----|S1 Q1|--+----------------FWD_REV_ALRM
ACK---|R
| |
+------+ |
+-----+
+---| >=1 |------KLAXON
FWD_MON.ALRM-------------|---|
|
REV_MON.ALRM-------------|---|
|
|
+-----+
|
|
+---+
+--O| & |--------FWD_CMD
FWD_MON.CMD--------------|---|
|
|
+---+
|
|
+---+
+--O| & |--------REV_CMD
REV_MON.CMD------------------|
|
+---+

44

POU
Programa
um agrupamento lgico dos elementos necessrios
todas as linguagens de programao, para o processamento
de sinais desejado
Deve ser declarado
n Permite a instanciao somente dentro de um recurso
n

58584-00

45

POU
Exemplo de programa

CONFIGURATION AGV_CONTROL
RESOURCE AGV_PROC: SMALL_PC
AGV_1
+--------------------+
|
AGV
|
%IX1---|SINGLE_PB FWD_MOTOR|---%QX1
%IX2---|DOUBLE_PB REV_MOTOR|---%QX2
%IX3---|LEFT_LS
|
%IX4---|RIGHT_LS
|
+--------------------+

58584-00

+----------------------------+

+===+===+
(* Main sequence *)

|START|

+===+===+

+--------------------*----------+
|
|
|

+ READY.X & SINGLE_PB


+ READY.X & DOUBLE_PB
|
|
|

+--+---+ +-+-----+
+---+----+ +-+-----+

SINGLE+-NCYCLE
DOUBLE_1+--NCYCLE

+--+---+ +-+-----+
+---+----+ +-+-----+
|
|
|

*---------+
+ DONE.X

+ DONE.X & DOUBLE_PB

+---------------------+
|
|
|

+-----+-----+

+ DONE.X & NOT DOUBLE_PB DOUBLE_WAIT

+-----+-----+
|
|
|

+ READY.X
|
|
|

+---+----+ +-+-----+

DOUBLE_2+--NCYCLE

+---+----+ +-+-----+
|
|
|

+ DONE.X
|
|
|

+---------------------+---------+

+----+-----+

NON_REPEAT

+----+-----+

+NOT(SINGLE_PB OR DOUBLE_PB)

+-----------------------------+

46

Linguagens
Linguagens de Programao
Textuais
l IL - Lista de Instrues
l ST - Texto Estruturado
n Grficas
l LD - Ladder
l FBD - Diagrama de Blocos de Funo
n Organizao de Programas
l SFC - Funes Grficas de Seqenciamento
n Outras (dependente do produto)
l Flow Chart
lC
l Etc.
n

58584-00

47

Linguagens

Batch e estruturao geral do programa


(Sequencial Function Charts)
Funes Grficas de Sequenciamento (SFC)
Texto
Estruturado

Lista de
Instrues

Ladder

Blocos de
Funo

(ST)

(IL)

(LD)

(FBD)

TEXTUAIS

Mais
flexvel

(Batch
ISA88)

GRFICAS

Controle lgico
e sequencial

Controle lgico
e regulatrio

Baixo nvel
Otimizao ou pequenas aplicaes

58584-00

48

Linguagens
Programao Convencional de CLPs
Lgica E

Lgica OU

%I1
%I1
%I2
%I3

%Q1

Memria RS

Reset

%I2

Set
%Q1

58584-00

%I3

%Q1

Lgica OU Exclusivo
%I1

%I2

%Q1
%Q1

49

Linguagens
Programao Convencional de CLPs
TEMPORIZADOR

BLOCO RS

TON

RS

LIGA

IN

TEMPO

PT

ET

SADA

SET
RESET

Set
Reset

Q1

%Q1

CONTADOR
CTU
PULSO

CU

RESET

VALOR

PV

58584-00

CV

SADA

CONTAGEM

50

Linguagens
IL - Lista de Instrues
Caractersticas
n Linguagem de Baixo Nvel
n Semelhante ao Assembler
n Recomendada para pequenas aplicaes ou otimizao
de cdigo
n Linguagem bsica para exportao de programas
(Portabilidade)

58584-00

51

Linguagens
IL - Lista de Instrues
Estrutura
Label
START:

58584-00

Operator

Operand

Comment

LD

%IX1

(* PUSH BUTTON *)

ANDN

%MX5

(* NOT INHIBITED *)

ST

%QX2

(* FAN ON *)

52

Linguagens
IL - Instruction List
Operadores para Blocos de
Funo Padres

Operadores
Operator

Modifiers

Operand

LD
ST
S
R
AND
&
OR
XOR

N
N
Note 3
Note 3
N, (
N, (
N, (
N, (

Note 2
Note 2
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Set current result equal to operand


Store current result to operand location
Set Boolean operand to 1
Reset Boolean operand to 0
Boolean AND
Boolean AND
Boolean OR
Boolean Exclusive OR

ADD
SUB
MUL
DIV
GT
GE
EQ
NE
LE
LT

(
(
(
(
(
(
(
(
(
(

Note
Note
Note
Note
Note
Note
Note
Note
Note
Note

Addition
Subtraction
Multiplication
Division
Comparison: >
Comparison: >=
Comparison: =
Comparison: <>
Comparison: <=
Comparison: <

JMP
CAL
RET
)

C, N
C, N
C, N

58584-00

2
2
2
2
2
2
2
2
2
2

LABEL
NAME

Semantics

Operators
S1,R
S,R1
CLK
CLK
CU,R,PV
CD,LD,PV
CU,CD,R,LD,P
V
IN,PT
IN,PT
IN,PT

FB Type
SR
RS
R_TRIG
F_TRIG
CTU
CTD
CTUD
TP
TON
TOF

Jump to label
Call function block (note 4)
Return from called function or function block
Evaluate deferred operation

53

Linguagens
IL - Instruction List - Exemplos IsaGraf
AND
LD
%IX0.1
AND %IX0.2
ANDN %IX0.3
ST %QX1.1
Memria RS
LDN Reset
AND( Set
OR %QX1.1
)
ST %QX1.1

58584-00

OR
LD %IX0.1
OR %IX0.2
ORN %IX0.3
ST %QX1.1
Temporizador TON
LD Liga
ST Timer.in
LD Tempo
ST Timer.pt
CAL Timer
LD Timer.q
ST Saida

XOR
LD %IX0.1
XOR %IX0.2
ST %QX1.1
Contador UP

LD Pulso
ST Cont1.cu
LD Reset
ST Cont1.reset
LD Valor
ST Cont1.pv
CAL Cont1
LD Cont1.Q
ST Saida
54

Linguagens
ST - Texto Estruturado
Caractersticas
n Linguagem de alto nvel
n Semelhante ao Pascal (ISO 7185)
n Ideal para
l Tomada de decises
l Declaraes (Variveis, POUs, Configuraes, etc.)
l Clculos
l Implementao de algoritmos
l Definio de aes (SFC)
l Utilizao de literais
l Criao de blocos
l Etc.

58584-00

55

Linguagens
ST - Structured Text
Operadores
Operation

Symbol

Parenthesization

(expression)

Function evaluation

identifier (argument
list)

Examples:

LN(A), MAX(X,Y), etc.

Exponentiation
(Note 2)

**

Negation

Complement

NOT

Multiply

Divide

Modulo

MOD

Add

Subtract

Comparison

< , > , <= , >=

Equality

Inequality

<>

Boolean AND

&

Boolean AND

AND

Boolean Exclusive
OR

XOR

Boolean OR

OR

58584-00

Declaraes
Precedence
HIGHEST

Statement type/Reference

Assignment
Function block Invocation
and FB output usage
RETURN
IF

CASE

FOR

Examples
A := B;

CV := CV+1; C := SIN(X);

CMD_TMR(IN:=%IX5, PT:=T#300ms) ;
A := CMD_TMR.Q ;
RETURN ;
D := B*B - 4*A*C ;
IF D < 0.0 THEN NROOTS := 0 ;
ELSIF D = 0.0 THEN
NROOTS := 1 ;
X1 := - B/(2.0*A) ;
ELSE
NROOTS := 2 ;
X1 := (- B + SQRT(D))/(2.0*A) ;
X2 := (- B - SQRT(D))/(2.0*A) ;
END_IF ;
TW := BCD_TO_INT(THUMBWHEEL);
TW_ERROR := 0;
CASE TW OF
1,5: DISPLAY := OVEN_TEMP;
2: DISPLAY := MOTOR_SPEED;
3: DISPLAY := GROSS - TARE;
4,6..10: DISPLAY := STATUS(TW - 4);
ELSE DISPLAY := 0 ;
TW_ERROR := 1;
END_CASE;
QW100 := INT_TO_BCD(DISPLAY);
J := 101 ;
FOR I := 1 TO 100 BY 2 DO
IF WORDS[I] = 'KEY' THEN
J := I ;
EXIT ;
END_IF ;
END_FOR ;

WHILE

REPEAT

LOWEST

J := 1;
WHILE J <= 100 & WORDS[J] <> 'KEY' DO
J := J+2 ;
END_WHILE ;
J := -1 ;
REPEAT
J := J+2 ;
UNTIL J = 101 OR WORDS[J] = 'KEY'
END_REPEAT ;

EXIT

EXIT ;

Empty Statement

56

Linguagens
ST - Structured Text - Exemplos IsaGraf
AND
OR
XOR
Memria RS
Temporizador TON

ContadorUP

58584-00

%QX1.1:= %IX0.1 AND %IX0.2 AND Not %IX0.3;


%QX1.1:=%IX0.1 OR %IX0.2 OR NOT %IX0.3;
%QX1.1:=%IX0.1 XOR %IX0.2;
%QX1.1:= NOT Reset AND (Set OR %QX1.1);
Timer (Liga, Tempo);
Saida2:= Timer.q;
Cont2 (Pulso, Reset, Valor);
Saida2:= Cont2.q;
Resultado:= Cont2.cv;

57

Linguagens
Linguagens Grficas - Elementos comuns

58584-00

58

Linguagens
LD - Ladder Diagram
Caractersticas
Baseada no diagrama eltrico de contatos
n Adequada para controle discreto, combinacional e
seqencial (intertravamento)
n Utiliza blocos de funo para controle regulatrio e
funes especiais
n

58584-00

59

Linguagens
LD - Ladder Diagram

58584-00

60

Linguagens
LD - Ladder Diagram Exemplos IsaGraf
AND
%IX0.1 %IX0.2 %IX0.3 %QX1.3

OR

%IX0.1

%QX1.3

%IX0.2
%IX0.3

XOR
%IX0.1

=1
in1
q

%QX1.3

%IX0.2 in2

58584-00

61

Linguagens
LD - Ladder Diagram Exemplos IsaGraf
Memria
RS

Tempor.
TON

Reset

Set
%QX1.3

Liga
IN

Pulso

Saida3

TON
Tempo PT

Contador
UP

%QX1.3

Q
ET ET

CTU
CU
Q

Saida3

Reset RESETCV Resultado


Valor PV

58584-00

62

Linguagens
FBD - Diagrama de Blocos Funcionais
Caractersticas
n Baseada nos diagramas de circuitos (Diagrama Lgico)
n Adequada para controle discreto, seqencial, regulatrio,
etc.
n Representao de fcil interpretao
n Blocos expansveis em funo do no de parmetros de
entrada
n So disparados por parmetros externos, enquanto os
algoritmos internos permanecem escondidos (= OOP)
n Blocos encapsulam o algoritmo, destacando o fluxo de
informaes e o processamento de sinais
Bloco = Funo ou Bloco de Funo
58584-00

63

Linguagens
FBD - Function Block Diagram

58584-00

64

Linguagens
FBD - Function Block Diagram Exemplos IsaGraf
AND

&
%IX0.1
%IX0.2
%IX0.3

%QX1.4

OR

>=1
%IX0.1
%IX0.2
%IX0.3

%QX1.4

XOR

=1
%IX0.1
%IX0.2

58584-00

IN1
IN2

%QX1.4

65

Linguagens
FBD - Function Block Diagram Exemplos IsaGraf
Memria
RS

&
Reset
%QX1.4
>=1
Set
%QX1.4

Tempor.
TON

Contador
UP

58584-00

TON
Liga
Tempo

IN

PT

ET

Saida4
ET

CTU
Pulso
Reset
Valor

CU
RESET
PV

Q
CV

Saida4
Resultado

66

Linguagens
SFC - Funes Grficas de Seqenciamento
Caractersticas
Baseada no Grafcet e Redes de Petri Formulao
Matemtica
n Padro para programao de processos Batch ISA
SP88
n Adequada para
l Estruturao de Programas e Blocos de Funo
l Controle seqencial Receitas e Seqenciamento
Discreto
l Controle de estados Mquina de Estados Finitos e
Algoritmos
l Tomadas de deciso rvore de decises
n Representao de fcil interpretao
n Rastreabilidade de eventos
n

58584-00

67

Linguagens
SFC - Funes Grficas de Seqenciamento
Permite reduzir o esforo computacional
n Facilidade de diagnstico
n Elementos de programao
l Passo: estado do programa onde as aes so
executadas
l Transio: condio pela qual o programa muda de
estado, passando de um ou mais passos antecessores
para um ou mais passos sucessores
l Ao: atividade de controle executada num
determinado passo. Pode ser configurada em qualquer
uma das 5 linguagens
l Ramificao: permite gerar divergncia e
convergncia de seqncias do programa
n

58584-00

68

Linguagens
SFC - Sequential Function Chart
P

PASSO

TRANSIO T
START
AO A
RAMIFICAO R
L
T

LINK

L
P
A

CARREGAMENTO DE
MATRIAPRIMA

(FUNO DE
LGICA LADDER)

L
T

R
P

CARREGAMENTO DE
LIXVIA

58584-00

A
P
GERAO
DE VAPOR

( BLOCOS DE
FUNES )

69

Linguagens
SFC - Sequential Function Chart

58584-00

70

Linguagens
SFC - Sequential Function Chart Exemplo IsaGraf
1

(* initialize *)

(* lead sequence *)
blead & not (bflash) & not (brandom);
1

(* flash sequence *)
bflash & not (blead) & not (brandom);
101

(* start lead sequence *)


LEAD (S);
ACTION (P) :
sequence := 'Lead';
END_ACTION;

101

not (blead);
2

201

(* start flash sequence *)


FLASH (S);
ACTION (P) :
sequence := 'Flash';
END_ACTION;

201

not (bflash);
102

(* kill lead sequence *)


LEAD (R);

(* random sequence *)
brandom & not(blead) & not (bflash);

102

103

(* start random sequence *)


RANDOM (S);
ACTION (P) :
sequence := 'Random';
END_ACTION;
not (brandom);

202

(* kill flash sequence *)


FLASH (R);

202

(* kill random sequence *)


RANDOM (R);

203

58584-00

71

Linguagens
Outras Linguagens - Flow Chart, C, Visual Basic, Etc
A norma permite a utilizao de linguagens adicionais
para declarao de funes ou blocos de funo,
devendo obedecer mesma forma de chamada e troca de
dados
n Utilizao bsica
l Codificao de algoritmos especiais/complexos
l Proteo de cdigo proprietrio
l Recursos de programao avanados
l Bibliotecas dedicadas
n Flow Chart Programming poder ser acrescentada
norma como linguagem padro
n

58584-00

72

Linguagens
Flow Chart Programming Exemplo IsaGraf

58584-00

73

Aplicao
Anlise do problema Usar metodologia da norma ISA SP 88

58584-00

74

Aplicao
Anlise do problema

58584-00

75

Exerccio
Exerccio: Implementar no IsaGraf a lgica de controle de um
chuveiro eltrico inteligente

58584-00

76

Exerccio
Lista de variveis do Processo
Digitais
n FS_Vazao_Baixa: Entrada da Chave de Fluxo
n SV_Valv_Agua: Sada para comando da Vlvula solenide
Analgicas
n LT_Nivel_Caixa: Entrada do Nvel da Caixa D'gua
n TT_Temp_Agua: Entrada da Temperatura da gua
n FCV_Vazao_Agua: Sada para controle da Vazo de gua
n PS_Chaveador: Sada para controle do Chaveador

58584-00

77

Exerccio
Lista de variveis para comando do Operador
Digitais
n ON_OFF: Entrada da chave principal
n Ligado: Sada para indicao do sistema funcionando
Analgicas
n SP_Vazao_Agua: Valor desejado da vazo de sada
n SP_Temperatura: Valor desejado da temperatura da gua

58584-00

78

Exerccio
Consideraes
Todas as variveis analgicas so do tipo inteiro, na faixa
de 0 a 100
n Se o nvel da caixa dgua reduzir a zero, a vlvula
solenide SV deve ser desligada at que o nvel volte
aumentar (restabelecimento)
n O Controlador PID poder ser utilizado conforme exemplo
existente no programa Controle
n O chuveiro consegue trabalhar na faixa de 25 a 50 C para
uma vazo de sada de 0 a 90 %
n

58584-00

79

Exerccio
Objetivo
Desenvolver a lgica de controle do chuveiro de forma a
atender s seguintes condies
Fazer o controle das funes do chuveiro conforme
comandos do operador
n Garantir o funcionamento do chuveiro dentro de condies
seguras
n Proteger o chuveiro contra
l Falta de gua
l Elevao da temperatura acima de 65 C
n Estabelecer a seqncia de ligamento e desligamento
seguro do chuveiro
n

58584-00

80

Dvidas ?

58584-00

81

Você também pode gostar