top of page
Search

IEC61131-3 Tipos de Dados

A IEC61131-3 além de definir as linguagens, também definem os tipos de dados que são utilizados dentro dos CLP's.


Temos assim aqui os tipos de dados primários:

Esses tipos de dados são os mais primários que utilizamos para expressar o formato da informação que será utilizada dentro do software.


Grupo de bits

  • BOOL - 1 bit(0,1)

  • BYTE - 8 bits (1 byte)

  • WORD - 16 bits (2 Bytes)

  • DWORD - 32 bits (4 bytes)

  • LWORD - 64 bits (8 bytes)

Inteiros - (utilizando bytes - 8 bits para definir o tamanho)

  • SINT - Signed Short Integer / Inteiro curto com sinal (1 byte)

  • INT - Signed Integer / Inteiro com Sinal (2 bytes)

  • DINT - Signed Double Integer / Duplo Inteiro com Sinal (4 Bytes)

  • LINT - Signed Long Integer / Inteiro longo com Sinal (8 Bytes)

  • USINT - Unsigned Short Integer / Inteiro curto sem Sinal (1 Byte)

  • UINT - Unsigned Integer / Inteiro sem Sinal (2 Byte)

  • UDINT - Unsigned Double Integer / Inteiro sem Sinal (4 Byte)

  • ULINT- Unsigned Long Integer / Inteiro longo sem Sinal (8 Bytes)

Reais

  • REAL – (4 byte)

  • LREAL – Real Longo - (8 byte)

Duration (Duração)

Os tipos de duração, procuram padronizar a forma como os fabricantes tratam e apresentam a duração do tempo dentro dos CLPs.

  • TIME – (implementer specific) - Seu tamanho é especificado por quem implementa (o fabricante do equipamento) - a forma literal é T#5m90s15ms.

  • LTIME - (8 bytes) - A forma literal deve se estender até nano segundos! - T#5m90s15ms542us15ns

Date - Data, tipos específicos para lidar com datas

  • DATE – calendar date (implementer specific) - Seu tamanho é especificado por quem implementa (o fabricante do equipamento).

  • LDATE – calendar date (8 byte, estendida em nano segundos a partir de 1970-01-01)

  • Time of day - hora do dia

    • TIME_OF_DAY / TOD –Hora do Relógio - Seu tamanho é especificado por quem implementa (o fabricante do equipamento);

    • LTIME_OF_DAY / LTOD – Hora do Relógio estendida até nano segundos (8 byte)

Date and time of Day - Data e Hora

  • DATE_AND_TIME / DT – Data e Hora - Seu tamanho é especificado por quem implementa (o fabricante do equipamento);

  • LDATE_AND_TIME / LDT – Data e Hora - (8 byte, estendida em nano segundos a partir de 1970-01-01)

Character / Character string - Caracteres e Strings

  • CHAR – Caracter de byte Simples - (1 byte, caracteres limitados de 0 to 255 da ISO/IEC 10646 - Universal Coded Char Set - UCS)

  • WCHAR – Caracter de byte Duplo (2 bytes, caracteres limitados de 0 to 65535 da ISO/IEC 10646 - Universal Coded Char Set - UCS)

  • STRING – Formada por caracteres de byte simples. os literais são especificados em um aspas simples, 'Olha só a minha String'.

  • WSTRING – Formada por caracteres de duplo byte. os literais são especificados em um aspas duplas, "Olha só a minha String".

Tipo de Dados Genéricos

A norma também descreve os tipos de dados genéricos e seus escopos, mas basicamente são permitidas para entradas, saídas, entrada-saida dos programas, rotinas e funções.

Os tipos genéricos são chamados de ANY, e aqui segue a sua organização hierárquica:

ANY

  • ANY_DERIVED

  • ANY_ELEMENTARY

    • ANY_MAGNITUDE

      • ANY_NUM

      • ANY_REAL: LREAL, REAL

      • ANY_INT

      • ANY_UNSIGNED: ULINT, UDINT, UINT, USINT

      • ANY_SIGNED: LINT, DINT, INT, SINT

    • ANY_DURATION: TIME, LTIME

  • ANY_BIT: LWORD, DWORD, WORD, BYTE, BOOL

  • ANY_CHARS

    • ANY_STRING: STRING, WSTRING

    • ANY_CHAR: CHAR, WCHAR

  • ANY_DATE: DATE_AND_TIME (DT), DATE_AND_TIME(LDT), DATE, TIME_OF_DAY (TOD), LTIME_OF_DAY(LTOD)

Quer uma tabela com os valores, bom a Wikipédia tem um artigo sobre a norma bem legal com uma tabela (é tem artigo aqui e lá, e vai ter coisa repetida? vai ter a norma é uma só ué!, mas tem coisa diferente então pode ler os 2 que vale a pena!) - https://pt.wikipedia.org/wiki/IEC_61131-3.


User Defined Data Types - Tipo de dados definido pelo usuário - UDT

Chegamos ao ponto mais legal da norma na minha opinião é que é garantir tipo de dados definidos pelo usuário, ou a famosa UDT, extremamente importante para a organização do software, permitindo que você crie estrutura de dados heterogêneas, que refletem a sua real necessidade (falo um pouco sobre isso aqui: https://www.plcengsoft.com/post/estrutura-de-dados-com-plc)


  • User-defined Data Types

    • Enumerated data type -Tipos numéricos;

    • Enumerated data type witn named value - Consiste em valores nomeados que representam uma constante integral, algumas vezes são chamados de constantes enumeradas - (basicamente suas constantes!);

    • Subrange data type – tipo de dados com limites ou seja dentro de um range- Por exemplo um INT (0-100) para armazenar apenas valores dentro desse range;

    • Array data type – um array (vetor uni ou multi-dimensional), de tipo de dados;

    • Structured data type – Composição estruturada por diversos tipos de dados;

    • Directly derived data type – Tipo de dados derivado de outra tipo de dado.

    • References – Ponteiro para referência, no caso proibido operações aritméticas dentro da declaração do tipo.

Variáveis:

E como os programas gerenciam internamente a memória? Para tanto existe um mecanismo denominado vinculação: ele consiste em ligar uma entidade abstrata interna definida no código do programa (pelo programador) a uma parte da finita memória, essas entidades são denominadas variáveis do programa e a região a que são vinculadas de células de memória.

Um programa pode requerer quantas células de memória adicional precisar através do uso de variáveis. Cada variável conterá seu próprio nome e seu tipo. Devido ao caráter formal de requisição de memória as variáveis precisam ser referenciadas no programa antes de serem utilizadas. Esse referenciamento é denominado declaração de variáveis.


A Norma define atributos para as variáveis:

RETAIN: Atributo para que o valor da variável fique em uma área de memória retentiva do controlador, permitindo seu valor manter-se após um "warm-restart".

CONSTANT: Informa que a variável é uma constante e seu valor inicial atribuído não é modificado.

AT: indica onde a variável esta localizada na memória, utilizado por exemplo para direcionar a variável a uma área de memória específica M de um CLP ou mapear uma entrada ou saída, ex: BT_START:BOOL AT % I.0


Escopo

As variáveis podem ter escopo

Global - (Acessível a todas rotinas, programas, etc do CLP)

I/O Mapping - Entradas, Saídas do CLP

External - permite acesso externo com o caminho completo da variável quando dentro de uma determinada rotina.

Temporária: sua existência é somente dentro da função/rotina e seus valores são perdidos ao fim da execução da rotina e função, liberando o espaço de memória para a próxima função/Rotina executada pelo SCAN do CLP


Bem esse foi o artigo sobre os tipos de dados e variáveis dentro da IEC 61131-3, é um artigo resumido e que já saiu longo.


Até o próximo artigo,


Bibliografia:

Proposed corrections to the IEC 61131-3 standard, Mário de Sousa, October 2010, - https://www.sciencedirect.com/science/article/abs/pii/S0920548910000346


 
 
 

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating

Sobre Nos

SOCIALS 

Participe do nosso Grupo:

Telegram e  WhatsApp.
 

SUBSCRIBE 

PLC com Engenharia de Sofware nasceu de um grupo de WhatsApp, que teve suas origens em 2018 em outro grupo, e criado oficialmente em 2020. Depois de solicitação seus participantes e outras pessoas que gostam do trabalho, vem a criação desse Blog para trazer alguns artigos, apostilas e tamém sempre que possível notícias.

Se inscreva para receber notificações de novas postagens!

Obrigado por sua Inscrição

© 2035 by FEEDs & GRIDs. Powered and secured by Wix

bottom of page