Repository navigation
v1.0.0
First release of node-red-contrib-s7-rust: Node-RED nodes for Siemens S7 PLCs, with the protocol clients written in Rust and running inside the Node-RED process. It is the next generation of @oriolrius/node-red-contrib-s7.
Highlights
- Two protocols: classic S7comm (S7-200/300/400/1200/1500, LOGO! 8) and S7CommPlus (S7-1200/1500) with symbolic access to optimized DBs, TLS and password login.
- Five nodes:
s7 endpoint,s7 read,s7 write,s7 watch(with a conditional rate) ands7 info(CPU state, SZL, clock, blocks, browse, alarms). - Fast and light: no child process and no IPC; reads are grouped into as few requests as the PDU allows; changes are detected on the raw PLC bytes.
- Linux x64 only, prebuilt for glibc ≥ 2.28 and musl (Alpine, the Node-RED Docker image).
- Licence LGPL-3.0-only. The README has the exact map of the S7 functions that are covered.
Upgrade notes
New package: install node-red-contrib-s7-rust from the palette. It does not replace @oriolrius/node-red-contrib-s7 in existing flows.
Details (CHANGELOG)
First release: the next generation of @oriolrius/node-red-contrib-s7.
Added
- S7comm client in Rust (crate
s7): S7-200/300/400/1200/1500 and LOGO! 8, Siemens and nodes7 address syntax, all S7 data types, request optimization with gap spanning, reconnection, SZL, clock, block information. - S7CommPlus client in Rust (crate
s7plus): S7-1200/1500 symbolic access to optimized DBs and PLC tags, absolute area access, TLS 1.3, legitimation (password), browse, alarms. - Node-API addon (crate
s7napi): one thread per connection, columnar results, change detection on the raw PLC bytes. - Nodes
s7 endpoint,s7 read,s7 write,s7 watch(conditional rate) ands7 info. - Admin API
GET /s7rs/status/:idandGET /s7rs/call/:id/:action(read-only actions). - Prebuilt binaries for Linux x64: glibc ≥ 2.28 and musl (Alpine).
- Example flows, editor help, en-US message catalogs.
- CI: tests on Node-RED 4 and 5, gitleaks, GitGuardian, RustSec and npm audit, CodeQL, OpenSSF Scorecard, Dependabot. License LGPL-3.0-only.
[Unreleased]: v1.0.4...HEAD [1.0.4]: v1.0.3...v1.0.4 [1.0.3]: v1.0.2...v1.0.3 [1.0.2]: v1.0.1...v1.0.2 [1.0.1]: v1.0.0...v1.0.1 [1.0.0]: https://github.com/oriolrius/node-red-contrib-s7-rust/releases/tag/v1.0.0