rsiot/components/cmp_plc/mod.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
24mod component;
25mod config;
26mod error;
27mod fn_process;
28pub mod plc;
29mod tasks;
30
31#[allow(dead_code, unused_imports)]
32mod fb_template;
33#[allow(dead_code, unused_imports)]
34mod fb_template_full;
35
36#[cfg(test)]
37mod tests;
38
39pub use component::Cmp;
40pub use config::{Config, ConfigRetention};
41pub use error::Error;
42
43type Result<T> = std::result::Result<T, Error>;