西门子S7-200 plc子程序反复调用时 子程序中的定时器,计数器对各次调用有没有影响? 5
子程序中用到了几个定时器,而这个子程序会被主程序调用好几次。就会有的这种调情况:有的中子程序里的定时器动作了,而另一些调用中,定时器不满足执行条件不应该动作,这时动作的定...
子程序中用到了几个定时器,而这个子程序会被主程序调用好几次。就会有的这种调情况:有的中子程序里的定时器动作了,而另一些调用中,定时器不满足执行条件不应该动作,这时动作的定时器会对这个不满足执行条件的产生影响吗?
展开
5个回答
展开全部
1、反复调用子程序,对定时器和计数器是有影响的,定时器会不停的响应最近的一次调用。计数器的影响是把各次的调用逻辑操作做总的累加或累减。
2、对于200来说定时器和计数器不能做成接口函数,但是可以做成FB类型的实参函数调用。
3、S7—200PLC的定时器为增量型定时器,用于实现时间控制,可以按照工作方式和时间基准(时基)分类,时间基准又称为定时精度和分辩率。
1) 工作方式
按照工作方式,定时器可分为通电延时型(TON)、有记忆的通电延时型(TONR)、断电延时型(TOF)3种类型,我们要根据实际需要来选择。
2) 时基标准
按照时基标准,定时器可分为1ms.10ms.100ms3种类型,不同的时基标准,定时精度.定时范围和定时器的刷新方式不同,我们使用的时候要注意它们之间的区别。
3) 定时器工作方式及类型
通电延时型(TON)
使能端输入有效时,定时器开始计时,当前值从0开始递增,大于或等于预置值时,定时器输出状态位置1(输出触点有效),当前值的最大值为32767。使能端无效时,定时器复位(当前值清零,输出状态位置0)。
有记忆通电延时型(TONR)
使能端(IN)输入有效时,定时器开始计时,当前值递增,当前值大于或等于预置值(PT)值,输出状态位置1。使能端输入无效时,当前值保持,使能端再次接通有效时,在原记忆值的基础上递增计时。有记忆通电延时型定时器采用线圈的复位指令(R)进复位操作,当复位线圈有效时,定时器当前值清零,输出状态位置0。
断电延时型(TOF)
使能端(IN)输入有效时,定时器输出状态位立即置1,当前值复位。使能端断开时,开始计时,当前值从0递增,当前值达到预置值时,定时器状态位复位置0,并停止计时,当前值保持。
4、西门子S7-200PLC的计数器共有255个计数器(不包括高速计数器)可以
使用,计数的形式可以分为“加计数”、“减计数”与“加减计数”3类。
1)加计数(CTU)
加计数是通过获取计数输入信号的上升沿进行加法计数的计数方法。计数输
入信号每出现一次上升沿,计数器从0开始加“1”,当计数达到设定值(PV)时,
计数器的输出触点接通。计数达到设定值如果继续输入计数信号,计数值仍然增加,输出触点保持接通状态。计数器具有清除信号(R)输入,当清除信号为“1”时,现行计被清
“0”,设定值写入,输出触点强制断开。
2)减计数(CTD)
减计数是通过获取计数输入信号的上升沿进行减法计数的计数方法。
计数输入信号每出现一次上升沿,计数器从设定值开始减“l”,当现行计数值减到“0”时,计数器的输出触点接通。计数值为“0”后如果继续输入计数信号,计数值保持“0”,输出触点保持接通状态。计数器具有清除信号(R)输入,当清除信号为“1”
时,设定值被写入并作为现行计数值,输出触点强制断开。
3)加减计数(CTUD)
加减计数具有加计数与减计数两个输入端,通过获取对应计数输入信号的上升沿,进行加法、减法计数。加减计数的本质与加计数相同,计数输入信号每出现一次上升沿,计数器从0开始加“1”,当计数达到设定值(PV)时,计数器的输出触点接通。计数达到设定值如果继续输入计数信号,计数值仍然增加,输出触点保持接通状态。当现行值加到最大值32767后,如果再输入加计数信号,现行值变为-32768,再继续进行加计数。同时,减计数输入信号也起作用,减计数输入每出现一次上升沿,计数器从现行值开始减“1”。当现行值减到最小值-32768后,如果再输入减计数信号,现行值变为+32767,再继续进行减计数。计数器具有清除信号(R)输入,当清除信号为“l”
时,现行计数值被清“0”,设定值写入,输出触点强制断开。
2、对于200来说定时器和计数器不能做成接口函数,但是可以做成FB类型的实参函数调用。
3、S7—200PLC的定时器为增量型定时器,用于实现时间控制,可以按照工作方式和时间基准(时基)分类,时间基准又称为定时精度和分辩率。
1) 工作方式
按照工作方式,定时器可分为通电延时型(TON)、有记忆的通电延时型(TONR)、断电延时型(TOF)3种类型,我们要根据实际需要来选择。
2) 时基标准
按照时基标准,定时器可分为1ms.10ms.100ms3种类型,不同的时基标准,定时精度.定时范围和定时器的刷新方式不同,我们使用的时候要注意它们之间的区别。
3) 定时器工作方式及类型
通电延时型(TON)
使能端输入有效时,定时器开始计时,当前值从0开始递增,大于或等于预置值时,定时器输出状态位置1(输出触点有效),当前值的最大值为32767。使能端无效时,定时器复位(当前值清零,输出状态位置0)。
有记忆通电延时型(TONR)
使能端(IN)输入有效时,定时器开始计时,当前值递增,当前值大于或等于预置值(PT)值,输出状态位置1。使能端输入无效时,当前值保持,使能端再次接通有效时,在原记忆值的基础上递增计时。有记忆通电延时型定时器采用线圈的复位指令(R)进复位操作,当复位线圈有效时,定时器当前值清零,输出状态位置0。
断电延时型(TOF)
使能端(IN)输入有效时,定时器输出状态位立即置1,当前值复位。使能端断开时,开始计时,当前值从0递增,当前值达到预置值时,定时器状态位复位置0,并停止计时,当前值保持。
4、西门子S7-200PLC的计数器共有255个计数器(不包括高速计数器)可以
使用,计数的形式可以分为“加计数”、“减计数”与“加减计数”3类。
1)加计数(CTU)
加计数是通过获取计数输入信号的上升沿进行加法计数的计数方法。计数输
入信号每出现一次上升沿,计数器从0开始加“1”,当计数达到设定值(PV)时,
计数器的输出触点接通。计数达到设定值如果继续输入计数信号,计数值仍然增加,输出触点保持接通状态。计数器具有清除信号(R)输入,当清除信号为“1”时,现行计被清
“0”,设定值写入,输出触点强制断开。
2)减计数(CTD)
减计数是通过获取计数输入信号的上升沿进行减法计数的计数方法。
计数输入信号每出现一次上升沿,计数器从设定值开始减“l”,当现行计数值减到“0”时,计数器的输出触点接通。计数值为“0”后如果继续输入计数信号,计数值保持“0”,输出触点保持接通状态。计数器具有清除信号(R)输入,当清除信号为“1”
时,设定值被写入并作为现行计数值,输出触点强制断开。
3)加减计数(CTUD)
加减计数具有加计数与减计数两个输入端,通过获取对应计数输入信号的上升沿,进行加法、减法计数。加减计数的本质与加计数相同,计数输入信号每出现一次上升沿,计数器从0开始加“1”,当计数达到设定值(PV)时,计数器的输出触点接通。计数达到设定值如果继续输入计数信号,计数值仍然增加,输出触点保持接通状态。当现行值加到最大值32767后,如果再输入加计数信号,现行值变为-32768,再继续进行加计数。同时,减计数输入信号也起作用,减计数输入每出现一次上升沿,计数器从现行值开始减“1”。当现行值减到最小值-32768后,如果再输入减计数信号,现行值变为+32767,再继续进行减计数。计数器具有清除信号(R)输入,当清除信号为“l”
时,现行计数值被清“0”,设定值写入,输出触点强制断开。
展开全部
这就是定时器不能再子程序中供多次调用的原因,解决这个子程序内用形参来传递定时器的方法就是自己制作定时器,用V区来计时,然后在子程序内调用系统时钟来递增,这样就能自由发挥了。一种情况下定时器可以放在子程序中调用,就是主程序每次扫描都只调用一次且每次调用一个子程序。
更多追问追答
追问
这样子行吗?
还有不明白的地方:1、如何在子程序中使用常数。2、刚调用子程序时局部变量的初始值是什么(都是零吗)?返回主程序后,子程序中各局部变量释放是指数值归零、状态复位吗?3、局部变量表中只能定义16个变量?不够用怎么办?
Network 1 // 网络标题
// 网络注释
LD SM0.0
LPS
A SM0.5
INCW LW3
LPP
AW>= LW3, LW0
= L2.0
追答
1)子程序中使用常数就你直接写aw>= lw2, 200
2)子程序局部变量初始化需要自己写,一般是用外部形参,系统默认不是零,是LW的上次调用赋值,子程序使用完LW后是仍在那里不管他
3)如果参数需要大于60Byte的数据区,可以传递数据块(连续的比如LW0-LW98)的首地址指针到子程序内,子程序使用取地址运算*,来操作变量
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定是有影响的,主程序里条件接通,子程序被调用,子程序里的定时器或计数器才可以工作
龙丰自动化
龙丰自动化
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在S7-200的子程序中,计数器,定时器貌似只能用-绝对地址-赋值(300/400中可以用-符号-赋值),也就是说,它是个全局变量,在其它程序调用中,对应触点肯定已经改变了,但调用条件不满足,应该没有输出!
追问
对啊,子程序中如果是局部变量的话返回主程序后都会复位的,但定时器不是一全局变量吗?不会在另外的调用中直接保持当前的状态吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询