《4SimTalk语法与案例分析.ppt》由会员分享,可在线阅读,更多相关《4SimTalk语法与案例分析.ppt(47页珍藏版)》请在优知文库上搜索。
1、 主要内容主要内容一一. SimTalk. SimTalk语法语法二二. . 医院排队系统仿真案例医院排队系统仿真案例三三. .纸箱制造厂制造作业流程仿真纸箱制造厂制造作业流程仿真 四四. .飞机降落系统仿真飞机降落系统仿真 一一. SimTalkSimTalk语法语法1. SimTalk概念概念可扩充基本对象功能的不足可扩充基本对象功能的不足SimTalk可以改变对象的传递方式可以改变对象的传递方式SimTalk可以开发新的对象可以开发新的对象借助与借助与Method来实现以上功能来实现以上功能一一. SimTalkSimTalk语法语法2. Method架构架构分为分为3部分部分:外部参数
2、传递外部参数传递Is定义局部变量定义局部变量Do代码代码end例:计算例:计算A+B+C?其中其中A=5; B=4; C=7;一一. SimTalkSimTalk语法语法3. 命名方式命名方式名称开始的第一个字母一定要是英文字母,之后可以是数名称开始的第一个字母一定要是英文字母,之后可以是数字也可以是字也可以是“_”,其它的各种符号不被接受其它的各种符号不被接受名称的长度不可以超过名称的长度不可以超过20个字节个字节大小写不影响命名大小写不影响命名使用者自动的名称不可以和语法中的关键字相同使用者自动的名称不可以和语法中的关键字相同一一. SimTalkSimTalk语法语法4. eM-Plan
3、t的保留名称的保留名称Reset,取名,取名Reset的的Method对象,在使用时按下时钟上的对象,在使用时按下时钟上的Reset键时,即执行该事件键时,即执行该事件Init,取名,取名Init的的Method对象,在使用时按下时钟上的对象,在使用时按下时钟上的Init键时,即执行该事件键时,即执行该事件EndSim,仿真结束时,取名为,仿真结束时,取名为EndSim的的Method会自动会自动被执行被执行一一. SimTalkSimTalk语法语法4. 常用变量定义常用变量定义Boolean,只有只有true和和false两种状态两种状态Integer,整数值,整数值Real,实数,实数S
4、tring,字符,字符Object,指向对象,指向对象Table, 对应对应tablefile对象对象一一. SimTalkSimTalk语法语法4. 常用变量定义常用变量定义Boolean,只有只有true和和false两种状态两种状态Integer,整数值,整数值Real,实数,实数String,字符,字符Object,指向对象,指向对象Table, 对应对应tablefile对象对象一一. SimTalkSimTalk语法语法5. 变量类型转换函数变量类型转换函数Num_to_str(integer), Str_to_num(sting)Num_tostr(real), Str_to_n
5、um(sting)Bool_to_num(boolean),Str_to_bool(string),Time_to_str(time),Obj_to_str(object)Str_t_date(string)一一. SimTalkSimTalk语法语法6. 常用字符串操作函数常用字符串操作函数Copy(, , )incl(, , )omit(, , )Strlen()toLower(), toUpper()Ascii(), chr()一一. SimTalkSimTalk语法语法7. 数值运算符号数值运算符号+,-,*,/, -整除,余数整除,余数And, or, not, , , =, =,/
6、=一一. SimTalkSimTalk语法语法7. 数值运算符号数值运算符号+,-,*,/, -整除,余数整除,余数And, or, not, , , =, =,/=一一. SimTalkSimTalk语法语法8. 典型语句典型语句SingleProc.cont.move(singleProc1); 先说明路径先说明路径(绝对路径、相对路径绝对路径、相对路径),加上分隔点,再说明,加上分隔点,再说明命令,加上分隔点,而后再加上参数,最后加上终止的符命令,加上分隔点,而后再加上参数,最后加上终止的符号号; SingleProc.cont.move(singleProc1); SingleProc
7、.cont.move;一一. SimTalkSimTalk语法语法9. 实体传递方式实体传递方式两者均为被动两者均为被动两者均为主动两者均为主动传送者被动,接受者为主动传送者被动,接受者为主动传送者为主动,接受者为被动传送者为主动,接受者为被动 eM-Plant执行的过程中采用以上一工序推到下一工序的方式执行的过程中采用以上一工序推到下一工序的方式来进行,下一工序不具有主动的能力,因此采用的是推式理来进行,下一工序不具有主动的能力,因此采用的是推式理论来执行论来执行一一. SimTalkSimTalk语法语法10. 条件判断语句条件判断语句If .size=“c20” then .move(y
8、ard201);Else .move(yard202);End;一一. SimTalkSimTalk语法语法11. 循环判断语句循环判断语句Isi:integer;-定义变量定义变量iDoFrom i:=1;-i从从1开始循环开始循环Until i50到到50结束结束Loop循环符号循环符号Print I;-输出输出i值到结果显示框值到结果显示框i:=i+1;-i自加自加End;-循环结束符号循环结束符号End;-程序结束符号程序结束符号一一. SimTalkSimTalk语法语法12. 中断判断语句中断判断语句 Waituntil是当某个是当某个method的条件没有被满足时,允许中断的条件
9、没有被满足时,允许中断此此method,直至条件被满足时,才继续执行,直至条件被满足时,才继续执行 Waituntil singleproc.empty prio 1二二. 医院排队系统仿真案例医院排队系统仿真案例作业:某医院的医生服务时间符合作业:某医院的医生服务时间符合N(2.3,1)的正态分布,)的正态分布,病人的到达规律符合参数值为病人的到达规律符合参数值为2.4 Min的指数分布,假设当的指数分布,假设当新病人到达时,排队总人数超过新病人到达时,排队总人数超过5人,则该病人离去,试采人,则该病人离去,试采用用eM-Plant仿真软件求:仿真软件求: 1. 该医生8小时内服务病人的总人
10、数 2. 病人的平均等待时间 3. 病人的平均在医院时间 4. 病人的最大在医院时间 5. 医生忙的概率 6. 排队平均队长二二. 医院排队系统仿真案例医院排队系统仿真案例实体、属性、活动、事件、资源实体、属性、活动、事件、资源实体:病人属性:无活动:等待、接受服务事件:进入队列、服务设备为空、服务完成资源:一个可排5人的队列,一个服务台二二. 医院排队系统仿真案例医院排队系统仿真案例1.1. 构建仿真模型构建仿真模型二二. 医院排队系统仿真案例医院排队系统仿真案例2.2.输入参数输入参数某医院的医生服务时间符合某医院的医生服务时间符合N(2.3,1)的正态分布。)的正态分布。病人的到达规律符
11、合参数值为病人的到达规律符合参数值为2.4 Min的指数分布。的指数分布。 二二. 医院排队系统仿真案例医院排队系统仿真案例2.2.输入参数输入参数某医院的医生服务时间符合某医院的医生服务时间符合N(2.3,1)的正态分布。)的正态分布。病人的到达规律符合参数值为病人的到达规律符合参数值为2.4 Min的指数分布。的指数分布。 二二. 医院排队系统仿真案例医院排队系统仿真案例2.2.求该医生求该医生8 8小时服务总人数小时服务总人数设定仿真时间设定仿真时间设置一变量设置一变量i i,放入,放入methodmethod自加至系统终止自加至系统终止利用利用GaugeGauge和和numIN,num
12、MU,numOUTnumIN,numMU,numOUT参数计算参数计算二二. 医院排队系统仿真案例医院排队系统仿真案例3.3.病人的平均等待时间病人的平均等待时间 每进入每进入bufferbuffer一个实体则统计一次当前一个实体则统计一次当前bufferbuffer中实体的个数,记入中实体的个数,记入tablefiletablefile表表中,当仿真结束时,取平均值中,当仿真结束时,取平均值二二. 医院排队系统仿真案例医院排队系统仿真案例don:=n+1;-判断进入判断进入buffer实体的个数实体的个数 tablefile11,n:=.model.frame.buffer.numMU;En
13、dsim中写入代码中写入代码:tablefile1,1:=tablefile1.sum(1,1.1,n)/n;二二. 医院排队系统仿真案例医院排队系统仿真案例4.4.病人的平均在医院时间病人的平均在医院时间 计算某个实体进入系统和出系统的时间,仿真计算某个实体进入系统和出系统的时间,仿真结束后,二者相减,取平均值,并选出最大值。结束后,二者相减,取平均值,并选出最大值。 tablefile12,n:=.statavgLifeSpan;EndSim:tablefile2,1:=tablefile1.sum(2,1.2,n)/n;二二. 医院排队系统仿真案例医院排队系统仿真案例5.5.病人的平均在
14、医院时间病人的平均在医院时间 计算某个实体进入系统和出系统的时间,仿真计算某个实体进入系统和出系统的时间,仿真结束后,二者相减,取平均值,并选出最大值。结束后,二者相减,取平均值,并选出最大值。 lifecycle:tablefile12,n:=.statavgLifeSpan;EndSim:tablefile2,1:=tablefile1.sum(2,1.2,n)/n;二二. 医院排队系统仿真案例医院排队系统仿真案例6.6.病人的最大在医院时间病人的最大在医院时间 选择整个列表,求出最大值放入选择整个列表,求出最大值放入tablefiletablefile表中表中 if tablefile3
15、,1tablefile12,m thentablefile3,1:=tablefile12,m;end;医生忙的概率二二. 医院排队系统仿真案例医院排队系统仿真案例7.7.医生忙和闲的概率医生忙和闲的概率 利用对象的属性求解利用对象的属性求解tablefile4,1:=singleproc.statworkingportion;tablefile4,2:=singleproc.statwaitingportion;二二. 医院排队系统仿真案例医院排队系统仿真案例8.8.病人的平均排队等待时间病人的平均排队等待时间 利用对象的属性求解利用对象的属性求解 tablefile13,n:=.model
16、s.frame.buffer.statwaitingtime;if n=1 then tablefile14,n:=tablefile13,n;else tablefile14,n:=tablefile13,n-tablefile13,n-1;end;三三.纸箱制造厂制造作业流程仿真纸箱制造厂制造作业流程仿真三三. .纸箱制造厂制造作业流程仿真纸箱制造厂制造作业流程仿真1. 学习目的学习目的了解仿真的特点及其在制造业的应用。了解仿真的特点及其在制造业的应用。学习如何建构模型学习如何建构模型了解了解eM-Plant基本的对象和操作基本的对象和操作学习如何通过学习如何通过eM-Plant进行信息收集及分析进行信息收集及分析三三. .纸箱制造厂制造作业流程仿真纸箱制造厂制造作业流程仿真2 2系统仿真的目的系统仿真的目的 通过系统仿真来了解某纸箱制造厂作业的瓶通过系统仿真来了解某纸箱制造厂作业的瓶颈站的使用率,生产线的投料率、在制品与生颈站的使用率,生产线的投料率、在制品与生产周期与生产效率的关系,为纸箱制造厂内现产周期与生产效率的关系,为纸箱制造厂内现场管理提供决策支持场管理提供决策支持三三