基于长度对Transporter的控制
行驶一定距离的Transporter
小车从Source装货,送到S1加工,S1加工后到S2加工,S2加工完成后送到Drain卸货,往复循环
初始化
var tsp:object
tsp:=.MUs.PortalTransporter.create(Portal,1)
tsp.targetPosition:=2
waituntil tsp.targetPosition=-1
cycle_finished:=true
chart.active:=true
TargetPosition函数
<MU-Path>.TargetPosition:real
TargetPosition属性设置Transporter的目标位置,缺省值为 -1 ,到达目标位置的点为Front,位置为FrontPos
.MUs.Transporter:1.TargetPosition := 8
waituntil .MUs.Transporter:1.TargetPosition = -1
print "Destination reached"
循环开始
if cycle_finished and S1_in.empty
cycle_finished:=false
PortalCtrl
end
小车控制策略
var tsp:object
tsp:=Portal.cont
tsp.targetPosition:=1
waituntil tsp.targetPosition=-1
wait Portal.loadingtime
source.cont.move(tsp)
tsp.targetPosition:=9
waituntil tsp.targetPosition=-1
wait Portal.loadingtime
tsp.cont.move(S1_in)
tsp.targetPosition:=13
waituntil tsp.targetPosition=-1
if S1_out.occupied
wait Portal.loadingtime
S1_out.cont.move(tsp)
end
tsp.targetPosition:=16
waituntil tsp.targetPosition=-1
if tsp.occupied
wait Portal.loadingtime
tsp.cont.move(S2_in)
end
tsp.targetPosition:=20
waituntil tsp.targetPosition=-1
if S2_out.occupied
wait Portal.loadingtime
S2_out.cont.move(tsp)
end
tsp.targetPosition:=3
waituntil tsp.targetPosition=-1
if tsp.occupied
wait Portal.loadingtime
tsp.cont.move(Drain)
end
tsp.targetPosition:=2
waituntil tsp.targetPosition=-1
cycle_finished:=true