回复:FC功能定时器编写问题,求高手讨论一下。

老学童

  • 帖子

    767
  • 精华

    32
  • 被关注

    65

论坛等级:奇侠

注册时间:2011-06-22

普通 普通 如何晋级?

发布于 2015-01-26 00:44:31

7楼

这位坛友,把程序改一下试试:
FUNCTION "Ramp signal processing" : VOID
TITLE =
VERSION : 0.1


VAR_INPUT
Siganl_Input : BOOL ;
STRT : BOOL ; //Start the reset timers
_Time : TIME ; //Sampling period
_TST : WORD ; //The sampling time "s"
END_VAR
VAR_OUTPUT
OUT : WORD ; //The stacked addition value
END_VAR
VAR_TEMP
Contr : STRUCT
Rise_time_trigger : BOOL ; //上升沿触发
Fall_time_trigger : BOOL ; //下降时间触发
Siganl_Input : BOOL ; //信号输入
t1sd : BOOL ; //t1赋值
PT1 : WORD ; //Plus the value of 1
END_STRUCT ;
END_VAR
BEGIN
NETWORK
TITLE =
//信号预处理
A #Siganl_Input;
= #Contr.Rise_time_trigger;
AN #Siganl_Input;
= #Contr.Fall_time_trigger;
NETWORK
TITLE =
//采样周期
A #Contr.Rise_time_trigger;
FR "SD";
A #STRT;
L #_Time; //值域0~999
L W#16#x000 //x=0或1或2或3
OW
SD "SD";
A #Contr.t1sd;
R "SD";
A "SD";
= #Contr.t1sd;
LC "SD";
T #Contr.PT1;



NETWORK
TITLE =

L #Contr.PT1;
L #_TST;
+I ;
T #OUT;
END_FUNCTION

x是时基,取决于时钟的大小:
小于 9.99s,基值为10ms,x=0
小于 99.9s,基值为100ms,x=1
小于999s,基值为1s, x=2
小于9990s,基值为10s, x=3






人的生命似洪水在奔流,不遇着岛屿、暗礁,难以激起美丽的浪花。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54710条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。