




已阅读5页,还剩80页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
仿真專班培训,BeijingCSNTechnologyInc.,1,课程大纲,第五部分、建模语言第六部分、概念和模型,2,第五部分建模语言,Flexsim层次化结构树形结构建模语言定制模型逻辑,3,什么是节点?,Flexsim的基本数据结构是一个层次化的树形结构主树模型和工程相关的对象和数据视图树包括图形用户界面相关的对象和下拉菜单模型树模型相关的对象和数据节点是“树”的基本构成单元节点在表面是看不到的,它们包含了对象、图形用户界面和数据的所有信息,4,节点结构,节点有名字节点可以拥有一个数据项数值字符串对象如果节点拥有对象数据,使用查看含有对象信息的展开的节点列表(数据项和成员函数)如果节点包含子节点,使用展开并查看子节点,5,节点符号,标准文件夹对象对象数据C+函数FlexScript(Flexsim脚本)函数,6,模型树样本,7,什么是函数?,函数名(参数1,参数2,等等)参数可以是数值字符串指向对象或节点的指针函数举例colorrandom(item)许多Flexsim函数的作用都是从“树”中读取数据和向“树”存放数据,8,一般规则,区分大小写(A不等同于a)没有限制特定的格式(以“易读的”代码为目标,可以自由使用空格、制表符和回车换行)文本字符串由引号括起,mytext函数调用后面用圆括号,逗号分隔函数的参数,moveobject(item,container)函数总是以分号结束根据需要可以在数学和逻辑表达式中自由地使用圆括号,(x+10)*y大括号用于定义一段逻辑表达双斜线用于一行中其后的部分,/mycomment多行注释以/*开始,*/结束名字定义中不能含有空格或特殊字符,下划线除外名字中可以含有数字,但是不能以数字开头,9,书写逻辑可能用到的帮助,现有的下拉菜单选项示例和模型(/samples和/userprojects/DemoModels)CommandSummary(命令集)CommandHints(命令提示)C+参考书,10,变量类型,int(整数型),1、999double(双精度型),0.0、123.45string(字符串型),goodfsnode*(节点指针型),theOp、item,11,变量声明和赋值,整数型,intindex=1;双精度型,doublelength=10.5;字符串型,stringstr1=qualified;节点指针型,fsnode*myItem=last(current);,12,数学运算符,x+y:x加yxy:x减yx*y:x乘以yx/y:x除以ysqrt(x):x的平方根pow(x,y):x的y次方trunc(x):x取整数部分frac(x):x的小数部分fmod(x,y):x除以y的余数min(x,y):x和y的较小值max(x,y):x和y的较大值,13,比较,xy:x大于yx=y:x大于等于yx2)moveobject(last(current),queue);,在程序中,while循环是在测试表达式为真时使得一段代码一直反复重复执行的结构,所以为了避免无限循环下去,最终测试表达式的值要为假。,33,“for”循环结构,for(startexpression;testexpression;countexpression)codeblockfor(intindex=1;index=content(current);index+)totalWeight+=getlabelnum(rank(current,index),weight);,for循环允许一段代码重复执行一定次数,测试表达式最终值同样需要为假,以避免无限循环。,34,代码练习四,目的学习使用for循环描述组合器将8个箱子放在1个托盘上一个发生器提供托盘,另外一个发生器提供箱子组合器发送实体到一条输送机,再由这条输送机发送到另一条输送机在第一条输送机的离开触发器,使用for循环改变托盘上所有箱子的颜色问题尝试使用setobjectshapeindex函数改变箱子的外形,35,代码练习四布局,36,第六部分概念和模型,通过搭建一些模型学习更多Flexsim概念和用法,37,模型四概念,实体类型“推”与“拉”式规则概率分布函数,38,处理器“拉”实体,PullFromPort(接收端口):实体可以进入的输入端口PullRequirement:决定是否允许一个实体进入上游对象发送端口项设置为Openallports(所有端口),39,模型四,目的学习使用“拉”式规则,根据实体的实体类型定义它们的加工路线描述电子部件加工完成后需要接受测试两种类型的部件会进入堆放区,它们的到达是随机的,其中40%是类型为1的,60%是类型为2的。部件到达的间隔时间服从均值为40秒的指数分布两台测试机用于类型为1的部件,三台测试机用于类型为2的部件测试时间服从120到150秒的均匀分布问题尝试平衡各个测试机的工作量尝试使用“推”规则实现此模型,40,模型四布局,41,模型五概念,标签和实体类型经验分布:全局表触发器顺序,42,模型五,目的学习如何在实体上设置和使用标签,用于决定加工路线描述零件的到达服从均值为30秒的指数分布,四种类型的零件分别占全部零件的20%、30%、40%、10%。四台处理器分别处理这四种不同类型的零件。首次加工的零件的处理时间服从100到120秒的均匀分布,返工的零件的处理时间服从120到130秒的均匀分布。零件加工完成后会被测试。每个零件的测试时间是10秒钟。测试合格的产品会离开模型,10%的产品会需要返工。返工的零件将被优先处理问题瓶颈在哪里?尝试改变需要返工的零件的形状,43,模型五布局,44,模型六概念,全局表标签触发器,45,全局表函数,gettablenum(tablename,rownum,colnum)settablenum(tablename,rownum,colnum,num)gettablestr(tablename,rownum,colnum)settablestr(tablename,rownum,colnum,str)settablenum(Inventory,1,5,content(current)gettablestr(Alias,getitemtype(item),2),46,模型六,目的使用全局表定义加工路线的简单案例学习使用标签跟踪实体的加工步骤描述3种不同的产品需要进入一个由5台处理器组成的加工单元产品按照下述路线被处理类型为1的产品需要经过工作台1、3和2类型为2的产品需要经过工作台1、2和4类型为3的产品需要经过工作台2、4、3和5使用全局表,以保证产品按照正确的顺序发送到相应的工作台进行加工所有没有完全加工完成的产品都放置在同一个堆放区中问题尝试用颜色标示产品所处的加工步骤,47,模型六布局,48,模型七概念,任务序列优先级全局指针,49,模型七,目的学习如何使用一个操作员同时负责搬运和处理实体描述零件的到达时间间隔是服从均值为20秒的指数分布。零件到达后由操作员将其运送到一个空闲的工作台上。操作员需要对零件进行10秒钟的预处理之后工作台自行处理实体,需要20秒钟时间加工完成后,实体离开系统一个操作员负责所有的三个工作台问题使操作员在运送完一个实体后,立即对该实体进行预处理尝试不使用中心端口连接实现此模型,50,模型七布局,51,模型八概念,发送端口“中断”需求,52,模型八,目的学习使用移动资源上的“中断”需求项描述发生器均匀地产生三种不同类型的实体,并随机发送到其后的三个堆放区内。一辆运输车将实体运送到后面的三个堆放区内,此三个堆放区分别可以容纳一种类型的实体。实体经过处理器,最后由接收器离开系统。运输车辆最多一次可以装载5个实体。运输车辆只能同时装载同一类型的实体。问题尝试其他“中断”需求选项,观察运输车辆的行为。,53,模型八布局,54,模型九概念,移动资源组自定义任务序列时间表,55,模型九,目的练习使用移动资源组、调度规则描述一个工作单元有5个工作台每个零件必须依次在5个工作台上进行加工此工作单元中有一组由3个操作员组成的移动资源组操作员负责运送每个零件到下一个工作台,以及预处理任务预处理时间是5秒钟,处理时间是15秒钟每25秒到达一个新零件问题每小时的生产能力是多少?使用自定义任务序列,以提高生产能力。使用时间表,安排操作员在不同的时间休息。,56,模型九布局,57,模型十概念,更新组合器组件列表Excel数据导入,58,定制Excel数据导入/导出,规则必须首先使用excellaunch函数启动Excel,然后使用excelopen函数打开一个Excel文档。使用excelsetsheet函数指定一个表单,然后可以使用excelreadnum,excelwritenum,excelimporttable和excelexporttable等函数进行读写操作。如果需要打开另一个文档,需要先使用excelclose函数关闭当前文档。最后使用excelquit函数退出Excel。示例excellaunch();excelopen(C:ProgramFilesFlexsim3userprojectsTrainingExcelCustom.xls);excelsetsheet(Sheet1);excelwritenum(1,2,gettablenum(Data,1,1);settablenum(Data,1,1,excelreadnum(1,1);excelclose(true);excelquit();,59,模型十,目的学习如何控制组合器的组件列表学习如何从Excel导入数据到发生器的到达时刻表描述一个供应商向5个不同的客户提供总共10种不同的产品每个客户的订单不同每个客户所订的产品放在一个托盘上,经过输送机进入接收器使用订单和时刻表两个表格构建此模型问题从Excel中导入所需的表格,60,模型十布局,61,模型十订单表,62,模型十到达时刻表,63,更深一步的概念和模型,打开、关闭输入/输出端口消息抽象模型全局对象指针自定义任务序列数据库用户事件模型初始化代码全局C+代码用户函数,64,模型A1概念,打开、关闭输入/输出端口消息,65,基本对象控制函数,closeinput(obj),openinput(obj)stopinput(obj),resumeinput(obj)closeoutput(obj),openoutput(obj)stopoutput(obj),resumeoutput(obj)sendmessage(toobj,fromobj,param1,param2,param3)senddelayedmessage(toobj,delaytime,fromobj,param1,param2,param3)stopobject(obj),resumeobject(obj)moveobject(obj,container)closeoutput(current)senddelayedmessage(centerobject(current,1),10,current,1,getlabelnum(current,2),0),66,消息,消息:一个对象发送到另一个对象的信息当一个对象接收到消息时,它的“OnMessage”(消息)触发器被触发消息的发出是通过函数sendmessage(发出即时消息)和senddelayedmessage(发出延时消息)每条消息可以有三个附加的数值型参数,67,消息执行机制,68,模型A1,目的学习如何控制产品流和发送延时消息描述工作台在处理完每个产品之后,需要等待50秒钟,才能继续处理后面的产品。使用closeinput和senddelayedmessage函数实现此功能。问题如果此工作台最多可以同时处理两件产品,每次处理完一批(一件或两件)产品之后需要等待,如何实现?,69,模型A1布局,70,模型A2概念,抽象模型全局对象指针For循环moveobject函数,71,模型A2,目的学习创建抽象模型的方法学习在触发器中定义C+逻辑代码描述每天都有货物到达,也都有订单到达,1份货物可以满足1份订单的需求。每天到达货物的数量和每天的订单数量都服从均值为10的指数分布。一共有5种不同类型的货物和订单,每天到达的货物和订单都会是其中一种,而且每一种的可能性都相同。货物和订单的类型相匹配。货物到达时,如果现存的订单显示需要这种货物,那么货物要立即满足订单的需要,同时更新订单;如果不需要则暂时存放起来。订单到达时,如果库存中的货物有可以满足需要的,那么立即消除相应的货物和订单;否则将订单保留。问题如果连续运行1年需要多大的容量以暂存货物?画出表示每天缺货总量的曲线图订单被满足的平均等待时间是多长?,72,模型A2布局,73,模型A3概念,自定义任务序列全局对象指针,74,移动资源控制,简单指令createdelaytask(centerobject(current,1),100,STATE_UTILIZED,0,0)freeoperators(op,item)自创建任务序列createemptytasksequence(te,priority,preempting)返回值为指向此任务序列的指针(例如fsnode*ts)inserttask(ts,tasktype,involved1,involved2,param1,param2,param3,param4)dispatchtasksequence(ts),75,任务序列示例,fsnode*forklift=centerobject(current,1);fsnode*origin=inobject(current,1);fsnode*destination=outobject(current,2);fsnode*item=first(origin);fsnode*ts=createemptytasksequence(forklift,0,0);inserttask(ts,TASKTYPE_TRAVEL,origin,NULL);inserttask(ts,TASKTYPE_FRLOAD,item,origin);inserttask(ts,TASKTYPE_TRAVEL,destination,NULL);inserttask(ts,TASKTYPE_FRUNLOAD,item,destination);dispatchtasksequence(ts);,76,任务类型,TASKTYPE_LOAD:item,sourceTASKTYPE_FRLOAD:item,station,outputportTASKTYPE_UNLOAD:item,targetTASKTYPE_FRUNLOAD:item,station,inputportTASKTYPE_UTILIZE:involved,station,stateTASKTYPE_DELAY:NULL,NULL,delaytime,stateTASKTYPE_BREAK:NULL,NULLTASKTYPE_TRAVEL:destination,NULLTASKTYPE_TRAVELTOLOC:NULL,NULL,lx,ly,lz,endspeedTASKTYPE_TRAVELRELATIVE:NULL,NULL,ox,oy,oz,endspeedTASKTYPE_SENDMESSAGE:toobj,fromobj,param1,param2,param3,delaytimeTASKTYPE_MOVEOBJECT:obj,container,port,77,模型A3,目的学习如何创建自己的任务序列描述模型中包括一个发生器,五个工作台和一个接收器操作员从发生器取一个实体到第一个工作台进行加工,完成后再运送到第二个工作台进行加工,依此类推,直到全部加工完成后送到接收器。也就是说同一个操作员要负责一个实体从头到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 概括承受三方合同2篇
- 商品入仓库服务合同4篇
- 新解读《GB-T 31048-2014铜冷却壁》
- 草鱼收购合同6篇
- 合同范本印章怎么盖
- 食品供应协议合同范本
- 药厂木香采购合同范本
- 卫生院尘肺病康复站差错事故预防及突发事件处理制度
- 供电监理合同范本
- 关于教育孩子的心得体会和感悟五篇
- 小学科学新教科版二年级上册全册教案(2025秋版)
- 2025年海南省通信网络技术保障中心招聘考试笔试试题(含答案)
- 2025年国家卫生健康委医药卫生科技发展研究中心招聘考试笔试试题(含答案)
- 2025年宿州市公安机关公开招聘警务辅助人员110名笔试备考试题及答案解析
- 新课标(水平一)体育与健康《非移动性技能》大单元教学计划及配套教案(18课时)
- 2025至2030中国PE微粉蜡市场需求量预测及前景动态研究报告
- 2025年辅警招聘公安基础知识题库附含参考答案
- 2025年理赔专业技术职务任职资格考试(理赔员·保险基础知识)历年参考题库含答案详解(5套)
- TSGD7002-2023-压力管道元件型式试验规则
- GB/T 14842-2007铌及铌合金棒材
- 《基层社区治理问题研究开题报告(含提纲)3500字》
评论
0/150
提交评论