CODESYS (Acrônimo do inglês Controller Development System, também estilizado como CoDeSys) é um ambiente de desenvolvimento para controladores programáveis de acordo com a norma IEC 61131-3.

Introdução editar

O CODESYS é desenvolvido e comercializado pela 3S-Smart Software Solutions GmbH, uma empresa alemã situada na cidade de Kempten, na Baviera. A versão 1.0 foi lançada em 1994 e atualmente encontra-se na versão 3.5. Sua interface de desenvolvimento é gratuita e não é orientado à um tipo específico de hardware de controlador programável ou sistema embarcado, inclusive não dependendo do fabricante do hardware. É amplamente utilizado na indústria para diversos tipos de automações, variando de lógicas simples à robótica, controle de movimento e CNC. [1]

Engenharia editar

Todas as cinco linguagens de programação definidas na IEC 61131-3[2] estão disponíveis na interface de desenvolvimento do CODESYS e podem ser utilizadas em uma mesma aplicação. São elas:

O CODESYS contêm adicionalmente a linguagem gráfica CFC (do inglês Continuous Function Chart) que não é descrita na IEC 61131-3, que pode ser compreendida como um diagrama de blocos com posicionamento livre, onde o programador pode posicionar os blocos e efetuar a conexões de dados utilizando o mouse com funções do tipo arrastar e soltar.

O compilador interno monta o código de máquina (código binário) a partir da aplicação desenvolvida e transfere ao dispositivo de destino, a partir do qual é possível testar o sistema utilizando os avançados recursos de depuração (debug), como a monitoração de variáveis, breakpoints, osciloscópio e data-logger. Na ausência de um dispositivo também é possível executar a simulação da aplicação.[3]

Tipos de Variáveis editar

Abaixo estão as definições de tipos de variáveis utilizadas no CODESYS:[4]

Tipo Memória Limite Mínimo Limites Máximo Observações
BOOL 1 bit False (0) True (1)
BYTE 8 bits 0 255
WORD 16 bits 0 65535
DWORD 32 bits 0 4294967295
LWORD 64 bits 0 264-1
SINT 8 bits -128 127
USINT 8 bits 0 255
INT 16 bits -32768 32767
UINT 16 bits 0 65535
DINT 32 bits -2147483648 2147483647
UDINT 32 bits 0 4294967295
LINT 64 bits -263 263-1
ULINT 64 bits 0 264-1
REAL 32 bits -3.402823e+38 3.402823e+38
LREAL 64 bits -1.7976931348623158e+308 1.7976931348623158e+308
TIME 32 bits 0 ms 4294967295 ms
TIME_OF_DAY 32 bits 0 (00:00:00AM:000) 4294967295 (11:59:59 PM:999)
LTIME 64 bits 0 213503d23h34m33s709ms551us615ns
DATE 32 bits 0 (01.01.1970) 4294967295 (2106-02-07)
DATE_AND_TIME 32 bits 0 (1970-01-01, 00:00:00) 4294967295 (2106-02-07,06:28:15)
STRING 1 byte por caractere + 1 Codificação ASCII
WSTRING 1 byte por caractere + 1 Codificação Unicode

A alocação de memória para variáveis do tipo STRING e WSTRING depende da declaração, se não for definida uma dimensão o sistema alocará 80 caracteres para a variável por padrão. A memória alocada sempre será 1 byte por caractere + 1 byte (por exemplo: a declaração STRING[67]ocupará 68 bytes na memória).

Runtime editar

Implementando o CODESYS Runtime System em um Sistema embarcado, por exemplo, é possível programa-lo através da Interface de Desenvolvimento CODESYS. O Runtime pode ser implementado em diversos dispositivos atualmente (como o Raspberry Pi), limitando aos recursos disponíveis, porém, diferente da Interface de Desenvolvimento, o Sistema de Runtime não é totalmente gratuito, dependendo de Licenciamento para operar em equipamentos para produção.[5]

Tecnologia Fieldbus editar

Vários tipos de redes de comunicação industrial, também conhecidos como bus de campo, podem ser utilizadas, como PROFIBUS, EtherCAT, CANopen, PROFINET e Ethernet/IP que podem depender do hardware do sistema. Alguns protocolos podem ser encontrados em alguns sistemas no formato de bibliotecas adicionais e também podem depender ou não de hardware específico.

Visualização editar

Um sistema integrado ao ambiente de desenvolvimento do código permite a criação de interfaces manipuláveis utilizando botões, textos dentre outros elementos dinâmicos que podem ser conectados às variáveis do projeto. Estas interfaces gráficas podem ser usadas para facilitar o comissionamento e testes de equipamentos tanto durante o desenvolvimento aliado, por exemplo, à simulação, ou refletindo o estado real do equipamento conectado.

Existe a possibilidade de utilizar estes recursos em dispositivos de visualização dedicados, permitindo o uso como terminal de operação dos equipamentos após a fase de desenvolvimento.

SoftMotion editar

Trata-se de uma solução modular para controle de movimentos complexos com um controlador programável que atenda a IEC 61131-3, está completamente integrado ao ambiente do CODESYS, fornecendo:

  • Editor de plano de movimento (CAM ou Código CNC baseado na norma DIN 66025.
  • Bibliotecas para decodificação, interpolação, Transformadas cinemáticas, e controle de movimento de acordo com as diretivas da PLCopen MotionControl.[6]

É possível obter bibliotecas completas para controle de robôs paralelos, ou tipo SCARA, por exemplo, sem necessidade de desenvolver a cinemática e permitindo integrar com a lógica do ambiente em um único controlador.[7]

Segurança - Safety editar

O CODESYS pode incluir o sistema de segurança no mesmo projeto de controle com categoria SIL2 ou SIL3, dependendo da aplicação e do controlador programável.[8]

Uso na indústria editar

Diversos fabricantes de controladores programáveis utilizam a plataforma CODESYS. Em alguns casos a plataforma é personalizada para adicionar recursos próprios dos fabricantes, ou bibliotecas dedicadas.

O CODESYS Device Directory é uma lista com vários equipamentos que utilizam a tecnologia CODESYS, onde os engenheiros e técnicos do setor podem comparar diferentes recursos disponíveis.

Referências