PLC-converter van ladderdiagram naar gestructureerde tekst, Siemens naar Rockwell
Plak een programma uit TIA Portal, Studio 5000 of TwinCAT. PLC Gym zoekt uit van welke fabrikant het is, geeft het terug in de code van de andere fabrikant, laat beide versies naast elkaar draaien en toont je regel voor regel wat er anders is. Een manier om de andere fabrikant te leren met je eigen code, en een voorsprong bij een migratie. Het zet alleen logica om, dus het moet nog op de echte machine getest worden.
- Elke regel gekoppeld Beweeg over een rung of regel om te zien waar hij vandaan komt
- Gecontroleerd, niet geraden Beide programma's draaien in onze simulator op dezelfde ingangen, cyclus voor cyclus
- Je code wordt niet bewaard Hij gaat naar onze server om te worden omgezet, en wordt niet opgeslagen of gelogd
Ken je Siemens of Rockwell, maar niet allebei?
Plak je eigen code en zie hem zoals de andere fabrikant hem schrijft, met een samenvatting van wat er voor jou anders is en de regels waar elk verschil zit. Laat hem daarna draaien op het bedieningspaneel en probeer hem in een missie. Het is een manier om te leren en een voorsprong bij een migratie, geen code voor een draaiende installatie.
Siemens naar Rockwell
TIA Portal naar Studio 5000, en SCL naar gestructureerde tekst
- Timer
#Delay(IN := #Start, PT := T#2s);Delay.PRE := 2000; Delay.TimerEnable := Start; TONR(Delay);- Done-bit
#Delay.QDelay.DN- One-shot
#Edge(CLK := #Eye);Edge.InputBit := Eye; OSRI(Edge);
Rockwell naar Siemens
Studio 5000 naar TIA Portal, en gestructureerde tekst naar SCL
- Timer
Delay.PRE := 2000; Delay.TimerEnable := Start; TONR(Delay);#Delay(IN := #Start, PT := T#2s);- Done-bit
Delay.DN#Delay.Q- One-shot
Edge.InputBit := Eye; OSRI(Edge);#Edge(CLK := #Eye);
Spiekbriefje Siemens, Rockwell, TwinCAT: één instructie, drie namen
De converter koppelt elk hiervan voor je. Het is ook een handig spiekbriefje als je tussen installaties wisselt.
| Wat het doet | Rockwell Studio 5000 | Siemens TIA Portal | Beckhoff TwinCAT 3 gestructureerde tekst |
|---|---|---|---|
| Maakcontacten en verbreekcontacten | XIC, XIO | NO- en NC-contacten | Geschreven als logica: A AND NOT B |
| Spoel, latch en unlatch | OTE, OTL, OTU | Spoel, S, R | x := …, IF … THEN x := TRUE |
| Timer met inschakelvertraging | TON op een TIMER (.PRE .ACC .DN); TONR op een FBD_TIMER in ST | TON_TIME (PT, ET, Q) | TON (PT, ET, Q) |
| Timer met uitschakelvertraging | TOF; TOFR in ST | TOF_TIME | TOF |
| Optelteller | CTU op een COUNTER, reset met RES; CTUD in ST | CTU op een IEC_COUNTER (PV, CV, Q, R) | CTU (PV, CV, Q, RESET) |
| Stijgende flank | ONS, OSR; OSRI in ST | P-contact, P_TRIG, R_TRIG | R_TRIG |
| Vallende flank | OSF; OSFI in ST | N-contact, N_TRIG, F_TRIG | F_TRIG |
| Een waarde verplaatsen | MOVE (MOV vóór v36) | MOVE | x := y |
| Vergelijken | EQ, NE, LT, GT, LE, GE (EQU, NEQ, LES, GRT, LEQ, GEQ vóór v36) | CMP ==, <>, <, >, <=, >= | =, <>, <, >, <=, >= |
| Rekenen | ADD, SUB, MUL, DIV, CPT | ADD, SUB, MUL, DIV, CALCULATE | +, -, *, / |
| Een analoge ingang schalen | SCP | NORM_X en dan SCALE_X | Uitgeschreven als formule |
| Gehele getallen | DINT (INT bestaat, DINT is de standaard) | Int, DInt | INT, DINT |
| Tijden | DINT-milliseconden: 2000 | Tijd: T#2s | TIME: T#2S |
| Tags binnen een blok | Programmatags, geen voorvoegsel | #Name (block interface) | Geen voorvoegsel (VAR-secties) |
| Je eigen datatype | UDT (BOOLs samengepakt in een verborgen SINT) | PLC-datatype: TYPE … STRUCT | STRUCT in een DUT |
| Je eigen blok | Add-On Instruction (AOI) met een onderliggende tag | FB, aangeroepen als multi-instantie | FUNCTION_BLOCK met een instantie |
| Aanroepen | PumpCtl(Pump1, Start, Stop, Run): eerst de instantie, dan de verplichte parameters op volgorde | #Pump1(Start := …, Run => …) | Pump1(Start := …, Run => …) |
| Een blok waarvan de rung uit staat | EnableIn wordt false: de logica draait niet (de EnableInFalse-routine draait wel, als die er is) | EN uit: de FB wordt niet aangeroepen (ENO false) | Niet aangeroepen: zet de aanroep binnen IF |
| Eén keer draaien bij het opstarten | De Prescan-routine van de AOI: draait tijdens de prescan, als de besturing naar Run gaat | Opstart-OB (OB100), of een vlag voor de eerste aanroep in de FB | Een vlag voor de eerste aanroep in de FB (of FB_init) |
Wat hij omzet, en wat niet
Hij zet de logica om. Alles wat hij niet kan meenemen, wordt vermeld met de regel en wat je moet doen, en wordt nooit stilletjes weggelaten.
Zet om
- Ladderlogica naar gestructureerde tekst, altijd
- Gestructureerde tekst naar ladderdiagram, waar de logica in een ladderdiagram past: contacten, spoelen, set en reset, timers, tellers, flanken, vergelijkingen, verplaatsingen en berekeningen
- Siemens naar Rockwell en terug, in gestructureerde tekst of ladderdiagram, en TwinCAT in beide richtingen
- Leden van timers en tellers (IN/PT/Q/ET naar TimerEnable/PRE/DN/ACC), #-lokale variabelen, datatypen, flanken, MOVE en MOV, vergelijkingen en berekeningen
- Tagdeclaraties met hun commentaar en het commentaar in je code
- Je eigen functieblokken, Add-On Instructions en UDT's: de definities, de aanroepen en elke Tag.Member, in de eigen vorm van elke fabrikant
- AOI's in ladderdiagram, met hun Prescan- en EnableInFalse-routines: behouden als rungs voor een ladderdoel, of uitgeschreven als gestructureerde tekst
- Siemens LAD- en FBD-blokken, uit de XML-export van TIA Portal: elk netwerk wordt gelezen als de SCL die hetzelfde doet
- Hele programma's in één keer: een Siemens-bron met zijn datablokken, een Studio 5000-programma waarvan de hoofdroutine de andere aanroept en meerdere TwinCAT- of TIA Portal-bestanden die samen worden geopend
- Studio 5000-rungs met kopieën en vullingen (COP, CPS en FLL, tot 64 elementen), een teller die beide kanten op telt (CTU met CTD), bitlogica, MOD, ABS, SQR en MVM
- Een pulstimer (TP) die naar gestructureerde tekst van Studio 5000 gaat, die er geen heeft: uitgeschreven rond een TONR en cyclus voor cyclus vergeleken met het origineel
- Een rapport dat je als tekstbestand kunt opslaan: wat jouw aandacht nodig heeft, wat er is veranderd en waarom, en wat de vergelijking naast elkaar wel en niet heeft geprobeerd
Zet niet om
- Hardwareconfiguratie, I/O-adressen, netwerken en communicatie (MSG, PUT/GET, EtherNet/IP, PROFINET)
- HMI-tags, alarmen en schermen
- Bibliotheekblokken van fabrikanten, zoals PID, motion en frequentieregelaars
- AOI's waarvan de logica functieblokdiagram of SFC is: gemarkeerd, zodat je die routine eerst in ladderdiagram of gestructureerde tekst kunt herschrijven
- Methoden, eigenschappen, acties en unions van TwinCAT
- Tekststrings: regels die ze gebruiken worden gemarkeerd en aan jou overgelaten
- FOR-lussen naar ladderdiagram: ze worden gemarkeerd met de regel en een suggestie
- STL, IL, SFC en GRAPH, en functieblokdiagram uit Studio 5000
Hoe het bewijs werkt
Je code wordt ingelezen in een neutrale vorm en daarna uitgeschreven zoals de doelfabrikant het schrijft: leden schrijven en TONR in Logix, één TON_TIME-aanroep in SCL, T#2s of 2000.
De simulator van PLC Gym draait het originele en het omgezette programma 3.000 cycli lang (60 gesimuleerde seconden). Ingangen worden ingedrukt, vastgehouden en losgelaten, en getallen gaan over elke grens waarmee je code vergelijkt.
Elke uitgang wordt in elke cyclus vergeleken. Waar fabrikanten echt verschillen (een eenmalige puls in de eerste cyclus, een tellerreset), schrijft de converter de code zo dat het gedrag toch overeenkomt, en zegt hij dat.
Het draait op de simulator van PLC Gym, dus het is een sterke controle van de logica, geen garantie voor je installatie: test op de echte machine zoals je locatie dat vereist. Wil je het zien draaien? Druk op Draai het om het omgezette programma te openen op het bedieningspaneel van online PLC-simulator, of test je PLC-code op een 3D-machine.
Vragen die engineers stellen
Wat mensen controleren voordat ze een converter vertrouwen.
Kan het Siemens TIA Portal-code omzetten naar Rockwell Studio 5000?
Ja. Plak SCL of open een .scl-bestand en het gaat standaard naar Rockwell, als gestructureerde tekst of ladderdiagram. SCL naar gestructureerde tekst verandert meer dan de tagnamen: TON_TIME-aanroepen worden TONR met .PRE en .TimerEnable, R_TRIG wordt OSRI, .Q wordt .DN, T#2s wordt 2000 en INT wordt DINT. Je kunt een .L5X downloaden om te importeren. Het zet alleen logica om en dat bestand is tot nu toe alleen getest door het terug te lezen in PLC Gym, dus controleer de import in Studio 5000.
Kan het Rockwell Studio 5000-code omzetten naar Siemens TIA Portal?
Ja. Plak gestructureerde tekst of rungtekst, of open een L5X-export, en het gaat standaard naar Siemens: SCL vanuit gestructureerde tekst, LAD vanuit ladderdiagram. TONR-timers worden TON_TIME, CTUD-tellers worden CTU, OSRI-one-shots worden R_TRIG, DN wordt Q en ACC wordt ET of CV, en elke lokale tag krijgt zijn # in SCL.
Ik ken Siemens maar niet Rockwell. Kan dit me helpen te leren?
Ja, en andersom ook. Plak je eigen code en je krijgt een samenvatting van wat er voor jou anders is: hoe timers, one-shots en tagnamen veranderen, met de regels van je programma waarop elk ervan staat. Draai het omgezette programma daarna op het bedieningspaneel van PLC Gym en speel een missie in de taal van die fabrikant. Het spiekbriefje op deze pagina behandelt de rest.
Kan de omgezette code direct op een draaiende fabriek?
Nee. Zie het als een manier om te leren en een voorsprong bij een migratie. Het zet alleen logica om: hardwareconfiguratie, I/O-adressen, communicatie, HMI, PID, motion en frequentieregelaars blijven voor jouw rekening. De vergelijking naast elkaar draait op de simulator van PLC Gym, niet op jouw machine, en de bestanden moeten worden gecontroleerd in de eigen software van de fabrikant. Beoordeel het zoals je de code van een collega zou beoordelen en test het op de echte machine zoals je locatie dat vereist.
Hoe weet het van welke fabrikant mijn code is?
Het leest de code, zoals een vertaler een taal herkent. Een # voor tagnamen betekent Siemens, TONR of .DN betekent Studio 5000 en T#2s bij tags zonder # betekent TwinCAT. Het vertelt je wat het zag en als de code van elke fabrikant kan zijn, zegt het dat en laat het je kiezen. Bestanden laten zien wat ze zijn: .scl, .L5X, .TcPOU en de .xml-export van TIA Portal.
Leest het Siemens-ladderdiagram (LAD) en FBD uit TIA Portal?
Ja, uit de XML-export van TIA Portal. Een LAD- of FBD-blok heeft geen .scl-bron, dus XML is de manier waarop het TIA Portal verlaat: voeg vanaf V16 in de projectboom een werkruimte toe onder Version control interface en breng het blok daarin, en TIA Portal schrijft het blok als .xml-bestand. Openness-scripts schrijven hetzelfde bestand. Elk netwerk wordt gelezen als de SCL die hetzelfde doet, een spoel als alles wat op de ingang is aangesloten en een vak als een aanroep, en wordt vanaf daar omgezet naar Rockwell of TwinCAT, in gestructureerde tekst of ladderdiagram. Open de datablokken en datatypen van het blok erbij en ze worden samen gelezen. De lezer is geschreven op basis van de beschrijving van het formaat door Siemens en is niet met elke versie van TIA Portal geprobeerd, dus een netwerk met een onderdeel dat het niet leest, wordt benoemd en aan jou overgelaten, en de rest van het blok wordt eromheen omgezet.
Kun je ladderlogica omzetten naar gestructureerde tekst?
Ja, altijd. Elke rung wordt een of twee regels gestructureerde tekst: contacten worden AND en OR, spoelen worden toewijzingen, OTL en OTU worden IF … THEN en timers, tellers en one-shots worden aanroepen in de eigen stijl van de doelfabrikant. De commentaren bij de rungs komen mee als commentaar.
Kan alle gestructureerde tekst worden omgezet naar ladderdiagram?
De meeste besturingslogica kan: contacten, spoelen, set en reset, timers, tellers, flanken, vergelijkingen, verplaatsingen en berekeningen. FOR-lussen niet, omdat een ladderdiagram elke rung één keer per cyclus uitvoert, dus de converter markeert de regel en stelt voor één rung per element te schrijven of dat deel in gestructureerde tekst te houden.
Zet het mijn eigen functieblokken, Add-On Instructions en UDT's om?
Ja. Een Studio 5000-AOI wordt een FB van TIA Portal of een FUNCTION_BLOCK van TwinCAT, en terug. AOI's in ladderdiagram blijven ladderdiagram als je naar TIA Portal LAD omzet en worden anders gestructureerde tekst. Een UDT wordt een PLC-datatype of een STRUCT van TwinCAT. De aanroepen veranderen ook: Studio 5000 geeft de instantie door en daarna de verplichte parameters op volgorde, TIA Portal en TwinCAT benoemen elke parameter. Invoerstructuren gaan als InOut in een AOI, TIME wordt DINT-milliseconden en de standaardwaarden van een UDT verhuizen naar de tags, omdat Logix-UDT's geen standaardwaarden kunnen bevatten. Elke wijziging staat in het rapport en de bewijsrun vergelijkt ook elk structuurlid.
Wat gebeurt er met de EnableInFalse- en Prescan-routines van een AOI in TIA Portal of TwinCAT?
Geen van beide heeft scanmodus-routines, dus het functieblok doet dezelfde taak zelf. EnableInFalse wordt een EnableIn-ingang: het blok wordt bij elke cyclus aangeroepen met EnableIn gezet vanuit zijn rung en zijn IF … ELSE voert de EnableInFalse-logica uit als de rung uit staat. Prescan wordt code die één keer draait, aan het begin van de eerste aanroep van het blok. Postscan draait alleen als een SFC-actie eindigt, dus het wordt voor Studio 5000 bewaard en elders genoteerd. De bewijsrun controleert of beide versies zich hetzelfde gedragen.
Hoe weet ik dat de omgezette code hetzelfde doet?
PLC Gym draait je origineel en het omgezette programma naast elkaar in zijn simulator voor duizenden cycli, stuurt beide aan met dezelfde ingangen en vergelijkt elke uitgang bij elke cyclus. Getalingangen worden over de grenzen in je code en over het volledige bereik van hun type geduwd en de pagina toont het bereik dat is geprobeerd. Het zegt pas dat het overeenkomt als elke regel van je programma is uitgevoerd, elke aan- en uit-uitgang is veranderd en elke timer en teller tijdens de run tot het einde is gelopen. Wat het niet kon proberen, wordt benoemd en het resultaat zegt dan gedeeltelijk. Een overeenkomst betekent dat ze het in die tests eens waren, dus het is geen garantie. Je ziet het resultaat als een logic-analyzer-trace. Druk op Laat draaien om het omgezette programma te openen op het bedieningspaneel van PLC Gym, met knoppen, schakelaars en lampen gemaakt van zijn tags, en probeer het zelf. Test altijd op de echte machine zoals je locatie dat vereist.
Is de converter gratis?
De kant-en-klare voorbeelden zijn voor iedereen open, zonder account. Elk account krijgt een gratis Pro-proefperiode tot 5 december 2026, dus tot dan zet een gratis account zoveel van je eigen code om als je wilt. Daarna zet een gratis account 3 van je eigen programma's om en dezelfde code opnieuw of naar een andere fabrikant omzetten telt niet als een extra.
Wordt mijn code ergens naartoe geüpload?
Je code gaat via een versleutelde verbinding naar onze server zodat hij kan worden omgezet en het resultaat komt meteen terug. We slaan hem niet op en loggen hem niet, en hij is verborgen in de sessieopnamen die we gebruiken om de site te verbeteren. Bij een gratis account bewaren we een versleutelde vingerafdruk van maximaal 3 programma's, zodat dezelfde code niet twee keer telt. Die kan niet worden teruggezet naar je code en verdwijnt als je account verdwijnt.
Kan ik het resultaat importeren in TIA Portal, Studio 5000 of TwinCAT?
Ja. Download een .scl-bron en gebruik Generate blocks from source in TIA Portal, een .L5X om in Studio 5000 te importeren of een .TcPOU om aan een TwinCAT 3-project toe te voegen. Je eigen types en blokken komen ook mee: in de .scl en de .L5X, of als zip van .TcDUT- en .TcPOU-bestanden voor TwinCAT. TIA Portal heeft geen tekstformaat voor ladderdiagram, dus voor Siemens LAD teken je de getoonde netwerken opnieuw of gebruik je het SCL-bestand. Behandel deze bestanden als een bèta: de .L5X is tot nu toe alleen getest door hem terug te lezen in PLC Gym, dus controleer elke import in de eigen software van de fabrikant.
Wat zet het niet om?
Alleen logica: geen hardwareconfiguratie, communicatie, HMI-tags of bibliotheekblokken van fabrikanten zoals PID en motion. Je eigen functieblokken, AOI's en UDT's worden wel omgezet, zolang hun logica ladderdiagram of gestructureerde tekst is. Alles wat het niet kan overbrengen, wordt vermeld met de regel en wat je moet doen, en wordt nooit stilletjes weggelaten.
Zet je om tussen fabrikanten? Wissel tips uit in de Kleedkamer.