Flexsim脚本语言培训教学提纲_第1页
Flexsim脚本语言培训教学提纲_第2页
Flexsim脚本语言培训教学提纲_第3页
Flexsim脚本语言培训教学提纲_第4页
Flexsim脚本语言培训教学提纲_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Flexsim脚本语言培训节点的结构节点有名字节点可以拥有一个数据类型数值字符串实体如果节点拥有实体数据,使用查看含有实体信息(数据项和成员函数)的独立的节点列表如果节点包含子节点,使用展开并查看子节点22节点符号标准文件夹节点实体节点实体数据函数(C++)函数(FlexScript)33模型树44什么是函数?functionname(argument1,argument2,etc)参数可以是:数值型的值字符串(“Text”)引用的一个实体或者节点函数示例:colorrandom(item)-(查看发生器实体的离开触发器)FlexSim中很多函数都用于读取树中的数据或者将数据保存到树结构中55函数和“返回”语句调用函数就像询问一个问题用户输入参数,函数的“返回值”就是问题的答案实体的下拉列表中的属性都是函数调用的函数不同,返回值的意义也不一样6一般规则区分大小写(A不等同于a)没有特定格式(以“易读的”代码为目标,可以自由使用空格、制表符和回车换行)文本字符串由引号括起,"mytext"被调用的函数后面用圆括号,逗号分隔其参数,moveobject(object1,object2);函数和命令都以分号结束根据需要,可以在数学和逻辑表达式中自由地使用圆括号,Ex:((x+3)*2)大括号用于定义一段逻辑代码使用双斜线注释掉一行代码,//andtypenotehere多行注释以/*开始,*/结束名字定义中不能含有空格或特殊字符,下划线除外名字中可以含有数字,但是不能以数字开头77逻辑语句–提供的帮助现存的下拉列表选项是很好的示例帮助>命令,将鼠标放置到代码中的某个命令上可出现提示。帮助>属性提示

88逻辑创建器用模块的形式显示建模逻辑通过组合模块,自定义逻辑和行为可以切换模块视图和代码视图99变量类型整数型浮点型字符串树节点型wholenumbers(1,2,3,14324)realnumbers(2.5,3.14159)textstring(“Anthonywashere.”)referencetoanodeinthetree1010定义和设置变量intindex=1;doubleweight=175.8;stringcategory=“groceries”;treenodeforklift=centerobject(current,1);1111数学运算符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的最大值1212赋值运算符x=yx+=yx-=yx*=yx/=yx++x--设置x为y设置x等于x加y设置x等于x减y设置x等于x乘以y设置x等于x除以yx加1x减113Remember:‘=‘isnotthesameas‘==‘=isusedtosetavalue==isacomparisonoperator13基本的实体引用current- 当前实体,也就是代码所在的实体。item- 导致事件触发的临时实体。model()- 引用模型树so()- 对树结构中任意一个节点的临时引用。 右键单击节点,将其指定为so().

1414基本的实体数据统计content(object)getinput(object)getoutput(object)getstatenum(object)intinventory=content(current);intproduced=getoutput(current);1515实体的基本属性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)1616提示和打印句法pt(textstring)pf(floatvalue)pd(discretevalue)pr()msg(“windowtitle”,“messagetext”,buttontype)在输出控制台打印信息主菜单:视图->输出控制台示例pt(“ItemIn“);pt(getname(current));pt(““);pf(time());pr();1717处理器的属性理解处理器实体的可编辑选项可以帮助你更好的掌握FlexSim。关于每个可编辑项,请回答下面4个问题:它的应用目的是什么?什么时候执行?可以访问哪些变量?它的返回值是什么?1818访问变量和返回值EditField编辑区域AccessVariables访问变量Returns返回SetupTimecurrent,item,portdelaytimeProcessTimecurrent,itemdelaytimeSendToPortcurrent,itemportnumberPullFromPortcurrentportnumberPullRequirementcurrent,item,porttrue/false(1/0)RequestTransportFromcurrent,item,portnumericpointerPickOperatorcurrent,itemnumericpointerOnResetcurrentN/AOnMessagecurrent,msgsendingobject,msgparam1,msgparam2,msgparam3N/AOnEntrycurrent,item,portN/AOnExitcurrent,item,portN/AOnSetupFinishcurrent,itemN/AOnProcessFinishcurrent,itemN/A1919代码练习1目的学习在代码编辑窗口中编写代码。对用于定义代码模板窗口的特殊注释进行介绍。bernoulli命令简介.

bernoulli(numprobability,numsucceed-value,numfail-value,[numstream])描述做此练习,请不要使用代码模板(从最基本的编辑选项开始,写自己的代码)!模型布局,请看下一个幻灯片。使用发生器的

“创建触发”编辑框,将70%的临时实体设置为类型1,剩余30%设置为类型2(使用bernoulli命令).2020代码练习1,2,3A1的模型布局2121If条件句22if(getitemtype(item)==1){ colorred(item);}else{ colorblack(item);}22代码练习2目的学习使用代码设置和读取临时实体的类型临时实体箱的介绍描述使用与练习1相同的布局.当临时实体离开发生器时,设置它们的颜色在发生器的“离开触发”域段中使用“if”条件句,将临时实体类型为1的临时实体设置为红色,类型为2的临时实体设置为绿色.2323比较运算符x>yx<yx>=yx<=yx==yx!=ycomparetext(string1,string2)24x大于yx小于yx大于等于yx小于等于yx等于yx不等于ystring1与string2对比记住:“=”和“==”是不同的

=用于赋值

==是比较运算符24关系运算符&&||!25逻辑和

逻辑或逻辑非25switch(switchvariable){

case

casenum: {

codeblock

break; }

case

casenum2: {

codeblock

break; }

default: {

codeblock

break; }}Switch语句26inttype=getitemtype(item);switch(type){ case1: { coloryellow(item); break; } case5: { colorred(item); break; } default: { colorgreen(item); break; }}26代码练习3目的学习使用代码设置和读取标签描述使用练习1的模型布局.在临时实体箱中,在Box临时实体上设置名称为"routing"的数值标签。当临时实体离开处理器时,设置标签值为1到4的随机分布(使用duniform()命令)。在传送带的“发送至端口“域段中,使用switch()语句根据以下规则发送临时实体到下游实体。标签值1和3到端口2标签值2和4到端口1问题

你可以使用代码,根据标签值设置临时实体的颜色吗?2727更高级的实体引用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())28While语句

29while(content(current)>0){ destroyobject(last(current));}在编程时,只要While循环语句中的表达式返回真,代码就会重复执行。它也可能通过break或者return语句来强制跳出循环要确保表达式最后会跳出循环,避免无限循环如果你正在进行无限循环,请按“ctrl-break”跳出循环。2930for(intindex=1;index<=content(current);index++){ colorblue(rank(current,index));}For循环允许重复执行一段代码若干次。For循环在一开始就定义了循环的条件:

1.定义变量并且设置它的初始值2.设置跳出循环的条件3.确定怎么处理每一次循环之后的变量要确保表达式最后会跳出循环从而避免无限循环请记住,“ctrl-break”可帮助你跳出无限循环!For循环语句30代码练习4目的学习编辑自己的“for”循环和“while”循环。描述合成器将由订单指定的货物放到一个托盘上进行打包。- 假设一个发生器产生订单,由托盘表示特定订单,另外一个发生器产生无限的box。- 合成器将打包了的托盘发送到传送带,然后再发送到另外一个传送带。- 在第一个传送带的离开触发器上编写“for”循环,用来修改托盘上所有box的颜色。问题使用“改变3D图形”下拉选项,能否将托盘的3D图形变换成物料箱(Tote)?用“while”循环实现上述颜色修改3131练习4布局3232高级模型练习:A1:常用基本命令,开关端口以及消息A2:任务序列3333模型A1-概念34关闭和打开输入、输出端口

发送消息

停止命令和恢复命令34基本的实体控制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)3535消息message

–从一个实体发送到另一个实体的信息.当实体接收到消息时,触发器被触发。消息能够通过命令发出。sendmessage()

是立即发送消息,senddelayedmessage()是延迟一段时间之后才发送消息。3636执行顺序

(消息)37OnMessagetriggerofreceivingobjectOnMessagetriggerofreceivingobjectdelaysendmessage()senddelayedmessage()37模型A2-概念38自定义任务序列全局任务序列

全局变量38控制任务执行器简单命令 requestoperators(taskexecuter,station,involvedobj,nrofops,priority, preempting) freeoperators(taskexecuter,involvedobj)自定义任务序列 createemptytasksequence(taskexecuter,priority,preempting) Returnsapointer(treenode)tothetasksequencecreated inserttask(tasksequence,tasktype,involved1,involved2, parameter1,parameter2,parameter3) dispatchtasksequence(tasksequence)3939简单的任务序列格式40treenodeforklift=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);40任务类型TASKTYPE_LOAD:flowitem,pickup

TASKTYPE_FRLOAD:flowitem,pickup,[outputport]TASKTYPE_UNLOAD:flowitem,dropoff

TASKTYPE_FRUNLOAD:flowitem,dropoff,[inputport]

TASKTYPE_UTILIZE:involved,station,[state]

TASKTYPE_STOPREQUESTFINISH:stoppedobject,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论