AGV

説明

AGV移動に関連するデータおよびメソッドが利用可能になります。

AGVクラスは、AGVネットワークに接続されたタスク実行者に関連付けられています。AGVはタスク実行者オブジェクトと同じではありません。言い換えると、AGVをタスク実行者自体に設定することはできません。

TaskExecuter te = current;
AGV agv = te; // RUN-TIME ERROR

代わりに、AGVは、タスク実行者と同一ではなく、タスク実行者に関連付けられます。特定のタスク実行者のAGVにアクセスするには、AGV()コンストラクターを使用します。

とはいえ、AGVクラスは実際にはtreenodeに格納されているため、treenodeとの間でキャストでき、as()キャストメソッドを使用してVariantなどとして渡すことができます。

return AGV(current).as(treenode);

さらに、トラブルシューティングの際、モデルの実行中にこの構造を確認したい場合、ツリー内のMODEL:/AGVNetwork>variables/agvs/<AGVNAME>でこの構造を確認できます。<AGVNAME>は確認したいAGVの名前です。

プロパティ

accumAheadAGV 集積パス上にある次のAGVを取得します。
allocationPoints AGVの未割り当ての割り当てポイントの現在のセットを表すAGV.AllocationPointの配列。
ampHours AGVのバッテリーに残っているアンペア時間を数値で取得します。
batteryLevel (残りアンペア時間)/(合計アンペア時間)の割合をパーセント単位で取得もしくは設定します。
currentCP このAGVの現在のコントロールポイントを取得もしくは設定します。
currentTravelDist AGVの現在の移動距離を取得します。
currentTravelPathSection AGVが現在移動している移動パスセクションを取得します。
destination AGVの現在目的地を取得します。
destinationCP AGVの現在目的地のコントロールポイントを取得します。
finalDestinationCP AGVの最終目的地のコントロールポイントを取得します。
isOrientedPathForward AGVがパス上で「前」を向いているかどうかを取得または設定します。
object このAGVでオブジェクトメソッドとプロパティが利用可能になります。
originCP AGVの元のコントロールポイントを取得します。
overflowCP AGVがトレーラーを押している場合、「オーバーフロー」するコントロールポイントを取得するか、そのようなコントロールポイントを設定します。
proximityState AGVの現在の近接状態を取得します。
recentCP 最後にagvのcurrentCPであったコントロールポイントを取得します。
resetCP モデルがリセットされるときにAGVの接続先であるコントロールポイントを取得するか、AGVを接続するコントロールポイントを設定します。
speed AGVの現在の速度を取得します。
te このAGVでTaskExecuterメソッドとプロパティが利用可能になります。
trailers このAGVにアタッチされている一連のトレーラーで構成されているAGV.Trailerの配列です。
travelPath AGVの現在の移動オペレーションの移動パスを示すAGV.TravelPathSectionの配列。
traversalPoints AGVに予定されている「通過」の現在のセットを表すAGV.AllocationPointの配列。

メソッド

addAllocationPoint AGVのallocationPointsリストに新しい割り当てポイントを追加します。
attachTrailer 特定のオブジェクトをAGV上のトレーラーとしてアタッチします。
coupleTrain このAGVに対してトレーラーの輸送列をアタッチし、ネットワークジオメトリに基づいてギャップなどを自動計算します。
detachTrailer AGVから特定のトレーラーをデタッチします。
getTrailer ahead/behindパラメータに基づく特定のトレーラーを取得し、AGVドライバに対するランクを取得します。
redirect 指定されたモードに応じて、AGVを新しい目的地にリダイレクトします。
setDestination 目的地コントロールポイントを設定します。
startRecharge AGVのバッテリーの充電を開始します。
stopRecharge AGVのバッテリーの充電を停止します。
uncoupleTrain このAGVからトレーラーの輸送列をデタッチし、独立したAGV輸送列を作成します。

コンストラクター

AGV 指定したTaskExecuterに基づいて、AGVオブジェクトを構築します。

詳細

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

AGV.accumAheadAGV

readonly AGV accumAheadAGV

説明

集積パス上にある次のAGVを取得します。

現在のAGVより前にAGVがない場合や、パスタイプが集積でない場合、このプロパティはnull値を返します。
AGV agv2; 
if (agv1.accumAheadAGV) 
	agv2 = agv1.accumAheadAGV;
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

AGV.allocationPoints

readonly allocationPoints

説明

AGVの未割り当ての割り当てポイントの現在のセットを表すAGV.AllocationPointの配列。

トラブルシューティングの際、モデルの実行中にこの構造を確認したい場合、ツリー内のMODEL:/AGVNetwork>variables/agvs/<AGVNAME>/allocationPointsでこの構造を確認できます。<AGVNAME>は確認したいAGVの名前です。

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

AGV.ampHours

readonly double ampHours

説明

AGVのバッテリーに残っているアンペア時間を数値で取得します。

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

AGV.batteryLevel

double batteryLevel

説明

(残りアンペア時間)/(合計アンペア時間)の割合をパーセント単位で取得もしくは設定します。

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

AGV.currentCP

Object currentCP

説明

このAGVの現在のコントロールポイントを取得もしくは設定します。

agvが現在コントロールポイント上に存在しない場合、nullとなります。

Object cp = agv.currentCP;
agv.currentCP = Model.find("MyCP");
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

AGV.currentTravelDist

readonly double currentTravelDist

説明

AGVの現在の移動距離を取得します。

AGVの現在の移動オペレーションにおける現在の移動距離です。AGVは、移動パスのセクションごとに累積移動距離を記録します。各移動オペレーションは移動距離0で始まり、パスに沿って移動するにつれ、移動距離は増えます。

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

AGV.currentTravelPathSection

readonly AGV.TravelPathSection currentTravelPathSection

説明

AGVが現在移動している移動パスセクションを取得します。

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

AGV.destination

readonly Object destination

説明

AGVの現在目的地を取得します。

目的地がコントロールポイントに接続された固定リソースの場合、このプロパティはその固定リソースを返します。Object destination = agv.destination;
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

AGV.destinationCP

readonly Object destinationCP

説明

AGVの現在目的地のコントロールポイントを取得します。

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

AGV.finalDestinationCP

readonly Object finalDestinationCP

説明

AGVの最終目的地のコントロールポイントを取得します。

最終目的地のコントロールポイントは、REDIRECT_AS_FINALを使用してredirect()が呼び出された場合には変更される場合があります。Object finalDest = agv.finalDestinationCP;
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

AGV.isOrientedPathForward

int isOrientedPathForward

説明

AGVがパス上で「前」を向いているかどうかを取得または設定します。

AGVがパス上にある間にこのプロパティを取得できます。このプロパティは、AGVが前を向いているかどうかを確認します。AGVが前を向いている場合は1を返し、後ろを向いている場合は0を返します。AGVの移動中にこのプロパティを設定することはできません。


			AGV agv = AGV(Model.find("TaskExecuter1"));
			return agv.isOrientedPathForward;
		
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

AGV.object

readonly Object object

説明

このAGVでオブジェクトメソッドとプロパティが利用可能になります。

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

AGV.originCP

readonly Object originCP

説明

AGVの元のコントロールポイントを取得します。

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

AGV.overflowCP

treenode overflowCP

説明

AGVがトレーラーを押している場合、「オーバーフロー」するコントロールポイントを取得するか、そのようなコントロールポイントを設定します。

一般的には、AGVがトレーラーを押している場合でのみ必要です。トレーラーを押している場合、これらのトレーラーはAGVの予定目的地を越えて押されることになります。そのため、overflowCPはAGVのトレーラーが「オーバーフロー」すべきAGVパスネットワーク上のポイントを定義します。

overflowCPの制御はユーザーによってのみ行われます。モデルがリセットされた場合のみ、自動でリセットされます。そのため、このプロパティを設定する場合、適用可能な動作を完了した後でこのプロパティを0にリセットする必要があります。適用可能な移動動作の後でリセットしなかった場合、異常なAGVパス移動動作が発生する恐れがあります。

agv.overflowCP = Model.find("ControlPoint5");
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

AGV.proximityState

readonly int proximityState

説明

AGVの現在の近接状態を取得します。

0は制約がないことを示します。1はAGVがその前方に別のAGVがあるため停止したことを示します。
if (agv.proximityState) {
// handle a stopped agv
...
}
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

AGV.recentCP

Object recentCP

説明

最後にagvのcurrentCPであったコントロールポイントを取得します。

このプロパティは、agvが最後のcurrentCPを超えて移動した(したがってcurrentCPがnull)状態でも、最後のコントロールポイントへのアクセスを可能にし続けたい場合に便利です。

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

AGV.resetCP

Object resetCP

説明

モデルがリセットされるときにAGVの接続先であるコントロールポイントを取得するか、AGVを接続するコントロールポイントを設定します。

Object cp = agv.resetCP;
agv.resetCP = Model.find("MyCP");
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

AGV.speed

readonly double speed

説明

AGVの現在の速度を取得します。

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

AGV.te

readonly TaskExecuter te

説明

このAGVでTaskExecuterメソッドとプロパティが利用可能になります。

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

AGV.trailers

readonly trailers

説明

このAGVにアタッチされている一連のトレーラーで構成されているAGV.Trailerの配列です。

トレーラーは前方から後方に向けて順序付けされています。言い換えると、最前列のトレーラーが

agv.trailers[1]
になり、最後列のトレーラーが
agv.trailers[agv.trailers.length]
.

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

AGV.travelPath

readonly travelPath

説明

AGVの現在の移動オペレーションの移動パスを示すAGV.TravelPathSectionの配列。

トラブルシューティングの際、モデルの実行中にこの構造を確認したい場合、ツリー内のMODEL:/AGVNetwork>variables/agvs/<AGVNAME>/travelPathでこの構造を確認できます。<AGVNAME>は確認したいAGVの名前です。

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

AGV.traversalPoints

readonly traversalPoints

説明

AGVに予定されている「通過」の現在のセットを表すAGV.AllocationPointの配列。

FlexScript APIの目的でのtraversalPointsは、割り当てが行われているものの割り当て解除は行われていない割り当てポイントのセットです。つまり、AGVの現在の割り当てを示します。詳細については、「AGV.TraversalPoint」を参照してください。

トラブルシューティングの際、モデルの実行中にこの構造を確認したい場合、ツリー内のMODEL:/AGVNetwork>variables/agvs/<AGVNAME>/traversalPointsでこの構造を確認できます。<AGVNAME>は確認したいAGVの名前です。

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

AGV.addAllocationPoint()

AGV.AllocationPoint addAllocationPoint( AGV.AllocatableObject object , double stopDist , double deallocDist , double arrivalDist )

パラメータ

object 割り当てるオブジェクト。
deallocDist 割り当てポイントのstopDist
deallocDist 割り当てポイントのtraversalDist。つまり、オブジェクトの割り当て解除を行うポイントです。
arrivalDist 割り当てポイントのarrivalDist

説明

AGVのallocationPointsリストに新しい割り当てポイントを追加します。

一般に、AGVのデフォルトの動作では、割り当てポイントがAGVの移動パスの一部として正しく追加されるため、通常はこのメソッドを使用する必要はありません。ただし、手動による割り当て追加が役立つケースもあります。たとえば、AGVの特定の空間構成が原因で移動パス上に理論上存在しないポイントを割り当てなければならないケースです。AGVの一部が本体から「はみ出し」、他のパスに侵入している場合、このAGVが他のAGVと衝突するのを回避するために、他のパス上の割り当てポイントを追加して、この状態を解決することがあります。

このメソッドは、AGVの移動オペレーションの定義された時間にのみ呼び出す必要があります。具体的に言うと、OnBuildTravelPathイベントが起動された後(またはこのトリガーの一部として)、かつ、OnPreAllocateの前に呼び出す必要があります。その他の時間に呼び出す場合、動作は保証されません。

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

AGV.attachTrailer()

attachTrailer( treenode trailer , double gap , int behind , int detachRule )

パラメータ

trailer AGVにけん引されるオブジェクト
gap 次のトレーラーまたはAGVからのトレーラーの距離
behind トレーラーの位置を設定します。0または1に設定でき、0は前方、1は後方を示します。
detachRule AGVのデタッチモードを設定します。0または1に設定でき、0は手動、1は自動を示します。

説明

特定のオブジェクトをAGV上のトレーラーとしてアタッチします。

トレーラーを手動デタッチモードでアタッチする場合、トレーラーのデタッチにはdetachTrailer()を呼び出す必要があります。

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

AGV.coupleTrain()

coupleTrain( treenode trailer )

パラメータ

trailer AGVに結合されるオブジェクトです。トレーラー自体がAGVであるか、AGVのトレーラーである場合、AGV輸送列全体がアタッチされます。

説明

このAGVに対してトレーラーの輸送列をアタッチし、ネットワークジオメトリに基づいてギャップなどを自動計算します。

coupleTrain()は、次に示すの主な違いを除けばattachTrailer()と同様です。

  • attachTrailer()がAGVに単一のトレーラーをアタッチする一方で、coupleTrain()は他のAGV輸送列の一部であるトレーラーをすべてアタッチします(そのような輸送列があれば)。
  • attachTrailer()ではトレーラーを前方と後方のどちらにアタッチすべきかやギャップ距離などのパラメータを定義する必要がありますが、coupleTrain()では反対に、それらのパラメータをAGVパスネットワークのトレーラー/輸送列の位置に基づいて自動で決定します。

トレーラーをAGVの輸送列に結合する際には、2通りのシナリオが想定されます。各シナリオは、次のように輸送列の結合に関する異なるロジックに影響を与えます。

  1. トレーラーが独立オブジェクトである場合 - トレーラーが他のAGV輸送列と関連付けられていない場合、AGVは単純な空間近接性を分析することでトレーラーを結合すべき場所を判断します。トレーラーの位置を取得して、その位置がAGVの前方と後方のどちらかを判断します。その後、その判断に基づいて空間近接性を再分析することで、トレーラーとAGVに関連付けられた最前列/最後列トレーラー間のギャップを決定します。さらに、トレーラーと関連付けられたAGV輸送列がないため、そのトレーラーをAGVにのみ結合して、他のオブジェクトには結合しません。
  2. トレーラー自体が他のAGVであるか、他のAGVのトレーラーである場合 - トレーラーが他のAGVの一部である場合、AGVはAGVパスネットワーク上の他のAGVとの自身の相対的な位置を分析することで結合パラメータを判断します。各AGVの終端間でパスネットワーク距離分析を行い、導き出した輸送列の終端間の最短パスを通して輸送列を結合することで、前方/後方属性やギャップなどを判断します。このアルゴリズムでは、輸送列方向のスイッチを必要としない1つ以上のパスを通じて、AGV終端同士はお互いに到達可能であると想定されています。言い換えると、ネットワーク上における輸送列のお互いへの近接性は、たとえば実際の状況でどのように輸送列を結合することを望むかといったように、「近くて直感的」である必要があります。異常なパスジオメトリで結合することは特定できない動作を引き起こします。

このメソッドをuncoupleTrain()と組み合わせて使用すると、操車場における車両の連結と非連結をシミュレートすることができます。

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

AGV.detachTrailer()

detachTrailer( treenode trailer )

パラメータ

trailer AGVからデタッチするトレーラー

説明

AGVから特定のトレーラーをデタッチします。

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

AGV.getTrailer()

AGV.Trailer getTrailer( int isBehind , int rankFromDriver )

パラメータ

isBehind AGVの後方にあるトレーラーにアクセスしたい場合は1を、AGVの前方にあるトレーラーにアクセスしたい場合は0を指定します。
rankFromDriver 1から始まる、AGVドライバからのトレーラーランクです。

説明

ahead/behindパラメータに基づく特定のトレーラーを取得し、AGVドライバに対するランクを取得します。

Object trailer = agv.getTrailer(1, 2).object;
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

AGV.redirect()

redirect( Object newDest , int mode )

パラメータ

newDest AGVが移動する新しい目的地
mode リダイレクト時に行うことを決定します。次の4つの値の1つを指定できます。

REDIRECT_AND_WAIT - 到着前にリダイレクトされていない場合、AGVはリダイレクトされるまで目的地で待機します。
REDIRECT_AS_FINAL - 目的地がAGVの新しい最終目的地になります。
REDIRECT_AND_CONTINUE_ON_ARRIVAL - AGVは中間目的地に到着した後で、最終目的地に移動を続けます。
REDIRECT_AND_CONTINUE_ON_PRE_ARRIVAL - AGVは中間目的地に事前に到着した後で、最終目的地に移動を続けます(減速して停止しません)。

説明

指定されたモードに応じて、AGVを新しい目的地にリダイレクトします。

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

AGV.setDestination()

void setDestination( Object controlPoint , double pathOffset = 0 , Object relativeToTrailer = 0 , Variant agvBodyOffset = 0 )

パラメータ

controlPoint 目的地として設定するコントロールポイント。
pathOffset コントロールポイントから目的地までのパス沿いのオフセット距離。
relativeToTrailer 目的地をトレーラー相対にします。
agvBodyOffset 本体からのオフセット量、つまり、AGV.BodyOffsetの列挙値のいずれかを指定します。これは、2つの要素から成る配列の可能性もあります。最初の要素はAGV.BodyOffset列挙値のいずれかであり、第2の要素は追加のオフセット量です。

説明

目的地コントロールポイントを設定します。

agv.setDestination(Model.find("ControlPoint5"), 0, 0, AGV.BodyOffset.TrailerHeadEdge);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

AGV.startRecharge()

double startRecharge( )

戻り値

double 充電の完了にかかる時間

説明

AGVのバッテリーの充電を開始します。

AGVタイプで定義されたレートでバッテリーを充電します。バッテリーの充電が完了すると、充電動作は停止します。

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

AGV.stopRecharge()

void stopRecharge( )

説明

AGVのバッテリーの充電を停止します。

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

AGV.uncoupleTrain()

uncoupleTrain( treenode trailer , treenode newDriver = 0 )

パラメータ

trailer 輸送列から結合を解除されるトレーラーです。
newDriver 新しい「ドライバ」AGVになるオブジェクトです。このオブジェクトにAGVインスタンスがまだ関連付けられていない場合、AGVが作成されます。newDriverがパラメータとして渡されていないか、0である場合、最初のトレーラーパラメータが新しいドライバになります。

新しいドライバがTaskExecuterでない場合、そのドライバはパスネットワーク上のAGV輸送列の場所を保存するAGVデータだけを格納します。TaskExecuterとは異なり、オブジェクト移動タスクを付与することはできません。

説明

このAGVからトレーラーの輸送列をデタッチし、独立したAGV輸送列を作成します。

AGV(current).uncoupleTrain(AGV(current).trailers[1].object);

このメソッドをcoupleTrain()と組み合わせて使用すると、操車場における車両の連結と非連結をシミュレートすることができます。

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

AGV コンストラクター

AGV( treenode te , int assert = 0 )

パラメータ

te AGVネットワークにAGVトラベラーとして接続されるTaskExecuterです。
assert 1の場合、まだAGVネットワークに接続されていないタスク実行者は接続され、関連するAGVオブジェクトが作成されます。

戻り値

AGV AGVオブジェクト

説明

指定したTaskExecuterに基づいて、AGVオブジェクトを構築します。

AGVオブジェクトは、このメソッドの呼び出しでのみアクセスできます。タスク実行者から直接キャストするのは正しくありません。
AGV agv = AGV(te); // correct
AGV agv = te; // incorrect