您现在所在的是:

PLC论坛

回帖:5个,阅读:5219 [上一页] [1] [下一页]
6047
liaosun
文章数:1398
年度积分:50
历史总积分:6047
注册时间:2003/5/4
发站内信
2015论坛贡献奖
2014论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011博客贡献奖
2010博客杰出贡献奖
发表于:2011/3/1 9:57:58
#0楼
   最近有人在网上提出是否可以用S7-300/400的OB35取代OB1。循环中断组织块OB35是按照精确的时间间隔周期性执行的,执行的周期在CPU的属性对话框中设置。主程序OB1也是周期性循环执行的,OB1可以调用FB、FC。每次循环执行的时间与用户程序的长短有很大的关系。由于程序中跳转指令和调用逻辑块的条件的变化,OB1的扫描循环时间是动态变化的。前一次调用OB1结束后,马上又开始下一次的调用。
   我做了仿真实验和硬件实验,实验证明如果删除OB1,将程序放在OB35中,S7-300也可以正常运行。CPU的SF(系统故障)灯未亮,诊断缓冲区中没有任何故障信息。
   但是这并不表明可以用OB35完全取代OB1!!其原因很简单,很难合理地选取OB35的循环执行的时间间隔。如果设置的时间间隔太短,OB35的执行时间大于其时间间隔,上一次的程序还没有执行完,下一次循环中断又出现了,导致时间错误,CPU将会调用OB80。如果时间间隔太长,执行完OB35的程序后,CPU无所事事,白白浪费了CPU的资源,并且使系统的响应延迟时间增大。
   通常将需要严格的时间间隔的程序(例如PID控制功能块)放在OB35中,其他程序(不包括处理中断的程序)放在OB1,可以很好地解决上述的难题。OB1被循环执行,不会出现CPU空闲的情况。有中断事件产生时,将停止执行OB1。执行完中断组织块后,从断点开始,继续执行OB1的程序。
   S7-200的系统手册说得好:“应当使中断程序短小而简单,执行时对其他处理也不要延时过长。如果做不到这些,意外的条件可能会引起由主程序控制的设备操作异常。对中断而言,其格言是‘越短越好’”请牢记,这可是PLC高手的肺腑之言啊!
   综上所述,虽然删除OB1也不会报错,但是绝对不能用OB35取代OB1。
此帖来自中华工控网工控博客
原文件地址:http://blog.gkong.com/more.asp?id=133668&Name=liaochangchu
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/
1010
yangweibin
文章数:33
年度积分:50
历史总积分:1010
注册时间:2008/11/30
发站内信
发表于:2011/3/1 14:34:12
#1楼
谢谢楼主,学习了
Q名:深圳宝菱电子。 小杨。PLC编程,机器调试5年
2286
祥子315
文章数:408
年度积分:50
历史总积分:2286
注册时间:2009/3/12
发站内信
发表于:2011/3/1 23:31:47
#2楼
谢谢楼主
756
zouxd1988
文章数:3
年度积分:50
历史总积分:756
注册时间:2011/3/2
发站内信
发表于:2011/3/2 21:27:15
#3楼
学习了,楼主
803
421141514
文章数:62
年度积分:50
历史总积分:803
注册时间:2012/5/31
发站内信
发表于:2012/6/27 10:22:10
#4楼

老师,请问启动块是在什么时候才需要?我现在从事的电气的工作,有些块用到启动块,有些则没有,在PLC启动的时候不是先执行启动块然后才是OB1的吗?
以下是引用liaosun在2011/3/1 9:57:58的发言:
    最近有人在网上提出是否可以用S7-300/400的OB35取代OB1。循环中断组织块OB35是按照精确的时间间隔周期性执行的,执行的周期在CPU的属性对话框中设置。主程序OB1也是周期性循环执行的,OB1可以调用FB、FC。每次循环执行的时间与用户程序的长短有很大的关系。由于程序中跳转指令和调用逻辑块的条件的变化,OB1的扫描循环时间是动态变化的。前一次调用OB1结束后,马上又开始下一次的调用。
    我做了仿真实验和硬件实验,实验证明如果删除OB1,将程序放在OB35中,S7-300也可以正常运行。CPU的SF(系统故障)灯未亮,诊断缓冲区中没有任何故障信息。
    但是这并不表明可以用OB35完全取代OB1!!其原因很简单,很难合理地选取OB35的循环执行的时间间隔。如果设置的时间间隔太短,OB35的执行时间大于其时间间隔,上一次的程序还没有执行完,下一次循环中断又出现了,导致时间错误,CPU将会调用OB80。如果时间间隔太长,执行完OB35的程序后,CPU无所事事,白白浪费了CPU的资源,并且使系统的响应延迟时间增大。
    通常将需要严格的时间间隔的程序(例如PID控制功能块)放在OB35中,其他程序(不包括处理中断的程序)放在OB1,可以很好地解决上述的难题。OB1被循环执行,不会出现CPU空闲的情况。有中断事件产生时,将停止执行OB1。执行完中断组织块后,从断点开始,继续执行OB1的程序。
    S7-200的系统手册说得好:“应当使中断程序短小而简单,执行时对其他处理也不要延时过长。如果做不到这些,意外的条件可能会引起由主程序控制的设备操作异常。对中断而言,其格言是‘越短越好’”请牢记,这可是PLC高手的肺腑之言啊!
    综上所述,虽然删除OB1也不会报错,但是绝对不能用OB35取代OB1。
657
hanweifg
文章数:1
年度积分:50
历史总积分:657
注册时间:2012/5/2
发站内信
发表于:2014/5/14 10:34:33
#5楼
非常感谢

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

93.6006