Object

treenodeから継承します。

説明

モデルのオブジェクトを表すクラスです。

Objectはオブジェクトデータを持つツリーノードです。Objectにはツリーノードの機能がすべて備えられています。また、オブジェクトデータへのアクセス機能および3Dオブジェクトを操作する機能も設けられています。

プロパティ

animations オブジェクトのアニメーションにアクセスします。
attrs オブジェクトの属性ノードにアクセスします。
centerObjects センターポート接続を通じて接続されるオブジェクトにアクセスします。
color オブジェクトのを取得および設定します。
flags オブジェクトのフラグを取得および設定します。
inObjects 入力ポート接続を通じて接続されるオブジェクトにアクセスします。
input オブジェクトの入力ポート接続に対するメソッドにアクセスします。
location オブジェクトの位置を取得および設定します。
outObjects 出力ポート接続を通じて接続されるオブジェクトにアクセスします。
output オブジェクトの出力ポート接続に対するメソッドにアクセスします。
resetPosition オブジェクトのリセット位置にアクセスします。
rotation オブジェクトの回転を取得および設定します。
size オブジェクトのサイズを取得および設定します。
stats オブジェクトの統計が利用可能になります。
stopCount オブジェクトの停止回数を取得します。

メソッド

applyProperties テンプレートインスタンスとオーバーライドへのプロパティ変更をコミットします。
getLocation オブジェクトの場所を取得します。
getProperty オブジェクトのプロパティ値を取得します。
getVariable 廃止されました。getProperty()を使用してください。オブジェクトの変数の値を取得します。
message オブジェクトへメッセージを送ります。
resume オブジェクトをstop()実行前の状態に戻します。
setLocation オブジェクトの場所を設定します。
setProperty オブジェクトのプロパティ値を設定します。
setRotation オブジェクトの回転を設定します。
setSize オブジェクトのサイズを設定します。
setState オブジェクトの状態を設定します。
setVariable 廃止されました。setProperty()を使用してください。オブジェクトの変数の値を設定します。
stop オブジェクトを停止してその状態を設定してから、resume()を待ちます。

詳細

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.animations

readonly animations

説明

オブジェクトのアニメーションにアクセスします。

オブジェクトのアニメーションがAnimationインターフェースとして利用可能になります。

// Start the "Walk" animation on Operator1
Object obj = Model.find("Operator1");
obj.animations["Walk"].start();
			
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.attrs

readonly attrs

説明

オブジェクトの属性ノードにアクセスします。


Object obj = Model.find("Processor1");
obj.attrs.spatialx.value = 5;
      		
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.centerObjects

readonly centerObjects

説明

センターポート接続を通じて接続されるオブジェクトにアクセスします。

センターポート接続数へのアクセス

次のコードを使用して、オブジェクトのセンターポート接続数にアクセスできます。

obj.centerObjects.length

ランクによるオブジェクトへのアクセス

次のコードを使用して、センターポート接続を通じて接続される個々のオブジェクトに、ランクごとにアクセスできます。


obj.centerObjects[1] // first object
obj.centerObjects[obj.centerObjects.length] // last object
obj.centerObjects[i] // i-th object
		      	

オブジェクトの配列を取得

次のコードを使用して、センターポート接続を通じて接続されるすべてのオブジェクトの配列を取得できます。

Array centerObjects = obj.centerObjects.toArray();
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.color

readonly Color color

説明

オブジェクトのを取得および設定します。


Object obj = Model.find("Processor1");
obj.color = Color.red;
      		
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.flags

readonly flags

説明

オブジェクトのフラグを取得および設定します。

isProtected

オブジェクトの「保護済み」フラグを取得または設定します。

オブジェクトを保護すると、マウスで移動、回転、サイズ変更できなくなりますが、ダブルクリックしてオブジェクトの[パラメータ]ウィンドウにアクセスすることはできます。ビューウィンドウにはviewignoreobjectsという名前の属性があり、ビュー内のすべてのオブジェクトを無視するため使用できます。この場合、ダブルクリックも含めてどのような方法でも、マウスでオブジェクトを操作できなくなります。保護されていることを示すために、保護済みオブジェクトはツリービューで灰色に強調表示されます。

current.flags.isProtected = 1;

isSelected

オブジェクトの「選択済み」フラグを取得または設定します。

オブジェクトを選択すると、3Dおよびツリービューの両方でそのオブジェクトが赤い枠で囲まれます。3Dビュー内で選択済みオブジェクトの1つをドラッグすると、すべての選択済みオブジェクトが同じだけドラッグされます。[選択したオブジェクトを編集]ツールを使用することで、モデル内のすべての選択済みオブジェクトを素早く変更できます。

if(current.flags.isSelected) return 1;

showConnections

オブジェクトの「接続を表示」フラグを取得または設定します。

接続を非表示にすると、オブジェクトへの入力と出力の両方について、ポートおよび接続の表示がオフになります。ビューウィンドウにはhideallconnectorsという名前の属性があり、ビュー内のすべてのオブジェクトについてコネクターの表示をコントロールすることに注意してください。

obj.flags.showConnections = 0;

showContent

オブジェクトの「コンテンツを表示」フラグを取得または設定します。

オブジェクトのコンテンツを非表示にすると、その中に含まれているオブジェクト(例:フローアイテム)が表示されなくなります。

current.flags.showContent = 0;

showName

オブジェクトの「名前を表示」フラグを取得または設定します。

値が1なら、オブジェクトの名前と統計情報を画面に表示しません。値が0なら、ビューウィンドウのviewhidealllabels属性に応じて、オブジェクトの名前と、多くの場合は統計情報を表示します。ビューウィンドウのviewhidealllabels属性は次の値のいずれかで、ウィンドウ内のすべてのオブジェクトについてラベル表示に適用されます。0=名前と統計情報を表示、1=名前と統計情報を非表示、2=名前のみを表示。

obj.flags.showName = 1;

showShape

オブジェクトの「形状を表示」フラグを取得または設定します。

オブジェクトの形状を非表示にすると、3D形状の描画が停止します。ビューウィンドウにはhidealldrawcontentという名前の属性もあり、ビュー内のすべてのオブジェクトについて3D形状の表示をコントロールすることに注意してください。

current.flags.showShape = 0;
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.inObjects

readonly inObjects

説明

入力ポート接続を通じて接続されるオブジェクトにアクセスします。

centerObjectsプロパティと同様ですが、入力ポート接続を通じる点が異なります。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.input

readonly input

説明

オブジェクトの入力ポート接続に対するメソッドにアクセスします。

close

オブジェクトの入力をブロックします。エントリをブロックするには、入力ポート自体、または一般的な入力のみを閉じる必要があります。ポート接続がビューウィンドウに十分なサイズで表示されているとき、オブジェクトの入力ポート(正方形)すべてにわたって小さな赤色のバーが描画され、入力ポートがブロックされていることを示します。個別のポートを開くことはでき、開いているポートは緑色で表示されますが、赤いバーのためにオブジェクトへの進入はブロックされます。stop()と比較してください。

current.input.close();

open

close()メソッドによって以前ブロックされたオブジェクトの入力をブロック解除します。進入を許可する前に、入力ポート自体と入力全般を開く必要があります。モデラーは、senddelayedmessage()コマンドによりトリガーされたOnMessageフィールドを除いて、いかなるフィールドでもこのメソッドを使用しないことをお勧めします。これは、ポートを開くコマンドは多くの場合、トランジションイベントで行うべきでない複数の他の動作を引き起こすためです。resume()と比較してください。

current.input.open();

resume

open()と同様にオブジェクトの入力を開きますが、オブジェクトに対して呼び出された以前のstop()の記録を保持しているため、すべての停止が再開された後でのみ入力を開きます。詳細については、open()を参照してください。

current.input.resume();

stop

close()と同様にオブジェクトの入力を閉じますが、オブジェクトに対して呼び出された連続したstop()の記録を保持しているため、すべての停止が再開された後でのみ入力を開きます。詳細については、close()を参照してください。

current.input.stop();
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.location

readonly Vec3 location

説明

オブジェクトの位置を取得および設定します。


Object obj = Model.find("Processor1");
obj.location = Vec3(0,0,0);
      		
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.outObjects

readonly outObjects

説明

出力ポート接続を通じて接続されるオブジェクトにアクセスします。

centerObjectsプロパティと同様ですが、出力ポート接続を通じる点が異なります。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.output

readonly output

説明

オブジェクトの出力ポート接続に対するメソッドにアクセスします。

inputプロパティと同様ですが、出力ポート接続に対するメソッドである点が異なります。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.resetPosition

readonly resetPosition

説明

オブジェクトのリセット位置にアクセスします。

オブジェクトのリセット位置にアクセスできるようになります。このプロパティは、オブジェクトのリセット位置が設定されているかを判断するために直接読み取ることができます。

このプロパティは、次のプロパティおよびメソッドを提供します。

location - オブジェクトのリセット位置の場所を返します

rotation - オブジェクトのリセット位置の回転を返します

size - オブジェクトのリセット位置のサイズを返します

container - オブジェクトのリセット位置コンテナを返します

set() - オブジェクトのリセット位置を現在の場所、回転、サイズ、およびコンテナに設定します。

clear() - オブジェクトのリセット位置をクリアします。


				Object obj = Model.find("Processor1");
				if (obj.resetPosition) //Checks to see if its reset positon has been set
					return obj.resetPosition.location;// gets the location value of the reset position
				else{
					obj.resetPosition.set();// set the reset postion on the object
					return obj.resetPosition.location; // gets the location value of the reset position
				}
			
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.rotation

readonly Vec3 rotation

説明

オブジェクトの回転を取得および設定します。


Object obj = Model.find("Processor1");
obj.rotation = Vec3(0,0,0);
      		
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.size

readonly Vec3 size

説明

オブジェクトのサイズを取得および設定します。


Object obj = Model.find("Processor1");
int xSize = obj.size.x;
      		
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.stats

readonly stats

説明

オブジェクトの統計が利用可能になります。

TrackedVariableオブジェクトとしてのオブジェクトの統計が利用可能になります。このプロパティは、次のプロパティおよびメソッドを提供します。

input - 入力追跡変数を返します

output - 出力追跡変数を返します

content - 容量追跡変数を返します

staytime - 滞在時間追跡変数を返します

totalTravelDistance - タスク実行者の合計移動距離を返します

state(Variant& profile = nullvar) - 状態追跡変数を返します。プロファイルの引数が指定されていない、もしくは0の場合、デフォルトの状態プロファイルが返されます。他の状態プロファイルは、プロファイル番号またはプロファイル名を提供することで返されます。


// Get the input of a processor
Object obj = Model.find("Processor1");
double input = obj.stats.input.value;

// Get the state of a multiprocessor,
// using the multiprocessor state profile
Object obj =  Model.find("MultiProcessor1");
int curState = obj.stats.state(1).value;	
			
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.stopCount

readonly int stopCount

説明

オブジェクトの停止回数を取得します。

この数は、stopメソッドの呼び出しを使用して増加、resumeメソッドの呼び出しを使用して減少させます。

int numStops = current.stopCount;
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.applyProperties()

void applyProperties( string propertyName = "" )

パラメータ

propertyName オプション。変更された特定のプロパティの名前。各オブジェクトについての有効なプロパティの一覧は、オブジェクトのヘルプページにあります。たとえば、「固定リソースのプロパティ」を参照してください。

戻り値

void

説明

テンプレートインスタンスとオーバーライドへのプロパティ変更をコミットします。

このメソッドは、オブジェクトがテンプレートインスタンスであるか、テンプレートインスタンスを保有している場合のみ効果があります。オブジェクトのプロパティを直接変更した後で、テンプレートインスタンスやオーバーライドに変更を適用するために呼び出します。

このメソッド呼び出しは、渡される名前付きプロパティに影響し、何も渡されない場合はオブジェクトのすべてのプロパティに影響します。該当するプロパティに次の操作が行われます。

  1. オーバーライドの追加 - オブジェクトがテンプレートインスタンスの場合、オブジェクトのプロパティの値がオブジェクトのテンプレートの値と異なるかどうかをチェックします。異なる場合、そのプロパティをオーバーライドとしてアサートします。
  2. 継承インスタンスへの適用 - オブジェクトがテンプレートインスタンスを保有している場合、そのプロパティをオーバーライドしないすべてのテンプレートインスタンスに、同じプロパティ値を設定します。

setProperty()を使用してオブジェクトのプロパティを設定するときは、このメソッドを呼び出す必要はないことに注意してください。このメソッドは、applyProperties()を自動的に呼び出します。このメソッドを使用する必要があるのは、他の機構によってオブジェクトのプロパティを変更したときだけです。

queue.size.x = 5;
queue.applyProperties("Size");

上の例は、applyProperties()を呼び出す必要がある場合を示すものです。ここでは、setProperty()の代わりにObject.sizeを使用してオブジェクトのサイズを変更しています。このため、新しいプロパティ値が継承テンプレートインスタンスやオーバーライドに適用されるよう、applyProperties()を呼び出す必要があります。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.getLocation()

Vec3 getLocation( double xFactor , double yFactor , double zFactor )
Vec3 getLocation( Vec3 factors )

パラメータ

xFactor オブジェクト上で、位置が測定されるポイントのx値。オブジェクトのサイズに対する割合(0~1)として測定されます。
yFactor オブジェクト上で、位置が測定されるポイントのy値。オブジェクトのサイズに対する割合(0~1)として測定されます。
zFactor オブジェクト上で、位置が測定されるポイントのz値。オブジェクトのサイズに対する割合(0~1)として測定されます。
factors オブジェクト上で、位置が測定されるポイントを表すベクトル。オブジェクトのサイズに対する割合(0~1)として測定されます。

戻り値

Vec3 オブジェクトの場所を保持するベクトルです。

説明

オブジェクトの場所を取得します。

このコードは、オブジェクトの中心で測定した場所を取得します。

Vec3 centerLoc = obj.getLocation(0.5,0.5,0.5);
Vec3 centerLoc = obj.getLocation(Vec3(0.5,0.5,0.5));
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.getProperty()

Variant getProperty( string propertyName )

パラメータ

propertyName プロパティの名前。各オブジェクトについての有効なプロパティの一覧は、オブジェクトのヘルプページにあります。たとえば、「固定リソースのプロパティ」を参照してください。

戻り値

Variant

説明

オブジェクトのプロパティ値を取得します。

次のコードは、オブジェクトのMaxContentプロパティの値を取得します。

int maxContent = queue.getProperty("MaxContent");
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.getVariable()

Variant getVariable( string variableName )

パラメータ

variableName 変数名

戻り値

Variant 指定された変数の値。

説明

廃止されました。getProperty()を使用してください。オブジェクトの変数の値を取得します。

次のコードは、オブジェクトのmaxspeed変数の値を取得します。

double speed = obj.getVariable("maxspeed");
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.message()

Variant message( double delay = 0 , treenode fromObject = 0 , Variant msgparam1 = nullvar , Variant msgparam2 = nullvar , Variant msgparam3 = nullvar )

パラメータ

delay オプション。メッセージ実行までの遅延時間を指定します。-1の場合、メッセージは同時に送られます。0以上の場合、定義した遅延時間のイベントが作成されて、その遅延時間後にメッセージが実行されます。
fromObject オプション。メッセージを送っているオブジェクト。メッセージトリガーからアクセスできます。
msgparam1 オプション。メッセージの最初のパラメータを定義します。メッセージトリガーからmsgparam1としてアクセスできます。
msgparam2 オプション。メッセージの2番目のパラメータを定義します。メッセージトリガーからmsgparam2としてアクセスできます。
msgparam3 オプション。メッセージの3番目のパラメータを定義します。メッセージトリガーからmsgparam3としてアクセスできます。

戻り値

Variant メッセージが同時に送られた場合(delay = -1)、オブジェクトのメッセージトリガによる戻り値を返します。メッセージが非同時で送られた場合(delay >= 0)、呼び出しによってイベントリストに作成されたイベントノードへの参照が返されます。

説明

オブジェクトへメッセージを送ります。

以下の例では、delay 0秒、メッセージのfromObjectとしてのitemを持つメッセージがcurrentに送信されています。

current.message(0, item);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.resume()

void resume( int id , int stateProfile )

パラメータ

id オプション。停止リクエストを再開リクエストと照合する際に使用します。
stateProfile オプション。状態を記録する状態プロファイル。

戻り値

void

説明

オブジェクトをstop()実行前の状態に戻します。

オブジェクトに対して、stop()が呼び出される前に行っていた動作を再開するよう指示します。詳細については、stop()を参照してください。

current.resume(1);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.setLocation()

Object setLocation( double x , double y , double z )
Object setLocation( double x , double y , double z , double xFactor , double yFactor , double zFactor )
Object setLocation( Vec3 location , Vec3 factors )

パラメータ

x 目的とするxの位置。
y 目的とするyの位置。
z 目的とするzの位置。
xFactor オブジェクト上で、位置が測定されるポイントのx値。オブジェクトのサイズに対する割合(0~1)として測定されます。
yFactor オブジェクト上で、位置が測定されるポイントのy値。オブジェクトのサイズに対する割合(0~1)として測定されます。
zFactor オブジェクト上で、位置が測定されるポイントのz値。オブジェクトのサイズに対する割合(0~1)として測定されます。
location 目的とする位置を保持するベクトル。
factors オブジェクト上で、位置が測定されるポイントを表すベクトル。オブジェクトのサイズに対する割合(0~1)として測定されます。

戻り値

Object 平行移動したオブジェクト。

説明

オブジェクトの場所を設定します。

このコードはオブジェクトの中心を位置(0,0,0)に設定します。

obj.setLocation(0,0,0,0.5,0.5,0.5);
obj.setLocation(Vec3(0,0,0), Vec3(0.5,0.5,0.5));
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.setProperty()

void setProperty( string propertyName , Variant value )

パラメータ

propertyName プロパティの名前。各オブジェクトについての有効なプロパティの一覧は、オブジェクトのヘルプページにあります。たとえば、「固定リソースのプロパティ」を参照してください。
value 目的とするプロパティの値です。

戻り値

void

説明

オブジェクトのプロパティ値を設定します。

このメソッドがイベントを処理するモデルの一部として呼び出された場合、オブジェクトはプロパティの元の値を格納し、その値はモデルがリセットされた際に復元されます。

プロパティの値を設定してから、このメソッドは該当のプロパティについてapplyProperties()を呼び出し、テンプレートインスタンスやオーバーライドに変更を適用します。

queue.setProperty("MaxContent", 5);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.setRotation()

Object setRotation( double rx , double ry , double rz )
Object setRotation( Vec3 rotation )

パラメータ

rx x軸に関する目的とする回転。
ry y軸に関する目的とする回転。
rz z軸に関する目的とする回転。
rotation 目的とする回転値のベクトル。

戻り値

Object 回転されたオブジェクト。

説明

オブジェクトの回転を設定します。

obj.setRotation(0,0,0);
obj.setRotation(Vec3(0,0,0));
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.setSize()

Object setSize( double x , double y , double z )

パラメータ

x 目的とするxのサイズ。
y 目的とするyのサイズ。
z 目的とするzのサイズ。

戻り値

Object サイズ設定されたオブジェクト。

説明

オブジェクトのサイズを設定します。

obj.setSize(1,1,1);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.setState()

void setState( int state , int stateProfile )

パラメータ

state 目的とする状態。
stateProfile 目的とする状態プロファイル。

戻り値

void

説明

オブジェクトの状態を設定します。

オブジェクトの状態を状態番号に設定します。このメソッドが呼び出された場合、状態に関する統計は自動で更新されます。50個の状態が定義済みです。状態に対して定義済みの値およびその関連マクロは次のとおりです。

1 - STATE_IDLE
2 - STATE_PROCESSING
3 - STATE_BUSY
4 - STATE_BLOCKED
5 - STATE_GENERATING
6 - STATE_EMPTY
7 - STATE_COLLECTING
8 - STATE_RELEASING
9 - STATE_WAITING_FOR_OPERATOR
10 - STATE_WAITING_FOR_TRANSPORT
11 - STATE_BREAKDOWN
12 - STATE_SCHEDULED_DOWN
13 - STATE_CONVEYING
14 - STATE_TRAVEL_EMPTY
15 - STATE_TRAVEL_LOADED
16 - STATE_OFFSET_TRAVEL_EMPTY
17 - STATE_OFFSET_TRAVEL_LOADED
18 - STATE_LOADING
19 - STATE_UNLOADING
20 - STATE_DOWN
21 - STATE_SETUP
22 - STATE_UTILIZE
23 - STATE_FULL
24 - STATE_NOT_EMPTY
25 - STATE_FILLING
26 - STATE_STARVED
27 - STATE_MIXING
28 - STATE_FLOWING
29 - STATE_ALLOCATED_IDLE
30 - STATE_OFF_SHIFT
31 - STATE_CHANGE_OVER
32 - STATE_REPAIR
33 - STATE_MAINTENANCE
34 - STATE_LUNCH
35 - STATE_ON_BREAK
36 - STATE_SUSPEND
37 - STATE_AVAILABLE
38 - STATE_PREPROCESSING
39 - STATE_POSTPROCESSING
40 - STATE_INSPECTING
41 - STATE_OPERATING
42 - STATE_STANDBY
43 - STATE_PURGING
44 - STATE_CLEANING
45 - STATE_ACCELERATING
46 - STATE_MAXSPEED
47 - STATE_DECELERATING
48 - STATE_STOPPED
49 - STATE_WAITING
50 - STATE_ACCUMULATING


if (current.subnodes.length <= 1)
	current.setState(STATE_EMPTY);
			

このコードは、currentのコンテンツが1未満または1に等しい場合、currentに参照されるオブジェクトの状態を「empty」に設定します。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.setVariable()

void setVariable( string variableName , Variant value )

パラメータ

variableName 変数名。
value 目的とする変数値。

戻り値

void

説明

廃止されました。setProperty()を使用してください。オブジェクトの変数の値を設定します。

このメソッドがイベントを処理するモデルの一部として呼び出された場合、オブジェクトは変数の元の値を格納し、その値はモデルがリセットされた際に復元されます。

obj.setVariable("maxspeed", 5);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Object.stop()

void stop( int state , int id , int priority , int stateProfile )

パラメータ

state オブジェクトの次の状態。
id オプション。停止リクエストを再開リクエストと照合する際に使用します。
priority オプション。stop()呼び出し間のつながりを断つ際に使用します。
stateProfile オプション。状態を記録する状態プロファイル。

戻り値

void

説明

オブジェクトを停止してその状態を設定してから、resume()を待ちます。

オブジェクトに対して、現在行っている動作を停止し、指定された状態に移行して(指定されているなら状態プロファイルの状態に)、resume()が呼び出されるまで待つように通知します。stop()呼び出しは累積されます。すなわち、同じオブジェクトに対してstop()が2回呼び出されると、そのオブジェクトはresume()が同様に2回呼び出されるまで動作を再開しません。オブジェクトの停止は停止するオブジェクトのタイプにより異なります。

FixedResourceの場合、一般にイベントが無期限に遅延され、入力と出力が停止され、オブジェクトへ、およびオブジェクトからのあらゆる動作は停止されます。このため、TaskExecuterがオブジェクトへのロードやオブジェクトからのアンロードを試みるには、オブジェクトの再開まで待機する必要があります。

TaskExecuterの場合、イベントは遅延されませんが、TaskExecuter用に優先度100,000のプリエンプトのタスクシーケンスが作成され、その中に1つのTE_STOPタスクが含まれます。

同じオブジェクトに複数の停止リクエストが存在する場合、それぞれの停止リクエストの状態は記憶されないことに注意してください。オブジェクトがエンティティAにより状態12での停止を要求され、その後でエンティティBにより状態14での停止を要求された場合、オブジェクトは状態14に移行し、状態12は記憶されません。エンティティBがエンティティAより前にオブジェクトを再開させても、オブジェクトはすべての停止リクエストが再開されるまで状態14に維持されます。

パラメータidとpriorityはオプションで、前の段落に記載された問題を修正するために最近追加されたものです。これらのパラメータが指定されると、要求された停止の回数を増やすだけでなく、停止リクエストのレコードが保存されます。idは停止リクエストのキーと同様に扱われます。priorityは、オブジェクトが停止リクエストを優先度付けするために使用されます。たとえば、スケジュールされた停止状態用の停止リクエストと、故障状態用の停止リクエストが存在する場合、オブジェクトは理論的には同時に2つの状態に置かれるべきですが、FlexSimのオブジェクトは同時に1つの状態しかとれないため、priorityの値で判断され、priorityが最も高い停止リクエストの状態に移行します。

id値は、後でresume()呼び出しに追加されるid値と一致する必要があります。この値は、停止リクエストと、対応する再開リクエストを一致するために使用されます。たとえば、オブジェクトをスケジュールされた保守のため、id値1で停止した場合、スケジュールされた保守が完了したら、同じ1のid値でオブジェクトを再開する必要があります。

current.stop(STATE_CLEANING, 1);