设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2768|回复: 4

配送中心库存控制-检查错误

[复制链接]
发表于 2009-11-17 17:00:20 | 显示全部楼层 |阅读模式
根据下面文字要求,做出下面的代码设置,但是出现错误,请大家指教。
要求:
1、
存储区

  3个货架和3个堆垛机组成。堆垛机作为货架的运输工具,负责该货架的出入库功能。其参数设置如表6-3所示。实体对象之间的连线关系是:rack1-3和对应的入库区combiner1-3a连接,VSRSvehicle1-3和对应的rack1-3s连接,VSRSvechicle和对应的入库区的combiner1-3s连接。
存储区对象
名称
说明
参数设置
Rack1-3
VSRSvehicle1-3
货架
货架堆垛机
存放规则:每个货格存放一个托盘,先进先出;1010行;最大容量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
第三步,在source1triggerson 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
发表于 2009-11-18 19:00:12 | 显示全部楼层
你这样设置,我感觉uservalue的值始终是1吧,msgparam(1)的值不是sendmesage的第四个参数的值吗
发表于 2009-11-18 19:02:07 | 显示全部楼层
你这样设置,我感觉uservalue的值始终是1吧,msgparam(1)的值不是sendmesage的第三个参数的值吗 上一个说错了
 楼主| 发表于 2009-11-23 22:45:24 | 显示全部楼层
3# GREATRADIANT
对啊 ,第一步的时候 第3位数是1;第二步的时候是2;所以没有错啊。问题主要是编译的时候是错的,错的是代码样。
发表于 2010-2-27 15:48:23 | 显示全部楼层
thanks!Studing.......
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2024-5-5 13:55 , Processed in 0.024764 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表