首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在twincat 3中定义占空比

在twincat 3中定义占空比
EN

Stack Overflow用户
提问于 2016-05-23 15:53:48
回答 2查看 485关注 0票数 1

对于一个学校项目,我需要将温度传感器连接到我的beckhoff模块,并定义温度。我使用的传感器是SMT160-30,它的工作频率在1-4 4khz之间,这与标准io模块的工作频率很接近。我可能需要一个用于高速测量的特殊输入模块,但根据我的老师的说法,我必须能够使用标准模块。但我只是在定义占空比时遇到了问题,也不知道如何解决它。

代码语言:javascript
复制
  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;

这就是我到目前为止拥有的代码,根据我的老师的说法,我正在朝着正确的方向前进,但我真的被困在了这一点上。

希望你能帮上忙

诚挚的问候。

EN

回答 2

Stack Overflow用户

发布于 2016-05-24 14:31:07

您的计时器不会工作,因为F_TRIG & R_TRIG的输出只对传感器的边缘有效。定时器应该进入:=传感器而不是X_TRIG.Qs。

此外,我在减法中看不到任何意义。为什么不直接拯救外星人呢?

dutyCycle和temp应该是实数变量。

从占空比到温度°C的转换中,两条注释掉的行是正确的。

另一种解决方案是丢弃定时器,仅对传感器为真和假的plc周期进行计数,以确定活动和nActive之间的比率。

票数 0
EN

Stack Overflow用户

发布于 2016-07-14 14:19:17

如果我可以的话。我不会使用活跃的非活跃时间来执行任务,因为从我的角度来看,只需要活跃的前沿和频率,这只是因为如果你的线断了,你的非活跃时间可能是世纪。如果你的信号有问题,你的结果将会与活动非活动时间严重错误。有了活动时间和频率(1/(两个上升沿之间的时间)),您将能够看到您的信号仍然有效。对于传感器来说不是什么大问题,但是对于更强大的东西来说,如果你的线路断了,它可以避免崩溃的风险。首先,检查信号是否有效,然后计算结果。

如果有帮助的话。祝您今天愉快

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37385495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档