CLP IEC61131-3 - Apresentação

CLP IEC61131-3 - Apresentação

(Parte 3 de 5)

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

Consiste de um único elemento de um tipo de dado Ex: barramento 2 n Múltiplos elementos lArray - Coleção de dados do mesmo tipo

Ex: Vetores, matrizes lStructure - Estrutura de dados (Registro)

Características

Exemplo de variáveis

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

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

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

Declaração de variáveis simbólicas como alocação direta

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

Declaração de array com alocação direta

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

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

INPUT : REAL := 2.0 ;
STATUS : BOOL := 0 ;
CALIBRATION : DATE := DT#1999-05-20 ;
HIGH_LIMIT : REAL := 30.0 ;
ALARM_COUNT : INT := 0 ;

Declaração do tipo de dados e inicialização de variavél structure

Características

Controle de Tarefas n Engatilhada (Single) n Periódica (Interval) nPrioridades (Preemptivo ou não)

TASKNAME
+---------+
| TASK |
+---------+

Graphical representation of TASKs within a RESOURCE BOOL---|SINGLE | TIME---|INTERVAL | UINT---|PRIORITY |

SLOW_1 FAST_1
+---------+ +---------+
| TASK | | TASK |
|SINGLE | |SINGLE |
t#20ms---|INTERVAL |t#10ms---|INTERVAL |
2---|PRIORITY | 1---|PRIORITY |
+---------+ +---------+

Graphical representation of periodic TASKs

Graphical representation of non-periodic TASK

+---------+
| TASK |
%IX2---|SINGLE |
|INTERVAL |
1---|PRIORITY |
+---------+

INT_2

Graphical association with PROGRAMs (within RESOURCEs)

P1P4
+-------++-------+
| F || H |
|| | |
|| | |
+-------++-------+
| PER_2 || INT_2 |
+-------++-------+

RESOURCE STATION_2

Graphical association with function blocks (within PROGRAMs inside RESOURCEs)

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

RESOURCE STATION_1 P2 +------------------------------------------------+ +------------------------------------------------+ END_RESOURCE

Unidades de Organização de Programas (POU) nFunção (Function) nBloco de Função (Function Block) nPrograma (Program)

Características nFornecidas pelo fabricante (software, equipamentos, etc…) nDesenvolvidas pelo usuário nNão recursivas

POU Função nDeve ser declarada nQuando executada produz um elemento de dado simples ou múltiplo (array ou structure) nPode ser invocada nas linguagens textuais como operando nNão possui memória de estados. Isto é, invocar uma função com os mesmos argumentos (parâmetros de entrada), sempre produzirá o mesmo valor (saída) nType overloading: a função pode trabalhar com todos os tipos de dados de um tipo genérico nUma função pode ser utilizada na declaração de outra POU

POU Exemplo de função

+-----+
| ADD |
B---||---A
C---||
D---||
+-----+

Example Explanation

Graphical use of ADD function (No formal parameter names)

+-----+
| SHL |
C---|N|
+-----+

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

Graphical use of SHL function (Formal parameter names)

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

Funções Padrões

Classe Funções

Conversão de tipo*_TO_**, TRUNC, BCD_TO_**,

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

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

Deslocamento de BitSHL, SHR, ROR, ROL

BooleanasAND (&), OR (>=1), XOR, NOT SeleçãoSEL, MAX, MIN, LIMIT, MUX

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

StringLEN, LEFT, RIGHT, MID, CONCAT, INSERT, DELETE, REPLACE, FIND

TempoADD (+), SUB (-), MUL (*), DIV (/), CONCAT,

EnumeraçõesSEL, MUX, EQ, NE

POU Funções Derivadas

Podem ser criadas usando-se lFunções padrões ou derivadas lTipos de dados padrões ou derivados lQualquer uma das linguagens IL, ST, LD, ou FBD lLinguagens adicionais

Funções Derivadas - Exemplo

FUNCTION WEIGH : WORD(* BCD encoded *)

A textual form of the declaration of this function is:

weigh_command : BOOL;
gross_weight : WORD ; (* BCD encoded *)
tare_weight : INT ;

VAR_INPUT (* "EN" input is used to indicate "scale ready" *) END_VAR

END_FUNCTION(* Implicit "ENO" *)

(* Function Body *)

The body of function WEIGH in the IL language is:

(Parte 3 de 5)

Comentários