[Plant Simulation]Worker给一个Station提供不同的services(services的使用及图标的旋转)

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

下载链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值