PresenceAlarm
見張り中に人が残っているときに警報を出すマクロコンポーネントです(置き去りの警報)。Hi_Link_LD2410C が解読したターゲットの状態を使います。
処理内容
- Condition_count(RTMaps の Condition)が、条件 (a != 0) * ((s >= 1 && s <= 3) * result + 1) でサンプル数を数えます。monitoring_switch が 0 の間は 0、見張り中で人がいないときは 1、人がいる状態(target_state が 1〜3)が n サンプル続くと n + 1 になります。
- Condition_alarm が、条件 c != 0 && (result != 0 || c > 200) で警報を保持します。数が 200 サンプル(センサの報告の周期 約 10 Hz で約 20 秒)を超えると警報が出て、monitoring_switch が 0 に戻るまで続きます。
- どちらの Condition も、入力が届くたびに評価され(Synchro tolerance = -1)、毎回条件の値を出力します。
使い方
- Hi_Link_LD2410C.target_state → target_state と、「このあとは誰もいないはず」を表す 0/1 のスイッチの信号(施錠、扉の閉のスイッチ、イグニッションのオフ、作業の終わり。試すときは Bi-state button)→ monitoring_switch をつなぎます。alarm は LED、ブザー、記録などにつなぎます。
- 見張りを始めたあとに検出の範囲から出た人は、センサの無人の時間(既定 5 秒)のあとに「いない」になり、数が 1 に戻ります。そのため、出ていく時間と無人の時間の和が約 20 秒より短ければ警報は出ません。残っている人は(静止していても、呼吸で検出されて)警報になります。
- SMSL_BasicToolkit_Macros.rtmc で定義しています。
データ形式
- 入力・出力:Integer32 のスカラー。評価ごとに1サンプルを出力します。
注意事項
- 時間はサンプル数で数えるので、センサの報告の周期が変わると警報までの時間も変わります。閾値(200 サンプル)は Condition_alarm の条件の中にあります。マクロにプロパティはないので、変えるときはマクロ(.rtmc)を編集してください。
- target_state の 4〜6(背景ノイズの検出)は「いない」として扱います。
- センサの報告が止まると出力も止まり、最後の値のままになります。
- 安全のための装置ではありません(機能安全の認証はありません)。人を守る用途では、認証されたセンサの補助としてだけ使ってください。
出力
| 名前 | 説明 |
|---|---|
alarm | 警報:見張り中に人がいる状態が 200 サンプルを超えて続くと 1 になり、monitoring_switch が 0 に戻るまで保持します。それ以外は 0。 型: Integer32 |
monitor_count | 数:0 = 見張りでない、1 = 見張り中で人がいない、n + 1 = 人がいる状態が n サンプル続いた。 型: Integer32 |
入力
| 名前 | 説明 |
|---|---|
monitoring_switch | 見張りのスイッチ:0 以外(1)= オン、0 = オフ。オフにすると数と警報が戻ります。 型: Integer32 |
target_state | Hi_Link_LD2410C のターゲットの状態:0 なし、1 移動、2 静止、3 両方(4〜6:背景ノイズの検出。「いない」として扱います)。 型: Integer32 |
RTMaps ツールキット ドキュメント