根据排班表ShiftCalendar调整生产线
Shiftlendar的使用
初始化
--入口开放
C1.entrancelocked:=false
生产线开放时策略
var workingDuration:time
--计算剩余工作时间是否够零件走完生产线
workingDuration:=ShiftCalendar.calculateWorkingDuration(
eventController.absSimTime,
eventController.absSimTime+emptying_time)
--如果够就让走,否则关闭入口
if workingDuration<emptying_time
C1.entrancelocked:=true
waituntil C1.entrancelocked=false prio 1
@.move
else
@.move
end
<Path>.calculateWorkingDuration(StartTime:dateTime, EndTime:dateTime) → time
StartTime和EndTime类型为datatime,所以计算时要用AbsSimTime(类型为datatime),而不能用SimTime(类型为time)
StarTime指定ShiftCalendar计算工作时长的开始时间
EndTime指定ShiftCalendar计算工作时长的结束时间
生产线关闭时策略
param Attribute:string,oldValue:any
if ?.unplanned=true or ?.pause=true
?.entrancelocked:=false
end
MyStation.addObserver("occupied", "myMethod")
MyStation.addObserver("occupied", &myMethod)
需要为对象添加Observers,后可使用param传递参数
param attribute: string, oldValue: any
if ?.occupied
?.Cont.move(Station2)
end