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

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

58584-00

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 S.O. de Mercado (WNT, CE, QNX, Vx Works, UNIX, LINUX, etc...)

Hardware PC Padro ou Embedded

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 CLP IEC 61131
Task 1 Task 2 Executa programa Task 3 peridica evento evento perodo_1 event_id event_id

L entradas

...
Define sadas Task N peridica perodo_N
n n

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


18

58584-00

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 Company 3S ABB Adept Technology Aerotech Inc. Afcon AlterSys Apilogic ASAP Aspen Technology Cegelec Ci Technologies CJ International Comdale Technologies Control Systems International CTC Parker Cutler-Hammer/Eaton Cyberonics Elsag Bailey Fisher-Rosemount Foxboro GE Fanuc Hew lett-Packard Honeyw ell/MicroSw itch Honeyw ell IAC Iconics Imagination Systems Integrated Systems Inc. Intellution Intrinsyc Softw are Intuitive Technology Klopper & Wiege Labtech Lynx MDSI CoDeSys Advant OCS AdeptWindow s U500, U600 P-CIM Soft logic/DCS, solution PCP Virgo Apigraf ASIC-300 Plantelligence Alspa P3200 for utilities Citect IsaGraf Expert systems Field Control System MachineLogic NetSolver HMI & PLCs for process control Symphony, Freelance 2000 PlantWeb FoxDMM PC Control Chai Smart Control Total Plant Solution Genesis32 Hyperkernel Psos, psos + FIX Paradym-31 Integration Expert for Window s NT Web@aGlance server ProConOS Control, Control Pro LynxOS Open CNC Software Strategy Window s NT Window s NT, RTX NT, 95 95, NT NT QNX NT NT NT Java NT NT QNX QNX DOS/RTX NT/INtime Java NT, NT NT Java NT Java NT/INtime NT NT Real-time system Real-time system, tools NT (RTX), CE NT, CE Development Tools Java NT w ith real-time kernel DOS, Windows 3.1, 95 Rtos NT w ith RTX/QNX

PC Control Vendors Company Mitsubishi Electric Automation Moore Automation National Instruments NemaSoft New Monics Object Automation OMNX Omron Opto 22 OSI PC Soft PEP Modular Computers PharLap Phoenix Contact QNX Softw are Systems Radisys Rockw ell Automation Rockw ell Softw are Schneider Automation Sequentia Siemens Softing SoftPLC Steeplechase TA Engineering Think & Do Total Control Products VenturCom VMIC Westinghouse PC Wind River Systems Wonderw are Yokogaw a Industrial Automation MELsoft Bridgeview , Labview RT OpenControl, Paragon PERC Virtual Machine OAenterprise 98 OMNX Direct Control Sysmac OptoRuntimePC, Factory Floor PI System WizPLC, WizDCS Smart2 PLC Real-time ETS kernel for NT Remote Field Controller QNX INtime Allen-Bradley SoftLogix 5 ControlPak TSX Premium OpenBatch WinAC, MP270 4 Control SoftPLC Visual Logic Controller AIMAX Think & Do Framew orX RTX IOWorks NT/VxWorks Web Access View Enabler (WAVE) VxWorks FactorySuite 2000, InControl Centum CS 1000 Software APACS Process Control System NT NT, NT w ith PC board NT/Hyperkernel, NT NT/RTX/Java NT/RTX/Java NT/QNX PLC on PC board NT NT NT/RTX, NT NT Real-time systems, tools Rtos, CE (in beta) Real-time systems Real-time systems NT NT PLC on PC board NT NT, CE NT Embedded RTOS/Java NT/Intime NT NT/RTX NT/CE/RTX Real-time systems NT/Rtos Java Real-time systems NT, CE NT Strategy NT/Intime

58584-00

24

IEC 61131-3

Caractersticas da Norma IEC 61131-3

58584-00

25

Caractersticas
Conveno de nomes
Endereamento simblico
DIGESTOR_1 SEQUNCIA FATOR_H CONTROLE_TEMP

Endereamento fsico

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
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 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 Declarao direta (posio de memria)

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

Declarao do tipo de dados e inicializao de variavl structure

58584-00

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

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

58584-00

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

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

58584-00

34

POU
Funes Padres
Classe Converso de tipo 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 (:=) SHL, SHR, ROR, ROL AND (&), OR (>=1), XOR, NOT SEL, MAX, MIN, LIMIT, MUX 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

Numricas Aritmticas Deslocamento de Bit Booleanas Seleo Comparao String Tempo

Enumeraes

58584-00

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:
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" *)

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 body of function WEIGH in the IL language is:


LD JMPC ST RET LD BCD_TO_INT SUB INT_TO_BCD ST weigh_command WEIGH_NOW ENO gross_weight tare_weight (* Return evaluated weight *) WEIGH

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

WEIGH_NOW:

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

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

37

POU
Funes Derivadas Exemplo IsaGraf Representao grfica

FUNO BRUTO TARA


Lista de Instrues

PESO

LD Bruto SUB Tara ST Peso_IL Peso_ST := Bruto - Tara

Texto Estruturado

58584-00

38

POU
Funes Derivadas Exemplo IsaGraf Ladder
Habilita en Bruto in1 Tara in2 eno q Peso_LD Concluida

Function Block

Bruto Tara
IN1 IN2 Q

Peso_FBD

58584-00

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

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

41

POU
Blocos de Funo Padres
Biestveis
+-----+ | SR | BOOL---|S1 Q1|---BOOL BOOL---|R | +-----+ +--------+ | R_TRIG | BOOL---|CLK Q|---BOOL +--------+ +-----+ | 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 +------+ +-------+ | TON | BOOL---|IN Q|---BOOL TIME---|PT ET|---TIME +-------+ +-------+ | TP | BOOL---|IN Q|---BOOL TIME---|PT ET|---TIME +-------+ +-----+ | RS | BOOL---|S Q1|---BOOL BOOL---|R1 | +-----+

Deteco de Borda
+--------+ | 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
+-----+ | CTD | BOOL--->CD Q|---BOOL BOOL---|LD | INT---|PV CV|---INT +-----+

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

58584-00

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

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

58584-00

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
+----------------------------+ +===+===+ (* 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) +-----------------------------+

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

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 (ST) Lista de Instrues (IL)
TEXTUAIS

Ladder (LD)

Blocos de Funo (FBD)


GRFICAS

(Batch ISA88)

Mais flexvel

Controle lgico e sequencial

Controle lgico e regulatrio

Baixo nvel Otimizao ou pequenas aplicaes

58584-00

48

Linguagens
Programao Convencional de CLPs
Lgica E %I1 %I1 %I2 %I3 %Q1 %I2 %I3 Lgica OU

%Q1

Lgica OU Exclusivo %I1 b a %I2 %Q1 Reset Set

Memria RS

%Q1 %Q1

58584-00

49

Linguagens
Programao Convencional de CLPs
TEMPORIZADOR TON LIGA TEMPO IN PT Q ET SADA SET RESET Set Reset Q1 %Q1 BLOCO RS RS

CONTADOR CTU PULSO RESET VALOR CU R PV CV CONTAGEM Q SADA

58584-00

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: Operator LD ANDN ST Operand %IX1 %MX5 %QX2 Comment (* PUSH BUTTON *) (* NOT INHIBITED *) (* FAN ON *)

58584-00

52

Linguagens
IL - Instruction List Operadores
Operator LD ST S R AND & OR XOR ADD SUB MUL DIV GT GE EQ NE LE LT JMP CAL RET ) Modifiers N N Note 3 Note 3 N, ( N, ( N, ( N, ( ( ( ( ( ( ( ( ( ( ( C, N C, N C, N Operand Note 2 Note 2 BOOL BOOL BOOL BOOL BOOL BOOL Note Note Note Note Note Note Note Note Note Note 2 2 2 2 2 2 2 2 2 2 Semantics 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 Addition Subtraction Multiplication Division Comparison: > Comparison: >= Comparison: = Comparison: <> Comparison: <= Comparison: < Jump to label Call function block (note 4) Return from called function or function block Evaluate deferred operation

Operadores para Blocos de Funo Padres


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

LABEL NAME

58584-00

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

58584-00

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 Parenthesization Function evaluation Examples: Exponentiation (Note 2) Negation Complement Multiply Divide Modulo Add Subtract Comparison Equality Inequality Boolean AND Boolean AND Boolean Exclusive OR Boolean OR Symbol (expression) identifier (argument list) LN(A), MAX(X,Y), etc. ** NOT * / MOD + < , > , <= , >= = <> & AND XOR OR LOWEST
REPEAT WHILE FOR CASE

Declaraes
Precedence HIGHEST
Statement type/Reference Examples
A := B; CV := CV+1; C := SIN(X);

Assignment Function block Invocation and FB output usage RETURN IF

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

58584-00

56

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

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

ContadorUP

58584-00

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 %IX0.2 %IX0.3

%QX1.3

XOR
%IX0.1 =1 in1 q %IX0.2 in2 %QX1.3

58584-00

61

Linguagens
LD - Ladder Diagram Exemplos IsaGraf Memria RS
Reset Set %QX1.3 %QX1.3

Tempor. TON

Liga IN

TON Q ET ET Tempo PT

Saida3

Contador UP

Pulso

CTU CU Q Reset RESETCV Resultado Valor PV

Saida3

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
IN1 IN2 Q

%QX1.4

58584-00

65

Linguagens
FBD - Function Block Diagram Exemplos IsaGraf Memria RS
Set %QX1.4 & Reset %QX1.4 >=1

Tempor. TON

TON Liga Tempo


IN PT Q ET

Saida4 ET

Contador UP

CTU Pulso Reset Valor


CU RESET PV Q CV

Saida4 Resultado

58584-00

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 START AO A RAMIFICAO R L T L P CARREGAMENTO DE MATRIAPRIMA L T P CARREGAMENTO DE LIXVIA T R P GERAO DE VAPOR ( BLOCOS DE FUNES ) A A (FUNO DE LGICA LADDER) LINK L PASSO P TRANSIO T

58584-00

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 101

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

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

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

101

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

201

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

102

202

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

102

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

202

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

103

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 d gua 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