找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
1、建立一个MOTOR子程序,子程序带属性如下:
IN: EN_M,使能生效;该标志位为1,允许进行优先级启动控制
START_W,启动控制字,用来控制电机启停
SET_LEVEL,设定电机的启动优先级
IN_OUT: OUTUT,有效输出信号
子程序中启动控制字与优先级相等时候、,输出有效信号。
假设1#、2#、3#电机的优先级分别设定为2.3.1
则顺序延时启动后,对START_W控制字进行顺序控制计数。
START_W=1,则MOTOR2输出;
START_W=2,则MOTOR1输出;
START_W=3,则MOTOR3输出;
这里只是给一个大概的思路!具体需要结合工艺和实际程序调试使用,本程序为示例程序,未经调试,仅供参考!
VAR_INPUT
INT1 : INT ; //编号1
INT2 : INT ; //编号2
INT3 : INT ; //编号3
START : BOOL ;
STOP : BOOL ;
END_VAR
VAR_OUTPUT
OUT1 : BOOL ;
OUT2 : BOOL ;
OUT3 : BOOL ;
END_VAR
VAR
T_OUT1 : BOOL ;
T_OUT2 : BOOL ;
T_OUT3 : BOOL ;
T_START : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =
A #START;
S #T_START;
NETWORK
TITLE =
A #STOP;
R #T_START;
NETWORK
TITLE =
A #T_START;
= L 0.0;
A L 0.0;
BLD 102;
= #T_OUT1;
A L 0.0;
A( ;
O #OUT1;
O #OUT2;
O #OUT3;
) ;
L S5T#3S;
SD T 1;
NOP 0;
NOP 0;
NOP 0;
A T 1;
= #T_OUT2;
A L 0.0;
A( ;
A #OUT1;
A #OUT2;
O ;
A #OUT2;
A #OUT3;
O ;
A #OUT1;
A #OUT3;
) ;
L S5T#3S;
SD T 2;
NOP 0;
NOP 0;
NOP 0;
A T 2;
= #T_OUT3;
NETWORK
TITLE =
A #T_OUT1;
A( ;
L #INT1;
L 1;
==I ;
) ;
O ;
A #T_OUT2;
A( ;
L #INT2;
L 1;
==I ;
) ;
O ;
A #T_OUT3;
A( ;
L #INT3;
L 1;
==I ;
) ;
= #OUT1;
NETWORK
TITLE =
A #T_OUT1;
A( ;
L #INT1;
L 2;
==I ;
) ;
O ;
A #T_OUT2;
A( ;
L #INT2;
L 2;
==I ;
) ;
O ;
A #T_OUT3;
A( ;
L #INT2;
L 2;
==I ;
) ;
= #OUT2;
NETWORK
TITLE =
A #T_OUT1;
A( ;
L #INT1;
L 3;
==I ;
) ;
O ;
A #T_OUT2;
A( ;
L #INT2;
L 3;
==I ;
) ;
O ;
A #T_OUT3;
A( ;
L #INT3;
L 3;
==I ;
) ;
= #OUT3;
END_FUNCTION_BLOCK
测试通过
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!