使用系统时钟自制定时器

已锁定

xxctjd

  • 帖子

    583
  • 精华

    3
  • 被关注

    38

论坛等级:侠圣

注册时间:2013-08-05

黄金 黄金 如何晋级?

使用系统时钟自制定时器

5362

33

2018-06-16 09:48:29

star star star

Timer.rar

最近在论坛中T出现频率比较高,特别是前一段万泉河老师的两扁文章,多人跟贴讨论软件中是否应该用M和T,今天暂不讨论M的使用,咱说下T ,这几年我写软件基本上不是用IEC_Timer或者Ton_Timer,我们的系统一般都不小,一般一个项目40~150个分布式站点还是有点,对应的设备当然不会少,每一台设备上Timer还是要用上几个的,下面说一下具体实现思路。

1、 以S7-1516 3PN/DP作为主机,打开“系统和时钟存储器”:


 

此时在变量表中自动增加了系统时钟变量:


此时把程序下载到PLC或者PLCsim监控一下变量表,会发现上述变量已经是按固定频率变化了。注意如果下载完程序,监控变量无变化,可通过格式化存储卡,重新下载程序解决,这个应该是PLC的bug,我碰到过这种现象。

2、 建全局DB块:


3、 建一个FC块:

作一个1s的脉冲信号

"R_TRIG_DB"(CLK:="Clock_1Hz",

            Q=>"DB_Timer".Pulse_1s);

 

 

IF "DB_Timer".Pulse_1s THEN

    "DB_Timer".Num += 1;

END_IF;

通过监控发现Num是按1s的速度递增。到此1s的全局脉冲信号就有了,当然只有1s的脉冲信号是不够的,根据软件工艺需要再作脉冲信号就是了。需要用定时器时使用int变量记数,时间到去作触发事件,要记得给int变量复位。


在软件中不要用M,懂一有一点高级语言编程知识的应该知道,在大型系统时免不了要用Array[n]、Struct 、Array of Struct[n],这些在M区是没有办法定义的,但是在DB块中这些都可以实现。

 

 

 

使用系统时钟自制定时器 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有8577条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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