rsiot/components/cmp_plc/plc/library/drives/select_sp/
q.rs

1use serde::{Deserialize, Serialize};
2
3/// Область памяти output
4#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
5pub struct Q {
6    /// Активно задание из plc
7    pub sp_plc_act: bool,
8    /// Активно задание из hmi
9    pub sp_hmi_act: bool,
10    /// Задание
11    pub sp: f64,
12
13    /// Статус для вывода на hmi
14    pub hmi_status: QHmiStatus,
15}
16
17/// Статут для вывода на hmi
18#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
19pub struct QHmiStatus {
20    /// Активно задание из plc
21    pub sp_plc_act: bool,
22    /// Активно задание из hmi
23    pub sp_hmi_act: bool,
24    /// Задание
25    pub sp: f64,
26
27    /// Разрешения для работы с hmi
28    pub hmi_permission: QHmiPermission,
29}
30
31/// Разрешения для работы с hmi
32#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
33pub struct QHmiPermission {
34    /// Активировать задание из hmi
35    pub sp_hmi_en: bool,
36    /// Активировать задание из plc
37    pub sp_plc_en: bool,
38    /// Активация любого задания: `sp_hmi_en && sp_plc_en`
39    pub sp_hmi_plc_en: bool,
40    /// Изменение значения sp
41    pub sp_hmi: bool,
42}