Source portability
The owner receives editable application source in the agreed language and format, with no inaccessible generated logic required to maintain it.
Home › O-PAS Application Portability
IEC 61131 · Control Applications · Ownership · Verification
Application portability is not a label attached to source code. It is a project outcome created by architecture, disciplined use of IEC 61131, controlled dependencies, complete owner deliverables and a test that proves the application can move.
The short answer
O-PAS alignment and use of an IEC 61131 language do not, by themselves, prove that a control application is portable. Portability exists when an owner can take the complete application package, deploy it in an intended compatible environment without redesigning the control strategy, and demonstrate equivalent required behaviour through an agreed test.
The project must define the language and feature set, runtime assumptions, libraries, interfaces, data model, timing, security, system services, deployment method, ownership, documentation and acceptance evidence. Any dependency left implicit can become the proprietary boundary that prevents the application from moving.
01 · Definition
An application can be readable outside its original tool and still be expensive or impossible to operate elsewhere. The claim must identify exactly what moves and what work remains.
The owner receives editable application source in the agreed language and format, with no inaccessible generated logic required to maintain it.
Logic, data types, task behaviour and function semantics retain their intended meaning in the target environment.
The application can be compiled or prepared using documented tools, versions, libraries, settings and dependencies.
The package can be installed, configured, versioned and rolled back through the target environment's approved workflow.
The application executes within required timing, resource, communication, redundancy and recovery limits.
The owner can maintain, test, update and move the application after the original supplier and project team have gone.
The acceptance rule
A statement that an application is portable should name the source environment, target environment, application baseline, permitted changes, required behaviour and test evidence. Without those boundaries, portability is an aspiration rather than an acceptance criterion.
02 · Language
IEC 61131 control applications are the practical centre of most industrial control work. Standard languages create a common engineering basis, but the delivered application can still depend on implementation choices outside the language.
Standard languages, program organisation concepts and data constructs reduce the amount of control knowledge trapped in an entirely proprietary representation.
Scheduling, timing, persistence, data representation, diagnostics, online change, redundancy and resource limits can differ between environments.
A standard language can call a vendor-specific library. If that library cannot move, the application is only as portable as its most important dependency.
Vendor extensions may be valuable, but each one should be identified, justified and assigned a migration or replacement strategy.
03 · Dependency control
The core algorithm may be straightforward. The difficulty sits in everything the application expects around it.
| Dependency | Question to resolve | Evidence to require |
|---|---|---|
| Libraries and function blocks | Are they standard, owner-controlled, licensed, replaceable or tied to one environment? | Source or documented interface, version, licence rights, tests and replacement position. |
| Task and scheduling model | What cycle, priority, event and execution-order assumptions affect behaviour? | Task configuration, timing budget and representative load test. |
| I/O and communications | How are field data, peer data, quality, timestamps and failure states presented? | Interface definitions, mappings, data semantics and boundary tests. |
| System services | Does the application call alarms, historians, identity, time, diagnostics or management services? | Service catalogue, API or interface definition, error behaviour and fallback requirements. |
| Data types and persistence | How are values represented, retained, initialised, converted and recovered? | Data dictionary, persistence rules, restart tests and conversion records. |
| Engineering toolchain | Which tool, plug-in, compiler, licence and version are needed to build and maintain the application? | Build instructions, tool versions, licences, clean-build record and owner access. |
| Cybersecurity controls | Which identities, permissions, certificates, signing or approval workflows govern deployment? | Security roles, credential process, signing records and deployment audit evidence. |
| Hardware or runtime features | Does the logic rely on a specific processor, accelerator, redundancy model or proprietary runtime service? | Resource profile, dependency statement, performance limits and target-environment test. |
04 · Handover
Source code without its dependencies, configuration and evidence is not a complete handover. The package should be sufficient for a competent team to reproduce the approved application baseline.
Programs, function blocks, functions, data types, declarations, comments and configuration under version control.
Library source where required, binaries where permitted, versions, licences, provenance and interface documentation.
Tools, compiler, plug-ins, settings, scripts, environment versions and instructions for a clean build.
Runtime configuration, mappings, security requirements, target parameters, release notes and rollback package.
Control narratives, cause-and-effect, sequence descriptions, interfaces, assumptions and traceability to implementation.
Unit, integration, performance, failure, recovery, regression and functional-equivalence procedures with records.
The contract should state ownership and continuing use rights for every item, including supplier-developed libraries and build assets. Delivery alone does not resolve whether the owner is legally or technically able to reuse them.
05 · Procurement
Portability is easiest to preserve before tools, libraries and coding practices have created dependencies. Recovery after implementation is usually a redevelopment project.
Name the business reason, intended target environments, application classes in scope and acceptable level of conversion or rework.
Specify IEC 61131 language, coding standard, feature policy, naming, modularity, documentation, version control and review requirements.
Identify approved libraries, ownership, source requirements, version control, qualification, vendor extensions and the process for exceptions.
State task behaviour, timing, resources, persistence, I/O semantics, communications, system services, security and failure handling.
List source, libraries, build environment, configurations, mappings, deployment files, licences, documentation, tests and records.
Name who supplies the target environment, prepares the package, resolves dependencies, performs conversion, executes tests and pays for correction.
Specify the source and target baselines, permitted changes, test environment, representative load, required behaviour, tolerances and acceptance authority.
Carry these requirements into the RFQ using the O-PAS Procurement Specification Checklist and allocate the work with the O-PAS Responsibility Matrix.
06 · Verification
The strongest evidence is a controlled move using the same deliverables and process the owner will rely on during the system lifecycle.
| Step | Demonstration | Acceptance evidence |
|---|---|---|
| 1. Freeze the baseline | Identify the approved source application, runtime, versions, configuration and required behaviour. | Signed baseline, checksums or version identifiers and approved test reference. |
| 2. Assemble the package | Deliver only the contracted owner handover assets, not undocumented supplier knowledge. | Package manifest, dependency list and completeness review. |
| 3. Prepare a clean target | Use the named compatible target environment without hidden remnants of the source toolchain. | Target baseline, installed tools and environment record. |
| 4. Build and deploy | Compile or prepare, configure and deploy through the documented workflow. | Build log, deployment log, warnings, changes and elapsed engineering effort. |
| 5. Resolve permitted differences | Apply only the conversion explicitly allowed by the acceptance plan. | Change record separating configuration, mapping, library substitution and logic redesign. |
| 6. Execute the test suite | Test normal operation, sequences, interlocks, timing, limits, bad data, communication loss, restart and recovery. | Approved results under representative load and failure conditions. |
| 7. Compare behaviour | Demonstrate required functional equivalence within defined tolerances. | Traceable comparison, accepted deviations and residual limitations. |
| 8. Prove lifecycle control | Modify, version, redeploy, roll back, back up and restore the moved application. | Lifecycle procedure and witnessed records showing repeatability. |
Opening or importing the source file.
Building and deploying without logic redesign.
Passing functional and non-functional tests.
Repeating the lifecycle workflow under owner control.
Application portability should be tested inside the wider project verification programme. Use the O-PAS FAT and Interoperability Testing Guide to connect application evidence to interface, resilience, recovery and acceptance testing.
07 · Brownfield decisions
The migration method should reflect application condition, business value, dependencies and the quality of the available baseline.
| Decision | Best fit | Primary caution |
|---|---|---|
| Reuse | The application already follows the intended language, library and dependency rules and can pass the target proof test. | Imported code may still carry hidden runtime or library assumptions. |
| Translate | The control intent is sound, source is available and differences can be resolved through controlled conversion. | Automated conversion can preserve obsolete structure and create difficult-to-maintain output. |
| Re-engineer | The operating requirement remains valid but the implementation is undocumented, tightly coupled or structurally weak. | Functional equivalence and intentional improvements must be separated and tested. |
| Replace | A supported application or newly designed module better meets the requirement than preserving the legacy logic. | New functionality can change operator workflow, failure behaviour and validation scope. |
| Retire | The function is obsolete, duplicated, unused or no longer supported by an operating requirement. | Dead-looking logic may still protect an undocumented operating condition. |
Use the Brownfield OPA Migration Strategy to place application work inside the facility sequence, coexistence plan, cutover gates and rollback model.
08 · Operating model
The owner needs a repeatable lifecycle process, not a one-time demonstration performed by the original supplier team. Use the O-PAS System Management and Lifecycle Operations Guide →
Controls language, libraries, interfaces, exception decisions and the long-term portability baseline.
Maintains source, dependencies, deployment packages, documentation and accepted test assets under change control.
Defines who may build, approve, sign, deploy, roll back and restore each application release.
Checks whether patches, library updates, substitutions or new features narrow the portability boundary.
Keeps the test suite usable so future moves and upgrades can be verified against approved behaviour.
Ensures the organisation can maintain the package without relying on undocumented knowledge held by one person or supplier.
09 · Lifecycle value
The economic value comes from changing the work required at future refresh, migration and supplier-change events.
Estimate conversion or redevelopment, library replacement, interface rebuilding, testing, revalidation, commissioning, training and production exposure at each expected lifecycle event.
Include packaging, dependency control, proof testing, ongoing governance and the residual conversion still expected between compatible environments.
Vary the number of reusable applications, engineering hours avoided, frequency of moves, target compatibility, test effort and value of supplier choice.
Give greater weight to witnessed moves, measured engineering effort and accepted test results than to general claims about language or platform openness.
Model these lifecycle differences with the Open Process Automation Business Case Guide and the CSI OPA Lifecycle Value Model.
10 · Related guidance
Write architecture, application, evidence, handover and lifecycle obligations into the procurement package.
MigrationSequence application work with coexistence, integration, cutover, rollback and stabilisation.
Owner decisionConnect portability to business case, architecture, sourcing, governance and the operating model.
11 · FAQ
IEC 61131 provides a common language and application foundation, but portability also depends on libraries, extensions, task behaviour, runtime services, interfaces, data handling, toolchains and deployment methods. The intended source and target environments still need a defined proof test.
No. Product conformance addresses the product and profiles within the certification scope. Application portability is a system and project outcome that depends on the selected environments, application design, dependencies, deliverables and verification.
Editable source, required libraries, versions, licences, build instructions, toolchain details, runtime configuration, mappings, deployment and rollback packages, design documentation, interfaces, dependencies, test procedures and accepted results.
Freeze the approved source baseline, assemble only the contracted handover package, prepare a clean target environment, build and deploy through the documented process, record all changes, execute representative functional and non-functional tests, compare required behaviour and demonstrate versioning, rollback, backup and recovery.
Yes, if the project makes the dependency explicit and accepts its lifecycle effect. The specification should state ownership, licence, source or interface availability, replacement strategy, qualification requirements and what happens when the application moves.
The owner should define the lifecycle objective and retain architecture and acceptance authority. The EPC or system integrator should translate it into executable requirements, while application and product suppliers provide the assigned deliverables, dependency evidence and correction support.
Protect the control intellectual property
CSI helps owners and EPC teams define IEC 61131 application requirements, control dependencies, owner deliverables, migration methods and proof tests before tool and supplier decisions make the application difficult to move.
O-PAS™ and Open Process Automation™ are trademarks of The Open Group. CSI is an independent commercial licensee of the O-PAS Standard. References to application portability describe project requirements and verification outcomes; they do not imply that every IEC 61131 application or O-PAS-conformant product is interchangeable without engineering and testing.