Flexsim中级讲义版

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

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

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

资源描述

1仿真專班培训李亚兵2目录•全局表•任务序列•自制部件•概率分布与Experfit•Experiment•Flexsim与外部数据库的连接方法•定制简单3D图形•Flexsim仿真优化模块OptQuest3全局表•全局表(GlobalTable)–用于储存模型输入输出数据等–可以是数值类型或字符串类型344全局表的添加•在GlobalTables菜单中单击“Add”•重命名表格名•设置行数与列数•点击“Advanced”设置各行或列的数据类型5全局表的修改•直接编辑表格附初值•借助事件的下拉列表对全局表进行修改•相关函数–gettablenum(tablename,row,col);–settablenum(tablename,row,col,value);–gettablestr(tablename,row,col);–settablestr(tablename,row,col,“string”);56GlobalVariables全局变量•全局变量(GlobalVariables)菜单中具有两个标签:GlobalVariables和GlobalMacros–GlobalVariables可以定义如下八种类型全局变量:integer,double,treenode,string,integerarray,doublearray,treenodearray,andstringarray–GlobalMacros允许用户进行宏定义及仿真逻辑的程序控制语句67Excel•将Excel文件数据导入Flexsim全局表,或者将Flexsim全局表导出为Excel文件•打开方式–通过菜单Tools-Excel打开–通过toolbox按钮打开78Excel的单表导入89Excel的复表导入910Excel的单表导出1011Excel的定制导入1112路径模型•目的–使用全局表定义加工路线的简单案例–学习使用标签跟踪实体的加工步骤•描述–3种不同的产品需要进入一个由5台处理器组成的加工单元–产品按照下述路线被处理•类型为1的产品需要经过工作台1、3和2•类型为2的产品需要经过工作台1、2和4•类型为3的产品需要经过工作台2、4、3和5–使用全局表,以保证产品按照正确的顺序发送到相应的工作台进行加工–所有没有完全加工完成的产品都放置在同一个堆放区中•问题–尝试用颜色标示产品所处的加工步骤13模型布局14Flexsim与外部数据库的连接方法15•与Excel的连接–DDE(DynamicDataExchange)•与Databases的连接–ODBC(OpenDataBaseConnectivity)16•DDE是一个将数据传递到Excel或接受Excel的数据的系统。•它是与已经打开的Excel连接。•Flexsim能在同一时间读或写1个workbook。•Flexsim有30语句是关于Excel连接的。与Excel的连接17•excellaunch([strlaunchdir])打开MicrosoftExcel的语句,以便Flexsim能与Excel连接。例:excellaunch(C:/ProgramFiles/MicrosoftOffice/Office10);•excelquit()关闭MicrosoftExcel的语句,与excellaunch([strlaunchdir])相对。Flexsim关于Excel连接的主要语句18excelopen(strworkbook)打开指定的Excel文件的语句。例:excelopen(mydata.xls);excelclose(numsave[1/0])关闭当前的Excel文件。例:excelclose(true);excelsetsheet(strsheetname)指定当前Sheet。例:excelsetsheet(Sheet1);19•excelreadnum(numrow,numcolumn)例:excelreadnum(5,1);•excelreadstr(numrow,numcolumn)例:excelreadnum(5,1);•excelwritenum(numrow,numcolumn,numvalue)例:excelwritenum(5,1,99.87);•excelwritestr(numrow,numcolumn,numvalue)例:excelwritenum(5,1,99.87);20•excelimporttable(str/nodetable,numstartrow,numstartcol,numnumrows,numnumcols);例:将Excel的表数据输入到Flexsim的内制表格中。例:excelimporttable(MyTable,1,1,5,3);•excelexporttable(str/nodetable,numstartrow,numstartcol,numnumrows,numnumcols);例:将Flexsim的内制表格中的数据输出到Excel表格中。21•打开ExcelLaunch–excellaunch()•打开Excel文件(workbook)–excelopen()•指定当前的worksheet–excelsetsheet()•读写需要的数据–excelreadnum(),excelwritenum(),excelreadstr(),excelwritestr()•关闭Excel。–excelclose()andexcelquit()Excel连接的Step22建模练习(1)•三种不同的产品随机的送到5台设备进行加工.•设备不同、产品不同加工时间不一样。•每台设备的加工时间从GlobalTable中读入。•在模型Reset时,用ExcelImport将ExcelSheet1的加工时间表输入到GlobalTable•在运行时实时地将设备利用率写入到Excel的sheet2.Processor1Processor2Processor3Processor4Processor5Item19138812Item26109814Item31011691023与ODBC的连接•ODBC是与数据库连接的标准方法•Access,Oracle,Excel和其它数据库都用ODBC.•允许用户使用SQL(StructuredQueryLanguage)访问数据。•模型实行时需要作成一个ODBCAlias(或数据源).•Flexsim有22条语句是关于连接数据库的.•Flexsim提供两种方式操作数据库。–SQLmodeandTablemode.24•dbopen(strdatabasename,strcommand(SQLstringorTablename),numusetable[,numshowlogin])打开数据库.这里databasename是指AliasName.例:dbopen(itemdrive,timetable,1);//Tablemode.dbopen(warehouse,select*frominventory,0);//SQLmode.•dbclose()–关闭当前数据库.Flexsim'sODBCCommands25•dbgetnumrows()–Returnsthenumberofrows(records)inthecurrenttable.•dbgetnumcols()–Returnsthenumberofcolumns(fields)inthecurrenttable.•dbgetfieldname(numfield)–Returnsthenameofthespecifiedcolumn(field)inthecurrenttable.•dbgetmode()–ReturnsthecurrentmodethatFlexsimisin.•0=DBMODE_CLOSED•1=DBMODE_SQL•2=DBMODE_TABLE26•dbsqlquery(strquery)–执行指定的SQL语句(selectorupdate).例dbsqlquery(selectprocesstimefromtimetablewhereitemtype='1');dbsqlquery(updatetimetablesetprocesstime=itemtype*2);•dbchangetable(strtablename)–切换当前Table为指定的Table。–只用于Tablemode.27•dbgettablenum(numrow,numcol)•dbgettablestr(numrow,numcol)–返回指定行和列的值(数字或文字),只能是当前的tablemode.•dbsettablenum(introw,intcol,doubleval)•dbsettablestr(introw,intcol,char*val)–写入值(数字或文字)给数据库指定行和列,只能是当前的tablemode.28•dbimporttable(strtablename,numstartrow,numstartcol,numnumrows,numnumcols)–从当前表的指定行和列开始输入一组数据给Flexsim的内制表(GlobalTable),数据的行数、列数及GlobalTable的名字须指定。例:dbimportnode(MyTable4,2,2,3,3);•dbexporttable(strtablename,numstartrow,numstartcol,numnumrows,numnumcols)–从内制表(GlobalTable)输出一组数据给当前表,必须指定数据库表的写入开始和列以及数据的行数和列数。例:dbexportnode(MyTable4,2,2,3,3);29连接ODBC的一般流程•确认是否建立了alias,如没有需建立了alias。•打开表(Table)或SQLMode。–dbopen()•读或写你所需要的数据。–dbgettablenum(numrow,numcol)–dbsettablenum(introw,intcol,doubleval)•关闭数据库–dbclose()30建立ODBCAlias•在Windows控制面板,双击BDEAdministrator,在Object菜单选择ODBCAdministrator,如右上图。•点击“添加”按钮.•选择数据库类型,在这里选择“MicrosoftAccessDriver(*.mdb”),如右下图。31•在数据源名处写入名字(Flexsim中要求指明的数据库名就是这个名字,(例200907CSN).•点击选择按钮,指定你要连接时数据库,(例Access1.mdb).32建模练习(2)•生产计划数据如下表。No.ArrivalTimeItemNameItemtypeQuantity1100Product1172200Product22113300Product3334400Product4465500Product554•这组数据已计录在数据库(Access1.mdb)的表(Schedule)里。•将这组生产计划数据在模型reset时,直接输入给“Resouce”的Schedule节点。•有五种产品将按计划生产,设备只有1台。33任务序列•任务序列(GlobalTable)–用于TaskExecutor执行任务3334任务序列34treenodets=createemptytasksequence(centerobject(current,1),0,0);inserttask(ts,TASKTYPE_TRAVEL,current,NULL);inserttask(ts,TASKTYPE_FRLOAD,item,current,port);inserttask(ts,TASKTYPE_BREAK,NULL,NULL);inserttask(ts,TASKT

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

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

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

×
保存成功