S7-200的定时器在子程序中的应用问题 点击:4807 | 回复:10



zhangfu85

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 17回
  • 年度积分:19
  • 历史总积分:136
  • 注册:2008年7月29日
发表于:2009-07-20 17:25:56
楼主
我做了一个子程序,其中用到了2个定时器,我调用了5次这个子程序,运行的时候时间总是不准确。只有第一个运行,但是一到时间输出时5个同时输出。我想请教各位是不是子程序中用到的2个定时器号也要进行外部传递,如果需要怎么传递?谢谢各位,请不吝指教!!



handapipi

  • 精华:0帖
  • 求助:2帖
  • 帖子:145帖 | 743回
  • 年度积分:0
  • 历史总积分:4529
  • 注册:2007年12月05日
发表于:2009-07-21 11:18:50
1楼

麻烦你把程序传上来我们看看,没看明白你写的什么!

zhangfu85

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 17回
  • 年度积分:19
  • 历史总积分:136
  • 注册:2008年7月29日
发表于:2009-07-21 12:16:37
2楼

下面是我写的一个子程序-----定时排污子程序:SBR5,我把它调用了5次,运行的时候Q0.3---Q0.7的输出总是按同一个间隔时间输出,并没有按照各自设定的时间运行,我感觉是因为T37和T38被调用了5次的原因,但是不知道怎么解决。定时器号能不能做成变量在调用时更改呢?请各位指教

定时排污子程序:SBR5

Network 1 // 时间转换
LD SM0.0
MOVW LW0, LW5
*I +600, LW5
MOVW LW2, LW7
*I +10, LW7
Network 2 // 排污间隔时间
LD SM0.0
AN M10.1
AN T37
TON T37, LW5
Network 3
LD T37
S M10.1, 1
Network 4
LD M10.1
= L4.0
Network 5 // 排污排放时间
LD M10.1
AN T38
TON T38, LW7
Network 6
LD T38
R M10.1, 1

下面是主程序:

LD SM0.0
CALL 定时排污子程序:SBR5, 一号排污间隔时间:VW130, 一号排污排放时间:VW132, Q0.3
CALL 定时排污子程序:SBR5, 二号排污间隔时间:VW134, 二号排污排放时间:VW136, Q0.4
CALL 定时排污子程序:SBR5, 三号排污间隔时间:VW138, 三号排污排放时间:VW140, Q0.5
CALL 定时排污子程序:SBR5, 四号排污间隔时间:VW142, 四号排污排放时间:VW144, Q0.6
CALL 定时排污子程序:SBR5, 五号排污间隔时间:VW146, 五号排污排放时间:VW148, Q0.7

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-07-21 13:12:26
3楼

S7-200 毕竟是 眼屎大的PLC,在子程序考虑方面比S7-200 差多了,

子程序中有两点缺陷:

1>定时器:  不能做参数,而用固定编号的定时器肯定出问题;

                      间接解决办法:用定时计时器代替,但影响了程序的可读性;

2>上升沿/下降沿: 一个点的上升沿/下降沿要用一个中间点,S7-200是隐含

                          了这个中间点, 这在重入的子程序中可能是一个严重问题。

                         解决办法:用等效电路代替.

 

                     

 

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-07-21 13:13:31
4楼
S7-200 毕竟是 眼屎大的PLC,在子程序考虑方面比S7-300 差多了,

子程序中有两点缺陷:

1>定时器: 不能做参数,而用固定编号的定时器肯定出问题;

间接解决办法:用定时计数器代替,但影响了程序的可读性;

2>上升沿/下降沿: 一个点的上升沿/下降沿要用一个中间点,S7-200是隐含

了这个中间点, 这在重入的子程序中可能是一个严重问题。

解决办法:用等效电路代替.



芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2009-07-21 22:06:07
5楼

你可以参考手册。100毫秒的定时器在相同的周期内多次扫描的结果会令定时器多次计时。

此外多个子程序的调用并不会有局部的效果。他是全局性的。所以所有被调用的触点都会同时动作。

zhangfu85

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 17回
  • 年度积分:19
  • 历史总积分:136
  • 注册:2008年7月29日
发表于:2009-07-22 16:20:14
6楼

谢谢各位前辈的指教,我的程序已经调试完成。

siemenswj

  • 精华:0帖
  • 求助:0帖
  • 帖子:25帖 | 35回
  • 年度积分:0
  • 历史总积分:120
  • 注册:2004年11月01日
发表于:2012-04-04 09:34:45
7楼
太好了。正在学习。谢谢

yimy

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 30回
  • 年度积分:0
  • 历史总积分:283
  • 注册:2009年2月26日
发表于:2012-04-05 14:07:30
8楼
同一个定时器不好重复使用

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 19回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2005年8月23日
发表于:2013-12-24 09:49:43
9楼

楼主是怎么解决的?请赐教。

wbcg

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 31回
  • 年度积分:0
  • 历史总积分:71
  • 注册:2011年11月11日
发表于:2013-12-30 19:17:24
10楼

同问,怎么解决的?写了5个?


热门招聘
相关主题

官方公众号

智造工程师