简单的锯齿波编程

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    7980
  • 精华

    145
  • 被关注

    1328

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

简单的锯齿波编程

5345

27

2019-02-22 09:53:34

star star star

简单的锯齿波编程

   今天在“找答案”栏目中看到有这样一个帖子,描述在单位时间内,将一个寄存器内的数据由0上升(下降)最大值或退回到0。问题链接:http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=212415&cid=1072

   我记得西门子关于这个类似的问题,早就有类似的官方例子,典型的就是Rampe(斜波函数发生器指令)、锯齿波电路的应用,有需求可以到官网上下载来学习。

   我在实际回复时,根据网友提问的条件:“15S时间内数据MW100由0上升至60,或者在这个时间段将MW100数据由60下降到0”的依据,写一个简单的程序段,cpu选择315-2pn/dp,调用循环中断组织块OB35,在这个信号定时中断组织块中编辑这个控制程序。

编程思路:

1)  根据这个15S时间,把它折算为15000mS,315-2pn/dp的cpu循环定时中断默认值为100mS,需要重新设置后下载到cpu中,15000 / 60 = 250 mS;

2)  如果定义M0.0为升控制条件、M0.1为降控制条件、M0.2清除MW100数据;

3)  因为控制要求最大值为60,最小值为0,需要在程序中做一些限制。

程序:仿真验证

1)  组态cpu硬件:

插入导轨,1#槽插入电源模块,2#槽插入所选择的cpu,双击导轨2#槽的cpu,在弹出的cpu属性窗口“周期性中断”将原100mS,修改为按要求的250mS,确定,编译、保存项目。

2)  在step7编辑区“插入”一个OB35:

在step7编辑区,插入一个OB35,确定。

3)  在OB35中编辑升、降程序:

4)  将硬件和程序下载到仿真器,进行验证:为方便监控数据状态创建一个变量表VAT_1。

5)  仿真验证结果:

仿真结果能够在15S时间内,将MW100内的数据由0上升到60。

这个程序非常简单,在ADD_I前面加入控制条件和数据上限,下降的原理与上升的一致。有需要的网友可以通过自己具体的要求,适当修改循环定时中断OB35中的程序段就可以应用了。

小结:

   循环定时中断,一般plc均带有类似的循环定时中断组织块或子程序,循环的含义是调用后cpu会根据设置的定时时间,无限循环进行,当定时中断时间到,OB1主程序会优先执行一次该组织块或子程序。但凡,中断组织块(子程序)均带有一次调用有效周期为一个的特性,类似于沿脉冲触发。理解了上述基本概念,编辑类似的程序变的简单了。


简单的锯齿波编程 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54027条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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