pub struct EpidRecord {Show 49 fields
pub val: f64,
pub smsl: i16,
pub stpl: String,
pub inp: String,
pub outl: String,
pub trig: String,
pub tval: f64,
pub cval: f64,
pub cvlp: f64,
pub oval: f64,
pub ovlp: f64,
pub kp: f64,
pub ki: f64,
pub kd: f64,
pub p: f64,
pub pp: f64,
pub i: f64,
pub ip: f64,
pub d: f64,
pub dp: f64,
pub err: f64,
pub errp: f64,
pub dt: f64,
pub dtp: f64,
pub mdt: f64,
pub fmod: i16,
pub fbon: i16,
pub fbop: i16,
pub odel: f64,
pub prec: i16,
pub egu: String,
pub hopr: f64,
pub lopr: f64,
pub drvh: f64,
pub drvl: f64,
pub hihi: f64,
pub lolo: f64,
pub high: f64,
pub low: f64,
pub hhsv: i16,
pub llsv: i16,
pub hsv: i16,
pub lsv: i16,
pub hyst: f64,
pub lalm: f64,
pub adel: f64,
pub mdel: f64,
pub alst: f64,
pub mlst: f64,
/* private fields */
}Expand description
Extended PID feedback control record.
Ported from EPICS std module epidRecord.c.
Supports PID and Max/Min feedback modes with anti-windup,
bumpless turn-on, output deadband, and hysteresis-based alarms.
Fields§
§val: f64Setpoint (VAL)
smsl: i16Setpoint mode: 0=supervisory, 1=closed_loop (SMSL)
stpl: StringSetpoint input link (STPL) — resolved by framework
inp: StringControlled value input link (INP) — resolved by framework
outl: StringOutput link (OUTL) — resolved by framework
trig: StringReadback trigger link (TRIG)
tval: f64Trigger value (TVAL)
cval: f64Controlled value (CVAL), read-only
cvlp: f64Previous controlled value (CVLP), read-only
oval: f64Output value (OVAL), read-only
ovlp: f64Previous output value (OVLP), read-only
kp: f64Proportional gain (KP)
ki: f64Integral gain — repeats per second (KI)
kd: f64Derivative gain (KD)
p: f64Proportional component (P), read-only
pp: f64Previous P (PP), read-only
i: f64Integral component (I), writable for bumpless init
ip: f64Previous I (IP)
d: f64Derivative component (D), read-only
dp: f64Previous D (DP), read-only
err: f64Error = setpoint - controlled value (ERR), read-only
errp: f64Previous error (ERRP), read-only
dt: f64Delta time in seconds (DT), writable for fast mode
dtp: f64Previous delta time (DTP)
mdt: f64Minimum delta time between calculations (MDT)
fmod: i16Feedback mode: PID or MaxMin (FMOD)
fbon: i16Feedback on/off (FBON)
fbop: i16Previous feedback on/off (FBOP)
odel: f64Output deadband (ODEL)
prec: i16Display precision (PREC)
egu: StringEngineering units (EGU)
hopr: f64High operating range (HOPR)
lopr: f64Low operating range (LOPR)
drvh: f64High drive limit (DRVH)
drvl: f64Low drive limit (DRVL)
hihi: f64Hihi deviation limit (HIHI)
lolo: f64Lolo deviation limit (LOLO)
high: f64High deviation limit (HIGH)
low: f64Low deviation limit (LOW)
hhsv: i16Hihi severity (HHSV)
llsv: i16Lolo severity (LLSV)
hsv: i16High severity (HSV)
lsv: i16Low severity (LSV)
hyst: f64Alarm deadband / hysteresis (HYST)
lalm: f64Last value alarmed (LALM), read-only
adel: f64Archive deadband (ADEL)
mdel: f64Monitor deadband (MDEL)
alst: f64Last value archived (ALST), read-only
mlst: f64Last value monitored (MLST), read-only
Implementations§
Source§impl EpidRecord
impl EpidRecord
Sourcepub fn check_alarms(&mut self) -> Option<(u16, u16)>
pub fn check_alarms(&mut self) -> Option<(u16, u16)>
Check alarms using hysteresis-based threshold comparison on VAL.
Ported from epidRecord.c checkAlarms().
Sourcepub fn update_monitors(&mut self)
pub fn update_monitors(&mut self)
Update monitor tracking fields. Returns list of fields that changed.
Ported from epidRecord.c monitor().
Trait Implementations§
Source§impl Default for EpidRecord
impl Default for EpidRecord
Source§impl Record for EpidRecord
impl Record for EpidRecord
Source§fn record_type(&self) -> &'static str
fn record_type(&self) -> &'static str
Source§fn process(&mut self) -> CaResult<ProcessOutcome>
fn process(&mut self) -> CaResult<ProcessOutcome>
Source§fn put_field(&mut self, name: &str, value: EpicsValue) -> CaResult<()>
fn put_field(&mut self, name: &str, value: EpicsValue) -> CaResult<()>
Source§fn field_list(&self) -> &'static [FieldDesc]
fn field_list(&self) -> &'static [FieldDesc]
Source§fn as_any_mut(&mut self) -> Option<&mut dyn Any>
fn as_any_mut(&mut self) -> Option<&mut dyn Any>
Source§fn set_device_did_compute(&mut self, did_compute: bool)
fn set_device_did_compute(&mut self, did_compute: bool)
Source§fn put_field_internal(&mut self, name: &str, value: EpicsValue) -> CaResult<()>
fn put_field_internal(&mut self, name: &str, value: EpicsValue) -> CaResult<()>
Source§fn multi_input_links(&self) -> &[(&'static str, &'static str)]
fn multi_input_links(&self) -> &[(&'static str, &'static str)]
Source§fn multi_output_links(&self) -> &[(&'static str, &'static str)]
fn multi_output_links(&self) -> &[(&'static str, &'static str)]
Source§fn took_metadata_change(&mut self) -> bool
fn took_metadata_change(&mut self) -> bool
process() call
mutated a metadata-class field (EGU/PREC/HOPR/LOPR/HLM/LLM/
alarm limits / DRVH/DRVL / state strings). Read more