|
根据下面文字要求,做出下面的代码设置,但是出现错误,请大家指教。
要求:
1、
存储区
由3个货架和3个堆垛机组成。堆垛机作为货架的运输工具,负责该货架的出入库功能。其参数设置如表6-3所示。实体对象之间的连线关系是:rack1-3和对应的入库区combiner1-3用a连接,VSRSvehicle1-3和对应的rack1-3用s连接,VSRSvechicle和对应的入库区的combiner1-3用s连接。
| 名称
| 说明
| 参数设置
| Rack1-3
VSRSvehicle1-3
| 货架
货架堆垛机
| 存放规则:每个货格存放一个托盘,先进先出;10列10行;最大容量100。
参数默认
|
库存控制的实现:库存控制的策略师当货架的存库达到100个时,关闭该种类型的产品发生器的输出端口;当货架的库存小于10个托盘时,重新打开该类型发生器的输出端口。通过货架向相应的箱装商品发生器发送消息,来完成开关控制。
代码:
第一步,在rack1参数窗口的triggers选项卡的onentry里写入如下代码:
fsnode*item=parnode(1);
fsnode*current=ownerobject(c);
fsnode*source1=node(“/source1”,model());
unsigned int port=(unsigned int) parval(2);
if(Content(current)>=100)
sendmesage(source1,current,1,0,0);
return1;//如果当前货架的库存达到100时,则向source1发送消息,传递的值为1
第二步,在rack1参数选项on exit 里面写入如下代码:
fsnode*item=parnode(1);
fsnode*current=ownerobject(c);
fsnode*source1=node(“/source1”,model());
unsigned int port=(unsigned int) parval(2);
if(Content(current)<10)
sendmesage(source1,current,1,0,0);
return2; //如果当前货架的库存小于10,则向source1发送消息,传递的值为2
第三步,在source1的triggers的on message 里面写入如下代码:
fsnode*current=ownerobject(c);
unsigned int uservalue=(unsigned int) msgparam(1);
switch(uservalue)
{
case 1:closeoutput(current);break;
case 2:openoutput(current);break;
}
出现如下显示:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|