Appearance
Introduction
Coldwave Script is a virtual machine (VM) designed specifically for control and automation tasks. It brings together three worlds:
- the determinism and safety principles of classic PLC languages (such as IEC-61131-3 Structured Text),
- the simplicity and readability of BASIC,
- the portability of modern scripting languages that can run on many different devices.
Key characteristics:
- Cycle-oriented: programs run in fixed cycles (“scans”).
- Deterministic: the maximum execution time per cycle can be bounded and reasoned about.
- Type-safe: data types are checked, overflow is handled in a controlled (“saturating”) way.
- Embedded-ready: designed to run on constrained devices, both with and without operating systems.
- Cloud-aware: Coldwave integration allows you to exchange data with the platform via telemetry.
Who is Coldwave Script for?
Coldwave Script is intended for users who want to implement control logic and evaluations directly on a device, but do not want to dive into the full complexity of IEC-61131-3 or C/C++.
Typical user groups include:
- PLC engineers: familiar with structured programming and function blocks, want a more compact syntax.
- Developers: come from the software world, use the VM for complex logic close to the device, and value clear segmentation and deterministic runtimes.
- Makers: have little experience with PLCs, want to try things quickly and need a simple, readable syntax.
Positioning
Coldwave Script sits somewhere between classic PLC languages and general-purpose high-level languages:
| Aspect | IEC-61131-3 ST | Coldwave Script |
|---|---|---|
| Syntax | formal, strongly typed | simple, BASIC-like |
| Execution | cyclic | cyclic |
| Safety profile | defined | deterministic, saturating |
| Function blocks | extensive | essential IEC blocks |
| Target audience | automation engineers | PLC engineers, developers, makers |
In contrast to many high-level languages, Coldwave Script is not designed as a general application language, but as a special-purpose language for robust, deterministic logic in the Coldwave ecosystem.
Your first program: “Hello World”
Let’s start with a minimal example that you can run in the editor.
vb
PROGRAM
DIM msg AS STRING = "Hello World"
PRINT msg
END PROGRAMLine by line:
PROGRAM opens the main program block. DIM msg AS STRING = "Hello World" declares a string variable msg and initializes it. PRINT msg outputs the value of msg (e.g. in the web-based editor console). END PROGRAM closes the program. Even though this example only prints text, the structure is the same as for later control programs: declare variables, read inputs, calculate results, write outputs.
Summary:
- Coldwave Script combines simplicity and determinism.
- It is suitable for PLC engineers, developers and makers.
- Compared to IEC Structured Text it is simpler, but still safety-oriented and deterministic.
- With just a few lines of code you can get started right away.