Five steps turn a sequence into deployable PLC code: declare variables, link them to equipment channels, assign physical addresses, translate to your target language, and import the result. By the end you will know which command to run at each stage, which export format to pick, and how to hand the file off to CODESYS, TwinCAT, or any other IEC 61131-3 environment.
| Stage | Goal | Primary command |
|---|---|---|
| 1. Declare | Define all inputs, outputs, locals | (write in main.py or .seq) |
| 2. Link | Bind variables to equipment channels | Copy Equipment ID, paste into the variable |
| 3. Address | Map variables to PLC memory | Assign Addresses Automatically |
| 4. Translate | Generate PLC code | Translate to Target Language |
| 5. Export | Package for the PLC IDE | Export Project |
Every signal that enters or leaves the PLC needs a declared variable. AutomationView auto-registers any name referenced in a transition condition or action, so the simplest workflow is just to write the sequence. For full control over type, address, and scope, declare variables up front from the Variables panel.
| Category | Typical use |
|---|---|
| Input | Sensor, push-button, encoder feedback |
| Output | Solenoid, contactor, indicator lamp |
| Local | Internal flag, counter, timer instance |
The Variables panel groups variables by category. Filter via the Command Palette:
Toggle between Set Global View (project-wide) and Show Active File Variables (current sequence only) from the panel header.
Right-click a variable for quick actions: Rename Variable, Show Variable Info, Get Variable Value, Set Variable Value, Assign Addresses Manually.
Linking ties a logical variable to a physical channel exposed by a piece of equipment. Linked variables inherit the channel's electrical specification (24 V DC, NPN, PNP, etc.), and the catalog reference shows up in exported files.
festo.dsbc-32-100, for example).| Benefit | Effect |
|---|---|
| Auto-fill electrical type | Address validation uses the channel signal type |
| Documentation | Exported files carry the equipment reference |
| Catalog-driven I/O sizing | Address assignment picks the right module |
See Equipment Catalog for catalog management.
Once variables are declared and linked, map them to PLC memory.
Run AutomationView: Assign Addresses Automatically from the Command Palette. AutomationView:
machine.machine.Typical output for digital I/O on a CODESYS target:
| Variable | Type | Address |
|---|---|---|
S_HOME |
INPUT | %IX0.0 |
S_OUT |
INPUT | %IX0.1 |
Y_EXTEND |
OUTPUT | %QX1.0 |
Y_RETRACT |
OUTPUT | %QX1.1 |
For variables that must land on a specific channel (safety inputs, reserved spares, retained wiring):
%IX0.7) and press Enter.Manual addresses are pinned. Subsequent runs of automatic assignment skip them.
Run AutomationView: Validate All Addresses. The validator flags:
| Issue | Severity |
|---|---|
| Two variables on the same address | Error |
| Address outside any module range | Error |
| Output assigned to an input module | Error |
| Variable used in a sequence but unaddressed | Warning |
| Address gap larger than one byte | Info |
Fix every error before translating. Warnings are safe to defer but worth reviewing.
Translation reads your .seq file and produces PLC code.
Set the default once in Settings:
"automationview.defaultPLCTarget": "codesys"
Supported targets:
| ID | Brand |
|---|---|
siemens-s7 |
Siemens S7-1200 / S7-1500 |
allen-bradley |
Allen-Bradley ControlLogix / CompactLogix |
schneider |
Schneider Modicon M340 / M580 |
beckhoff |
Beckhoff TwinCAT 3 |
codesys |
CODESYS V3 |
omron |
Omron NJ / NX |
mitsubishi |
Mitsubishi iQ-R / iQ-F |
generic |
Generic IEC 61131-3 |
| How | Steps |
|---|---|
| Editor title bar | Click the Translate icon while a .seq file is open |
| Command Palette | Run AutomationView: Translate to Target Language |
Watch mode re-translates the sequence every time you save it.
| Setting | Default | Description |
|---|---|---|
automationview.translation.watchMode |
false |
Enable auto re-translation on save |
automationview.translation.watchDebounceMs |
500 |
Debounce delay in ms |
automationview.translation.openAfterTranslate |
false |
Open the translated file on success |
Stop watch mode for the session with AutomationView: Stop Live Translation.
| Use one-shot when | Use watch mode when |
|---|---|
| Iterating on hardware addresses | Iterating on sequence logic |
| Translating before a code review | Demonstrating live behaviour |
| Producing a frozen release artefact | Pairing with engineers reviewing translated ST |
The export step packages translated files for handoff. Choose the format that matches your downstream tool.
| Format | Setting value | Best for | Notes |
|---|---|---|---|
| PLCopen XML | plcopen-xml |
CODESYS, TwinCAT, EcoStruxure, Logix Designer (via converter) | Recommended default; preserves SFC structure |
| IEC Structured Text | iec-st |
Any IEC 61131-3 ST editor | Loses graphical SFC, keeps logic |
| CSV | csv |
Auditing, address-list review, ERP intake | Variables and addresses only |
| JSON | json |
Custom tooling, CI pipelines, dashboards | Machine-readable full project tree |
Set the default once:
"automationview.export.defaultFormat": "plcopen-xml"
| Goal | Command |
|---|---|
| Export the active sequence | AutomationView: Generate PLC Output |
| Export the full project bundle | AutomationView: Export Project |
Export every .seq in one call |
AutomationView: Export All Sequences |
| Generate a printable sequence sheet | AutomationView: Export Documentation to PDF |
The output folder is controlled by your machine target configuration. By default it sits next to machine.machine under export/.
To package the project on every change without lifting a finger:
| Setting | Default | Description |
|---|---|---|
automationview.export.autoExport |
false |
Trigger full project export on sequence change |
automationview.export.autoExportDebounceMs |
2000 |
Debounce delay before auto-export |
automationview.export.autoExportOnSave |
false |
Export individual sequences on every save |
Drop the exported file into your PLC environment.
.xml.If your tool only accepts ST, set the default format to iec-st before exporting and paste the file into the appropriate POU.
Always re-run the address validator after import. Some IDEs renumber unassigned channels on import.