设计优先级问题

我用s7200,在工艺流程中有一段,有九台电机启动顺序有优先级,在触摸屏中可以设定0-9共10个优先级,设为0时电机不启动,设定不为0的电机按1到9的顺序启动。这段程序不会写,请求高手指点。。

问题补充:
各位大侠:
程序怎么对优先级变量进行排序呢?
还有就是 在子程序中的输出变量OUT最多可以设定几个?

最佳答案

答:根据你的提问,经考虑用一个简单的方法来解决问题(用轮询的方法)。 
首先定义:
1. 电机序号:将10台电机编号为1~10号,设置10个变量VW100~VW118,分别对应1~  10号电机。将触摸屏上设置的1~10号电机的启动优先级分别写入VW100~VW118。
2. 启动序号:由变量VW200产生。
3. M1.0:开始启动电机指令。
4. Q0.0~Q0.7、Q1.0~Q1.1:输出1~10号电机启动的指令。
由于不知道你整个程序对电机的控制逻辑,所以无法给你更多的帮助,只能提供编程思 路,由你自己根据控制逻辑进行修改和完善,希望能对你有所帮助。
注意:
1. M1.0只能闭合1次,即只能向VW200传送1次“1”。
2. 要有根据控制逻辑对Q0.0~Q0.7、Q1.0~Q1.1进行复位的环节(在网络3里是只有当前一个电机启动的指令(Q点)复位后,才能启动下一个电机)。

程序如下:

网络1  开始启动电机
当开始启动电机指令M1.0=1时,向VW200中写入“1”,开始按优先级启动电机。

LD     M1.0
MOVW   1, VW200

网络2  启动次数累计
启动第1个电机后开始计数,以后每启动一个电机VW200加1(给出启动序号,当VW200=n 时,启动第n台电机)。

LD     SM0.0
LD     Q0.0
O      Q0.1
O      Q0.2
O      Q0.3
O      Q0.4
O      Q0.5
O      Q0.6
O      Q0.7
O      Q1.0
O      Q1.1
ALD
INCW   VW200

网络3  按触摸屏上设定的电机启动顺序依次启动9台电机
将启动序号VW200与设定的电机启动优先级号(VW100~VW118)做比较,符合启动条件 的电机则启动。

LDN    Q0.0
AN     Q0.1
AN     Q0.2
AN     Q0.3
AN     Q0.4
AN     Q0.5
AN     Q0.6
AN     Q0.7
AN     Q1.0
AN     Q1.1
LPS
AW=    VW100, VW200
S      Q0.0, 1
LRD
AW=    VW102, VW200
S      Q0.1, 1
LRD
AW=    VW104, VW200
S      Q0.2, 1
LRD
AW=    VW106, VW200
S      Q0.3, 1
LRD
AW=    VW108, VW200
S      Q0.4, 1
LRD
AW=    VW110, VW200
S      Q0.5, 1
LRD
AW=    VW112, VW200
S      Q0.6, 1
LRD
AW=    VW114, VW200
S      Q0.7, 1
LRD
AW=    VW116, VW200
S      Q1.0, 1
LPP
AW=    VW118, VW200
S      Q1.1, 1

网络4  将VW200设置为初始状态
当启动完第9台电机后,将VW200置为“0”,为下一次依顺序启动电机做准备。

LDW=   VW200, 9
-I     VW200, VW200

图片说明:

设计优先级问题  设计优先级问题  设计优先级问题  设计优先级问题  

提问者对于答案的评价:
谢谢!和我的想法差不多!

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc293266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐