← Resources
Migration·8 min read·

Moving a program between vendors, honestly

There is no automated path from Siemens to Rockwell, and understanding why explains what to plan for instead.

Short answer

Not automatically, and no commercial tool claims otherwise. The platforms disagree about memory addressing, program organisation, timer semantics and data types, so a converter would have to make engineering decisions rather than translations. Bit logic maps mechanically; everything structural needs a person, which is why cross-vendor moves are usually scoped as rewrites informed by the original.

What converts, and what doesn'tBit logic96%Timers & counters82%Maths78%Addressing40%Block transfers8%PID tuning5%Roughly what an automated PLC-5 → ControlLogix pass gets through untouched

The question comes up on every plant with mixed equipment, and the honest answer is unsatisfying: there is no automated path, and the reason is not that nobody has tried.

Why it is hard

The platforms disagree at a level below syntax.

  • Memory. Tags versus addressed areas. There is no mechanical mapping that preserves meaning.
  • Timers. Rockwell timer structures and IEC timer function blocks behave differently on reset and hold different state.
  • Organisation. Routines called by JSR versus organisation blocks invoked by the runtime.
  • Data types. Similar names, different widths and different overflow behaviour.

A converter facing these has to decide what the engineer meant, which is engineering, not translation.

What actually helps

A neutral intermediate form gets you the bit logic. PLCopen XML is the standard one, and it carries contacts, coils, and structure across faithfully enough to be worth using.

What it cannot carry is anything vendor-specific, which in a real project is most of the interesting part.

The realistic plan is: extract the logic mechanically, rebuild the structure deliberately, and verify by comparing behaviour rather than by comparing code.

Verification is the deliverable

Whatever route you take, the thing the customer is buying is confidence that the new program behaves like the old one. Test vectors that exercise every transition, run against both, are worth more than any amount of careful reading.

Common questions

Is there a tool that converts Siemens to Allen-Bradley?
No general-purpose one exists, because the differences are semantic rather than syntactic. Timers, addressing and program organisation have no one-to-one mapping, so any tool would be guessing at intent. Some consultancies offer assisted conversion, which is a person using tooling rather than an automated pipeline.
Does PLCopen XML solve cross-vendor migration?
It helps and does not solve it. PLCopen XML carries logic in a neutral form, which is genuinely useful, but every vendor implements a subset and vendor-specific blocks fall outside it. It moves the bit logic and leaves the platform-dependent parts to you.

Keep reading