Carregando o progresso local…
PLC Gym
Início do PLC GymNível 1, 0 XP · seu progresso
Siemens, Rockwell e TwinCAT · Nada para instalar

Conversor de CLP: ladder para texto estruturado, Siemens para Rockwell

Cole um programa do TIA Portal, do Studio 5000 ou do TwinCAT. O PLC Gym descobre de qual fabricante ele é, devolve no código do outro fabricante, executa as duas versões lado a lado e mostra o que é diferente, linha por linha. Um jeito de aprender o outro fabricante com o seu próprio código e um bom começo para uma migração. Ele converte só a lógica, então ainda precisa de testes na máquina real.

  • Cada linha mapeada Passe o mouse sobre uma linha para ver de onde ela veio
  • Verificado, sem adivinhação Os dois programas rodam com as mesmas entradas no nosso simulador, varredura por varredura
  • Seu código não é guardado Vai para o nosso servidor para ser convertido e não é armazenado nem registrado em log

Conhece Siemens ou Rockwell, mas não os dois?

Cole seu próprio código e veja como o outro fabricante o escreve, com um resumo do que é diferente para você e as linhas em que está cada diferença. Depois execute no painel de controle e experimente em uma missão. É um jeito de aprender e um bom começo para uma migração, não código para uma planta em operação.

Siemens para Rockwell

TIA Portal para Studio 5000, e SCL para Structured Text

Temporizador
#Delay(IN := #Start, PT := T#2s);Delay.PRE := 2000; Delay.TimerEnable := Start; TONR(Delay);
Bit de concluído (DN)
#Delay.QDelay.DN
One shot
#Edge(CLK := #Eye);Edge.InputBit := Eye; OSRI(Edge);
Experimente em um semáforo Siemens

Rockwell para Siemens

Studio 5000 para TIA Portal, e Structured Text para SCL

Temporizador
Delay.PRE := 2000; Delay.TimerEnable := Start; TONR(Delay);#Delay(IN := #Start, PT := T#2s);
Bit de concluído (DN)
Delay.DN#Delay.Q
One shot
Edge.InputBit := Eye; OSRI(Edge);#Edge(CLK := #Eye);
Experimente em um nível de tanque Rockwell

Folha de referência de Siemens, Rockwell e TwinCAT: uma instrução, três nomes

O conversor mapeia cada um destes para você. Também é uma folha de referência prática quando você muda de planta.

O que fazRockwell Studio 5000Siemens TIA PortalBeckhoff TwinCAT 3 texto estruturado
Contatos normalmente abertos e fechadosXIC, XIOContatos NA e NFEscrito como lógica: A AND NOT B
Bobina, trava e destravaOTE, OTL, OTUBobina, S, Rx := …, IF … THEN x := TRUE
Temporizador com retardo na energizaçãoTON em um TIMER (.PRE .ACC .DN); TONR em um FBD_TIMER em STTON_TIME (PT, ET, Q)TON (PT, ET, Q)
Temporizador com retardo na desenergizaçãoTOF; TOFR em STTOF_TIMETOF
Contador crescenteCTU em um COUNTER, reset com RES; CTUD em STCTU em um IEC_COUNTER (PV, CV, Q, R)CTU (PV, CV, Q, RESET)
Borda de subidaONS, OSR; OSRI em STContato P, P_TRIG, R_TRIGR_TRIG
Borda de descidaOSF; OSFI em STContato N, N_TRIG, F_TRIGF_TRIG
Mover um valorMOVE (MOV antes da v36)MOVEx := y
CompararEQ, NE, LT, GT, LE, GE (EQU, NEQ, LES, GRT, LEQ, GEQ antes da v36)CMP ==, <>, <, >, <=, >==, <>, <, >, <=, >=
MatemáticaADD, SUB, MUL, DIV, CPTADD, SUB, MUL, DIV, CALCULATE+, -, *, /
Escalonar uma entrada analógicaSCPNORM_X e depois SCALE_XEscrito como uma fórmula
Números inteirosDINT (INT existe, DINT é nativo)Int, DIntINT, DINT
TemposDINT milissegundos: 2000Tempo: T#2sTIME: T#2S
Tags dentro de um blocoTags de programa, sem prefixo#Name (block interface)Sem prefixo (seções VAR)
Seu próprio tipo de dadosUDT (BOOLs empacotados em um SINT oculto)Tipo de dados do CLP: TYPE … STRUCTSTRUCT em um DUT
Seu próprio blocoAdd-On Instruction (AOI) com uma tag de suporteFB, chamado como multi-instânciaFUNCTION_BLOCK com uma instância
Chamando-oPumpCtl(Pump1, Start, Stop, Run): instância primeiro, parâmetros obrigatórios em ordem#Pump1(Start := …, Run => …)Pump1(Start := …, Run => …)
Um bloco cuja linha está desligadaEnableIn vai para falso: a lógica não executa (a rotina EnableInFalse dele executa, se tiver uma)EN desligado: o FB não é chamado (ENO falso)Não é chamado: ponha a chamada dentro de IF
Executar uma vez na partidaA rotina Prescan da AOI: executa durante o prescan, quando o controlador vai para RunOB de partida (OB100), ou um flag de primeira chamada no FBUm flag de primeira chamada no FB (ou FB_init)

O que ele converte e o que não converte

Ele converte a lógica. Tudo o que não consegue levar é listado com a linha e o que fazer, nunca omitido em silêncio.

Converte

  • Lógica ladder para Structured Text, sempre
  • Structured Text para ladder, onde a lógica cabe no ladder: contatos, bobinas, set e reset, temporizadores, contadores, bordas, comparações, movimentos e matemática
  • Siemens para Rockwell e de volta, em Structured Text ou ladder, e TwinCAT nos dois sentidos
  • Membros de temporizadores e contadores (IN/PT/Q/ET para TimerEnable/PRE/DN/ACC), locais com #, tipos de dados, bordas, MOVE e MOV, comparações e matemática
  • Declarações de tags com seus comentários, e os comentários no seu código
  • Seus próprios blocos de função, Add-On Instructions e UDTs: as definições, as chamadas e cada Tag.Member, na forma própria de cada fabricante
  • AOIs escritas em ladder, com suas rotinas Prescan e EnableInFalse: mantidas como linhas para um destino ladder, ou escritas como Structured Text
  • Blocos LAD e FBD da Siemens, a partir da exportação XML do TIA Portal: cada network é lida como o SCL que faz o mesmo
  • Programas inteiros de uma vez: uma fonte Siemens com seus blocos de dados, um programa do Studio 5000 cuja rotina principal chama as outras, e vários arquivos TwinCAT ou TIA Portal abertos juntos
  • Linhas do Studio 5000 com cópias e preenchimentos (COP, CPS e FLL, até 64 elementos), um contador contado nos dois sentidos (CTU com CTD), lógica de bits, MOD, ABS, SQR e MVM
  • Um temporizador de pulso (TP) indo para o Structured Text do Studio 5000, que não tem um: escrito em torno de um TONR e conferido com o original varredura por varredura
  • Um relatório que você pode salvar como arquivo de texto: o que precisa de você, o que mudou e por quê, e o que a verificação lado a lado tentou e não tentou

Não converte

  • Configuração de hardware, endereços de E/S, redes e comunicações (MSG, PUT/GET, EtherNet/IP, PROFINET)
  • Tags de IHM, alarmes e telas
  • Blocos de biblioteca de fabricantes, como PID, movimento e inversores
  • AOIs cuja lógica é diagrama de blocos de funções ou SFC: sinalizadas, para você reescrever essa rotina em ladder ou Structured Text primeiro
  • Métodos, propriedades, ações e uniões do TwinCAT
  • Strings de texto: as linhas que as usam são sinalizadas e deixadas para você
  • Laços FOR em ladder: são sinalizados com a linha e uma sugestão
  • STL, IL, SFC e GRAPH, e diagrama de blocos de funções do Studio 5000

Como funciona a prova

1. Converter

Seu código é lido em uma forma neutra e depois escrito como o fabricante de destino o escreve: escritas de membro e TONR no Logix, uma chamada TON_TIME no SCL, T#2s ou 2000.

2. Executar os dois

O simulador do PLC Gym executa o programa original e o convertido por 3.000 varreduras (60 segundos simulados). As entradas são pressionadas, seguradas e soltas, e os números cruzam todos os limites com que seu código compara.

3. Comparar cada varredura

Cada saída é comparada em cada varredura. Onde os fabricantes realmente diferem (um one-shot na primeira varredura, um reset de contador), o conversor escreve o código de modo que o comportamento continue igual, e avisa.

Roda no simulador do PLC Gym, então é uma verificação forte da lógica, não uma garantia para a sua planta: teste na máquina real, como a sua planta exige. Quer ver rodando? Pressione Executar para abrir o programa convertido no painel de controle do simulador de CLP online, ou teste seu código de CLP em uma máquina 3D.

Perguntas

Perguntas que engenheiros fazem

O que as pessoas verificam antes de confiar em um conversor.

Ele converte código Siemens do TIA Portal para Rockwell Studio 5000?

Sim. Cole SCL ou abra um arquivo .scl e ele vai para Rockwell por padrão, como Structured Text ou ladder. De SCL para Structured Text muda mais que os nomes das tags: chamadas TON_TIME viram TONR com .PRE e .TimerEnable, R_TRIG vira OSRI, .Q vira .DN, T#2s vira 2000 e INT vira DINT. Você pode baixar um .L5X para importar. Ele converte só a lógica, e esse arquivo até agora só foi testado ao ser lido de volta no PLC Gym, então confira a importação no Studio 5000.

Ele converte código Rockwell Studio 5000 para Siemens TIA Portal?

Sim. Cole Structured Text ou texto de linhas, ou abra uma exportação L5X, e ele vai para Siemens por padrão: SCL a partir de Structured Text, LAD a partir de ladder. Temporizadores TONR viram TON_TIME, contadores CTUD viram CTU, one shots OSRI viram R_TRIG, DN vira Q e ACC vira ET ou CV, e toda tag local recebe seu # no SCL.

Conheço Siemens, mas não Rockwell. Isso pode me ajudar a aprender?

Sim, e vice-versa. Cole o seu código e você recebe um resumo do que é diferente para você: como temporizadores, one shots e nomes de tags mudam, com as linhas do seu programa em que cada um está. Depois execute o programa convertido no painel de controle do PLC Gym, e jogue uma missão na linguagem desse fabricante. O guia rápido desta página cobre o resto.

O código convertido está pronto para uma planta em operação?

Não. Trate-o como um jeito de aprender e um empurrão inicial em uma migração. Ele converte só a lógica: configuração de hardware, endereços de E/S, comunicações, IHM, PID, movimento e inversores ficam com você. A verificação lado a lado roda no simulador do PLC Gym, não na sua máquina, e os arquivos precisam ser conferidos no software do próprio fabricante. Revise como faria com o código de um colega, e teste na máquina real como o seu local exigir.

Como ele sabe de qual fabricante é o meu código?

Ele lê o código, do jeito que um tradutor reconhece um idioma. Um # na frente dos nomes de tags indica Siemens, TONR ou .DN indica Studio 5000, e T#2s em tags sem # indica TwinCAT. Ele diz o que viu, e se o código puder ser de qualquer fabricante, avisa e deixa você escolher. Os arquivos dizem o que são: .scl, .L5X, .TcPOU e a exportação .xml do TIA Portal.

Ele lê ladder (LAD) e FBD da Siemens a partir do TIA Portal?

Sim, a partir da exportação XML do TIA Portal. Um bloco LAD ou FBD não tem fonte .scl, então o XML é o jeito de ele sair do TIA Portal: a partir da V16, adicione um workspace em Interface de controle de versão na árvore do projeto e traga o bloco para ele, e o TIA Portal grava o bloco como um arquivo .xml. Scripts Openness gravam o mesmo arquivo. Cada network é lida como o SCL que faz o mesmo, uma bobina como tudo o que está ligado à sua entrada e uma caixa como uma chamada, e converte a partir daí para Rockwell ou TwinCAT, em Structured Text ou ladder. Abra junto os blocos de dados e os tipos de dados do bloco e eles são lidos juntos. O leitor foi escrito a partir da descrição do formato feita pela Siemens e não foi testado em todas as versões do TIA Portal, então uma network com uma parte que ele não lê é apontada e deixada para você, e o resto do bloco é convertido em volta dela.

Vocês convertem lógica ladder para Structured Text?

Sim, sempre. Cada linha vira uma ou duas linhas de Structured Text: contatos viram AND e OR, bobinas viram atribuições, OTL e OTU viram IF … THEN, e temporizadores, contadores e one shots viram chamadas no estilo do próprio fabricante de destino. Os comentários das linhas vêm como comentários.

Qualquer Structured Text pode virar ladder?

A maior parte da lógica de controle pode: contatos, bobinas, set e reset, temporizadores, contadores, bordas, comparações, movimentos e matemática. Laços FOR não podem, porque o ladder executa cada linha uma vez por varredura, então o conversor sinaliza a linha e sugere escrever uma linha por elemento ou manter essa parte em Structured Text.

Ele converte meus próprios blocos de função, Add-On Instructions e UDTs?

Sim. Uma AOI do Studio 5000 vira um FB do TIA Portal ou um FUNCTION_BLOCK do TwinCAT, e vice-versa. AOIs escritas em ladder continuam ladder quando você converte para LAD do TIA Portal, e viram Structured Text nos outros casos. Uma UDT vira um tipo de dados do CLP ou um STRUCT do TwinCAT. As chamadas também mudam: o Studio 5000 passa a instância e depois os parâmetros obrigatórios em ordem, o TIA Portal e o TwinCAT nomeiam cada parâmetro. Estruturas de entrada entram em uma AOI como InOut, TIME vira DINT em milissegundos, e os valores padrão de uma UDT passam para as tags, porque as UDTs do Logix não podem guardar valores padrão. Cada mudança é listada no relatório, e a execução de prova compara também cada membro das estruturas.

O que acontece com as rotinas EnableInFalse e Prescan de uma AOI no TIA Portal ou no TwinCAT?

Nenhum dos dois tem rotinas de modo de varredura, então o bloco de função faz esse trabalho por conta própria. EnableInFalse vira uma entrada EnableIn: o bloco é chamado em toda varredura com EnableIn definido pela sua linha, e o IF … ELSE dele executa a lógica de EnableInFalse quando a linha está desligada. Prescan vira um código que executa uma vez, no início da primeira chamada do bloco. Postscan só executa quando uma ação de SFC termina, então é mantido para o Studio 5000 e anotado nos outros. A execução de prova confere que as duas versões se comportam igual.

Como sei que o código convertido faz a mesma coisa?

O PLC Gym executa o seu programa original e o convertido lado a lado no simulador por milhares de varreduras, alimentando os dois com as mesmas entradas, e compara cada saída em cada varredura. As entradas numéricas são levadas além dos limites do seu código e por toda a faixa do tipo delas, e a página mostra a faixa que tentou. Ela só diz coincide quando cada linha do seu programa executou, toda saída que liga e desliga mudou, e todo temporizador e contador chegou ao fim durante a execução. O que não conseguiu tentar é apontado, e o resultado diz parcial. Coincidir quer dizer que concordaram nesses testes, então não é uma garantia. Você vê o resultado como um traçado de analisador lógico. Pressione Executar para abrir o programa convertido no painel de controle do PLC Gym, com botões, chaves e luzes feitos a partir das suas tags, e experimente você mesmo. Teste sempre na máquina real como o seu local exigir.

O conversor é grátis?

Os exemplos prontos são abertos a todos, sem conta. Toda conta recebe um teste grátis do Pro até 5 de dezembro de 2026, então até lá uma conta grátis converte quanto do seu código você quiser. Depois disso, uma conta grátis converte 3 dos seus programas, e converter o mesmo código de novo ou para outro fabricante não consome outro.

Meu código é enviado para algum lugar?

Seu código vai para o nosso servidor por uma conexão criptografada para ser convertido, e o resultado volta direto. Não o armazenamos nem o registramos, e ele fica oculto das gravações de sessão que usamos para melhorar o site. Em uma conta grátis, guardamos uma impressão digital embaralhada de até 3 programas, para que o mesmo código não conte duas vezes. Ela não pode ser transformada de volta no seu código, e some quando a sua conta some.

Posso importar o resultado no TIA Portal, no Studio 5000 ou no TwinCAT?

Sim. Baixe uma fonte .scl e use Gerar blocos a partir da fonte no TIA Portal, um .L5X para importar no Studio 5000, ou um .TcPOU para adicionar a um projeto TwinCAT 3. Seus próprios tipos e blocos vêm junto: no .scl e no .L5X, ou como um zip de arquivos .TcDUT e .TcPOU para o TwinCAT. O TIA Portal não tem formato de texto para ladder, então, para LAD da Siemens, você redesenha as networks mostradas, ou usa o arquivo SCL. Trate esses arquivos como beta: o .L5X até agora só foi testado ao ser lido de volta no PLC Gym, então confira cada importação no software do próprio fabricante.

O que ele não converte?

Só a lógica: não a configuração de hardware, as comunicações, as tags de IHM nem os blocos de biblioteca de fabricantes, como PID e movimento. Seus próprios blocos de função, AOIs e UDTs são convertidos, desde que a lógica deles seja ladder ou Structured Text. Tudo o que ele não consegue levar é listado com a linha e o que fazer, nunca deixado de fora em silêncio.

Convertendo entre fabricantes? Troque dicas no Vestiário.