rsiot/components/cmp_plc/
mod.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! Исполнение логики работы в стиле ПЛК.
//!
//! ## Структурные единицы
//!
//! - Функциональные блоки (FB)
//!
//! ### Организационные блоки (OB)
//!
//! Верхнеуровневые элементы. Выполнены в виде задач tokio. Параллельно можно запускать несколько
//! OB. Поскольку задачи выполняются в разных потоках, нет необходимости вытеснять OB по приоритетам
//! - они выполняются параллельно.
//!
//! plc-rs не заботится, откуда данные приходят и куда отправляются. Входные данные поступают из
//! брокера сообщений и передаются по каналу в OB. Выходные данные также отправляются в брокер
//! сообщений. Коммуникации с устройствами также программируются во внешних крейтах.
//!
//! ### Функциональные блоки (FB)
//!
//! Базовые компоненты для построения программы. Сохраняют состояние между вызовами.
//!
//!
//! См. [документацию](https://docs.rs/rsiot-plc/latest/)

mod component;
mod config;
mod error;
mod fn_process;
pub mod plc;
mod tasks;

#[allow(dead_code, unused_imports)]
mod fb_template;
#[allow(dead_code, unused_imports)]
mod fb_template_full;

#[cfg(test)]
mod tests;

pub use component::Cmp;
pub use config::{Config, ConfigRetention};
pub use error::Error;

type Result<T> = std::result::Result<T, Error>;