Escolar Documentos
Profissional Documentos
Cultura Documentos
Meas_point[10]: Real
Tipos de Dados • Tipos de dados Bit (BOOL, BYTE, WORD, DWORD, CHAR)
Elementares
• Tipos de dados Matemáticos (INT, DINT, REAL)
(até 32 bit)
• Tipos Tempo (S5TIME, TIME, DATE, TIME_OF_DAY)
• Tempo (DATE_AND_TIME)
Tipos de Dados
Complexos • Matriz (ARRAY)
(maiores que 32 bits)
• Estrutura (STRUCT)
• Cadeia de Caracteres (STRING)
Dimensão
Palavra-chave Exemplo de uma constante deste tipo
(em bits)
BOOL 1 1 or 0
BYTE 8 B#16#A9
WORD 16 W#16#12AF
DWORD 32 DW#16#ADAC1EF5
CHAR 8 'w'
S5TIME 16 S5T#5s_200ms
INT 16 123
DINT 32 65539 or L#-1
REAL 32 1.2 or 34.5E-12
TIME 32 T#2D_1H_3M_45S_12MS
DATE 16 D#1999-06-14
TIME-OF-DAY 32 TOD#12:23:45.12
Motor: STRUCT
" Melhor" estruturação
Set_speed: REAL
de Dado:
Actual_speed: REAL
Adaptado para a tarefa
Enable: BOOL
com "correto" tipo de dado Disturbance: BOOL
END_STRUCT
Dimensão
Palavra chave Exemplo
(em bits)
DT#99-06-14-12:14:55.0
DATE_AND_TIME 64
(Data e Horário)
´Isto é uma string´
STRING 8 * (número de
´SIEMENS´
(Caracter “string“ com caracteres +2)
máx. 254 caracteres)
Meas_vals: ARRAY[1..20]
ARRAY definido pelo
INT
(Grupo de elementos usuário
do mesmo tipo de dado)
Motor: STRUCT
STRUCT definido pelo
Speed : INT
(Estrutura, Grupo de usuário
Current : REAL
elementos de diferentes
END_STRUCT
tipos de dados)
UDT como bloco UDT como elemento array
UDT definido pelo
(User Defined Data Type = usuário
STRUCT Drive: ARRAY[1..4]
"Template" constituído de
Speed : INT UDT1
tipos de dados elementares
Current : REAL
e/ou complexos)
END_STRUCT
Dimensão
Palavra chave Exemplo
(em bits)
TIMER
16 Contact time: TIMER
.
SI #Contact_time
COUNTER
16 NoCompParts: COUNTER
.
LC #No_Comp_Parts
BLOCK_FB
16 Recall: BLOCK_FB
BLOCK_FC
.
BLOCK_DB
UC #Recall
BLOCK_SDB
Pointer
48 Measure: POINTER
.
L P##Measure
.
ANY
80 Measured Values: ANY
.
L P##Meas_Values
.
memória M
PIQ DBz
.
PII DBy .
.
área (P) I/O DBx
Alocação LD for OB1 LD for OB1 LD for OB1 LD for OB1 LD for OB1 LD for OB1 LD for OB1
da Pilha L
para OB1 LD for FB1 LD for FB1 LD for FB1
LD for FC10
livre LD for FC5 livre
livre
livre livre
livre livre
p.ex. 256 Bytes
Início do ciclo 1 2 3 4 5 6
Locais de ramificação
Variáveis auxiliares da
Pilha de Dados Local
Função
OB1
FC10
Dados Globais
DB20
Função
FC20
DB Instance DB p/ FB1
Byte 1
.. Byte 1.2.2
Byte n1) .
Byte n+1 Byte 2 Byte 1.3.1
STRUCT (Estrutura):
Grupo de componentes Motor: STRUCT
de diferentes tipos Set_Speed: REAL
de dados Actual_Speed: REAL
Declaração: Enable: BOOL
StructName: STRUCT Disturbance: BOOL
Comp1Name: data type; END_STRUCT
Comp2Name: data type;
...
END_STRUCT
Exemplo:
Declaração de uma variável: Acesso à variável
• MotorControl : STRUCT S #MotorControl.ON
ON : BOOL; L #MotorControl.ActualSpeed
OFF : BOOL; T #MotorControl.SetSpeed
SetSpeed : INT; ...
ActualSpeed : INT;
END_STRUCT;
.. ..
. .
1)
n = par
Exemplo:
Definição de um novo tipo de dado (Estrutura):
UDT1 STRUCT
SetSpeed : REAL; ...
ActualSpeed : REAL; UDT1: STRUCT
Enable : BOOL; Set_Speed: REAL
Disturbance : BOOL; Actual_Speed: REAL
END_STRUCT;
Enable: BOOL
Declaração das variáveis:
Disturbance: BOOL
Motor_1: UDT1;
END_STRUCT
Motor_2: UDT1;
Acesso a variáveis:
L #Motor_1.ActualSpeed
FC23
Ano Mês
Byte n1) Byte n+1
(90 ... 89) (01 ... 12)
Byte n+2
Dia Hora
(01 ... 31) (00 ... 23) Byte n+3
Minuto Segundo
Byte n+4 Byte n+5
(00 ... 59) (00 ... 59) 1=Domingo
2=Segunda-feira
Dia da 3=Terça-feira
Byte n+6
Milisegundos 4=Quarta-feira
semana Byte n+7
(000 ... 999) (1..7) 5=Quinta-feira
6=Sexta-feira
7=Sábado
Exemplo:
Declaration with initialization
Nome dado: STRING[8]: 'OTTO'
Variável STRING armazenada "Nome dado"
epecifica o número máx. De caracteres salvos, ou seja,
Byte n1) máx. comprimento= 8 a dimensão especificada na declaração
Byte n+1 comprim. corrente= 4 especifica o caracter corrente salvo na variável STRING
1)
n = par
UDT99 "Motor"
DB51 "Conv_area_Motors"
...
Hall_1
SFC1
EN ENO
RET_VAL ??.?
CDT ??.?
Parameter