Skip to main content

安全関連機能ブロックの一般規則

これらのプログラミング ルールは、PLCopen の「安全関連機能ブロックの一般ルール」に対応しています。これは、PLCopen 準拠の機能ブロックに適用されます。

機能ブロックに特有のガイドライン

重要

PLCopen FB は、「単一呼び出し」が設定されているプログラムおよびファンクション ブロックでのみ使用できます。

デフォルト信号

すべての安全指向のブールI/O信号には、安全値があらかじめ設定されている。 FALSE

信号レベル

価値 SAFEBOOL 以下のようにのみ使用できます。

  • 0: システム出力に定義された安全性に対応

  • 1: システムの安全面が正しく動作しており、例えば正常な動作が可能であることを意味します。

これは、デフォルト値のルールやすべての出力が次のように設定されていることなど、IEC 61131環境の機能を反映しています。 0 エラーの場合。

出力

各サイクルですべての出力を割り当てる必要があります。

I/Oパラメータが見つかりません

パラメータの欠落は許容されます。デフォルト値が適用されます。これらのデフォルト値は、いかなる状況でも安全でない状態につながることはありません。デフォルト値とその属性(Variable または Constant)は対応するFBで指定されます。

起動時の動作

開始時に、出力はデフォルト値に設定されます。最初の FB 呼び出し後、出力は有効になります。一貫した起動動作 (コールド スタート) があります。

タイミング図

機能ブロックに表示されているタイミング図は、説明のみを目的としています。正確な時間動作を表すものではありません。正確な時間動作は実装によって異なります。

エラー処理と診断

すべての安全指向機能ブロックには、エラー関連の出力が 2 つあります。 Error そして DiagCodeこれらは、システム レベルまたはハードウェア レベルでの診断ではなく、ユーザー レベルでの診断のために使用されます。

安全重視の環境に対する規定では、安全重視の機能の有効化が最優先され、機能プログラムまたはユーザー インターフェイスのいずれかで、その後の有効化の診断に十分な時間があります。

一般的な入力パラメータ

名前

データタイプ

説明

Activate

BOOL

FBの有効化のための変数または定数

初期値: FALSE

このパラメータは、関連する安全装置の状態(アクティブまたは非アクティブ)を表す変数にリンクできます。これにより、装置が非アクティブ化されたときに無関係な診断データが生成されないことが保証されます。

FALSE: すべての出力変数は初期値に設定されます。

デバイスが接続されていない場合は、静的 TRUE 信号を割り当てる必要があります。

S_<安全重視の入力名>

SAFExxxx

入力のすべての名前 SAFExxxx タイプは S_

割り当てることができるのは変数のみです。

S_StartReset

SAFEBOOL

変数または定数

S-PLC が起動したとき (ウォームまたはコールド) に POU を自動的に起動するようにします。

FALSE (=初期値):自動スタートは無効、手動スタートは Reset 入力。

TRUE: 自動スタート

安全上の注意事項 S_StartReset 留意する必要がある。

S_AutoReset

SAFEBOOL

変数または定数

POUの自動再起動の有効化

FALSE (= 初期値): 自動再起動は無効、入力リセットによる手動起動。

TRUE: 自動再起動

安全上の注意事項 S_AutoReset 留意する必要がある。

Reset

BOOL

変数

初期値: FALSE

機能に応じて、この入力はさまざまな目的で使用できます。

  • ステートマシンのリセットと関連するエラーおよび状態メッセージは、 DiagCodeエラーの原因が修正された場合、このリセット動作はエラー リセットとして設計されています。

  • オペレータによる再起動ロックの手動リセット。このリセットは機能リセットとして設計されています。

  • その他の FB 固有のリセット関数。

この機能は、信号スイッチから FALSETRUE静的 TRUE シグナルはそれ以上のアクションを生成しませんが、一部の POU ではエラーとして検出される可能性があります。

安全上の注意事項 Reset 遵守しなければなりません。

各POUごとに該当する意味を記載します。

安全上の注意事項 S_StartReset

S_StartReset

この自動起動は、S-PLC の起動時に危険が発生しないことが保証されている場合にのみアクティブにする必要があります。したがって、機能ブロックの「自動起動」機能を使用する場合は、予期しない (または意図しない) 起動が発生しないようにするための他のシステムまたはアプリケーション対策を実装する必要があります。

注意

入力が変数にリンクされている場合(そして FALSE)の場合は、追加の検証基準を定義する必要があります。

安全上の注意事項 S_AutoReset

注意

自動再起動は、緊急停止ボタンを放した後に機械が再起動する可能性がないことが保証されている場合にのみアクティブにする必要があります。したがって、機能ブロックの「自動再起動」機能を使用する場合は、機械の予期しない(または意図しない)再起動が発生しないようにするための他のシステムまたはアプリケーション対策を実装する必要があります。

注意

入力が変数にリンクされている場合(そして FALSE)の場合は、追加の検証基準を定義する必要があります。

安全上の注意事項 Reset

注意

安全要件に応じて、 SAFEBOOL 代わりに接続する必要があります BOOL

一般的な出力パラメータ

名前

データタイプ

説明

Ready

BOOL

TRUE: POU がアクティブであり、出力結果が有効であることを示します (安全リレーの「POWER」LED と同じ)。

FALSE: POU はアクティブではなく、プログラムは実行されません。デバッグ モードや追加の POU をアクティブ化および非アクティブ化する場合に役立ちます。また、機能プログラムでさらに処理する場合にも役立ちます。

S_<安全重視の出力名>

SAFExxxx

すべての名前 SAFExxxx タイプは S_

Error

BOOL

エラーフラグ(安全リレーの「K1/K2」LEDと同じ)。

TRUE: エラーが発生し、POU がエラー状態にあることを示します。関連するエラー状態は DiagCode 出力に表示されます。

FALSE: エラーはなく、POUは別の状態にあります。これは、 DiagCode 出力。

これはデバッグ モードだけでなく、機能プログラムでのさらなる処理にも役立ちます。

DiagCode

WORD

診断レジストリ。

すべてのPOU州(ActiveNot Active、 そして Error)がこのレジストリによってマッピングされます。同時に表示されるのは一貫性のあるコードのみです。複数のエラーが発生した場合は、 DiagCode 出力には最初に検出されたエラーが表示されます。

これはデバッグ モードだけでなく、機能プログラムでのさらなる処理にも役立ちます。

診断コード

透明で統一された診断コンセプトがすべてのブロックの基礎となります。これにより、統一された診断情報がエンドユーザーに提供されます。 DiagCodeエンドユーザーの実装に関係なく、エラーがなければブロックの内部状態(ステートマシン)が表示されます。エラーがあればバイナリ出力(Error)内部または外部ブロックエラーの詳細については、 DiagCodeブロックはさまざまな方法でリセットする必要があります Reset 入力。

9. 一般的な診断コードの範囲

DiagCode

説明

0000_0000_0000_0000ビン

POU がアクティブ化されていないか、安全 CPU が停止しています。

10xx_xxxx_xxxx_xxxxビン

アクティブ化された POU がエラーなしで動作状態にあることを示します。

X = POU固有のコード

11xx_xxxx_xxxx_xxxxビン

アクティブ化された POU がエラー状態であることを示します。

X = POU固有のコード



10. システム固有またはデバイス固有のコード

DiagCode

説明

0xxx_xxxx_xxxx_xxxxビン

X = システム固有またはデバイス固有のメッセージ。この情報には、システムまたはデバイスに関する診断情報が含まれます。

注記: 0000hex 予約されています。



11. 一般的な診断コード

DiagCode

説明

0000_0000_0000_0000ビン

000016進数

POU はアクティブ化されていません。このコードはアイドル状態を表します。一般的な例として、I/O 設定は次のようになります。

Activate = FALSE

S_In = FALSE or TRUE

Ready = FALSE

Error = FALSE

S_Out = FALSE

1000_0000_0000_0000ビン

800016進数

機能ブロックはエラーや安全出力を設定するその他の条件なしにアクティブ化されます。 FALSEこれは安全出力が S_OutTRUE 通常の操作では、一般的な例として、入力と出力は次のように設定できます。

Activate = TRUE

S_In = TRUE

Ready = TRUE

Error = FALSE

S_Out = TRUE

1000_0000_0000_0001ビン

800116進数

ブロックによってアクティベーションが検出され、ブロックがアクティブになりました。ただし、 S_Out 安全出力は FALSEこのコードは、動作モードの初期状態を示します。一般的な例として、入力と出力は次のように設定できます。

Activate = TRUE

S_In = FALSE or TRUE

Ready = TRUE

Error = FALSE

S_Out = FALSE

1000_0000_0000-0010ビン

800216進数

アクティブ化されたPOUは安全要求を検出します(例: S_In = FALSE安全出力は無効になります(S_Out = FALSE一般的な例として、入力と出力は次のように設定できます。

Activate = TRUE

S_IN = FALSE

Ready = TRUE

Error = FALSE

S_Out = FALSE

1000_0000_0000_0011ビン

800316進数

アクティブPOUの安全出力は安全要求によって非アクティブ化されました。安全要求はキャンセルされましたが、安全出力はそのままです。 FALSE リセット条件が検出されるまで、安全出力は S_Out = FALSE一般的な例として、入力と出力は次のように設定できます。

Activate = TRUE

S_In = FALSE => TRUE (静的に続く TRUE

Ready = TRUE

Error = FALSE

S_Out = FALSE



一般的な状態チャート

50. 安全FBの一般的な状態チャート
安全FBの一般的な状態チャート


. 一般的な状態チャートの説明:
  • 状態と遷移の概要を示します。一部の遷移には名前が付けられていません。これは、それらの遷移が FB 固有であり、それぞれの FB に割り当てる必要があることを意味します。

  • 図には 3 つの領域が示されています。

    • 上部のエリアでは、機能ブロックはアクティブではなく、安全な状態です(安全出力は FALSE)。

    • 中央のエリアでは、機能ブロックはアクティブで安全な状態です(安全出力は FALSE)。

    • 下部のエリアでは、機能ブロックは通常の状態(安全出力は TRUE)。

  • ステータス図の最初の水平線は、非アクティブな FB からアクティブな FB への移行を示しています。

  • 2 番目の水平線は、安全でない状態から安全な状態への移行を示します。

  • 可能な並列遷移の優先順位は数字で示されます(最高優先順位 0)。

  • 状態には、状態名と 16 進数の診断コードが含まれます。

  • 条件 ORAND、 そして XOR 論理演算子として使用され、 NOT 否定として。

  • FBの説明では、開始状態は Idle、個々の動作状態への遷移は、 Init 州。

  • Activate = FALSE 各状態から直接 Idle 州 (0 = 最高の優先度は Activate = FALSE)。概要をわかりやすくするために、これらの遷移は各ステータス図には表示されません。これは各ステータス図の脚注として記載されています。

  • 概要では、出力の設定は状態チャートで定義されていません。「FB の出力状態 (出力)」の情報を含む明示的な真理値表は、FB 固有のエラー コードと統計コードを含む各 FB 仕様の一部です。

12. FB固有のエラーコード

DiagCode

ステータス名

ステータスの説明と出力設定

Cxxx

Error

Ready = TRUE

S_Out = FALSE

Error = TRUE



13. FB固有のステータスコード(エラーなし)

DiagCode

ステータス名

ステータスの説明と出力設定

0000

Idle

Ready = FALSE

S_Out = FALSE

Error = FALSE

8001

Init 動作モードの状態

Ready = TRUE

S_Out = FALSE

Error = FALSE

8xxx

動作モードのすべての状態 S_Out = FALSE

Ready = TRUE

S_Out = FALSE

Error = FALSE

8000

動作モードのすべての状態 S_Out = TRUE

Ready = TRUE

S_Out = TRUE

Error = FALSE