rplc

Crates.iorplc
lib.rsrplc
version0.3.0
sourcesrc
created_at2023-04-26 20:49:36.071509
updated_at2023-07-29 21:38:46.05905
descriptionPLC programming in Rust
homepage
repositoryhttps://github.com/eva-ics/rplc
max_upload_size
id849808
size269,387
Sergiy S. (divi255)

documentation

README

rPLC - PLC programming for Linux in Rust crates.io page docs.rs page

rPLC project allows to write PLC programs for Linux systems in Rust using classical PLC programming approach.

rPLC supports Modbus and OPC-UA input/output protocols out-of-the-box and can be easily extended with custom I/O as well.

rPLC is a part of EVA ICS open-source industrial automation eco-system.

A quick example

use rplc::prelude::*;

mod plc;

#[plc_program(loop = "200ms")]
fn tempmon() {
    let mut ctx = plc_context_mut!();
    if ctx.temperature > 30.0 {
        ctx.fan = true;
    } else if ctx.temperature < 25.0 {
        ctx.fan = false;
    }
}

fn main() {
    init_plc!();
    tempmon_spawn();
    run_plc!();
}

Technical documentation

Available at https://info.bma.ai/en/actual/rplc/index.html

Commit count: 50

cargo fmt