Attention

IronPLC supports IEC 61131-3 Structured Text excluding I/O mapping.

Settings Reference

The IronPLC extension provides configuration settings to customize its behavior. Access these settings through:

  • File ‣ Preferences ‣ Settings (Windows/Linux)

  • Code ‣ Preferences ‣ Settings (macOS)

Then search for “ironplc” to find all extension settings.

Available Settings

ironplc.path

Type:

String

Default:

Empty (auto-discovery)

Specifies the path to the ironplcc executable. When empty (the default), the extension automatically searches for the compiler in standard locations.

Use this setting when:

  • The compiler is installed in a non-standard location

  • You want to use a specific version of the compiler

  • Auto-discovery is not finding your installation

Example values:

  • Windows: C:\Program Files\IronPLC\bin\ironplcc.exe

  • macOS: /usr/local/bin/ironplcc

  • Linux: /home/username/ironplc/ironplcc

ironplc.logLevel

Type:

Enum

Default:

ERROR

Values:

ERROR, WARN, INFO, DEBUG, TRACE

Controls the verbosity of compiler logging. Higher levels include all messages from lower levels.

  • ERROR: Only error messages (quietest)

  • WARN: Warnings and errors

  • INFO: Informational messages, warnings, and errors

  • DEBUG: Detailed debugging information

  • TRACE: Maximum verbosity (most detailed)

Increase the log level when troubleshooting issues with the extension or compiler.

ironplc.logFile

Type:

String

Default:

Empty (no file logging)

Specifies a file path where the compiler should write log messages. When empty, logs are not written to a file.

This setting is useful for:

  • Capturing detailed logs for bug reports

  • Debugging issues that occur intermittently

  • Analyzing compiler behavior over time

Example: /tmp/ironplc.log or C:\Users\username\ironplc.log

Note

The log file can grow large when using verbose log levels. Remember to disable file logging or delete the log file when troubleshooting is complete.

ironplc.dialect

Type:

Enum

Default:

iec61131-3-ed2

Values:

iec61131-3-ed2, iec61131-3-ed3, rusty

Selects the language dialect preset. A dialect controls the IEC 61131-3 edition and a default set of vendor extensions.

  • iec61131-3-ed2: Strict IEC 61131-3:2003 (Edition 2). No vendor extensions.

  • iec61131-3-ed3: IEC 61131-3:2013 (Edition 3) with LTIME, REF_TO, etc.

  • rusty: RuSTy-compatible — designed for compatibility with code from RuSTy-based PLC environments.

This setting corresponds to the --dialect command-line option documented in ironplcc.

See Enabling Dialects and Features for background on dialects and Edition Support for the full list of edition-gated features.

Settings in settings.json

You can also configure these settings directly in your settings.json file:

{
  "ironplc.path": "/custom/path/to/ironplcc",
  "ironplc.logLevel": "DEBUG",
  "ironplc.logFile": "/tmp/ironplc-debug.log",
  "ironplc.dialect": "rusty"
}