登录发现更多内容
首页
资讯
分类
目录
索引
酷站
发帖
用户名
Email
自动登录
找回密码
密码
登录
立即注册
立即登录
立即注册
其他登录
QQ
微信
门户
Portal
论坛
BBS
搜索
搜索
本版
用户
帖子
设置
我的收藏
退出
3
0
0
首页
资料共享
›
案例六 用户命令的创建使用
返回列表
案例六 用户命令的创建使用
[ 复制链接 ]
Yumaotuo
资料共享
417
3
2018-5-2 09:26:53
[i=s] 本帖最后由 Yumaotuo 于 2018-5-2 09:30 编辑 [/i]
[align=left][font=微软雅黑]如果在一个模型中有大量代码重复,我们可以使用用户命令,来自定义命令函数,应用于整个模型。[/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑][size=3][color=#ff0000]1、模型描述[/color][/size][/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑]有3种类型均匀分布的产品在四个加工处理器上按照以下处理顺序处理,产品1:processor1~ processor3~ processor2;产品2:processor4~ processor2~ processor1~ processor3;产品3:processor2~ processor3~processor1;最后放置在暂存区内。[size=10.5pt]如果在一个模型中有大量代码重复,我们可以使用用户命令,来自定义命令函数,应用于整个模型。[/size][/font][/align][align=left][font=微软雅黑][size=3][color=#ff0000]2、模型布局:[/color][/size][/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑][/font][/align][font=微软雅黑][size=3][color=#ff0000]
[/color][/size][/font][align=left][font=微软雅黑][size=3][color=#ff0000]3、模型分析[/color][/size][/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑]货物经过处理器后被发送至暂存区进行下一步加工,我们应该考虑到它可能会继续回到上一步加工处理器上,所以中间的缓冲暂存区应该与每一个处理器都要A连接。根据item的类型值及item的当前所处的加工次数,来查询全局表,决定下一步的加工发送端口。因此每个暂存区的代码逻辑相同,可使用用户命令自定义函数来进行建模。[/font][/align][align=left][font=微软雅黑][size=3][color=#ff0000]
[/color][/size][/font][/align][align=left][font=微软雅黑][size=3][color=#ff0000]4、用户命令界面[/color][/size][/font][/align][align=left][font=微软雅黑][color=#ff0000]
[/color][/font][/align][align=left][font=微软雅黑][/font][/align][align=left][font=微软雅黑][/font][/align][align=left][font=微软雅黑]
[/font][/align][align=left][font=微软雅黑]名称为我们将要定义使用的函数命令(不能与已有函数相同),参数为此命令将要用到的参数,返回类型,我们是要返回端口号,所以为num值,对于此函数的逻辑我们在代码里进行编写。[/font][/align][align=left][font=微软雅黑][size=3][color=#ff0000]
[/color][/size][/font][/align][align=left][font=微软雅黑][size=3][color=#ff0000]5、代码设置[/color][/size][/font][/align][align=left][font=微软雅黑][size=3][color=#ff0000]
[/color][/size][/font][/align][align=left][font=微软雅黑]在发生器的创建触发中,对item类型及当前加工步骤进行添加标签设定。[/font][/align][align=left][font=微软雅黑]int type = duniform(1,3);[/font][/align][align=left][font=微软雅黑]item.Type = type;[/font][/align][align=left][font=微软雅黑]item.color = Color.byNumber(item.Type);[/font][/align][align=left][font=微软雅黑]item.step = 0;[/font][/align]
[align=left][font=微软雅黑]每个处理器要添加相应的机器设备号标签。[/font][/align]
[align=left][font=微软雅黑]暂存区的进入触发中对stpe进行加一,来表示即将进入第几次加工步骤。[/font][/align][align=left][font=微软雅黑]item.step++;[/font][/align]
[align=left][font=微软雅黑]在用户命令里编写发送至端口的逻辑。[/font][/align][align=left][font=微软雅黑]Object item = param(1);//[color=#008000]定义第一个参数[/color][/font][/align][align=left][font=微软雅黑]Object current = param(2);//[color=#008000]定义第二个参数[/color][/font][/align]
[align=left][font=微软雅黑]int type = item.Type;//[color=#008000]获取item的类型值[/color][/font][/align][align=left][font=微软雅黑]int step = item.step;//[color=#008000]获取即将进入的步骤数[/color][/font][/align]
[align=left][font=微软雅黑]for(int i = 1;i <= current.outObjects.length;i++)//[color=#008000]对全局表检索获取端口号与处理器机器标签一致的端口进行返回[/color][/font][/align][align=left][font=微软雅黑]{[/font][/align][align=left][font=微软雅黑] Object processi = current.outObjects;[/font][/align][align=left][font=微软雅黑] int stationnum = processi.station;[/font][/align][align=left][font=微软雅黑] int portnum = Table("step")[type][step];[/font][/align][align=left][font=微软雅黑] if(stationnum == portnum)[/font][/align][align=left][font=微软雅黑] {[/font][/align][align=left][font=微软雅黑] return i;[/font][/align][align=left][font=微软雅黑] }[/font][/align][align=left][font=微软雅黑]}[/font][/align][align=left][font=微软雅黑] [/font][/align][align=left][font=微软雅黑]对于暂存区发送至端口直接写入我们定义好的函数命令就可以。[/font][/align][align=left][font=微软雅黑]return findstation(item,current);[/font][/align]
点赞
0
收藏
0
────
0
人觉得很赞
────
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
举报
3 回复
非凡
回复
举报
2018-5-3 21:57:15
谢谢分享,之前是通过全局表和端口推拉操作实现的呢,这种方法也可以学习一下呢
回复
评论
举报
慧娴亚伦
回复
举报
2018-5-4 08:28:17
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=24802&ptid=7290][color=#999999]非凡 发表于 2018-5-3 21:57[/color][/url][/size]
谢谢分享,之前是通过全局表和端口推拉操作实现的呢,这种方法也可以学习一下呢[/quote]
这个方法的本质原理还是没有离开推动和拉动的选择。建议可以尝试一下list功能
回复
评论
举报
zjj0605
回复
举报
2018-5-4 17:51:49
谢谢楼主的分享
回复
评论
举报
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
立即登录
点评
高级模式
本版积分规则
回帖后跳转到最后一页
返回
浏览过的版块
新手入门
信息公告
资料共享
登录开启您的创作之旅
快速登录,立即开启您的创作之旅~
登录
热门问答
查看更多
1
厂区生产线布局优化案例!新做的!
厂区生产线布局优化案例!新做的!
12094
227
2
Flexsim二次开发之塔吊
Flexsim二次开发之塔吊
6141
45
3
FlexSim2016 中国象棋
FlexSim2016 中国象棋
6011
44
4
快递分拨中心案例~新手可参考
快递分拨中心案例~新手可参考
5633
62
5
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
5480
34
博主榜
Htenghui
+ 10630
白可露
+ 7753
liguanyu
+ 6759
4
Round2011
+ 6323
5
梁之安
+ 6321
6
zgh1120
+ 5341
7
ishelo
+ 4710
8
linweixu168
+ 3722
9
liuzhifan
+ 3628
10
adysunshine
+ 3566
首页
分类
目录
索引
我的