电工学习网

 找回密码
 立即注册
查看: 3131|回复: 0

简单的锯齿波编程

[复制链接]
发表于 2019-2-22 11:15:40 | 显示全部楼层 |阅读模式
   用户提问:在单位时间内,将一个寄存器内的数据由0上升(下降)最大值或退回到0。
   我记得西门子关于这个类似的问题,早就有类似的官方例子,典型的就是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硬件:
6368642590572998865278376.JPG
插入导轨,1#槽插入电源模块,2#槽插入所选择的cpu,双击导轨2#槽的cpu,在弹出的cpu属性窗口“周期性中断”将原100mS,修改为按要求的250mS,确定,编译、保存项目。

2)  在step7编辑区“插入”一个OB35:
6368642593471395995056134.JPG
在step7编辑区,插入一个OB35,确定。

3)  在OB35中编辑升、降程序:
6368642595194800405058744.JPG
4)  将硬件和程序下载到仿真器,进行验证:为方便监控数据状态创建一个变量表VAT_1。

6368642598313504293963207.JPG
5)  仿真验证结果:

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

这个程序非常简单,在ADD_I前面加入控制条件和数据上限,下降的原理与上升的一致。有需要的网友可以通过自己具体的要求,适当修改循环定时中断OB35中的程序段就可以应用了。
小结:
   循环定时中断,一般plc均带有类似的循环定时中断组织块或子程序,循环的含义是调用后cpu会根据设置的定时时间,无限循环进行,当定时中断时间到,OB1主程序会优先执行一次该组织块或子程序。但凡,中断组织块(子程序)均带有一次调用有效周期为一个的特性,类似于沿脉冲触发。理解了上述基本概念,编辑类似的程序变的简单了。
本文转载自:西门子工业技术论坛

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-18 11:08

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表