暗黙変数
すべてのSFCオブジェクトは、実行時にステップおよびIECアクションのステータスを監視するための暗黙変数を提供します。これらの暗黙変数は、ステップおよびIECアクションごとに自動的に宣言されます。
暗黙変数は、ステップの場合はSFCStepType型、アクションの場合はSFCActionType型の構造体インスタンスです。変数名は、関連する要素の名前に対応します。たとえば、ステップ名がstep1のステップの場合はstep1です。構造体のコンポーネントは、ステップまたはアクションの現在の状態、およびアクティブなステップですでに経過した時間に関する情報を提供します。
ステップおよびアクションの状態
重要
上記の変数を使用して、ステップの特定のステータス値を強制的に設定し、ステップをアクティブ化することができます。ただし、これによってSFCチャートが不整合な状態や制御されない状態になる可能性があることに注意してください。
暗黙変数の宣言の構文:
<step name> : SFCStepType;
_<action name> : SFCActionType;TRUEステップ | |
|---|---|
| 現在のサイクルにおけるステップ状態を示します。
|
| 次のサイクルにおけるステップ状態を示します。
|
| ステップがアクティブ化されてから経過した時間を提供する変数です。 この情報はステップでのみ使用できます。時間は、ステップのプロパティで最小時間が定義されているかどうかに関係なく記録されます。 詳細については、以下を参照してください。SFCフラグ |
| 内部目的でのみ使用される変数です。 |
|
|
IECアクション | |
|---|---|
| 現在のサイクルにおけるアクション状態を示します。
|
|
|
暗黙変数:_MetaStep
SFC POUでプログラムされた要素のリンク リスト用の変数
重要
_MetaStep機能は、要素のリンクを実装するために多くの追加の暗黙的なコードを生成します。この機能は、本当に必要な場合にのみ有効にしてください。
暗黙変数_MetaStepは、SFCチャートの初期ステップに属する要素を識別します。_MetaStep機能が有効な場合、追加の暗黙変数が作成され、SFCチャート内の要素のリンク リストが生成されます。初期ステップ以降、すべてのトランジション、ステップ、およびジャンプは、他のISFCElementオブジェクト(IecSfc.library、>= V4.4.0.0)への参照によってリンクされます。
各ISFCElementは、インターフェースに応じて次のものを持ちます
先行要素
後続要素
名前
チェーン内の要素の数
ISFCElementオブジェクトの型によっては、追加の属性を持つより具体的なサブインターフェースが実装されている場合があります。
変数<pou name>._MetaStepがエントリー ポイントとして使用されます。IQueryInterface関数を使用すると、ISFC要素のリンク リスト内の先行要素および後続要素に関する情報を確認できます。
制限事項:この機能の現在のバージョンでは、SFCプログラム内のトランジションの名前は一意である必要があります。一意でない場合は警告が出力され、リンク リストの追加データは生成されません。
_MetaStep機能を有効にするには、次の手順を実行する必要があります。
プロジェクト情報ダイアログのプロパティタブで、ブール型プロパティ
UseMetaStepsEnabledをTRUEに設定します。この機能を必要とする各SFCオブジェクトについて、それぞれのプロパティダイアログのSFC 設定タブで、変数
SFCMetaStepsの使用を有効にします。
暗黙変数へのアクセス
アクセスの構文
POU内では、暗黙変数を直接割り当てます:
<variable name>:=<step name>.<implicit variable>または<variable name>:=_<action name>.<implicit variable>
status := step1._x;
インスタンスパスを持つ別の POU から:
<variable name> := <pou name>.<step name>.<implicit variable><variable name> := <pou name>._<action name>.<implicit variable>
status := SFC_prog.step1._x;
シンボルの生成
ステップまたはアクションのプロパティで、対応するステップ フラグまたはアクション フラグに対してシンボル定義を追加するかどうかを指定できます。これを行うには、プロパティビューのシンボル列で、目的のアクセス権を有効にします。