[Plant Simulation]工人开车搬运及装卸货物(Transporter的复合使用及pe函数)

Transporter的复合使用

在这里插入图片描述

初始化

.MUs.Transporter.create(track,2)

Icon更改

Transporter的Icon更改

在这里插入图片描述

Icon-Animation添加动画点,可以配合修改XDim,YDim

Worker的Icon更改

在这里插入图片描述

将一个Transporter的名称改为Worker,并将其Icon图标更换为Worker图标,关闭其Graphics显示,即显示为Worker

工人等待策略

--有车然后上车
waituntil car_is_waiting prio 1
@.move(Track.cont)
car_is_waiting:=false

Track传感器策略

param SensorID: integer, Front: boolean, BookPos: boolean

if sensorID=1
	if @.cont=void
		@.stopped:=true
		car_is_waiting:=true
		waituntil @.occupied prio 1
		@.stopped:=false
	end
elseif sensorID=2
	@.stopped:=true
	Job_finished:=false
	@.cont.move(Load1)
	waituntil Job_finished prio 1
	@.stopped:=false
elseif sensorID=3
	@.stopped:=true
	Job_finished:=false
	@.cont.move(Unload2,4)
	waituntil Job_finished prio 1
	@.stopped:=false
end

装载出口策略

if ?.name="Load1"
	waituntil station.occupied prio 1
	station.cont.move(@)
	@.move(Load2)
elseif ?.name="Load2"
	--给工人留位置
	@.cont.move(Track.cont.pe(num_part+2,1))
	num_part:=num_part+1
	if num_part<4
		@.move(Load1)
	else
		--如果工人位置被占,将该位置的工件移到最后一个位置
		if track.cont.pe(1,1).cont /= void
			track.cont.pe(1,1).cont.move(track.cont.pe(5,1))
		end
		@.move(track.cont)
		Job_finished:=true
	end
end

卸载出口策略

if ?.name="Unload1"
	@.cont.move(Drain)
	@.move(Unload2)
elseif ?.name="Unload2"
	if num_part>0
		Track.cont.cont.move(@)
		num_part:=num_part-1
		@.move(Unload1)
	else
		@.move(track.cont)
		Job_finished:=true
	end
end

pe函数

<MU-Path>.pe(X:integer, Y:integer) → object
<MU-Path>[X:integer, Y:integer] → boolean

pe函数访问基于矩阵的存储空间,可以用于MUsPlaceBufferStore

下载链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值