系統(tǒng)建模與仿真 第六章_第1頁
系統(tǒng)建模與仿真 第六章_第2頁
系統(tǒng)建模與仿真 第六章_第3頁
系統(tǒng)建模與仿真 第六章_第4頁
系統(tǒng)建模與仿真 第六章_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

6.1witness綜述

Witness是由英國lanner公司推出的功能強(qiáng)大的仿真軟件系統(tǒng)。它可以用于離散時(shí)間系統(tǒng)的仿真,同時(shí)又可以用于連續(xù)流體(如液壓、化工、水力)系統(tǒng)的仿真。目前已被成功運(yùn)用于國際3000多家知名企業(yè)的解決方案項(xiàng)目,如Airbus公司的機(jī)場(chǎng)設(shè)施布局優(yōu)化、BAA

公司的機(jī)場(chǎng)物流規(guī)劃、BAESYSTEMS電氣公司的流程改善、Exxon化學(xué)公司的供應(yīng)鏈物流系統(tǒng)規(guī)劃、Ford汽車公司的工廠布局優(yōu)化和發(fā)動(dòng)機(jī)生產(chǎn)線優(yōu)化、TreborBassett公司的分銷物流系統(tǒng)規(guī)劃等。Lanner公司已經(jīng)在包括澳大

利亞、巴西、法國、德國、中國、意大利、日本、韓國、南非、美國、英國等25個(gè)國家和地區(qū)設(shè)立的代理,負(fù)責(zé)軟件的推廣和技術(shù)支持等工作。第六章witness仿真系統(tǒng)1

6.2WITNESS元素——模型的重要組成部分現(xiàn)實(shí)的商務(wù)或事物系統(tǒng)總是有一系列相互關(guān)聯(lián)的部分組成的,比如制造系統(tǒng)中的原材料、機(jī)器設(shè)備、倉庫、運(yùn)輸工具、人員、加工路線或運(yùn)輸路線等,服務(wù)系統(tǒng)中的顧客、服務(wù)臺(tái)、服務(wù)路線等。Witness軟件使用與現(xiàn)實(shí)系統(tǒng)相同的事物組成相應(yīng)的模型,通過運(yùn)行一定的時(shí)間來模擬系統(tǒng)的績(jī)效。模型中的每個(gè)部件被稱之為“元素(Element)”。該仿真軟件主要通過如下五類元素來構(gòu)建現(xiàn)實(shí)系統(tǒng)的仿真模型:離散型元素、連續(xù)型元素、運(yùn)輸邏輯型元素、邏輯型元素、圖形元素。26.2.1離散型元素

表示所要研究的現(xiàn)實(shí)系統(tǒng)中可以看得見的、可以計(jì)量個(gè)數(shù)的物體,一般用來構(gòu)建制造系統(tǒng)和服務(wù)系統(tǒng)等。主要包括:

零部件或?qū)嶓w(PartorEntitie

);機(jī)器(Machine);輸送鏈(Conveyor);緩沖區(qū)或倉庫(Buffer);車輛(Vehicle);軌道(Track);勞動(dòng)者(Labor);路徑(Path);模塊(Module

)36.2.1.1零部件(Part)

零部件是一種最基本的離散性元素,它可以代表在其他離散性元素間移動(dòng)的任何事物。如產(chǎn)品、大公司全程處理的項(xiàng)目、電話交流中一個(gè)的請(qǐng)求、微型電子元件、超市中川流不息的人、醫(yī)院中的病人、機(jī)場(chǎng)上的行李等等。在模型中,零部件的使用方法有很多種。我們可以單獨(dú)使用零部件,可以將多個(gè)零部件組裝成一個(gè)零部件,也可以將一個(gè)零部件分成許多零部件。零部件可以被同批處理,可在同一時(shí)間被批量或單個(gè)創(chuàng)建,在模型的處理過程中還可以轉(zhuǎn)變?yōu)榱硪恍┝悴考?6.2.1.2機(jī)器(Machine)

機(jī)器是獲取、處理零部件并將其送往目的地的離散元素。不同的機(jī)器代表不同類型的處理過程。一臺(tái)機(jī)器可建立不同的模型,它可以代表有裝載、旋轉(zhuǎn)、卸載、空閑和保養(yǎng)這五個(gè)狀態(tài)的一臺(tái)車床,也可以代表有空閑、工作、關(guān)閉三個(gè)狀態(tài)的一個(gè)機(jī)場(chǎng)登記服務(wù)臺(tái),還可以代表有焊接,空閑和保養(yǎng)三個(gè)狀態(tài)的一個(gè)機(jī)器人焊接工等等。

Witness提供了七類機(jī)器來建立不同類型處理過程的模型:(1)單處理機(jī)(single)(2)批處理機(jī)(batch)

(3)裝配機(jī)(assembly)(4)生產(chǎn)機(jī)(production)。(5)通用機(jī)(general)(6)多周期處理機(jī)(7)多工作站機(jī)(multiplestation)

……56.2.1.3輸送鏈(Conveyor)輸送鏈?zhǔn)且环N可以實(shí)現(xiàn)帶傳送和滾軸傳送的離散性元素。如機(jī)場(chǎng)里運(yùn)送行李的傳送帶,將卡車車體沿生產(chǎn)線移動(dòng)的傳送裝置,將空紙盒送往包裝操作的滾軸傳送裝置等等都可以稱為輸送鏈。

Witness提供了兩種輸送鏈:(1)固定式(Fixed)。這是一種保持部件間距不變的輸送鏈。假如該輸送鏈停了,它上面的部件間的距離仍保持不變。(2)隊(duì)列式(Queuing)。這種輸送鏈允許部件的累積。假如該輸送鏈上的部件被阻塞,部件仍不斷的滑向一起,直到這個(gè)輸送鏈被塞滿。66.2.1.4緩沖區(qū)(Buffer)緩沖區(qū)是存放部件的離散元素。例如存放即將循環(huán)焊接的電路板,即將用于旅行的真空包裝食品的儲(chǔ)藏區(qū),位于加工區(qū)的盛放產(chǎn)品部件的漏斗形容器等等物體都稱為緩沖區(qū)。緩沖區(qū)是一種被動(dòng)型元素,既不能像機(jī)器元素一樣主動(dòng)獲取部件,也不能主動(dòng)將自身存放的部件運(yùn)送給其他元素;它的部件存取依靠系統(tǒng)中其他元素主動(dòng)的推或拉。我們可利用緩沖區(qū)規(guī)則,使用另一個(gè)元素把部件送進(jìn)緩沖區(qū)或者從緩沖區(qū)中取出來。部件在緩沖區(qū)內(nèi)還按一定的順序整齊排列(例如,先進(jìn)先出,后進(jìn)先出)。76.2.1.5車輛(Vehicle)

我們用它來建立的裝置模型可以將一個(gè)或多個(gè)部件從一個(gè)地點(diǎn)運(yùn)載到另一個(gè)地點(diǎn)。(例如,卡車,起重機(jī),鏟車)。車輛沿著軌道(track)運(yùn)動(dòng)。6.2.1.6軌道(Track)軌道是一種代表車輛運(yùn)輸部件時(shí)所遵循的路徑的離散元素。它們也定義了車輛裝載、卸載或??康牡攸c(diǎn)。車輛所走的路徑是由一系列軌道組成的。每條軌道都是單向的;假如你需要一條雙向的軌道,只需定義兩條沿相同線路但方向相反的軌道就可以了。車輛在“尾部”(rear)進(jìn)入軌道并向“前部”(front)運(yùn)動(dòng)。一旦到達(dá)前部,該車輛可以進(jìn)行裝載、卸載或其它的操作。然后它將移動(dòng)到下一條路線的尾部并開始向那條路線的前面運(yùn)動(dòng)。8

6.2.1.7勞動(dòng)者(Labor)

勞動(dòng)者是代表資源(例如,工具或操作工人)的離散元素,它一般負(fù)責(zé)對(duì)其它元素進(jìn)行處理、裝配、修理或清潔。如從事精密工作的機(jī)器人、一臺(tái)選礦機(jī)或一個(gè)固定裝置都是勞動(dòng)者。

我們通過對(duì)特定的勞動(dòng)者的屬性設(shè)置來建立同一勞動(dòng)單位在不同技術(shù)水平下的模型。我們可以對(duì)各種類型的勞動(dòng)者設(shè)置不同的班次,可以在模型中加入班次的構(gòu)成,并且用不同的工作方式,休息和加班時(shí)期來進(jìn)行試驗(yàn)。假如另外一個(gè)元素要完成更重要的任務(wù),我們可以從元素中撤離勞動(dòng)者到該元素中去。這就是勞動(dòng)者使用的優(yōu)先權(quán)。9

6.2.1.8路徑(Path)

路徑是設(shè)定部件和勞動(dòng)者(或者其它資源)從一個(gè)元素到達(dá)另一個(gè)元素的移動(dòng)路程的離散元素。我們?cè)谀P椭锌梢杂盟鼇泶憩F(xiàn)實(shí)系統(tǒng)中行程的長(zhǎng)度和實(shí)際路線。

不論何時(shí),當(dāng)運(yùn)動(dòng)時(shí)間對(duì)于兩項(xiàng)操作非常重要時(shí),路徑對(duì)于提高模型的精確性是特別有用的。在一個(gè)制造單元的模型里,一個(gè)操作者要控制數(shù)臺(tái)機(jī)器的操作,在各臺(tái)機(jī)器之間的走動(dòng)時(shí)間是完成整個(gè)任務(wù)總時(shí)間的重要組成部分。此時(shí),路徑就起到了作用。路徑還有許多其它的用途,例如,選定倉庫貯存的應(yīng)用模型,詳細(xì)的零售規(guī)劃的模型,機(jī)場(chǎng)或醫(yī)院的規(guī)劃等等。106.2.1.9模塊(Module)

模塊是表示其他一些元素集合的離散元素。有了模塊,在模型內(nèi)部,我們就可以建立具有自處理功能的模型。例如,一家工廠的油漆店可能由許多Witness的元素構(gòu)成。我們可以定義一個(gè)包括所有這些元素的“PSHOP”模塊。6.2.2連續(xù)型元素

同離散型元素相對(duì)應(yīng),連續(xù)型元素用來表示加工或服務(wù)對(duì)象是流體的系統(tǒng),比如化工、飲料等。主要包括:流體(Fluid)、管道(Pipe)、處理器(Processor)、容器(Tank)。

116.2.3運(yùn)輸邏輯型元素

運(yùn)輸邏輯型元素用于建立物料運(yùn)輸系統(tǒng)。

主要包括:運(yùn)輸網(wǎng)絡(luò)(Network);單件運(yùn)輸小車(Carriers);路線集(Section);車輛站點(diǎn)(Station)6.2.3.1運(yùn)輸網(wǎng)絡(luò)(Network)

運(yùn)輸網(wǎng)絡(luò)把一系列的路線集,工作站和單件運(yùn)輸小車組合在一起。我們必須把每一個(gè)提供能量的單體元素分配到網(wǎng)絡(luò)中去。網(wǎng)絡(luò)的建立方式影響著其內(nèi)部提供能

量的單體元素的行為。

12

6.2.3.2單件運(yùn)輸小車

單件運(yùn)輸小車沿著路線集或工作站來運(yùn)輸部件,它的運(yùn)輸方式取決于網(wǎng)絡(luò)的類型,它可以在兩個(gè)網(wǎng)絡(luò)之間移動(dòng)。

使用時(shí)注意:

1)每個(gè)單件運(yùn)輸小車的最大搬運(yùn)量是一個(gè)部件;

2)單件運(yùn)輸小車可以從一個(gè)網(wǎng)絡(luò)移動(dòng)到另一個(gè)網(wǎng)絡(luò);

3)可以在每個(gè)網(wǎng)絡(luò)中使用許多個(gè)類型的單件運(yùn)輸小車;

4)單件運(yùn)輸小車只有在路線集提供能量的網(wǎng)絡(luò)中才能跨越式運(yùn)動(dòng);

5)一個(gè)單件運(yùn)輸小車的入口規(guī)則支持“PUSH、PERCENT和SEQUENCE”。

6)可以把單件運(yùn)輸小車從一個(gè)模塊推到另一個(gè)模塊;

7)當(dāng)定義一個(gè)單件運(yùn)輸小車的時(shí)候,必須把它配置到網(wǎng)絡(luò)中去。13

6.2.3.3路線集(Section)

路線集是一種代表單件運(yùn)輸小車所走路徑的提供動(dòng)力的單體要素。在模型中,路線集是網(wǎng)絡(luò)的組成部分。6.2.3.4工作站工作站是代表一個(gè)點(diǎn)的提供動(dòng)力的單體元素,該點(diǎn)在路線集的起始或末尾,在這個(gè)點(diǎn)上,我們能對(duì)單件運(yùn)輸小車或者里面的部件實(shí)施操作。

四類工作站:基站、裝載站、卸載站和停泊站。146.2.4邏輯元素

用來處理數(shù)據(jù)、定制報(bào)表、建立復(fù)雜邏輯結(jié)構(gòu)的元素,通過這些元素可以提高模型的質(zhì)量和實(shí)現(xiàn)對(duì)具有復(fù)雜結(jié)構(gòu)的系統(tǒng)的建模。

主要包括:

屬性(Attribute);變量(Variable);分布(Distribution);函數(shù)(Function);文件(File);零部件文件(Partfile);班次(Shift)。156.2.4.1屬性(Attribute)

屬性是反映單個(gè)部件,勞動(dòng)者,機(jī)器或單件運(yùn)輸小車特性的元素。例如,我們可以用屬性來形容顏色,大小,技能,成本,密度,電壓或數(shù)列等。6.2.4.2變量(Variable)

變量包含了一個(gè)值(或一系列的值)。當(dāng)定義一個(gè)變量時(shí),我們必須還要選定它的數(shù)據(jù)類型,這個(gè)數(shù)據(jù)類型說明了變量所含有的數(shù)據(jù)類型。

Witness共有三種類型的變量:(1)系統(tǒng)變量。這些變量是系統(tǒng)已經(jīng)創(chuàng)建好了(I,M,N,TIME,VTYPE

和ELEMENT)的,并且具有特殊意義的變量。(2)全局變量

(3)局部變量166.2.4.3分布(Distribution)分布是一個(gè)邏輯性元素,我們從“現(xiàn)實(shí)世界”搜集數(shù)據(jù),并用分布代表模型中具有規(guī)律性的變化。例如,假設(shè)觀察證明某一種特定部件的打磨操作需要5至10分鐘,但大部分部件通常是8.2分鐘完成,我們就可以用分布把這些信息引入模型中。

6.2.4.4函數(shù)(Function)

函數(shù)元素是能返回有關(guān)模型狀態(tài)的信息或者使得模型顯得更具有真實(shí)性的一組命令集合。Witness提供了大量能直接使用的函數(shù),同時(shí)我們也能創(chuàng)建自己的函數(shù)。如下兩種情況創(chuàng)建自己的函數(shù)是特別有用的:

(1)對(duì)許多元素使用相同的操作

(2)這些行為模塊包含了很多說明176.2.4.5文件(File)文件是可以使我們從仿真模型外部將數(shù)值輸入模型(從一個(gè)“READ”型文件)或從模型中輸出值(到一個(gè)“WRITE”型文件)的一個(gè)元素。例如,我們能從其他軟件生成的文件讀入如周期時(shí)間這樣的值,或者生成適當(dāng)?shù)膱?bào)告。186.2.4.6零部件文件(Partfile)

“READ”型零部件文件是從外部數(shù)據(jù)文件讀入零部件清單到模型中去的一個(gè)邏輯元素。“WRITE”型零部件文件是將零部件清單寫入外部文件的邏輯元素。零部件文件可用于從一個(gè)模型中生成輸出,然后將其用于另一個(gè)模型中。零部件文件對(duì)于追溯零部件離開仿真的確切時(shí)間和零部件在那時(shí)的屬性值也是很有用的。使用零部件文件應(yīng)注意以下兩點(diǎn):(1)不要在一個(gè)仿真運(yùn)行時(shí)對(duì)同一個(gè)文件進(jìn)行讀和寫的操作。(2)假如有兩個(gè)模型在仿真運(yùn)行,應(yīng)該保證它們不對(duì)同一個(gè)文件進(jìn)行寫入操作,但是從同一個(gè)文件中讀出是可行的。196.2.4.7班次(Shift)

班次是一個(gè)能用來創(chuàng)建一個(gè)班次模式或一系列班次模式的邏輯元素,它作用于一連串的工作和非工作時(shí)期。其它元素仿真班次工作時(shí)可以引用班次模式。206.2.5圖形元素

圖形元素可以將模型的運(yùn)行績(jī)效指標(biāo)在仿真窗口動(dòng)態(tài)的表現(xiàn)出來。主要包括:時(shí)間序列圖(Timeseries);餅狀圖(Piechart);直方圖(Histogram)。6.2.5.1時(shí)間序列圖(Timeseries)時(shí)間序列圖是以圖形方式來畫出仿真隨時(shí)間變化的值,從而表現(xiàn)仿真結(jié)果的圖形元素。垂直的Y軸代表值,水平的X軸代表時(shí)間。216.2.5.2餅狀圖(Piechart)餅狀圖用來在仿真窗口表示仿真結(jié)果,顯示如何使用一個(gè)或一組元素的圖形元素。例如,我們可以用一個(gè)餅狀圖來分塊表示一個(gè)給定時(shí)段的空閑時(shí)間,裝配時(shí)間和工作時(shí)間。6.2.5.3直方圖(Histogram)直方圖是一種在仿真窗口用豎條式的圖形來表示仿真結(jié)果的圖形元素。在模型中適當(dāng)?shù)牡胤轿覀兛梢杂谩皉ecord”、“drawbar”、“addbar”行為在直方圖中記下值。22

6.3隨機(jī)分布為了方便用戶構(gòu)建隨機(jī)仿真模型,WITNESS提供了14種整型或?qū)崝?shù)型的標(biāo)準(zhǔn)隨機(jī)分布函數(shù),它們能返回一系列理論分布的隨機(jī)樣本值。WTNESS選擇這些分布是因?yàn)檫@些理論分布已經(jīng)在相當(dāng)長(zhǎng)時(shí)間內(nèi)廣泛的研究過了,而且也是在仿真中被認(rèn)為是最有效的。6.3.1偽隨機(jī)數(shù)流(PRNS:pseudo-randomnumberstream)

WITNESS不是儲(chǔ)存了大量的預(yù)先定義的隨機(jī)數(shù),而是儲(chǔ)備了1000個(gè)不同的數(shù)列或者叫偽隨機(jī)數(shù)流。我們?cè)谑褂靡粋€(gè)標(biāo)準(zhǔn)分布時(shí),必須輸入一個(gè)偽隨機(jī)數(shù)流和相關(guān)的變量。23例如,一臺(tái)機(jī)器組裝零部件的時(shí)間服從泊松分布,均值為5分鐘,我們將偽隨機(jī)流PRN1用到這個(gè)分布中,即POISSON(5,1),則在仿真過程中,系統(tǒng)將使用它儲(chǔ)備的1000個(gè)偽隨機(jī)流中的第一個(gè)數(shù)列作為種子數(shù),依次生成服從均值為5的泊松分布隨機(jī)數(shù)流。這樣在同一次仿真過程中,機(jī)器每次組裝零部件的時(shí)間是隨機(jī)的,而在不同的仿真運(yùn)行中WITNESS產(chǎn)生的組裝時(shí)間隨機(jī)數(shù)流則是相同的。由于偽隨機(jī)流的存在,我們可以改變模型當(dāng)中的一個(gè)參數(shù)值,保持其它參數(shù)不變,重新運(yùn)行模型,比較仿真運(yùn)行的結(jié)果,就可以精確的了解該因素對(duì)仿真系統(tǒng)績(jī)效的敏感性。24WITNESS提供了如下14種標(biāo)準(zhǔn)隨機(jī)分布函數(shù):(1) BETAβ分布;(2)NORMAL正態(tài)分布;(3) BINOMIAL二項(xiàng)分布;(4)POISSON泊松分布;(5) ERLANG愛爾朗分布;(6)RANDOM0-1均勻分布;(7) GAMMAγ分布;(8)TNORMAL截?cái)嗾龖B(tài)分布;(9) IUNIFORM整數(shù)均勻分布;(10)TRIANGLE三角分布;(11) LOGNORML對(duì)數(shù)正態(tài)分布;(12)UNIFORM均勻分布;(13) NEGEXP負(fù)指數(shù)分布;(14)WEIBULL韋布爾分布我們將從如下五方面來介紹以上的隨機(jī)分布函數(shù):(1)函數(shù)的名稱與函數(shù)的簡(jiǎn)介;(2)函數(shù)語法結(jié)構(gòu)及其參數(shù);所有函數(shù)的最后一個(gè)參數(shù)都是偽隨機(jī)數(shù)流;(3)分布曲線(曲線圖中,橫軸表示函數(shù)的返回值,縱軸表示對(duì)應(yīng)返回值的發(fā)生概率)(4)隨機(jī)分布函數(shù)調(diào)用示例;(5)適用情況。256.3.2隨機(jī)分布函數(shù)詳解(1)BETA(β分布)該函數(shù)提供服從β分布的隨機(jī)樣本值,返回值為實(shí)數(shù),通常應(yīng)用在實(shí)際系統(tǒng)的數(shù)據(jù)有限、數(shù)據(jù)變化范圍大的情況。語法結(jié)構(gòu):BETA(shape,scale,prns)shape:形狀參數(shù),實(shí)數(shù);scale:比例參數(shù),實(shí)數(shù);prns:偽隨機(jī)數(shù)流,整數(shù)。分布曲線(橫軸表示可能取值,縱軸表示對(duì)應(yīng)取值的概率):當(dāng)shape=1.5,scale=5時(shí),分布曲線如下:

當(dāng)shape=5,scale=1.5時(shí),分布曲線如下:

函數(shù)調(diào)用示例:X=BETA(1.5,5.0,1)X=BETA(5.0,1.5,2)適用情況:產(chǎn)品的次品率;工作的完成時(shí)間。26(2)NORMAL(正態(tài)分布)該函數(shù)提供服從正態(tài)分布的樣本值,返回值為實(shí)數(shù)。該函數(shù)是應(yīng)用最為廣泛的一種分布,分布曲線關(guān)于均值對(duì)稱的,經(jīng)常運(yùn)用于工作時(shí)間圍繞均值波動(dòng)的隨機(jī)情況。語法結(jié)構(gòu):NORMAL(Mean,SD,prns)Mean:分布均值,實(shí)數(shù);SD:標(biāo)準(zhǔn)差,實(shí)數(shù);Prns:為隨機(jī)數(shù)流,整數(shù)。分布曲線:分布曲線如下圖:函數(shù)調(diào)用示例:X=NORMAL(10.0,3.0,1)X=NORMAL(5.0,2,2)適用情況:機(jī)器加工時(shí)間等。27(3)BINOMIAL(二項(xiàng)分布)

該函數(shù)提供服從二項(xiàng)分布的樣本值,返回值為整數(shù)。在給定的成功幾率和試驗(yàn)次數(shù)條件下,該函數(shù)返回成功的次數(shù)。例如,特定供應(yīng)商提供的發(fā)動(dòng)機(jī)次品率為10%,可以使用二項(xiàng)分布來獲得批量為5的n批發(fā)動(dòng)機(jī)中每批的次品數(shù),有時(shí)是1個(gè),有時(shí)是2個(gè)……,如下面的第一個(gè)圖形所示。語法結(jié)構(gòu):BINOMIAL(prob,trials,prns)prob:幾率,[0,1]之間的實(shí)數(shù);trials:試驗(yàn)次數(shù)或批量,整數(shù);Prns:偽隨機(jī)數(shù)流,整數(shù)。分布曲線:當(dāng)prob=0.1,trials=5時(shí),分布曲線如下:當(dāng)prob=0.5,trials=5時(shí),分布曲線如下:函數(shù)調(diào)用示例:J=BINOMIAL(0.1,5,1)J=BINOMIAL(0.1,10,1)J=BINOMIAL(0.5,5,1)J=BINOMIAL(0.5,10,1)適用情況:指定尺寸的一批貨物當(dāng)中的次品數(shù)目;倉庫中需要的貨物的品種數(shù)量。28(4)POISSON(泊松分布)該函數(shù)提供服從泊松分布的樣本值,返回值為整數(shù)。通常情況下,使用該函數(shù)來生成在給定的時(shí)間段內(nèi)顧客或部件的到達(dá)數(shù)量,可以使它為負(fù)指數(shù)分布的一種補(bǔ)充。語法結(jié)構(gòu):POISSON(MEAN,prns)MEAN:均值,實(shí)數(shù);Prns:為隨機(jī)數(shù)流,整數(shù)。分布曲線:當(dāng)MEAN=0.5、1、2、6時(shí),分布曲線如圖:

函數(shù)調(diào)用示例:J=POISSON(0.5,1)J=POISSON(1.0,2)J=POISSON(2.0,3)J=POISSON(6.0,4)適用情況:零件到達(dá)的隨機(jī)批量;生產(chǎn)機(jī)器的單位時(shí)間產(chǎn)出數(shù)量。29(6)RANDOM(0-1均勻分布)該函數(shù)提供服從0-1均勻分布的樣本值,返回值為[0,1]之間的實(shí)數(shù),返回0與1之間任意小數(shù)的概率是相同的。語法結(jié)構(gòu):RANDOM(Prns)Prns:為隨機(jī)數(shù)流,整數(shù)。分布曲線如下圖:函數(shù)調(diào)用示例:R=RANDOM(1)適用情況:使用此函數(shù)作為我們自定義隨機(jī)分布函數(shù)中的隨機(jī)種子數(shù)。30(12)UNIFORM(均勻分布)該函數(shù)提供服從均勻分布的樣本值,返回值為實(shí)數(shù)。用于等概率獲得指定范圍內(nèi)的數(shù)值。語法結(jié)構(gòu):UNIFORM(min,max,prns)min:最小值,實(shí)數(shù);max:最大值,實(shí)數(shù);Prns:為隨機(jī)數(shù)流,整數(shù)。分布曲線:函數(shù)調(diào)用示例:R=UNIFORM(3.0,8.0,1)

適用情況:對(duì)某一變量的數(shù)據(jù)知之甚少,并且希望獲得特定范圍內(nèi)的實(shí)數(shù)值時(shí),就采用該函數(shù)。31(13)NEGEXP(負(fù)指數(shù)分布)該函數(shù)提供服從負(fù)指數(shù)分布的樣本值,返回值為實(shí)數(shù)??梢哉J(rèn)為它是泊松分布的補(bǔ)集。語法結(jié)構(gòu):NEGEXP(mean,prns)mean:均值,實(shí)數(shù);Prns:為隨機(jī)數(shù)流,整數(shù)。分布曲線:當(dāng)mean=1時(shí),分布曲線如下:函數(shù)調(diào)用示例:R=NEGEXP(1.0,1)適用情況:相鄰事件發(fā)生的時(shí)間間隔,例如:顧客到達(dá)時(shí)間間隔,及其故障時(shí)間間隔。326.4規(guī)則我們一旦在模型中創(chuàng)建了元素,就必須說明零部件、流體、車輛和單件運(yùn)輸小車在它們之間是怎樣流動(dòng)以及勞動(dòng)者是怎樣分配的,這就要用到規(guī)則。

Witness有幾類不同的規(guī)則:

(1)輸入規(guī)則(這類規(guī)則包括裝載和填入規(guī)則)。輸入規(guī)則控制輸入元素的零部件或者流體的流量。

(2)輸出規(guī)則(這類規(guī)則包括連接,卸載,空閑,單件運(yùn)輸小車進(jìn)入,車輛進(jìn)入和緩沖區(qū)退場(chǎng)管理)。輸出規(guī)則控制從元素中輸出的零部件,流體,車輛或者單件運(yùn)輸小車的流量。

(3)勞動(dòng)者規(guī)則。勞動(dòng)者規(guī)則可用來詳細(xì)說明勞動(dòng)者的類型和機(jī)器,輸送鏈,管道,處理器,容器,路線集或者工作站為了完成一項(xiàng)任務(wù)而需要的勞動(dòng)者的數(shù)量。336.4.1輸入規(guī)則(InputRule)輸入規(guī)則控制零部件或者流體進(jìn)入在系統(tǒng)中的流動(dòng)過程。例如:一臺(tái)空閑機(jī)器要啟動(dòng)的話,會(huì)按照輸入規(guī)則輸入零部件直到有足夠的零部件啟動(dòng)它;一臺(tái)尾部有空間的輸送鏈在每向前移動(dòng)一個(gè)位置時(shí),按照輸入規(guī)則輸入零部件??梢酝ㄟ^以下幾種方法輸入零部件或者流體:(1)具有相同名稱的一組元素。(2)一組元素中的一種特殊的元素(需要指定那種元素的下標(biāo))。(3)在模型外的一個(gè)特定的位置(WORLD)中得到零部件或流體元素。設(shè)定輸入規(guī)則的方法主要有兩種:

1)通過元素細(xì)節(jié)(detail)對(duì)話框中的“FROM”按鈕首先選中對(duì)象,然后雙擊鼠標(biāo)左鍵,在彈出式detail對(duì)話框中的general頁中,點(diǎn)擊該按鈕就顯示出輸入規(guī)則編輯器。34

2)使用可視化輸入規(guī)則按鈕首先選中對(duì)象,然后點(diǎn)擊Element工具欄上的“VisualInputRules”圖標(biāo),將會(huì)顯示如圖的輸入規(guī)則對(duì)話框,然后進(jìn)行輸入設(shè)定。通過這兩種方法設(shè)定了元素的輸入規(guī)則后,都會(huì)使得元素detail對(duì)話框general頁框中的“FROM”按鈕下方,顯示出元素當(dāng)前的輸入規(guī)則的名稱。當(dāng)創(chuàng)建一個(gè)元素的時(shí)候,Witness會(huì)自動(dòng)的給它一個(gè)默認(rèn)的規(guī)則——WAIT,表示它不能接收零部件或者流體。為了規(guī)定零部件和流體通過模型時(shí)的路線,我們必須用一個(gè)其他的規(guī)則來代替WAIT規(guī)則。356.4.2輸出規(guī)則(OutputRules)輸出規(guī)則控制著當(dāng)前元素中的零部件,流體,車輛和單件運(yùn)輸小車輸出的目的地和數(shù)量等。設(shè)定輸出規(guī)則的方法主要有兩種:(1)通過元素細(xì)節(jié)(detail)對(duì)話框中的“TO”按鈕首先選中對(duì)象,然后雙擊鼠標(biāo)左鍵,在彈出式detail對(duì)話框中的general頁中,點(diǎn)擊該按鈕就顯示出輸出規(guī)則編輯器。(2)使用可視化輸出規(guī)則按鈕首先選中對(duì)象,然后點(diǎn)擊Element工具欄上的“VisualOutputRules”圖標(biāo),將會(huì)顯示如圖的輸出規(guī)則對(duì)話框,然后進(jìn)行輸入設(shè)定。36

Witness提供的可以在輸出規(guī)則中使用的命令有:

BUFFER

CONNECT

DESTINATION

FLOW

LEAST

MOST

PERCENT

PUSH

RECIPE

SELECT

SEQUENCE

WAIT

376.4.3勞動(dòng)者規(guī)則(LaborRules)6.4.3.1勞動(dòng)者規(guī)則概述機(jī)器,輸送鏈,管道,處理器,容器,路線集和工作臺(tái)都需要?jiǎng)趧?dòng)者才能完成任務(wù)。勞動(dòng)者規(guī)則可以讓我們?cè)敿?xì)說明實(shí)體元素為完成任務(wù)所需要的勞動(dòng)者類型和數(shù)量。我們可以通過創(chuàng)建勞動(dòng)者規(guī)則來完成的任務(wù)有:調(diào)整機(jī)器,并為它設(shè)定時(shí)間周期或修理它;修理輸送鏈;幫助流體通過管道,并且做好清潔、清洗和修理的工作;幫助處理器處理流體,并且做好填入、清空、清潔和修理工作;幫助流體通過管道,或做修理工作;修理各種類型的工作站,在行為站做好進(jìn)入、處理、退出動(dòng)作,在裝載(卸載)站做好裝載(卸載)工作,在停靠站做好停靠工作;修理路線集。

1)可以使用元素細(xì)節(jié)對(duì)話框進(jìn)入勞動(dòng)者規(guī)則。

2)可以使用“VisualLaborRules”按鈕,386.4.3.2三種勞動(dòng)者規(guī)則我們也可以使用如下3種勞動(dòng)者規(guī)則,當(dāng)然有時(shí)也可將這三種勞動(dòng)者規(guī)則結(jié)合起來使用。6.4.3.2.1NONE規(guī)則在某種情況下,當(dāng)元素不需要?jiǎng)趧?dòng)者時(shí),我們可以在勞動(dòng)者規(guī)則中使用NONE規(guī)則。例如,當(dāng)一個(gè)元素完成某項(xiàng)任務(wù)不需要?jiǎng)趧?dòng)者時(shí),我們不需要輸入任何規(guī)則。該規(guī)則經(jīng)常用在IF條件語句中,如

IFJOB_TYPE=RIBBONKNOTTERELSENONEENDIF

在這個(gè)例子中,包裝機(jī)包裝兩種不同類型的巧克力箱:一種是有帶子的,一種是沒有帶子的。機(jī)器包裝沒有帶子的巧克力箱時(shí),不需要?jiǎng)趧?dòng)者;包裝有帶子的時(shí)候(JOB_TYPE=RIBBON),需要進(jìn)行打結(jié)的勞動(dòng)者KNOTTER。勞動(dòng)者規(guī)則指示機(jī)器當(dāng)遇到有帶子的巧克力箱時(shí),獲取勞動(dòng)者;當(dāng)遇到無帶子的巧克力箱時(shí),不獲取勞動(dòng)者。在這里如果我們使用“WAIT”規(guī)則而不是“NONE”規(guī)則時(shí),只要無帶巧克力箱一進(jìn)入,機(jī)器就會(huì)阻塞。396.4.3.2.2MATCH規(guī)則

在WITNESS中,既可以用MATCH規(guī)則作為輸入規(guī)則來輸入一系列相匹配的零部件或者勞動(dòng)力單位到機(jī)器,也可以用它來作為勞動(dòng)者規(guī)則,設(shè)定某一元素,匹配完成某項(xiàng)工作所需的勞動(dòng)力單位數(shù)。1.MATCH規(guī)則的語法如下:MATCH/qualifierlocation1{#(qty)}{[AND|OR]location2{#(qty)}}{...}

關(guān)于qualifier

的設(shè)置在下面我們將會(huì)詳述,location

取決于我們是將MATCH規(guī)則作為機(jī)器的輸入規(guī)則還是作為勞動(dòng)者規(guī)則的,#(qty)是指MATCH規(guī)則從location中所選的元素的數(shù)量。它是一個(gè)整型表達(dá)式。如果不具體說明匹配的數(shù)量,則Witness默認(rèn)數(shù)量為1。402.下面是有關(guān)MATCH作為機(jī)器的輸入規(guī)則的例子:例1.MATCH/ANYCLOCKSTORE(1)#(2)ANDBOXSTORE(2)#(1)

在這個(gè)例子中,MATCH規(guī)則從第一個(gè)STORE元素中取出任意兩個(gè)鐘表零部件,再從第二個(gè)STORE元素中取出一個(gè)盒子零部件,并把它們一起輸入到機(jī)器中去。例2.MATCH/ATTRIBUTECOLORCHASSIS_BUFF#(1)ANDDOOR_BUFF#(4)

在這個(gè)例子中,MATCH規(guī)則將從CHASSIS_BUFF緩沖區(qū)中取出1個(gè)零部件,再從OOR_BUFF緩沖區(qū)中取出4個(gè)與之顏色屬性相同零部件,并把它們輸入到機(jī)器中去。例3.MATCH/CONDITIONSIZE>10STOREA#(7)ORSTOREB#(7)

在這個(gè)例子中,MATCH規(guī)則從STORE_A緩沖區(qū)中取出7個(gè)SIZE屬性值大于10的零部件或者從STORE_B中取出7個(gè)SIZE屬性值大于10的零部件,并將它們輸入機(jī)器。例4.MATCH/ANYHELP_DESK_CALL#(1)ANDSUPPORT_ENGINEER#(1)

在這個(gè)例子中,MATCH規(guī)則使用一個(gè)SUPPORT_ENGINEER勞動(dòng)者從HELP_DESK_CALL緩沖區(qū)取出1個(gè)零部件。413.下面是MATCH作為勞動(dòng)者規(guī)則的例子(假設(shè)是機(jī)器加工需要人員輔助):例1.MATCH/ANY(JOE#(2)ANDFRED#(1))OR(BILL#(2)ANDTOM#(1))

在這個(gè)例子中,MATCH規(guī)則設(shè)定如果有兩個(gè)JOE勞動(dòng)者與1個(gè)FRED勞動(dòng)者同時(shí)可以使用,或者2個(gè)BILL勞動(dòng)者與1個(gè)TOM勞動(dòng)者同時(shí)可以使用,就使用一組進(jìn)行輔助操作。例2.MATCH/ATTRIBUTETEAM_NODOCTOR#(1)ANDNURSE#(2)

在這個(gè)例子中,如果有TEAM_NO屬性相同的1個(gè)DOCTOR勞動(dòng)者與2個(gè)NURSE勞動(dòng)者同時(shí)可用,就使用他們3個(gè)進(jìn)行輔助操作。例3.MATCH/CONDITIONSKILL>5FITTER#(1)ORFOREMAN#(2)

在這個(gè)例子中,任意1個(gè)SKILL屬性值大于5的FITTER勞動(dòng)者可以輔助機(jī)器操作,或者任意2個(gè)SKILL屬性值大于5的FOREMAN勞動(dòng)者可以輔助機(jī)器進(jìn)行操作。例4.MATCH/ANYFITTER#(5)ANDFOREMAN#(1)usingPATH

在這個(gè)例子中,MATCH規(guī)則通過特定的路徑匹配任意5個(gè)FITTER勞動(dòng)者與任意1個(gè)FOREMAN勞動(dòng)者來輔助機(jī)器進(jìn)行操作。426.4.3.2.3

WAIT規(guī)則

1.WAIT規(guī)則定義一個(gè)元素如何等待。每一個(gè)元素的輸入輸出規(guī)則在默認(rèn)的情況下都設(shè)為WAIT規(guī)則。為了指明模型中零部件的走向,我們必須用其他規(guī)則來替代它。在IF語句中,勞動(dòng)者規(guī)則非常有用。例如:

IF

NPARTS(WIDGET_BUFFER)<50

PUSH

WIDGET

to

WIDGET_BUFFER

ELSE

WAIT

ENDIF

在機(jī)器的輸入規(guī)則這個(gè)例子中,如果緩沖區(qū)WIDGET_BUFFER中的零部件少于50個(gè)的話,機(jī)器把WIDGET零部件推入緩沖區(qū)內(nèi);如果WIDGET_BUFFER中的零部件不少于50的話,機(jī)器等待,直到緩沖區(qū)內(nèi)的零部件數(shù)少于50。432.WAIT規(guī)則的語法如下,它沒有其它的參數(shù)。(1)WAIT的輸入規(guī)則

WAIT的輸入規(guī)則指的是元素等待直到元素輸入零部件或者流體到其中。下列元素可以用WAIT作為輸入規(guī)則:

機(jī)器輸送鏈軌道

管道容器處理器

工作站路線集工作站(2)WAIT的輸出規(guī)則

WAIT的輸出規(guī)則指的是元素等待直到其中的零部件或流體被取出。如果沒有其他元素從中將它的零部件取出,元素將會(huì)永遠(yuǎn)被阻塞。以下元素可以用WAIT作為輸出規(guī)則:

零部件單件運(yùn)輸小車緩沖區(qū)機(jī)器

輸送鏈

運(yùn)載工具軌道

零部件文件流體管道

容器管道處理器

工作站路線集(3)WAIT的勞動(dòng)者規(guī)則

WAIT的勞動(dòng)者規(guī)則指的是元素等待直到勞動(dòng)者有效。以下元素可用WAIT作為勞動(dòng)者規(guī)則:

機(jī)器

輸送鏈管道容器處理器

停靠站行為站

裝載站卸載站446.4.3.3勞動(dòng)者規(guī)則的例子例1TWO_TON#1ORONE_TON#2

這個(gè)例子展示了勞動(dòng)者作為工具或者資源來使用的情況。元素需要1個(gè)TWO_TON工具或者2個(gè)ONE_TON工具來完成任務(wù),它將按照列表中的次序來選擇勞動(dòng)者,所以元素將會(huì)首先選擇前者。例2OPERATORORNONE

元素需要一個(gè)操作者去執(zhí)行任務(wù),要是沒有操作者可提供,Witness允許在沒有操作者的情況下繼續(xù)執(zhí)行任務(wù)。例3NOVICEANDAUTOMATICOREXPERTANDMANUAL

這個(gè)例子把操作者作為一種資源或者一個(gè)工具來使用。元素需要一個(gè)初學(xué)者和一個(gè)自動(dòng)工具或者一個(gè)專家和一個(gè)手動(dòng)工具一起才能完成任務(wù),它將按照列表中的次序來選擇勞動(dòng)者,所以元素將會(huì)首先選擇前者。45例4

IFNPARTS(PACKING(1))<3NONEELSEIFNPARTS(PACKING(1))<9OPERATORANDPACK_TOOLELSEOPERATOR#2ANDPACK_TOOL#2ORROBOTENDIFENDIF

如果第一個(gè)包裝機(jī)的零部件的數(shù)目小于3,元素不需要?jiǎng)趧?dòng)者。如果第一個(gè)包裝機(jī)的零部件的數(shù)目少于9,但是大于3,元素需要一個(gè)單位的OPERATOR勞動(dòng)者和一個(gè)PACK_TOOL工具去執(zhí)行任務(wù)。如果零部件的數(shù)目等于9或者更多,元素就需要2個(gè)單位的OPERATOR勞動(dòng)者和2個(gè)單位的PACK_TOOL工具,要是勞動(dòng)者和工具不能被提供,那么用ROBOT來代替。466.5Witness程序設(shè)計(jì)基礎(chǔ)6.5.1變量類型

witness提供了四種類型的變量,用來進(jìn)行數(shù)據(jù)處理。它們是整型、實(shí)型、名型、字符型。6.5.1.1整型(integer)

整型變量用來存儲(chǔ)不包含小數(shù)點(diǎn)部分的數(shù)字。在witness中,可以是-2147483648到+2147483647之間的整數(shù)。6.5.1.2實(shí)型(real)

實(shí)型變量可以存儲(chǔ)由數(shù)字(0~9)、小數(shù)點(diǎn)和正負(fù)號(hào)組成的數(shù)據(jù)。范圍為(3.4E-38,3.4E38);6.5.1.3名型(name)

名型(name)變量用來存儲(chǔ)witness仿真系統(tǒng)組成元素的名稱。

例如:Widget、Miller(3)476.5.1.4字符型(string)

字符型變量用來存儲(chǔ)不具有計(jì)算能力的字符型數(shù)據(jù)。字符型數(shù)據(jù)是由漢字和ASCII字符集中可打印字符(英文字符、數(shù)字字符、空格以及其他專用字符)組成,長(zhǎng)度范圍是0~4095個(gè)字符。6.5.1.5字符運(yùn)算符

比較前后兩個(gè)字符串是否相同;

連接兩個(gè)字符串

對(duì)字符型數(shù)據(jù)賦值如果連接操作得出的字符型數(shù)據(jù)長(zhǎng)度超出長(zhǎng)度范圍,witness顯示出錯(cuò)信息。485.1.1.6特殊用途字符串

字符型數(shù)據(jù)可以存儲(chǔ)任何鍵盤上的字符。反斜線字符(\)卻是一個(gè)特殊的字符

\"向字符串中引入一個(gè)引號(hào)(")。引號(hào)標(biāo)識(shí)字符的結(jié)束。

\\向字符串中引入一個(gè)反斜線(\)。

\n向字符串中引入換行符。

\r向字符串中引入回車。

\t向字符串中引入8個(gè)空格(TAB)字符。

\f向字符串中引入走紙字符。如果是打?。≒RINT)操作,交互窗口被清空;如果是寫(write)操作,將另起一頁進(jìn)行寫入。496.5.2運(yùn)算符及表達(dá)式6.5.2.1算術(shù)運(yùn)算符

通過算術(shù)運(yùn)算符可以構(gòu)成算術(shù)表達(dá)式,進(jìn)行數(shù)值型數(shù)據(jù)的處理。注:

**

乘方

2**8,5**2

*,/

乘,除

36*4/9

+,-

加,減

5+6-7

在進(jìn)行算術(shù)表達(dá)式計(jì)算時(shí),要遵循以下優(yōu)先順序:先括號(hào),在同一括號(hào)內(nèi),按照先乘方,在乘除,后加減。506.5.2.2關(guān)系運(yùn)算符

關(guān)系運(yùn)算符用來構(gòu)成關(guān)系表達(dá)式,關(guān)系運(yùn)算是運(yùn)算符兩邊同類元素的比較,關(guān)系成立結(jié)果為真(T);反之,結(jié)果為假(F)。

<>>

<

<=

>=6.5.2.3邏輯運(yùn)算符

邏輯運(yùn)算符用來構(gòu)成邏輯表達(dá)式。邏輯表達(dá)式可與關(guān)系表達(dá)式一起組成滿足IF,

AND

OR

NOT516.5.2.4

轉(zhuǎn)換運(yùn)算符

轉(zhuǎn)換運(yùn)算符主要有兩種:

(1)&將整數(shù)轉(zhuǎn)換為英文字母。

如果變量值為1,則返回“A”;如果變量值為2,則返回“B”;如此類推,

當(dāng)變量值為26時(shí),則返回“Z”。如果變量值大于26,將進(jìn)行循環(huán),如:變量值為28,則返回“B”。如果變量值為-1,則返回“a”;如果變量值為-2,則返回“b”;如此類推,當(dāng)變量值為-26時(shí),則返回“z”。如果變量值小于-26,將進(jìn)行循環(huán),如:變量值為-28,則返回“b”。

(2)@將數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)。

例如:DESC=”P”+@VAR1(此時(shí)數(shù)值型變量VAR1=56),則

DESC=P56。526.5.3

程序三種基本結(jié)構(gòu)6.5.3.1順序結(jié)構(gòu)

順序結(jié)構(gòu)是在程序執(zhí)行時(shí),根據(jù)程序中語句的書寫順序依次執(zhí)行的命令序列。WITNESS系統(tǒng)中的大多數(shù)命令都可以作為順序結(jié)構(gòu)中的語句。6.5.3.2分支結(jié)構(gòu)

分支結(jié)構(gòu)是在程序執(zhí)行時(shí),根據(jù)不同的條件,選擇執(zhí)行不同的程序語句,用來解決有選擇、有轉(zhuǎn)移的諸多問題。分支結(jié)構(gòu)有單向分支和多向分支語法結(jié)構(gòu),分別如下:1.單向分支,也叫簡(jiǎn)單分支結(jié)構(gòu)

IF

<條件表達(dá)式>

<命令行序列>

ENDIF

該語句首先計(jì)算<條件表達(dá)式>的值,當(dāng)<條件表達(dá)式>的值為真(T)時(shí),執(zhí)行<命令行序列>;否則,則執(zhí)行ENDIF后面的命令。532.多向分支,也叫復(fù)雜分支結(jié)構(gòu)

IF

<條件表達(dá)式1>

<命令行序列1>

ELSE

<命令行序列2>

ENDIF

該語句首先計(jì)算〈條件表達(dá)式1〉的值,當(dāng)〈條件表達(dá)式1〉的值為真時(shí),執(zhí)行〈命令行序列1〉中的命令;否則,執(zhí)行〈命令行序列2〉中的命令;執(zhí)行完〈命令行序列1〉或〈命令行序列2〉后都將執(zhí)行ENDIF后面的第一條命令。3.使用分支語句應(yīng)注意的幾點(diǎn):(1)IF……ENDIF必須配對(duì)使用;

(2)〈條件表達(dá)式〉可以是各種表達(dá)式或函數(shù)的組合,其值必須是邏輯值;

(3)〈命令行序列〉可以由一個(gè)或多個(gè)命令組成,也可以是條件控制語句組成的嵌套結(jié)構(gòu)。546.5.3.3循環(huán)結(jié)構(gòu)

允許有限次重復(fù)執(zhí)行某一特定的程序。1.計(jì)數(shù)型循環(huán)語法結(jié)構(gòu):

FOR〈循環(huán)變量〉=〈循環(huán)變量初值〉TO〈循環(huán)變量終值〉[STEP〈循環(huán)變量步長(zhǎng)〉]

〈命令行序列〉

NEXT參數(shù)說明: 循環(huán)變量:一般情況下為整型變量,并且其數(shù)量為一,即不是數(shù)組; 循環(huán)變量初值、循環(huán)變量終值:數(shù)值型常量、變量或表達(dá)式; 循環(huán)變量步長(zhǎng):每次步進(jìn)的長(zhǎng)度,可以為整數(shù),也可以為負(fù)數(shù);缺省時(shí)為1552.“當(dāng)”型循環(huán)語法結(jié)構(gòu):

WHILE

<條件表達(dá)式>

<命令行序列>

ENDWHILE注:ENDWHILE可以縮寫為END。語句功能:

當(dāng)<條件表達(dá)式>為真時(shí),一直執(zhí)行<命令行序列>,直到<條件表達(dá)式>為假,循環(huán)結(jié)束。示例:WHILE

NPARTS(STOCK)>90

PRINT"Warning!TheSTOCKbufferisnearlyfull."ENDWHILE566.6Witness常用系統(tǒng)函數(shù)6.6.1數(shù)學(xué)函數(shù)

1.Abs()函數(shù)功能:求某一實(shí)數(shù)的絕對(duì)值;語法:Abs(real_number)

返回類型:實(shí)型

2.Amax()函數(shù)功能:求某一系列實(shí)數(shù)的最大值;語法:Abs(real_number1,real_number2……)

返回類型:實(shí)型576.6.2轉(zhuǎn)換函數(shù)

1.Chr()函數(shù)功能:求某一ASCII碼對(duì)應(yīng)的字符;語法:Chr(integer_number)

返回類型:字符型例:Chr(67),將返回C2.Float()函數(shù)功能:求某一整數(shù)轉(zhuǎn)化成實(shí)數(shù);語法:Float(integer_number)

返回類型:實(shí)型

3.Str()函數(shù)

功能:求某一實(shí)數(shù)或整數(shù)轉(zhuǎn)化成字符串型;語法:Str(real_numberorinteger_number)返回類型:字符串型58

4.Strstr()函數(shù)功能:用來返回string_b在string_a的第一個(gè)位置;語法:Strstr(string_a,string_b)

返回類型:整數(shù)型例:Strstr(“Youarewelcome!”,“welcome!”)返回整數(shù)值95.Leftstr()函數(shù)功能:將某一字符串返回指定個(gè)數(shù)的字符(從左邊開始);語法:Leftstr(string,num_of_chars)

返回類型:字符串型其中:string為字符型,num_of_chars為整型例:Leftstr(“Youarewelcome!”,7)

將返回“Youare”59

6.6.3模型交互函數(shù)

1.Msgdlg()函數(shù)功能:產(chǎn)生一信息框語法:Msgdlg(title,icon_id,dialog_text,button_text,default_button)

返回類型:整型

title:

字符串型,用來產(chǎn)生信息框的標(biāo)題

icon_id:整數(shù)型,用來標(biāo)記信息框的類型,icon_id=0,則信息框無任何圖標(biāo);icon_id=1,則信息框的圖標(biāo)為“Stop”型;icon_id=2,則信息框的圖標(biāo)為“Question”型;icon_id=3,則信息框的圖標(biāo)為“Warning”型;icon_id=4,則信息框的圖標(biāo)為“Information”型。

dialog_text:字符串型,在信息框中要顯示的文本。

button_text:字符串型,信息框中按鈕的顯示文本。

default_button:整數(shù)型,用來設(shè)置按鈕的默認(rèn)值。default_button=1則默認(rèn)第一個(gè)按鈕;default_button=2,則默認(rèn)第二個(gè)按鈕。。。。。。60

例:Msgdlg(“Changthepath”,2,“Doyouwanttochangthepath”,”&Yes|&No”,1)會(huì)彈出下列消息框。。。。。。61

2.Inputdlg()函數(shù)功能:產(chǎn)生用戶可進(jìn)行編輯的交互窗口語法:Inputdlg(title,dialog_text,field_default,

field_width,type_id)

返回類型:字符串型

title:

字符串型,用來產(chǎn)生交互窗口的標(biāo)題

dialog_text:字符串型,產(chǎn)生交互窗口的要進(jìn)行編輯的提示信息

field_default:字符串型,在交互窗要輸入的默認(rèn)值

field_width:整數(shù)型,在交互窗要輸入的文本的寬度

type_id:整數(shù)型,交互窗要輸入的類型。type_id=1,則應(yīng)該輸入字符串型;type_id=2,則應(yīng)該輸入整數(shù)型;type_id=3,則應(yīng)該輸入實(shí)數(shù)型。62

例:Inputdlg(“Numbero

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論