aula iec 61131-3

81
Aula IEC 61131-3 dezembro de 1999

Upload: drummerpedro

Post on 30-Aug-2014

103 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Aula IEC 61131-3

AulaIEC 61131-3

dezembro de 1999

Page 2: Aula IEC 61131-3

58584-00 2

O que é um CLP ?

É uma solução proprietária de HW e SW para aquisição dedados e controle de processos

CLP

Page 3: Aula IEC 61131-3

58584-00 3

CLP

Características básicas

n Sistema modularnHardware dedicado (CPU, memória, I/O, comunicação,

etc.)n Software fechado (S.O., comunicação, etc.)n Sistema de tempo realn Execução cíclica do aplicativo (CLP padrão)n Limitação da capacidade e dos recursos de HW e SW por

classe de produton Software aplicativo dependente do hardwarenAlta integração entre HW e SW aplicativo

Page 4: Aula IEC 61131-3

58584-00 4

CLP

Vantagens

n Grande aceitação do mercadon Facilidade de configuração / programaçãon Solução robusta de HW e SWn Alta confiabilidade (Redundância, Fail Safe, Troca a

quente, etc.)n Desempenho comprovadon Tecnologia sedimentada

Page 5: Aula IEC 61131-3

58584-00 5

CLP

Desvantagens

n Solução proprietária de HW e SWnCusto elevado dos módulos inteligentesnCusto elevado para expansãonRequer maior especialização / treinamento no produtonDificuldade de atualização e expansão de HWnCapacidade de processamento restrita em comparação

aos sistemas computacionais

Page 6: Aula IEC 61131-3

58584-00 6

Visão do Usuário (OMAC, 1994)

Dificuldades encontradas nos sistemas atuais

n Tecnologia proprietárian Política comercial (ditadura de preços)n Interfaces proprietáriasn Elevado custo para integraçãon Treinamento orientado ao produtonAlto custo para expansão

Page 7: Aula IEC 61131-3

58584-00 7

Visão do Usuário (OMAC)

Necessidades (CNC, Motion, Discret Control)

n Segurança, confiabilidade e robusteznBaixo custon FlexibilidadenConectividadenMantenabilidaden Facilidade de treinamento

Page 8: Aula IEC 61131-3

58584-00 8

Desejo do Usuário (OMAC)

Open Modular Architecture Controller implica em umasolução

n EconômicanAbertanModularn Fácil manutençãon Escalável

Page 9: Aula IEC 61131-3

58584-00 9

O que é Soft Logic?

É uma solução de SW baseada em HW abertopara aquisição de dados, controle de processos e ...

Soft Logic

Page 10: Aula IEC 61131-3

58584-00 10

Soft Logic

Características

nHardware dedicado ou de mercado (padrão PC)n Software aberto (S.O., comunicação, etc.)n Sistema de tempo real dependente da combinação de HW

e SWn Execução periódica ou engatilhada (multitarefa)nRecursos de HW ilimitadosn Software independente do hardwaren Integração entre HW e SW aplicativo através do S.O.

Page 11: Aula IEC 61131-3

58584-00 11

Soft Logic

Vantagens

n Solução abertanBaixo custo de HW (HW de mercado)nMaior desempenho (HW de última geração)nMaior integração entre sistemas (controle, supervisão,

BD, MES, ERP, etc.)nMaior funcionalidade (CLP, CNC, Motion Control, DCS,

IHM, etc.)n Flexibilidaden Facilidade de expansãonMaior conectividaden Facilidade de manutenção / treinamenton Etc...

Page 12: Aula IEC 61131-3

58584-00 12

Soft Logic

Desvantagens

nBaixa aceitação devido ao desconhecimento e falta deexperiência do mercado

nConfiabilidade questionável em aplicações críticas

Page 13: Aula IEC 61131-3

58584-00 13

PC Based Control

O que é controle baseado em PC?

É uma solução Soft Logic baseada na arquitetura PC

Rede de I/O Aberta

Software deControle

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

LINUX, etc...)

Hardware PC Padrãoou Embedded

Rede de Dados Aberta

I/O de Mercado17008472

Page 14: Aula IEC 61131-3

58584-00 14

Em 1992, o IEC publicou a norma IEC 61131, a qualestabelece padrões para Controladores Programáveis

A norma 61131 é dividida em 5 partesn 61131-1 - Informações geraisn 61131-2 - Requisitos de hardwaren 61131-3 - Linguagens de programaçãon 61131-4 - Guia de orientação ao usuárion 61131-5 - Comunicação

Outras três partes estão em fase de elaboraçãon 61131-6 - Comunicação via Fieldbusn 61131-7 - Programação utilizando Lógica Fuzzyn 61131-8 - Guia para implementação das linguagens

PC Based Control

Page 15: Aula IEC 61131-3

58584-00 15

Modelo de Estruturação do Software

Norma IEC 61131

Combina linguagens de SDCD e CLP numa solução únicaObjetivo: tornar SW de CLP modular, reutilizável e portável

Page 16: Aula IEC 61131-3

58584-00 16

Norma IEC 61131

Definições

nConfiguraçãoCorresponde ao sistema do controlador programável,composto pelos diversos recursos

nRecursoCorresponde a uma função para processamento de sinaise suas funções para Interface Homem-Máquina (IHM) einterface com sensores e atuadores

n TarefaElemento para controle de execução periódica ouengatilhada (condições de disparo = eventos) de umgrupo de unidades

nUnidade de organização de programa (POU)Uma função, bloco de função ou programa

Page 17: Aula IEC 61131-3

58584-00 17

Norma IEC 61131

Definições

n Variável globalVariável cujo escopo é global

nCaminho de acessoAssociação de um nome simbólico para a variável a fimde associar as entradas/saídas físicas ao SW deprocessamento de variável

n Endereçamento hierárquicoRepresentação direta de um elemento de dado comomembro de uma hierarquia física ou lógica

n Tipos de dadosConjunto de valores + conjunto de ações permitidas(procedimentos)

Page 18: Aula IEC 61131-3

58584-00 18

n Ambiente multitarefan Usuários devem definir cada variável

antes de usá-la

Norma IEC 61131

Mecanismo de execução

CLP tradicional CLP IEC 61131

Lêentradas

Executaprograma

Definesaídas

Task 1 periódica período_1

Task 2 evento event_id

Task 3 evento event_id

Task N periódica período_N

...

Page 19: Aula IEC 61131-3

58584-00 19

“Apesar do esforço estabelecido pela norma IEC 61131-3para padronização das linguagens de programação, algunsaspectos da norma são dependentes da forma deimplementação”

“Empresas americanas não se preocupam muito comnormas, elas possuem poucos engenheiros, escolhem umfornecedor e ficam ligadas a ele”

Norma IEC 61131

Page 20: Aula IEC 61131-3

58584-00 20

Open PLC

Controle baseado em PCSoft PLC

Programação transportável (IEC 61131-3)PLCopen - Netherlands - 1992

“Opennes implies more than open communication networks, italso implies open software” [The state of PLC - InTech - April - 96]

Page 21: Aula IEC 61131-3

58584-00 21

Open PLC

PLC Open é uma associação independente que promoveuma padronização na implementação da norma IEC 61131-3nAtuação

lDivulgação da normalDefinição de interfaces comunslCertificação de produtos

n Testes de compatibilidadelBase levell Portability levell Full compliance

nRecomendações sobre utilização da norma

Page 22: Aula IEC 61131-3

58584-00 22

PLC x Open PLC

Características dos CLPs abertos baseados em PC

nMaior velocidade que CLPs convencionaisnNão há limite de quantidade de memórianMaiores facilidades de comunicação via diversas

tecnologias de redenMúltiplas linguagens de programação (padrão 61131-3)n Incorpora todas as vantagens e funcionalidades dos PCs

convencionais

Page 23: Aula IEC 61131-3

58584-00 23

PLC x Open PLC

Mercado para o CLP aberto hoje

nAutomobilísticanBebidasnAlimentosnCigarrosn Farmacêutican PredialnManufatura em geral

Page 24: Aula IEC 61131-3

58584-00 24

PLC x Open PLC

Produtos Soft Logic (Control Engineering - Março, 1999)

Company Software Strategy

3S CoDeSys Window s NTABB Advant OCS     Window s NT, RTXAdept Technology  AdeptWindow s NT, 95Aerotech Inc.      U500, U600 95, NTAfcon P-CIM  NTAlterSys Soft logic/DCS, solution PCP

Virgo QNX

Apilogic Apigraf NTASAP ASIC-300 NTAspen Technology Plantelligence NTCegelec Alspa P3200 for utilities JavaCi Technologies Citect NTCJ International IsaGraf NTComdale Technologies    Expert systems QNX

Control Systems International

Field Control System QNX

CTC Parker MachineLogic DOS/RTXCutler-Hammer/Eaton NetSolver NT/INtimeCyberonics HMI & PLCs for process control JavaElsag Bailey Symphony, Freelance 2000 NT, NTFisher-Rosemount PlantWeb NTFoxboro  FoxDMM JavaGE Fanuc PC Control NTHew lett-Packard Chai JavaHoneyw ell/MicroSw itch Smart Control NT/INtime  Honeyw ell IAC         Total Plant Solution NTIconics Genesis32 NTImagination Systems Hyperkernel Real-time systemIntegrated Systems Inc.    Psos, psos + Real-time system, toolsIntellution FIX Paradym-31  NT (RTX), CEIntrinsyc Softw are Integration Expert for Window s

NTNT, CE Development Tools 

Intuitive Technology Web@aGlance server Java

Klopper & Wiege ProConOS   NT w ith real-time kernelLabtech Control, Control Pro    DOS, Windows 3.1, 95Lynx LynxOS Rtos   

MDSI Open CNC NT w ith RTX/QNX

PC Control Vendors

Company Software StrategyMitsubishi Electric Automation MELsoft NT/IntimeMoore Automation APACS Process Control System NTNational Instruments Bridgeview , Labview RT NT, NT w ith PC boardNemaSoft  OpenControl, Paragon NT/Hyperkernel, NTNew Monics PERC Virtual Machine NT/RTX/JavaObject Automation OAenterprise 98 NT/RTX/Java 

OMNX OMNX Direct Control NT/QNX Omron Sysmac PLC on PC boardOpto 22            OptoRuntimePC, Factory Floor NTOSI           PI System NTPC Soft WizPLC, WizDCS  NT/RTX, NTPEP Modular Computers Smart2 PLC NTPharLap Real-time ETS kernel for NT Real-time systems,

toolsPhoenix Contact Remote Field Controller Rtos, CE (in beta)

QNX Softw are Systems QNX    Real-time systemsRadisys  INtime Real-time systemsRockw ell Automation Allen-Bradley SoftLogix 5 NTRockw ell Softw are ControlPak NTSchneider Automation TSX Premium PLC on PC boardSequentia OpenBatch NTSiemens WinAC, MP270  NT, CESofting 4 Control NTSoftPLC SoftPLC   Embedded RTOS/JavaSteeplechase Visual Logic Controller NT/IntimeTA Engineering AIMAX NTThink & Do Think & Do NT/RTXTotal Control Products Framew orX NT/CE/RTXVenturCom RTX Real-time systemsVMIC IOWorks NT/VxWorks NT/Rtos

Westinghouse PC Web Access View Enabler (WAVE)

Java

Wind River Systems      VxWorks Real-time systemsWonderw are FactorySuite 2000, InControl NT, CEYokogaw a Industrial Automation    

Centum CS 1000 NT

PC Control Vendors

Page 25: Aula IEC 61131-3

58584-00 25

IEC 61131-3

Característicasda Norma

IEC 61131-3

Page 26: Aula IEC 61131-3

58584-00 26

Convenção de nomes

Endereçamento simbólico Endereçamento físico

Características

17051021

DIGESTOR_1

SEQUÊNCIA

DIGESTOR_1DIGESTOR_1.SEQUÊNCIADIGESTOR_1.SEQUÊNCIA.FATOR_HDIGESTOR_1.SEQUÊNCIA.FATOR_H.CONTROLE_TEMPDIGESTOR_1.SEQUÊNCIA.FATOR_H.CONTROLE_TEMP.TIC101_VP

FATOR_H

CONTROLE_TEMP

Page 27: Aula IEC 61131-3

58584-00 27

Características

Convenção de nomes

n Tornam o banco de dados e a estratégia de controle maisclaros e perceptíveis

n Segue hierarquia top-downnNome embutido no nível de recurso, o computador ou

sistema externo solicita dado pelo nome ao invés debuscar endereço

n Facilita integração com outros sistemas: administrativo,gestão

n Facilita e exportação da base de dadosnUso de Literais: -12, 0.45, 2#1010, FALSE, TRUE,

Time#14msn Etc

Page 28: Aula IEC 61131-3

58584-00 28

Características

Tipos de dados

n Elementares (Bool, INT, Real, Time, Date, String, Byte,Word, etc… )

nGenéricoslANYlANY - NUMlANY - BITl STRINGlANY - DATEl TIMElDERIVADOS

nDerivados (enumerated, subrange, array, struct)

Page 29: Aula IEC 61131-3

58584-00 29

Características

Variáveis (Declaração, Atribuição de tipos, Inicialização)

n Elemento simplesConsiste de um único elemento de um tipo de dadoEx: %QX75 e %Q75 Bit de saída 75 %IW215 Palavra de entrada 215 %IW2.5.7.1 (hierárquico) Canal 1, módulo 7, rack 5, barramento 2

nMúltiplos elementoslArray - Coleção de dados do mesmo tipo

Ex: Vetores, matrizesl Structure - Estrutura de dados (Registro)

Page 30: Aula IEC 61131-3

58584-00 30

CaracterísticasExemplo de variáveis

VAR AT %IW6.2 : WORD; AT %MW6 : INT ;END_VAR

Declaração direta (posiçãode memória)

VAR_GLOBAL LIM_SW_S5 AT %IX27 : BOOL; TEMPERATURE AT %IW28: INT;END_VAR

Declaração de variáveissimbólicas como alocaçãodireta

VAR INARY AT %IW6 : ARRAY [0..9] OF INT;END_VAR

Declaração de array comalocação direta

VAR CONDITION_RED : BOOL; IBOUNCE : WORD ; AWORD, BWORD, CWORD : INT; MYSTR: STRING[10] ;END_VAR

Alocação dinâmcia devariáveis simbólicas

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_STRUCTEND_TYPE

Declaração do tipo dedados e inicialização devariavél structure

Page 31: Aula IEC 61131-3

58584-00 31

CaracterísticasControle de Tarefasn Engatilhada (Single)n Periódica (Interval)n Prioridades (Preemptivo ou não)

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 | +---------+

Graphical association with PROGRAMs (within RESOURCEs)RESOURCE STATION_2

P1 P4+-------+ +-------+| F | | H || | | || | | |+-------+ +-------+| PER_2 | | INT_2 |+-------+ +-------+

END_RESOURCEGraphical association with function blocks(within PROGRAMs inside RESOURCEs)

RESOURCE STATION_1P2

+------------------------------------------------+ | G | | FB1 FB2 | | +------+ +------+ | | | A | | B | | | | | | | | | | | | | | | +------+ +------+ | | |SLOW_1| |FAST_1| | | +------+ +------+ | +------------------------------------------------+

END_RESOURCE

Page 32: Aula IEC 61131-3

58584-00 32

POU

Unidades de Organização de Programas (POU)n Função (Function)nBloco de Função (Function Block)n Programa (Program)

Característicasn Fornecidas pelo fabricante (software, equipamentos, etc… )nDesenvolvidas pelo usuárionNão recursivas

Page 33: Aula IEC 61131-3

58584-00 33

POUFunção

nDeve ser declaradanQuando executada produz um elemento de dado simples

ou múltiplo (array ou structure)n Pode ser invocada nas linguagens textuais como

operandonNão possui memória de estados. Isto é, invocar uma

função com os mesmos argumentos (parâmetros deentrada), sempre produzirá o mesmo valor (saída)

n Type overloading: a função pode trabalhar com todos ostipos de dados de um tipo genérico

nUma função pode ser utilizada na declaração de outraPOU

Page 34: Aula IEC 61131-3

58584-00 34

POU

Exemplo de função

Example Explanation

+-----+ | ADD |B---| |---AC---| |D---| | +-----+

Graphical use of ADD function(No formal parameter names)

A := ADD(B,C,D); Textual use of ADD function

+-----+ | SHL |B---|IN |---AC---|N | +-----+

Graphical use of SHL function(Formal parameter names)

A := SHL(IN := B,N := C); Textual use of SHL function

Page 35: Aula IEC 61131-3

58584-00 35

POUFunções Padrões

Classe FunçõesConversão de tipo *_TO_**, TRUNC,

BCD_TO_**,*_TO_BCD

Numéricas ABS, SQRT, LN, LOG, EXP, SIN, COS,TAN, ASIN, ACOS, ATAN

Aritméticas ADD (+), MUL (*), SUB (-), DIV (/),MOD, EXPT (**), MOVE (:=)

Deslocamento de Bit SHL, SHR, ROR, ROLBooleanas AND (&), OR (>=1), XOR, NOTSeleção SEL, MAX, MIN, LIMIT, MUX

Comparação GT (>), GE (>=), EQ (=),LE (<=), LT (<), NE (<>)

String LEN, LEFT, RIGHT, MID, CONCAT,INSERT, DELETE, REPLACE, FIND

Tempo ADD (+), SUB (-), MUL (*), DIV (/),CONCAT,DATE_AND_TIME_TO_TIME_OF_DAY,DATE_AND_TIME_TO_DATE

Enumerações SEL, MUX, EQ, NE

Page 36: Aula IEC 61131-3

58584-00 36

POU

Funções Derivadas

Podem ser criadas usando-sel Funções padrões ou derivadasl Tipos de dados padrões ou derivadoslQualquer uma das linguagens IL, ST, LD, ou FBDl Linguagens adicionais

Page 37: Aula IEC 61131-3

58584-00 37

POU

Funções Derivadas - ExemploA textual form of the declaration of this function 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

(* Function Body *)

END_FUNCTION (* Implicit "ENO" *)

The body of function WEIGH in the IL language is:

LD weigh_commandJMPC WEIGH_NOWST ENO (* No weighing, 0 to "ENO" *)RET

WEIGH_NOW: LD gross_weightBCD_TO_INTSUB tare_weightINT_TO_BCD (* Return evaluated weight *)ST 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 ;

An equivalent graphical declaration of function WEIGH is:

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

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|---ENOgross_weight----| |---| |---| |--WEIGH +--------+ | | +--------+tare_weight------------------| | +-------+

Page 38: Aula IEC 61131-3

58584-00 38

POU

Funções Derivadas – Exemplo IsaGrafRepresentação gráfica

Lista de Instruções

Texto Estruturado

BRUTO

TARA PESO

FUNÇÃO

LD BrutoSUB TaraST Peso_IL

Peso_ST := Bruto - Tara

Page 39: Aula IEC 61131-3

58584-00 39

POU

Funções Derivadas – Exemplo IsaGrafLadder

Function Block

Habilitaen

in1BrutoBruto

in2TaraTara

eno

q Peso_LDPeso_LD

- Concluida

Bruto-

IN1

IN2 QTara Peso_FBD

Page 40: Aula IEC 61131-3

58584-00 40

POUBloco de Função

nDeve ser declaradonQuando executado produz um ou mais valoresn Instanciação: várias instâncias (identificador + estrutura

de dados) podem ser criadasn Possui memória de dados: todas as variáveis internas e

de saída são mantidas entre as execuções de um blocode função

n Pode ser invocado pelas linguagens textuaisnUm bloco de função pode ser usado na declaração de

outro bloco de função ou programa (instanciação)

Page 41: Aula IEC 61131-3

58584-00 41

POUExemplo de bloco de função

FUNCTION_BLOCK DEBOUNCE(*** External Interface ***)VAR_INPUT IN : BOOL ; (* Default = 0 *) DB_TIME : TIME := t#10ms ; (* Default = t#10ms *)END_VARVAR_OUTPUT OUT : BOOL ; (* Default = 0 *) ET_OFF : TIME ; (* Default = t#0s *)END_VARVAR DB_ON : TON ; (** Internal Variables **) DB_OFF : TON ; (** and FB Instances **) DB_FF : SR ;END_VAR

(** 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

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

Page 42: Aula IEC 61131-3

58584-00 42

POUBlocos de Função Padrões

Biestáveis +-----+ | SR | BOOL---|S1 Q1|---BOOL BOOL---|R | +-----+

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

Detecção de Borda +--------+ | R_TRIG | BOOL---|CLK Q|---BOOL +--------+

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

Contagem +-----+ | CTU | BOOL--->CU Q|---BOOL BOOL---|R | INT---|PV CV|---INT +-----+

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

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

Temporização +-------+ | TON | BOOL---|IN Q|---BOOL TIME---|PT ET|---TIME +-------+

+-------+ | TOF | BOOL---|IN Q|---BOOL TIME---|PT ET|---TIME +-------+

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

+-------+ | RTC | BOOL---|IN Q|---BOOL DT-----|PDT CDT|-----DT +-------+

Comunicação (IEC 61131-5)Conexão CONNECTVerificação de Dispositivos STATUS, USTATUSAquisição de Dados READ, USEND, URCVControle WRITE, SEND, RCVAlarmes NOTIFY, ALARM

Page 43: Aula IEC 61131-3

58584-00 43

POU

Blocos de Função Derivados

Podem ser criados usando-senBlocos de função padrões ou derivadosn Tipos de dados padrões ou derivadosnQualquer uma das linguagens: IL, ST, LD, FBD ou SFCn Linguagens adicionais

Page 44: Aula IEC 61131-3

58584-00 44

POU

Blocos de Função DerivadosExemplo | 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------------------| | +---+

+----------------------+ | 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 | +----------------------+

Page 45: Aula IEC 61131-3

58584-00 45

POUPrograma

É um agrupamento lógico dos elementos necessários àtodas as linguagens de programação, para o processamentode sinais desejado

nDeve ser declaradon Permite a instanciação somente dentro de um recurso

Page 46: Aula IEC 61131-3

58584-00 46

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 | +--------------------+

+----------------------------+ ¦ ¦ ¦ +===+===+ (* Main sequence *) ¦ |¦START¦| ¦ +===+===+ ¦ ¦ ¦ +--------------------*----------+ | | | ¦ + READY.X & SINGLE_PB + READY.X & DOUBLE_PB | | | ¦ +--+---+ +-+-----+ +---+----+ +-+-----+ ¦ ¦SINGLE+-¦N¦CYCLE¦ ¦DOUBLE_1+--¦N¦CYCLE¦ ¦ +--+---+ +-+-----+ +---+----+ +-+-----+ | | | ¦ *---------+ + DONE.X ¦ ¦ + DONE.X & DOUBLE_PB ¦ ¦ ¦ +---------------------+ | | | ¦ ¦ +-----+-----+ ¦ + DONE.X & NOT DOUBLE_PB ¦DOUBLE_WAIT¦ ¦ ¦ +-----+-----+ | | | ¦ ¦ + READY.X | | | ¦ ¦ +---+----+ +-+-----+ ¦ ¦ ¦DOUBLE_2+--¦N¦CYCLE¦ ¦ ¦ +---+----+ +-+-----+ | | | ¦ ¦ + DONE.X | | | ¦ +---------------------+---------+ ¦ ¦ ¦ +----+-----+ ¦ ¦NON_REPEAT¦ ¦ +----+-----+ ¦ ¦ ¦ +NOT(SINGLE_PB OR DOUBLE_PB) ¦ ¦ +-----------------------------+

Page 47: Aula IEC 61131-3

58584-00 47

Linguagens

Linguagens de Programação

n Textuaisl IL - Lista de Instruçõesl ST - Texto Estruturado

nGráficasl LD - Ladderl FBD - Diagrama de Blocos de Função

nOrganização de Programasl SFC - Funções Gráficas de Seqüenciamento

nOutras (dependente do produto)l Flow ChartlCl Etc.

Page 48: Aula IEC 61131-3

58584-00 48

Linguagens

Batch e estruturação geral do programa(Sequencial Function Charts)

Baixo nívelOtimização ou pequenas aplicações

Maisflexível

Controle lógicoe sequencial

Controle lógicoe regulatório

(BatchISA88)

Funções Gráficas de Sequenciamento (SFC)

Blocos deFunção

(FBD)

Ladder

(LD)

Lista deInstruções

(IL)

TextoEstruturado

(ST)

TEXTUAIS GRÁFICAS

Page 49: Aula IEC 61131-3

58584-00 49

Linguagens

Programação Convencional de CLPs

%I1

%I2

%I3 %Q1

Lógica E

%Q1

Lógica OU

%I1 %I2 %I3

%Q1

Lógica OU Exclusivo

%I1

b

a

%I2

%Q1

Memória RS

Reset

Set %Q1

Page 50: Aula IEC 61131-3

58584-00 50

Linguagens

Programação Convencional de CLPs

CTUCONTADOR

CU

R

PV

RESET

VALOR

PULSO SAÍDA

CONTAGEMCV

Q

TEMPORIZADOR

TON

IN

PTTEMPO

LIGA SAÍDA

ET

Q

BLOCO RS

RS

Set

ResetRESET

SET

Q1 %Q1

Page 51: Aula IEC 61131-3

58584-00 51

Linguagens

IL - Lista de Instruções

Característicasn Linguagem de Baixo Níveln Semelhante ao AssemblernRecomendada para pequenas aplicações ou otimização

de códigon Linguagem básica para exportação de programas

(Portabilidade)

Page 52: Aula IEC 61131-3

58584-00 52

Linguagens

IL - Lista de Instruções

Estrutura

Label Operator Operand Comment

START: LD %IX1 (* PUSH BUTTON *)

ANDN %MX5 (* NOT INHIBITED *)

ST %QX2 (* FAN ON *)

Page 53: Aula IEC 61131-3

58584-00 53

LinguagensIL - Instruction List

Operadores para Blocos deFunção Padrões

Operators FB Type

S1,R SRS,R1 RSCLK R_TRIGCLK F_TRIG

CU,R,PV CTUCD,LD,PV CTD

CU,CD,R,LD,PV

CTUD

IN,PT TPIN,PT TONIN,PT TOF

Operator Modifiers Operand Semantics

LD N Note 2 Set current result equal to operandST N Note 2 Store current result to operand locationS Note 3 BOOL Set Boolean operand to 1R Note 3 BOOL Reset Boolean operand to 0

AND N, ( BOOL Boolean AND& N, ( BOOL Boolean ANDOR N, ( BOOL Boolean ORXOR N, ( BOOL Boolean Exclusive ORADD ( Note 2 AdditionSUB ( Note 2 SubtractionMUL ( Note 2 MultiplicationDIV ( Note 2 DivisionGT ( Note 2 Comparison: >GE ( Note 2 Comparison: >=EQ ( Note 2 Comparison: =NE ( Note 2 Comparison: <>LE ( Note 2 Comparison: <=LT ( Note 2 Comparison: <JMP C, N LABEL Jump to labelCAL C, N NAME Call function block (note 4)RET C, N Return from called function or function block) Evaluate deferred operation

Operadores

Page 54: Aula IEC 61131-3

58584-00 54

LinguagensIL - Instruction List - Exemplos IsaGraf

LD PulsoST Cont1.cuLD ResetST Cont1.resetLD ValorST Cont1.pvCAL Cont1LD Cont1.QST Saida

LD LigaST Timer.inLD TempoST Timer.ptCAL TimerLD Timer.qST Saida

LDN ResetAND( SetOR %QX1.1)ST %QX1.1

Contador UPTemporizador TONMemória RS

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

LD %IX0.1OR %IX0.2ORN %IX0.3ST %QX1.1

LD %IX0.1AND %IX0.2ANDN %IX0.3ST %QX1.1

XORORAND

Page 55: Aula IEC 61131-3

58584-00 55

LinguagensST - Texto Estruturado

Característicasn Linguagem de alto níveln Semelhante ao Pascal (ISO 7185)n Ideal para

l Tomada de decisõeslDeclarações (Variáveis, POUs, Configurações, etc.)lCálculosl Implementação de algoritmoslDefinição de ações (SFC)lUtilização de literaislCriação de blocosl Etc.

Page 56: Aula IEC 61131-3

58584-00 56

LinguagensST - Structured Text

DeclaraçõesOperation Symbol Precedence

Parenthesization (expression) HIGHEST

Function evaluation identifier (argumentlist)

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 ExclusiveOR

XOR

Boolean OR OR LOWEST

Statement type/Reference Examples

Assignment A := B; CV := CV+1; C := SIN(X);

Function block Invocationand FB output usage

CMD_TMR(IN:=%IX5, PT:=T#300ms) ;A := CMD_TMR.Q ;

RETURN RETURN ;

IF 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 ;

CASE 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);

FOR J := 101 ;FOR I := 1 TO 100 BY 2 DO IF WORDS[I] = 'KEY' THEN J := I ; EXIT ; END_IF ;END_FOR ;

WHILE J := 1;WHILE J <= 100 & WORDS[J] <> 'KEY' DO J := J+2 ;END_WHILE ;

REPEAT J := -1 ;REPEAT J := J+2 ;UNTIL J = 101 OR WORDS[J] = 'KEY'END_REPEAT ;

EXIT EXIT ;

Empty Statement ;

Operadores

Page 57: Aula IEC 61131-3

58584-00 57

LinguagensST - Structured Text - Exemplos IsaGraf

Cont2 (Pulso, Reset, Valor);Saida2:= Cont2.q;Resultado:= Cont2.cv;

ContadorUP

Timer (Liga, Tempo);Saida2:= Timer.q;

Temporizador TON

%QX1.1:= NOT Reset AND (Set OR %QX1.1);Memória RS

%QX1.1:=%IX0.1 XOR %IX0.2;XOR

%QX1.1:=%IX0.1 OR %IX0.2 OR NOT %IX0.3;OR

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

Page 58: Aula IEC 61131-3

58584-00 58

Linguagens

Linguagens Gráficas - Elementos comuns

Page 59: Aula IEC 61131-3

58584-00 59

LinguagensLD - Ladder Diagram

Características

nBaseada no diagrama elétrico de contatosnAdequada para controle discreto, combinacional e

seqüencial (intertravamento)nUtiliza blocos de função para controle regulatório e

funções especiais

Page 60: Aula IEC 61131-3

58584-00 60

LinguagensLD - Ladder Diagram

Page 61: Aula IEC 61131-3

58584-00 61

LinguagensLD - Ladder Diagram – Exemplos IsaGraf

XOR

OR

AND%IX0.1 %IX0.2 %IX0.3 %QX1.3

%IX0.1 %QX1.3

%IX0.2

%IX0.3

%IX0.1in1

in2%IX0.2%IX0.2

q=1 %QX1.3

Page 62: Aula IEC 61131-3

58584-00 62

LinguagensLD - Ladder Diagram – Exemplos IsaGraf

ContadorUP

Tempor.TON

MemóriaRS

Reset Set %QX1.3

%QX1.3

LigaIN

PTTempoTempo

Q

ET ETET

TON Saida3

PulsoCU

RESETResetReset

PVValorValor

Q

CV ResultadoResultado

CTU Saida3

Page 63: Aula IEC 61131-3

58584-00 63

LinguagensFBD - Diagrama de Blocos Funcionais

CaracterísticasnBaseada nos diagramas de circuitos (Diagrama Lógico)nAdequada para controle discreto, seqüencial, regulatório,

etc.nRepresentação de fácil interpretaçãonBlocos expansíveis em função do no de parâmetros de

entradan São disparados por parâmetros externos, enquanto os

algoritmos internos permanecem escondidos (= OOP)nBlocos encapsulam o algoritmo, destacando o fluxo de

informações e o processamento de sinais

Bloco = Função ou Bloco de Função

Page 64: Aula IEC 61131-3

58584-00 64

Linguagens

FBD - Function Block Diagram

Page 65: Aula IEC 61131-3

58584-00 65

LinguagensFBD - Function Block Diagram – Exemplos IsaGraf

XOR

OR

AND%IX0.1%IX0.2%IX0.3 %QX1.4

&

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

=1IN1

IN2 Q

%IX0.1%IX0.2 %QX1.4

Page 66: Aula IEC 61131-3

58584-00 66

LinguagensFBD - Function Block Diagram – Exemplos IsaGraf

ContadorUP

Tempor.TON

MemóriaRS

>=1

&Reset

Set%QX1.4

%QX1.4

LigaTempo

Saida4TON

IN

PT

Q

ET ET

PulsoResetValor Resultado

Saida4

CTUCU

RESET

PV

Q

CV

Page 67: Aula IEC 61131-3

58584-00 67

LinguagensSFC - Funções Gráficas de Seqüenciamento

Características

nBaseada no Grafcet e Redes de Petri ð FormulaçãoMatemática

n Padrão para programação de processos Batch ð ISASP88

nAdequada paral Estruturação de Programas e Blocos de FunçãolControle seqüencial ð Receitas e Seqüenciamento

DiscretolControle de estados ð Máquina de Estados Finitos e

Algoritmosl Tomadas de decisão ð Árvore de decisões

nRepresentação de fácil interpretaçãonRastreabilidade de eventos

Page 68: Aula IEC 61131-3

58584-00 68

Linguagens

SFC - Funções Gráficas de Seqüenciamento

n Permite reduzir o esforço computacionaln Facilidade de diagnósticon Elementos de programação

l Passo: estado do programa onde as ações sãoexecutadas

l Transição: condição pela qual o programa muda deestado, passando de um ou mais passos antecessorespara um ou mais passos sucessores

lAção: atividade de controle executada numdeterminado passo. Pode ser configurada em qualqueruma das 5 linguagens

lRamificação: permite gerar divergência econvergência de seqüências do programa

Page 69: Aula IEC 61131-3

58584-00 69

Linguagens

SFC - Sequential Function Chart

START

CARREGA-MENTO DEMATÉRIA-

PRIMA

GERAÇÃODE VAPOR

P

P

R

P

TL

L

L

L

A

PASSO

TRANSIÇÃO

AÇÃO

RAMIFICAÇÃO

LINK

P

T

A

R

( BLOCOS DEFUNÇÕES )

(FUNÇÃO DELÓGICA LADDER)

CARREGA-MENTO DE

LIXÍVIA

TT

PA

Page 70: Aula IEC 61131-3

58584-00 70

Linguagens

SFC - Sequential Function Chart

Page 71: Aula IEC 61131-3

58584-00 71

Linguagens

SFC - Sequential Function Chart – Exemplo IsaGraf

1 (* initialize *)

1

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

2 (* start lead sequence *)LEAD (S);ACTION (P) : sequence := 'Lead';END_ACTION;

2

not (blead);

3 (* kill lead sequence *)LEAD (R);

3

1

101

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

101 (* start flash sequence *)FLASH (S);ACTION (P) : sequence := 'Flash';END_ACTION;

102

not (bflash);

102 (* kill flash sequence *)FLASH (R);

103

201

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

201 (* start random sequence *)RANDOM (S);ACTION (P) : sequence := 'Random';END_ACTION;

202

not (brandom);

202 (* kill random sequence *)RANDOM (R);

203

Page 72: Aula IEC 61131-3

58584-00 72

Linguagens

Outras Linguagens - Flow Chart, C, Visual Basic, Etc…

nA norma permite a utilização de linguagens adicionaispara declaração de funções ou blocos de função,devendo obedecer à mesma forma de chamada e troca dedados

nUtilização básicalCodificação de algoritmos especiais/complexosl Proteção de código proprietáriolRecursos de programação avançadoslBibliotecas dedicadas

n Flow Chart Programming poderá ser acrescentada ànorma como linguagem padrão

Page 73: Aula IEC 61131-3

58584-00 73

Linguagens

Flow Chart Programming – Exemplo IsaGraf

Page 74: Aula IEC 61131-3

58584-00 74

Aplicação

Análise do problema → Usar metodologia da norma ISA SP 88

Page 75: Aula IEC 61131-3

58584-00 75

Aplicação

Análise do problema

Page 76: Aula IEC 61131-3

58584-00 76

Exercício

Exercício: Implementar no IsaGraf a lógica de controle de umchuveiro elétrico inteligente

Page 77: Aula IEC 61131-3

58584-00 77

Exercício

Lista de variáveis do Processo

Digitaisn FS_Vazao_Baixa: Entrada da Chave de Fluxon SV_Valv_Agua: Saída para comando da Válvula solenóide

Analógicasn LT_Nivel_Caixa: Entrada do Nível da Caixa D'águan TT_Temp_Agua: Entrada da Temperatura da Águan FCV_Vazao_Agua: Saída para controle da Vazão de Águan PS_Chaveador: Saída para controle do Chaveador

Page 78: Aula IEC 61131-3

58584-00 78

Exercício

Lista de variáveis para comando do Operador

DigitaisnON_OFF: Entrada da chave principaln Ligado: Saída para indicação do sistema funcionando

Analógicasn SP_Vazao_Agua: Valor desejado da vazão de saídan SP_Temperatura: Valor desejado da temperatura da água

Page 79: Aula IEC 61131-3

58584-00 79

Exercício

Considerações

n Todas as variáveis analógicas são do tipo inteiro, na faixade 0 a 100

n Se o nível da caixa d’água reduzir a zero, a válvulasolenóide SV deve ser desligada até que o nível volte àaumentar (restabelecimento)

nO Controlador PID poderá ser utilizado conforme exemploexistente no programa Controle

nO chuveiro consegue trabalhar na faixa de 25 a 50 ºC parauma vazão de saída de 0 a 90 %

Page 80: Aula IEC 61131-3

58584-00 80

ExercícioObjetivo

Desenvolver a lógica de controle do chuveiro de forma aatender às seguintes condições

n Fazer o controle das funções do chuveiro conforme comandos do operador

n Garantir o funcionamento do chuveiro dentro de condiçõesseguras

n Proteger o chuveiro contral Falta de águal Elevação da temperatura acima de 65 º C

n Estabelecer a seqüência de ligamento e desligamento seguro do chuveiro

Page 81: Aula IEC 61131-3

58584-00 81

Dúvidas ?