您现在所在的是:

西门子SIEMENS

回帖:5个,阅读:2085 [上一页] [1] [下一页]
* 帖子主题:

S7-200请教

1320
Shyer
文章数:149
年度积分:50
历史总积分:1320
注册时间:2004/3/16
发站内信
发表于:2004/4/1 15:38:00
#0楼
本人看了一点点S7-300的资料,如果一个系统有N个电机具有类似的启动和停止条件,那么只要编一个通用的FB,再通过不同的实参调用就能控制各个电机。我想问的是在S7-200里有没有这样类似的功能? 比如说通过传递局部变量调用一个相同的子程序来控制N个类似的电机!?如果有的话,请赐教如何做?
5386
dzfa 版主
文章数:2048
年度积分:53
历史总积分:5386
注册时间:2003/1/7
发站内信
发表于:2004/4/1 17:06:00
#1楼
200中的子程序也可以传递参数,实现你所说的功能。
烟台东泽----西门子山东地区之代理商,系统集成商
里的打杂的
922
cimen1
文章数:10
年度积分:50
历史总积分:922
注册时间:2003/10/18
发站内信
发表于:2004/4/1 19:41:00
#2楼
你的描述太不清楚了
1320
Shyer
文章数:149
年度积分:50
历史总积分:1320
注册时间:2004/3/16
发站内信
发表于:2004/4/2 8:55:00
#3楼
比如有三台一样的电机,控制启停如下:
第一台:I0.0 启动   I0.1  停止   Q0.0  运行输出
第二台:I0.2 启动   I0.3  停止   Q0.1  运行输出
第三台:I0.4 启动   I0.5  停止   Q0.2  运行输出
如果按模块化编程则要编三个子程序来分别控制三个电机(当然这种简单的出可以放在一个子程序里):
SBR_0                        SBR_1                    SBR_2
LD  I0.0                      LD  I0.2                  LD  I0.4
O   Q0.0                     O   Q0.1                 O   Q0.2
AN I0.1                      AN I0.3                   AN I0.5
=   Q0.0                    =   Q0.1                  =   Q0.2

现在我想的就是按S7-300里的结构化编程,编一个电机控制的通用子程序,再通过不同的参数,就能实现三个相似的电机的控制.如下:
//Main
LD    M0.0                           //假设M0.0为调用的标志位
CALL SBR_0,I0.0,I0.1,Q0.0    //调用电机1  
CALL SBR_0,I0.2,I0.3,Q0.1    //调用电机2
CALL SBR_0,I0.4,I0.5,Q0.2    //调用电机3

//SBR_0
变量申明如下:
L0.0    start     IN     BOOL     启动
L0.1    stop     IN     BOOL     停止  
L0.2    on        IN     BOOL     运行

LD     start
O      on
AN    stop
=      on


不知以上对否?传递参数是不是按主程序里调用时赋的变量顺序和子程序里的局部变量按顺序一一对应? 请指教!谢谢dzfa
5386
dzfa 版主
文章数:2048
年度积分:53
历史总积分:5386
注册时间:2003/1/7
发站内信
发表于:2004/4/2 9:22:00
#4楼
基本上没错,只是ON参数应该设为IN_OUT类型,而不是IN类型。
烟台东泽----西门子山东地区之代理商,系统集成商
里的打杂的
1320
Shyer
文章数:149
年度积分:50
历史总积分:1320
注册时间:2004/3/16
发站内信
发表于:2004/4/2 9:26:00
#5楼
哦对!只有这样主程序才能调用它的返回值输出!多谢!

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

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

62.4004