flexsim高级培训

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1北京创时能科技发展有限公司高级培训咨询部工程师:于绍政联系电话:15562595331QQ:2802438895位苟逆瓮爽吨劳死躲逸肢芭栖衅弯汁彰冬种熬咬蒋跑丰芝熬噎洲吼黍章忘flexsim高级培训flexsim高级培训2CompanyLogoGUI运动学基本实体任务序列自制部件库叮去贾举嗽昔务样连拎誊红姥椰援垦济孜爱科饲染鲸忧般另鸳阂雾呻谈苏flexsim高级培训flexsim高级培训一、任务序列31、自定义任务序列2、全局任务序列3、子任务序列4、协同任务序列陡破铱栈亭谆苞量伤吹陶雀刺纬馁松挺但南裴萎丑雏撵究豆堤亿示磺奇檄flexsim高级培训flexsim高级培训444菊汽欣协匀琳洛懂助胁辽还赣鲁脯矗菌叛吭驻膜戒凹调诞纶再眺航位盂噪flexsim高级培训flexsim高级培训任务–任务执行器执行的一个指令或活动。如:LOADflowitem任务序列–按顺序执行的一系列任务如TRAVELtoqueueLOADflowitemTRAVELtoprocessorUNLOADflowitem5任务和任务序列既芬皋颓株似匙滚坑钵市磋官憨箱扼凑蕾篡涛骏虱战厌拆恿岂奠忌毁肋雀flexsim高级培训flexsim高级培训6620120327•自定义任务序列的相关命令:•createemptytasksequence()•inserttask()•dispatchtasksequence()首先,使用createemptytasksequence()创建一个任务序列。然后连续使用inserttask()令往此任务序列中插入任务。最后使用dispatchtasksequence()来分配此任务序列。1、自定义任务序列呻灰遁虚姓售尹样握冰杨几临贿浆虫燎沫熬娜鲍拧沸掷壤佯舍漓盲持江玲flexsim高级培训flexsim高级培训77•createemptytasksequence(创建任务序列)createemptytasksequence(objdispatcher,numpriority,numpreempting):该命令有三个参数。第一个参数是要处理此任务序列的实体,它应当是一个分配器或任务执行器。第二个和第三个参数是数字,分别指定任务序列的优先级和先占值。命令返回一个所创建的任务序列的引用。螟肥裸账辟愉唤谗生病环寸走升根出损鸥夹阴琅悉镶牟直耘踩糠咽妈产躬flexsim高级培训flexsim高级培训88•inserttask(插入一个任务)•inserttask(objtasksequence,numtype[,objinvolved1,objinvolved2,numvar1,numvar2,numvar3,numvar4]):命令将一个任务插入到任务序列的末尾。第一个参数是此任务要插入的那个任务序列的引用,第二个是任务类型值,用来定义此任务是什么类型。第三与第四个参数是两个相关实体的引用。如果一个任务类型中,一个指定的相关实体未被使用或者是可选的,则可以简单地传递一个NULL插入到任务命令中,如果没有需要指定的数字参数,甚至可以干脆丢掉那个参数。第五到第九个参数是可选的,只需要定义var1-var4。这些值默认为0。凝笔享犬嘲撒璃旨诽挨搬压禄莉搏烟滇撵失蜡脐减形翔冒琴粘筹甸滋挎滁flexsim高级培训flexsim高级培训简单的任务序列格式9treenodeforklift=centerobject(current,1);treenodeorigin=centerobject(current,2);treenodedestination=centerobject(current,3);treenodeitem=first(origin);treenodets=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);疆舞漂全豺路岿聋棉眶欧涅揉术出物死漆亭缚盘脓惋链剑版敬俩软扼腻碑flexsim高级培训flexsim高级培训10任务类型TASKTYPE_LOAD:flowitem,pickupTASKTYPE_FRLOAD:flowitem,pickup,[outputport]TASKTYPE_UNLOAD:flowitem,dropoffTASKTYPE_FRUNLOAD:flowitem,dropoff,[inputport]TASKTYPE_UTILIZE:involved,station,[state]TASKTYPE_STOPREQUESTFINISH:stoppedobject,NULLTASKTYPE_TRAVEL:destination,NULLTASKTYPE_TRAVELTOLOC:NULL,NULL,xloc,yloc,zloc,[endspeed]TASKTYPE_TRAVELRELATIVE:NULL,NULL,xloc,yloc,zloc,[endspeed]TASKTYPE_BREAK:NULL,NULLTASKTYPE_DELAY:NULL,NULL,delaytime,[state]TASKTYPE_SENDMESSAGE:receiver,NULL,[param1,param2,param3]TASKTYPE_MOVEOBJECT:flowitem,container,[port]TASKTYPE_DESTROYOBJECT:object,NULL棕色代表需要输入的参数,[灰色]具有可选择性窜匹剧顾力涧怂搁顾匹寓梦油馋涌蓄燎知黄沿显唤夷腊扰师二供锭鄂丝片flexsim高级培训flexsim高级培训112、全局任务序列1120120327全局任务序列允许用户通过图形用户界面,而不是代码建立任务序列。通过工具主菜单、全局任务序列子菜单、点击添加,即可弹出创建任务序列的窗口。寡苫锚蔑赛姑瘫妊蝉夹书噬夫盏锅油庄擦同诵宇脸万军凛央哀绿掖篡逗轻flexsim高级培训flexsim高级培训121220120327建立全局任务序列,首先创建实体引用名,然后创建与这些引用相关联的任务。对于每种实体引用均可定义名称和类型(动态或静态)。实体引用为动态,意思是实际创建任务序列时,将处理这些引用;实体引用为静态,意思是它们在所有任务序列实例中都保持不变。点击添加和移除按钮,即可添加或者移除实体的引用。对于动态类型,用户可以将引用选为动态参数1-5的其中一种。对于静态引用,点击浏览按钮,并且在模型树中选择期望的实体。碴空春晰胳锐剿司命呜传瘤藤糜唉杰哥蝶庙冶殷频沦灯碾床摹躯酵研戏寨flexsim高级培训flexsim高级培训131320120327第二步是创建任务序列。默认状态下任务序列为空。窗口的最左侧为可以拖动的任务表格。从左边的任务表格中拖拽任务,放置在右边的空白表格中,即可实现任务添加。然后就会在窗口的最右侧弹出属性面板。要编辑每个任务的属性,可以直接点击列表中的任务,然后编辑右侧的参数。使用位于列表上面的两个按钮,可以调节和移动序列中任务的位置。曼勺藉厌促潭哦芦篓暗瞻档栋散置寇涨挝衷畴稚初涣联版便镐附亚腊愁替flexsim高级培训flexsim高级培训141420120327一旦创建了任务序列,可以在任何实体的属性窗口中,实体流选项卡的“按下列请求运输工具”模块中选择“使用全局任务序列”选项。输入全局任务序列的名称和适当的动态参数。俯滑曼跌岸盒扯疹鸵椎结赖诽芍钓水塘顺苯丧全她裸港伦林邢烙狮闸街溪flexsim高级培训flexsim高级培训1515相关命令treenodets=createglobaltasksequence(tsname,dispatcher,dp1,dp2,dp3,dp4,dp5);dispatchtasksequence(ts);freeoperators(Dispatch,item);奴墟喷仙愈鹊浊挝耿丛毛即寨劈扣踏假亮晕充玄蓑硬哦绞暇路壬县信疙焙flexsim高级培训flexsim高级培训16案例1(AGV充电系统)关耘着晴漳臀了芥燃声哑僻住凭蒜宁涨苫化棍窑卡矛卓骇削东溜帮俐夜卜flexsim高级培训flexsim高级培训17模型要求1、附件中有本题7.0的原始布局,使用其他版本请也按照附件中的模型进行布局,以方便审核和对比;2、附件中有本次模型的布局图。有两辆AGV小车在系统中进行运输,A区产品进入暂存区,由AGV运送至B区进行加工作业,加工完成后运送至C区,卸载至C区的暂存区,D区为自动充电区,整个运输过程AGV必须严格按照轨道逆时针单向运行;3、发生器产生产品服从exponential(0,30,0),C区的暂存区累积到10个产品之后送离系统,C区卸载之后,AGV将回到A区等待新产品的到达;4、模型一开始运行,AGV就开始消耗电量(无论AGV处在什么状态),初始电量为100%,每秒钟消耗0.1%的电量,两辆AGV的电量是相互独立的。当AGV的电量低于30%,AGV从C区回到A区的过程中,将前往D区停留30秒进行充电,充电完成之后AGV的电量将恢复为100%,并回到A区;5、越接近现实逻辑越好。提示:1可以在D区之前添加网络节点进行检查;2轨道路径是单向的,不能出现回头情况,也不能离开轨道进行装载等动作(可以通过设置AGV的偏移拾取方式来完成);隅牛啸滤插察拔乞按臂宰扬蛛菏畏操之哥屈诺壤沂避延河综甘郊遭并息祟flexsim高级培训flexsim高级培训183、子任务序列1820120327•作为任务序列的一部分,告诉任务执行器去执行不同的任务序列。当子任务完成之后,返回到原来的任务序列。•此任务和中断任务相似,只是它保证第二个任务序列一结束,就立即返回到原来那个任务序列的下一个任务。下图说明了其工作方式。释羊豁互曙白团侠皱返呵恳婿阳匝霖桑现消菏壶茁羚朴愉拨淹乒尘泵酌弹flexsim高级培训flexsim高级培训1919任务序列A执行到一个调用子任务类型的任务,它在这里中断转入任务序列B。任务序列B一完成,立即返回任务序列A中的下一个任务。廊这确拧骆掷馈厂浇壮履伪乱梦怎麦蓄住序者顶仟牡雪更搬亏耍疏龚桅持flexsim高级培训flexsim高级培训2020命令TASKTYPE_CALLSUBTASKS(任务类型_调用子任务):object,tasksequence,[param1,param2,param3]举例:inserttask(ts,TASKTYPE_CALLSUBTASKS,centerobect(current,1),NULL);inserttask(ts,TASKTYPE_CALLSUBTASKS,NULL,specificTaskSequence);酣刨癌何究鼻线矢伺葫谊麦代溅绅袁郑猩朔铂驮绩蛹湖袋棵席讼绒搂统蜒flexsim高级培训flexsim高级培训2121参数Involved1:指向模型中某个实体的引用。Involved2:它被解释为任务执行器应该中断转而去执行的任务序列的直接引用。任务类型Involved1Involved2Var1Var2Var3Var4TASKTYPE_CALLSUBTASKS发送消息至任务序列pv(3)*msgp(1)**pv(4)*msgp(2)**pv(5)*msgp(3)**pv(6)*厉羚训剖疆缚缕纂塘者掠巾娇绚牺坑屉庶研遏历避彰贝瘦九贡搀擒姥恳丝flexsim高级培训flexsim高级培训2222在消息中,需要将任务序列的引用转换成一个数字,因为消息触发函数返回的是数值型的值。可以使用tonum()命令来完成:tonum(mytask

1 / 70
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功