比如有三台一样的电机,控制启停如下:
第一台: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
04-04-02 08:55