工人在不同工位工作
services的使用
对象图标的旋转即对象ObjectAngle属性的修改
初始化
Cycle_pos:=1
source.exitlocked:=false
工作站入口策略
var servicesTable:table[string,integer,string]
?.pred.exitlocked:=true
--要先创建表格
servicesTable.create
servicesTable[1,1]:=Proc_C[1,cycle_pos]
servicesTable[2,1]:=1
?.imp.setservices(servicesTable)
--修改ProcTime,SetupTime需要勾选Befor Action
?.proctime:=Proc_C[2,cycle_pos]
setServices函数
<Path>.Imp.setServices(Services:table)
<Path>.SetupImp.setServices(Services:table)
<Path>.FailImp.setServices(Services:table)
<Path>.TransportImp.setServices(Services:table)
可以定义服务的对象有Station,ParallelStation,AssemblyStation,DismantleStation,Mixer,Portioner,Tank
Service:table需要先创建
var servicesTable: table[string,integer,string]
Station.Imp.getServices(servicesTable)
servicesTable.delete
switch @.Name
case "PartA"
servicesTable.writeRow(1,1, "ServiceA",2)
case "PartB"
servicesTable.writeRow(1,1, "ServiceB",1)
case "PartC"
servicesTable.writeRow(1,1, "ServiceA",1)
servicesTable.writeRow(1,2, "ServiceB",1)
end
Station.Imp.setServices(servicesTable)
serviceTable有三列,第一列为服务的名字(string),第二列为服务的数量(integer),第三列为备选服务的名字(string)
getServices返回指定对象services到一个表中
所设置的服务同时需要在Worker属性中进行设置,Worker才能到指定工位去工作
工作站出口策略
if cycle_pos<Proc_C.YDim
cycle_pos:=cycle_pos+1
--移动到自身,再次触发EntranceCtrl
@.move(?)
else
cycle_pos:=1
@.move
--打开前面出口
?.pred.exitlocked:=false
end