对于一个学校项目,我需要将温度传感器连接到我的倍福模块并定义温度。我使用的传感器是 SMT160-30,它的工作频率在 1-4khz 之间,这对于标准 io 模块来说非常接近。我可能需要一个用于高速测量的特殊输入模块,但根据我的老师的说法,我必须能够使用标准模块来完成。但是我只是在定义占空比时遇到了麻烦,并且无法真正弄清楚如何解决它。
PROGRAM MAIN
VAR
sensor AT %I* : BOOL;
rtrig: R_TRIG;
tOn: Tof;
timeActive: TIME;
ftrig: F_TRIG;
tOff: Ton;
timeNActive: TIME;
dutyCycle: DINT;
temp: TIME;
END_VAR
rtrig(clk := sensor);
IF(rtrig.Q) THEN
timeActive := tOn.ET - timeActive;
END_IF
tOn(in := rtrig.Q, pt:= T#1S);
ftrig(clk := sensor);
IF ftrig.Q THEN
timeNActive := tOff.ET - timeNActive;
END_IF
tOff(in := ftrig.Q, pt:= T#1S);
//dutyCycle := timeActive / (timeActive + timeNActive);
//temp := (dutyCycle - 0.32)/0.0047;
这是我到目前为止的代码,根据我的老师的说法,我正在朝着正确的方向前进,但我真的被困在这一点上。
希望你能帮忙
此致。