rsiot_plc/lib.rs
1//! Исполнение логики работы в стиле ПЛК.
2//!
3//! ## Структурные единицы
4//!
5//! - Функциональные блоки (FB)
6//!
7//! ### Организационные блоки (OB)
8//!
9//! Верхнеуровневые элементы. Выполнены в виде задач tokio. Параллельно можно запускать несколько
10//! OB. Поскольку задачи выполняются в разных потоках, нет необходимости вытеснять OB по приоритетам
11//! - они выполняются параллельно.
12//!
13//! plc-rs не заботится, откуда данные приходят и куда отправляются. Входные данные поступают из
14//! брокера сообщений и передаются по каналу в OB. Выходные данные также отправляются в брокер
15//! сообщений. Коммуникации с устройствами также программируются во внешних крейтах.
16//!
17//! ### Функциональные блоки (FB)
18//!
19//! Базовые компоненты для построения программы. Сохраняют состояние между вызовами.
20//!
21//!
22//! См. [документацию](https://docs.rs/rsiot-plc/latest/)
23
24#![cfg(any(
25    target_arch = "x86_64",
26    target_arch = "aarch64",
27    all(target_arch = "wasm32", feature = "single-thread"),
28    all(target_arch = "riscv32", feature = "single-thread"),
29))]
30
31mod component;
32mod config;
33mod error;
34mod fn_process;
35pub mod plc;
36mod template;
37
38pub use component::Cmp;
39pub use config::Config;
40pub use error::Error;