Frequently Asked Question

Video 2.4: Semi-automated testing in HIL SCADA [Japanese transcripts]
Last Updated 2 years ago


もし日本語字幕が自動で表示されない場合はブラウザのシークレットモードをお試しください。

キーワードの検索は "Ctrl + F" でブラウザの検索機能をご使用ください

ビデオのタイムスタンプに直接飛べるリンクが必要な場合 このガイドに従ってください

このビデオはお役に立てたでしょうか?HIL Academyの無料のHIL Specialistコースを受講してさらに理解を深めてみませんか?

もしこのビデオをあなたの母国語への翻訳するのに協力してくださる場合、我々までご連絡 ください

TRANSCRIPT

00:00:02

HIL SCADAのより高度な機能を紹介します

00:00:08

これらの機能はSCADA APIに関連するもので半自動でテストを行うことができます

00:00:13

このセッションでは相の断線とIGBT故障の2種類の故障をシミュレートします

00:00:19

これらの故障は両方ともあらかじめ設定された期間実行されます

00:00:23

またアクションを実行するためのSCADA APIコマンドを使用してこれらの過渡現象をキャプチャしてみましょう

00:00:30

これらのアクションはキャプチャハンドラーを使用して実行されますモジュール 2.3 で作成したモデルを引き続き使用します

00:00:37

まずHIL SCADAでPanel initializationを開きグローバル変数を定義しましょう

00:00:42

このグローバル変数はSCADAパネルのすべてのウィジェットから呼び出すことができます

00:00:47

故障の期間を秒単位で表す変数global t_faultを定義しましょう

00:00:58

また故障期間の初期値を0.1秒に設定しましょう

00:01:06

次にText Boxウィジェットを挿入します

00:01:09

Text Boxウィジェットを使用すると故障期間に任意の期間を定義することができます

00:01:18

Text Boxウィジェットのプロパティを開き名前を「Fault duration[s]」に 変更しましょう

00:01:23

またマクロコードに小さな変更を加えましょう

00:01:27

ここでは入力値を"global t_fault"変数に格納します

00:01:32

そのためには"global t_fault"変数を呼び出してからt_faultをinputValueと等しくなるように設定します

00:02:02

次にMacroウィジェットのプロパティを開いてMacroウィジェットを追加しましょう

00:02:09

マクロは特殊なアクションウィジェットで4つのイベントハンドラを持っています

00:02:12

On Startハンドルは シミュレーション開始時Panel初期化スクリプトが実行された直後に実行されるコードです

00:02:21

On Clickハンドルは アクションウィジェットボタンクリック時に実行されるコードです

00:02:28

On Timerハンドルは 定義された実行間隔に基づいてシミュレーション開始後に定期的に実行されるコードです

00:02:35

このコードの実行間隔は 250 500 または1000ミリ秒です

00:02:42

On Stopハンドルは シミュレーションの停止後に実行されるコード用です

00:02:47

特定のイベントハンドラの[Active handlers]チェックボックスをオンにすると

00:02:52

そのイベントハンドラのマクロコードが実行されるようになりますこの例ではOn Clickハンドラを使用します

00:02:57

On Clickダイアログに 簡単なコードを書いてみましょう

00:03:03

最初にできることはメッセージログに継続時間を表示することです

00:03:07

まずText Boxのときと同じようにグローバル変数t_faultを定義しますまたこのマクロの名前を "Fault action" に変更します

00:03:25

では t_faultに対してPythonの標準的なprintコマンドを実行しOKをクリックしましょう

00:03:35

時間を別の値 たとえば0.2秒に設定しEnterキーを押して確定してみましょう

00:03:47

Macro Buttonをクリックしてマクロを実行できます

00:03:57

Message LogにFault durationの値が正常に出力されたことがわかります

00:04:02

このようにしてSCADAパネルの2つのウィジェット間の相互関係を作成することに成功しました

00:04:06

これはHIL SCADAでの半自動テストに 非常に役立ちます

00:04:10

ウィジェット間で対話できるようになったので次のステップに進むことができます

00:04:15

では故障時にコンタクタが開くように動作を自動化しましょう

00:04:20

Fault Action Macroに戻りコードを書いてみましょう

00:04:25

まず必要なのはシミュレーション時間の取得です

00:04:29

早速HIL APIの ドキュメントにアクセスして探してみましょう

00:04:33

ドキュメントを探すには Typhoon HIL Control CenterのメインメニューでDocumentation Hubを開き

00:04:40

HIL APIフォルダを開きます

00:04:53

ここでは簡単な検索として「time」と書きます

00:05:01

最初の関数get_sim_timeは私たちが探している関数です

00:05:05

この関数をマクロコード内で呼び出し新しいローカル変数simulationTimeに代入してみましょう

00:05:29

コードエディタに記載されているコメントは様々なTyphoon HIL APIライブラリの呼び出し方法を示しています

00:05:46

シミュレーション時間が得られたのでこれを使って任意の実行時間にコンタクタの状態を設定できます

00:05:54

APIウィザードを使用してコンタクタの状態を設定するためのHIL API関数を挿入してみましょう

00:06:10

2行のコードを挿入しましょう

00:06:13

1つは開状態を定義し もう1つは コンタクタの閉状態を定義します

00:06:18

次にset contactor 機能のドキュメントを見てみましょう

00:06:49

まだ使っていない引数があることがわかります

00:06:53

それはexecuteAt引数です

00:06:56

この引数はシミュレーション・ステップと同じ時間分解能でHILデバイス上でタイムド・コマンドを実行します

00:07:02

例えばコンタクタの開閉に伴う過渡現象をキャプチャする場合など非常に正確なタイミングが必要な場合に使用します

00:07:10

この引数を追加しシミュレーション時間に基づいて実行時間を設定しましょう

00:07:31

引数のexecuteAtはシミュレーション時間プラス0.5秒としましょう

00:07:36

これはこのマクロを実行するとコンタクタの状態が0.5秒後に変化することを意味します

00:07:43

クローズ状態の場合も同じことを行いますが 故障期間も追加します

00:08:11

これで テストして何をしたか確認できます最初に故障期間を定義する必要があります

00:08:16

1秒にしましょう

00:08:23

速度を観測してみましょう

00:08:26

速度が低下し故障期間が完了した後にフルスピードに戻ることがわかります

00:08:38

Fault Action MacroからForce triggerを行うためのSCADA APIを含めてみましょう

00:08:45

まずSCADA APIのドキュメントを開きCapture/Scopeを使ったアクションの実行方法を確認しましょう

00:09:02

パネル内のすべてのウィジェットは独自のIDおよび完全修飾名(FQN)を持ちます

00:09:07

ドキュメントにあるGet widget by fully qualified name関数を探してみましょう

00:09:30

関数の名前はget widget by fqnです

00:09:39

Capture/Scopeからfqnを取得するには

00:09:41

Capture/Scopeを右クリックし[Copy fully qualified name]をクリックします

00:10:10

これを Fault Action Macroの新しいfqnウィジェット変数の値として貼り付けましょう

00:10:21

このfqn変数をget widget by fqn関数の引数として追加し

00:10:26

csという新しい変数に代入してみましょう

00:10:40

さて いよいよCaptureで強制的にトリガをかける方法を見ていきましょう

00:10:44

SCADA API の execute action 機能を使用します

00:11:06

ドキュメントに記載している通りウィジェットのハンドルとアクション名を追加する必要があります

00:11:11

ウィジェットハンドルには先程作成したcs変数を呼び出しアクションにはforce_triggerを使用します

00:11:41

コードを保存して[Capture scope]ウィンドウを開きます

00:11:45

[Fault action]ボタンをクリックすると故障を示すキャプチャが表示されます

00:11:55

次にIGBT故障をオプションとして含めましょう

00:11:59

まず三相インバータのドキュメントを開きましょう

00:12:13

ドキュメントを開くには[Help]ボタンをクリックしてみましょう

00:12:22

ここでは三相インバータの機能 制御およびトポロジーに関する重要な情報を見つけることができます

00:12:29

IGBT故障を発生させたい場合はインバータ内の6つのIGBTの1つを制御する必要があります

00:12:36

インバータのIGBTの1つの 故障をシミュレートするためにインバータのSa_top IGBTスイッチを閉じましょう

00:12:48

シミュレートする故障のタイプを通知する別のグローバル変数type_faultを追加しましょう

00:13:10

また半自動テストのこの部分ではCombo Boxを使ってみましょう

00:13:15

パネルにドラッグアンドドロップしてみましょう

00:13:22

Combo Box Widgetプロパティを開きましょうまず名前をFault typeに変更します

00:13:34

ここで追加のダイアログがあり そのダイアログはAvailable valuesでデフォルトではcase 1とcase 2があります

00:13:42

この2つのケースをphase loss(相の断線)とIGBT fault(IGBT故障)に改名しましょう

00:13:56

マクロコードではすでに自動生成されたif文があり

00:14:01

それを使って各ケースに対応するアクションを定義することができます

00:14:04

今回はケースに関係なく同じ動作をさせたいのでこれを削除します

00:14:15

これでグローバル変数type_faultを定義してCombo Boxから入力値の値を取得できます

00:14:20

前の例と同様にこのコンボボックスとfaultアクションマクロが相互に作用できるように

00:14:24

マクロコードにグローバル変数type_faultを定義する必要があります

00:14:29

変更を確認します 故障アクションに進みいくつかの小さな変更を行いましょう

00:14:35

ここで新しいif文を作成しどのような障害を実行したいかを尋ねることにしましょう

00:14:41

故障の種類が相の断線である場合 既存のテストを行います

00:15:07

そうでない場合はIGBTの故障となります この場合パワーエレクトロニクスのスイッチング・モードと値を設定する必要があります

00:15:15

そのためにはAPIウィザードの助けを借りますCode Editorを開きましょう

00:15:31

Switching Blocksの設定ダイアログを開き

00:15:35

Sa_topコンタクタのSW Controlをチェックを入れましょう

00:15:38

SW ControlがTrueの場合モデル制御が止められてしまうことは特筆すべき点です

00:15:43

つまりIGBTに故障が発生した場合 S1_topコンタクタに流れる電流は故障電流となります

00:15:50

挿入してみましょう

00:15:52

次に故障後のIGBTのモデル制御を再び有効にするためにSW Controlをfalseに戻すコードを挿入しましょう

00:16:05

次に4行すべてのコードにexecuteAt引数を追加しましょう

00:16:09

シミュレーション時間の0.5秒後を使用しさらに最後の2行にはt_faultを追加します

00:16:47

保存してCode editorを閉じます

00:16:51

コンボボックスをIGBT故障に設定しましょうこれでIGBTに故障が発生した場合のシミュレーションができます

00:16:55

SCADAでは定義された期間 Sa_top IGBTが閉じられることを意味します

00:16:57

キャプチャで波形を確認できます

00:17:05

Sa_topの状態をcloseに設定します

00:17:11

Fault actionのMacroのコードを開きFault actionの値を1に設定します

00:17:18

同じテストをしてみましょう

00:17:23

DTVフラグが立てられていることがわかります

00:17:27

フェーズAの両方のコンタクタが閉じているためソフトウェアはフラグを立てました

00:17:34

このフラグを右クリックすると簡単にリセットできます

00:17:39

要約すると このセッションではHIL SCADAをより高度な方法で使用する方法を紹介しました

00:17:44

また HIL APIとSCADA APIの使用 方法およびHILSCADAで半自動テストを実行する方法についても説明しました

Please Wait!

Please wait... it will take a second!