Flexsim脚本语言培训.ppt

上传人:b****1 文档编号:1372861 上传时间:2022-10-21 格式:PPT 页数:45 大小:1.28MB
下载 相关 举报
Flexsim脚本语言培训.ppt_第1页
第1页 / 共45页
Flexsim脚本语言培训.ppt_第2页
第2页 / 共45页
Flexsim脚本语言培训.ppt_第3页
第3页 / 共45页
Flexsim脚本语言培训.ppt_第4页
第4页 / 共45页
Flexsim脚本语言培训.ppt_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

Flexsim脚本语言培训.ppt

《Flexsim脚本语言培训.ppt》由会员分享,可在线阅读,更多相关《Flexsim脚本语言培训.ppt(45页珍藏版)》请在冰豆网上搜索。

Flexsim脚本语言培训.ppt

FlexSim树结构和脚本语言,树和节点函数建模语言Flexsim脚本语言模型的建立,1,1,什么是节点?

FlexSim的基础数据结构是一棵层次分明的树主树(与模型和工程相关的实体和数据)视图树(与GUI相关的实体和下拉列表)模型树(与模型相关的实体和数据)节点是树结构最基本的组成模块节点包含了实体、GUI和数据的所有信息。

2,2,节点的结构,节点有名字节点可以拥有一个数据类型数值字符串实体如果节点拥有实体数据,使用查看含有实体信息(数据项和成员函数)的独立的节点列表如果节点包含子节点,使用展开并查看子节点,3,3,节点符号,标准文件夹节点实体节点实体数据函数(C+)函数(FlexScript),4,4,模型树,5,5,什么是函数?

functionname(argument1,argument2,etc)参数可以是:

数值型的值字符串(“Text”)引用的一个实体或者节点函数示例:

colorrandom(item)-(查看发生器实体的离开触发器)FlexSim中很多函数都用于读取树中的数据或者将数据保存到树结构中,6,6,函数和“返回”语句,调用函数就像询问一个问题用户输入参数,函数的“返回值”就是问题的答案实体的下拉列表中的属性都是函数调用的函数不同,返回值的意义也不一样,7,一般规则,区分大小写(A不等同于a)没有特定格式(以“易读的”代码为目标,可以自由使用空格、制表符和回车换行)文本字符串由引号括起,mytext被调用的函数后面用圆括号,逗号分隔其参数,moveobject(object1,object2);函数和命令都以分号结束根据需要,可以在数学和逻辑表达式中自由地使用圆括号,Ex:

(x+3)*2)大括号用于定义一段逻辑代码使用双斜线注释掉一行代码,/andtypenotehere多行注释以/*开始,*/结束名字定义中不能含有空格或特殊字符,下划线除外名字中可以含有数字,但是不能以数字开头,8,8,逻辑语句提供的帮助,现存的下拉列表选项是很好的示例帮助命令,将鼠标放置到代码中的某个命令上可出现提示。

帮助属性提示,9,9,逻辑创建器,用模块的形式显示建模逻辑通过组合模块,自定义逻辑和行为可以切换模块视图和代码视图,10,10,变量类型,整数型浮点型字符串树节点型,wholenumbers(1,2,3,14324)realnumbers(2.5,3.14159)textstring(“Anthonywashere.”)referencetoanodeinthetree,11,11,定义和设置变量,intindex=1;doubleweight=175.8;stringcategory=“groceries”;treenodeforklift=centerobject(current,1);,12,12,数学运算符,x+yx-yx*yx/ysqrt(x)pow(x,y)round(x)frac(x)fmod(x,y)min(x,y)max(x,y),x加yx减yx乘以yx除以yx平方根x的y次方(xy)与x最接近的整数返回x的数值返回x/y的余返回x与y的最小值返回x与y的最大值,13,13,赋值运算符,x=yx+=yx-=yx*=yx/=yx+x-,设置x为y设置x等于x加y设置x等于x减y设置x等于x乘以y设置x等于x除以yx加1x减1,14,Remember:

=isnotthesameas=isusedtosetavalue=isacomparisonoperator,14,基本的实体引用,current-当前实体,也就是代码所在的实体。

item-导致事件触发的临时实体。

model()-引用模型树so()-对树结构中任意一个节点的临时引用。

右键单击节点,将其指定为so().,15,15,基本的实体数据统计,content(object)getinput(object)getoutput(object)getstatenum(object)intinventory=content(current);intproduced=getoutput(current);,16,16,实体的基本属性,xloc(object)yloc(object)zloc(object)setloc(object,xnum,ynum,znum)xsize(object)ysize(object)zsize(object)setsize(object,xnum,ynum,znum)xrot(object)yrot(object)zrot(object)setrot(object,xdeg,ydeg,zdeg),17,17,提示和打印,句法pt(textstring)pf(floatvalue)pd(discretevalue)pr()msg(“windowtitle”,“messagetext”,buttontype)在输出控制台打印信息主菜单:

视图-输出控制台,示例pt(“ItemIn“);pt(getname(current);pt(“);pf(time();pr();,18,18,处理器的属性,理解处理器实体的可编辑选项可以帮助你更好的掌握FlexSim。

关于每个可编辑项,请回答下面4个问题:

它的应用目的是什么?

什么时候执行?

可以访问哪些变量?

它的返回值是什么?

19,19,访问变量和返回值,20,20,代码练习1,目的学习在代码编辑窗口中编写代码。

对用于定义代码模板窗口的特殊注释进行介绍。

bernoulli命令简介.bernoulli(numprobability,numsucceed-value,numfail-value,numstream)描述做此练习,请不要使用代码模板(从最基本的编辑选项开始,写自己的代码)!

模型布局,请看下一个幻灯片。

使用发生器的“创建触发”编辑框,将70%的临时实体设置为类型1,剩余30%设置为类型2(使用bernoulli命令).,21,21,代码练习1,2,3A1的模型布局,22,22,If条件句,if(testexpression)codeblockelsecodeblock,23,23,代码练习2,目的学习使用代码设置和读取临时实体的类型临时实体箱的介绍描述使用与练习1相同的布局.当临时实体离开发生器时,设置它们的颜色在发生器的“离开触发”域段中使用“if”条件句,将临时实体类型为1的临时实体设置为红色,类型为2的临时实体设置为绿色.,24,24,比较运算符,xyx=yx=yx=yx!

=ycomparetext(string1,string2),25,x大于yx小于yx大于等于yx小于等于yx等于yx不等于ystring1与string2对比,记住:

“=”和“=”是不同的=用于赋值=是比较运算符,25,关系运算符,&|!

26,逻辑和逻辑或逻辑非,26,switch(switchvariable)casecasenum:

codeblockbreak;casecasenum2:

codeblockbreak;default:

codeblockbreak;,Switch语句,27,27,代码练习3,目的学习使用代码设置和读取标签描述使用练习1的模型布局.在临时实体箱中,在Box临时实体上设置名称为routing的数值标签。

当临时实体离开处理器时,设置标签值为1到4的随机分布(使用duniform()命令)。

在传送带的“发送至端口“域段中,使用switch()语句根据以下规则发送临时实体到下游实体。

标签值1和3到端口2标签值2和4到端口1问题你可以使用代码,根据标签值设置临时实体的颜色吗?

28,28,更高级的实体引用,rank(node,ranknum)rank(current,3)first(object)first(current)last(object)last(current)inobject(object,portnum)inobject(current,1)outobject(object,portnum)outobject(current,1)centerobject(object,portnum)centerobject(current,1)node(“relativepath”,object)node(“/Operator1”,model(),29,While语句,while(testexpression)codeblock,30,在编程时,只要While循环语句中的表达式返回真,代码就会重复执行。

它也可能通过break或者return语句来强制跳出循环要确保表达式最后会跳出循环,避免无限循环如果你正在进行无限循环,请按“ctrl-break”跳出循环。

30,31,For循环允许重复执行一段代码若干次。

For循环在一开始就定义了循环的条件:

1.定义变量并且设置它的初始值2.设置跳出循环的条件3.确定怎么处理每一次循环之后的变量要确保表达式最后会跳出循环从而避免无限循环请记住,“ctrl-break”可帮助你跳出无限循环!

for(startexpression1;testexpression2;countexpression3)/codeblock,For循环语句,31,代码练习4,目的学习编辑自己的“for”循环和“while”循环。

描述合成器将由订单指定的货物放到一个托盘上进行打包。

-假设一个发生器产生订单,由托盘表示特定订单,另外一个发生器产生无限的box。

-合成器将打包了的托盘发送到传送带,然后再发送到另外一个传送带。

-在第一个传送带的离开触发器上编写“for”循环,用来修改托盘上所有box的颜色。

问题使用“改变3D图形”下拉选项,能否将托盘的3D图形变换成物料箱(Tote)?

用“while”循环实现上述颜色修改,32,32,练习4布局,33,33,高级模型练习:

A1:

常用基本命令,开关端口以及消息A2:

任务序列,34,34,模型A1-概念,35,关闭和打开输入、输出端口发送消息停止命令和恢复命令,35,基本的实体控制,closeinput(object),openinput(object)stopinput(object),resumeinput(object)closeoutput(object),openoutput(object)stopoutput(object),resumeoutput(object)sendmessage(toobject,fromobject,parameter1,parameter2,parameter3)senddelayedmessage(toobject,delaytime,fromobject,parameter1,parameter2,parameter3)stopobject(object),resumeobject(object),36,36,消息,message从一个实体发送到另一个实体的信息.当实体接收到消息时,触发器被触发。

消息能够通过命令发出。

sendmessage()是立即发送消息,senddelayedmessage()是延迟一段时间之后才发送消息。

37,37,执行顺序(消息),38,OnMessagetriggerofreceivingobject,OnMessagetriggerofreceivingobject,delay,sendmessage(),senddelayedmessage(),38,模型A2-概念,39,自定义任务序列全局任务序列全局变量,39,控制任务执行器,简单命令requestoperators(taskexecuter,station,involvedobj,nrofops,priority,preempting)freeop

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1