limit2.comp

来自「CNC 的开放码,EMC2 V2.2.8版」· COMP 代码 · 共 30 行

COMP
30
字号
component limit2 "Limit the output signal to fall between min and max and limit its slew rate to less than maxv per second.  When the signal is a position, this means that position and velocity are limited.";pin in float in;pin out float out;param rw float min_=-1e20;param rw float max_=1e20;param rw float maxv=1e20;option data limit2_data;function _;license "GPL";;;typedef struct { float old_out; } limit2_data;#ifndef clampstatic inline double clamp(double v, double sub, double sup) {    if(v < sub) return sub;    if(v > sup) return sup;    return v;}#endifFUNCTION(_) {    double tmp = in;    double maxdelta = maxv * fperiod;    tmp = clamp(tmp, min_, max_);    tmp = clamp(tmp, data.old_out - maxdelta, data.old_out + maxdelta);    data.old_out = tmp;    out = tmp;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?