通过FailCtrl模拟换刀并计算换刀时间
Controls使用及OnFail中函数
工作站用户属性
工作站Controls
初始化
var i:integer
for i:=1 to self.~.ToolUsage.YDim
self.~.ToolUsage[1,i]:=0
next
self.~.statToolChangeTime:=0
工作站入口控制策略
var i:integer
var tool:string
var tct:time
tct:=0
for i:=1 to self.~.ToolAssign[1,@.name].YDim
tool:=self.~.ToolAssign[1,@.name][1,i]
self.~.ToolUsage[1,tool]:=self.~.ToolUsage[1,tool]+1
if self.~.ToolUsage[1,tool]>=self.~.ToolUsage[2,tool]
tct:=tct+self.~.ToolUsage[3,tool]
self.~.ToolUsage[1,tool]:=0
end
next
if tct>0
self.~.failures.ToolChange.Duration:=tct
self.~.failures.ToolChange.failed:=true
wait tct
self.~.failures.ToolChange.failed:=false
end
工作站Fail策略
param failureIsStarting: boolean, profileName: string
if root.eventcontroller.simtime>root.eventcontroller.startstat and failureIsStarting and profileName="ToolChange"
self.~.stattoolchangetime:=self.~.stattoolchangetime+self.~.failures.toolchange.duration
end
if root.eventcontroller.simtime>root.eventcontroller.startstat
self.~.stattoolchangeportion:=self.~.stattoolchangetime/(root.eventcontroller.simtime-root.eventcontroller.startstat)
end
failureIsStarting参数
返回错误是否发生,类型为Boolean
profileName参数
返回导致失败的失败配置文件的名称,类型为String
StartStat函数
<Path>.StartStat:time
在输入的时间重置统计收集,统计数据重新开始
root.EventController.StartStat := str_to_time("40:00.00") -- 40 minutes