[西门子] S7-200系列PLC带参数子程序中如何使用定时功能

[复制链接]
查看87287 | 回复0 | 2024-3-31 10:46:25 | 显示全部楼层 |阅读模式
↑戳上方  蓝字  “ 工控学习社 ”   关注我们!

一、导读
当我们在设计程序时,碰到具有相同的控制要求,如需要实现对多台电机进行控制,而这些电机的控制方式是相同的,或实现对某种重复的算法,如模拟量换算。基于这种情况,我们在设计程序时,往往会考虑编写带参数的子程序,然后通过重复调用这子程序,给该子程序的形参赋予不同的实参,这样可提高编程的效率和程序的可移植性。
然后受到S7-200系列PLC本身性能的问题,有一些功能并不能进行参数化,如沿脉冲指令,定时器指令和计数器指令,当使用到这些指令时你会发现无法进行参数化,这样在子程序中使用这些指令后,在一个扫描周期内多次执行时就会出现问题。那么如何处理呢?

二、子程序中沿脉冲指令的处理方法
当子程序中无法使用沿脉冲指令时,我们可以根据沿脉冲指令的原则自行通过了逻辑关系的搭建方式去编写沿脉冲指令。
上升沿的含义:本次的状态与上一次的状态进度对比,若上一次的状态为0,而本次的状态为1,则说明产生上升沿,那么可以把上一次的状态取反,然后与本次的状态进行“与”运算,运算完后把本次的状态再赋值给上一次的状态,则“与”运算的结果就是一个上升沿的输出。
下降沿的含义:本次的状态与上一次的状态进行对比,若上一次的状态为0,本次的状态为1,则说明产生下降沿,那么可以把本次的状态取反,然后与上一次的状态进行“与”运算,运算完后把本次的状态再赋值给上一次的状态,则“与”运算的结果就是一个下降沿的输出。
基于这些含义,可以不用调用上升沿和下降沿指令就可编写出上升沿和下降沿的功能,这样当在带参数子程序中应用到上升沿和下降沿时就不会受到限制。如下为相应的变量表和对应的程序:





三、定时器在带参数程序中的处理方法
对于定时器的处理可以使用沿脉冲配合指令BGN_ITIME和CAL_ITIME指令以一起可实现计算时间间隔差。通过这个时间间隔差可替代定时器的功能,这样在子程序中可以不用使用定时器指令来做定时功能,可避免定时器指令无法参数化的情况实现。
BGN_ITIME指令:捕获开始时间间隔指令,可以读取内置1毫秒计数器的当前值,并将该值存储在 OUT 中。CAL_ITIME指令:捕获间隔时间指令,计算间隔时间指令计算当前时间与 IN 中提供的时间的时间差,然后将差值存储在 OUT 中。
定时器的功能如下程序所示(1)变量表的建立


(2)使用形参编写的程序


(3)调用的块程序

注:程序中的定时时间以ms为单位,如程序中的定时设定值为:10000ms。

来源:PLC发烧友,作者:技成-曾鑫 ,转载请注明出处!评论处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。。。

往期推荐

你是电工专家?这18个问题知道15个以上的都是“高手”!

模拟量输入信号还不会换算?一个万能的程序,全部轻松搞定!

8421是什么?不会有人搞了这么多年电工还不知道吧?

PLC调试这几步都不知道,就别说自己是电气工程师了!

Win10系统电脑的博途软件WIFI连接PLC详细教程!

三菱PLC学习难?新手小白学习工具推荐~,附学习软件安装教程!

不清楚开关电源“五脏六腑”在哪的电工,不是一名合格的维修电工!

P、I、D参数的作用究竟是什么?PID控制算法精华和参数整定三大招

学会这8个梯形图PLC编程就能“出师”了?不信?你来看!

END


下面是小编给大家准备的“西门子全套”资料,含手册、案例、软件等资料,不要忘记领取哦~



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则