SCADA API

モジュール: typhoon.api.scada

SCADA APIは、ウィジェットパラメータの変更に使用できる関数/メソッドのコレクションです。SCADA APIを使用してウィジェットパラメータを変更するには、まずHIL SCADAパネルファイルをロードする必要があります。

注記

他の機能を使用しようとする場合は ロードパネル() パネルファイルがロードされる前に、 ScadaAPI例外 が発生します。SCADA API関数でエラーが発生した場合にも、同じ例外が発生します。

例:

から typhoon.api.scada import panel # パネルファイルをロードするpanel . load_panel ( r "C:\scada_file.cus" )

それぞれのパネルが読み込まれると、ウィジェット ID またはウィジェット FQN (完全修飾名) を使用して特定のウィジェットにアクセスできます。

注記

ウィジェットIDまたはウィジェットFQN(完全修飾名)を取得するには、HIL SCADAでパネルファイルを開き、目的のウィジェットを右クリックして、 ウィジェットIDをコピー または ウィジェットの完全修飾をコピー アクション。

例:

から 台風.api.scada panelをインポートします# パネル ファイルをロードしますpanel . load_panel ( r "C:\scada_file.cus" ) # ウィジェット ID を使用してウィジェット ハンドルを取得しますwidget_handle = panel . get_widget_by_id ( "e18c3fe582d011e9bac3e0d55e6b2045" ) # または、ウィジェット FQN を使用して同じウィジェット ハンドルを取得しますwidget_handle = panel . get_widget_by_fqn ( "Sub-Panel.Gauge" )

目的のウィジェットを取得したら、そのプロパティを変更できます。

注記

すべてのウィジェットプロパティがSCADA APIで変更できるわけではありません。特定のウィジェットで変更可能なプロパティの詳細については、 「利用可能なウィジェットプロパティ」セクションをご覧ください。

例:

から 台風.api.scada インポートパネルのインポート typhoon.api.scada.const として api_constから typhoon.api.scada.例外 import ScadaAPIException # パネル ファイルをロードしますpanel . load_panel ( r "C:\scada_file.cus" ) # ウィジェット ハンドルを取得しますwidget_handle = panel . get_widget_by_id ( "e18c3fe582d011e9bac3e0d55e6b2045" ) # ウィジェット名を変更しますpanel . set_property_value ( widget_handle , api_const . PROP_NAME , "New widget name" ) # サポートされていないプロパティまたは新しいプロパティを変更しようとした場合# 値が有効でない場合は ``ScadaAPIException`` が発生しますtry : # 新しいプロパティ値が無効ですpanel . set_property_value ( widget_handle , api_const . PROP_NAME , [ 56 , 28 , 89 ]) except ScadaAPIException as ex : print ( ex )

パネルとパネルのウィジェットの変更が完了したら、読み込まれたパネルを既存のパネル ファイルに保存するか、新しいパネル ファイルとして保存できます。

完全な例:

から 台風.api.scada インポートパネルのインポート typhoon.api.scada.const として api_constから typhoon.api.scada.例外 import ScadaAPIException # パネル ファイルをロードしますpanel . load_panel ( r "C:\scada_file.cus" ) # プロパティを変更するウィジェット ハンドルを取得しますwidget_handle = panel . get_widget_by_id ( "e18c3fe582d011e9bac3e0d55e6b2045" ) # ウィジェット名を変更しますpanel . set_property_value ( widget_handle , api_const . PROP_NAME , "New widget name" ) # サポートされていないプロパティまたは新しいプロパティを変更しようとした場合、 # 値が有効でない場合は ``ScadaAPIException`` が発生しますtry : # 新しいプロパティ値が無効ですpanel . set_property_value ( widget_handle , api_const . PROP_NAME , [ 56 , 28 , 89 ]) except ScadaAPIException as ex : print ( ex ) # 既存のパネル ファイルへの変更を保存します... panel . save_panel () # ...または新しいパネル ファイルへの変更を保存しますpanel . save_panel_as ( r "C:\new_scada_file.cus" )

ウィジェットハンドル

WidgetHandleは、SCADA APIと実際のSCADAウィジェット間の接続として使用されるオブジェクトであり、ウィジェットの識別子として機能します。ほぼすべてのSCADA API関数において、作成、変更、または削除するウィジェットを識別するための引数として使用されます。

このオブジェクトには、SCADA API のさまざまな場所で使用できるいくつかの属性が含まれています。

  • item_type (str): SCADAウィジェットの種類

  • item_fqid (str): SCADAウィジェットID

  • item_name (str): SCADAウィジェット名

  • item_fqn (str): SCADAウィジェットの完全修飾名 (FQN)

  • item_parent_id (str): SCADAウィジェットの親ID

  • item_parent_fqn (str): SCADAウィジェットの親の完全修飾名 (FQN)

SCADA API定数

モジュール: typhoon.api.scada.const

さまざまな SCADA API メソッドでは、一部のパラメータに対して事前定義された定数が必要です。

以下は、SCADA API メソッドで使用されるすべての定数のリスト (Python モジュール) です。

#

PROP_NAME = "name"
PROP_HTML_NAME = "html_name"
PROP_NAME_POSITION = "name_position"
PROP_LABEL = "label"
PROP_USE_LABEL = "use_label"
PROP_FQN = "fully_qualified_name"
PROP_DESCRIPTION = "description"
PROP_PANEL_INIT = "panel_init_code"
PROP_PANEL_LOCK = "panel_locked"
PROP_POSITION = "position"
PROP_SIZE = "size"
PROP_APPEARANCE = "appearance"
PROP_SIGNALS = "signals"
PROP_STREAMING_SIGNALS = "streaming_signals"
PROP_DATA_TYPE = "data_type"
PROP_EXPRESSION = "expression_code"
PROP_UPDATE_RATE = "update_rate"
PROP_TIME_WINDOW = "time_window"
PROP_UNIT = "unit"
PROP_AUTO_UNIT = "auto_unit_assign"
PROP_BG_COLOR = "bg_color"
PROP_PANEL_BG_COLOR = "panel_bg_color"
PROP_BG_TYPE = "bg_type"
PROP_USE_AS_BG = "use_as_bg"
PROP_RANGE = "range"
PROP_USE_COLOR_RANGE = "use_color_range"
PROP_WARNING_RANGE = "warning_range"
PROP_CRITICAL_RANGE = "critical_range"
PROP_GREEN_RANGE = "green_range"
PROP_ORANGE_RANGE = "orange_range"
PROP_DECIMALS = "decimals"
PROP_SCALING_FACTOR = "scaling_factor"
PROP_STREAMING_AN_SIG_SCALING = "streaming_analog_signals_scaling"
PROP_AN_SIG_SCALING = "analog_signals_scaling"
PROP_RED_RANGE = "red_range"
PROP_LED_COLOR = "led_color"
PROP_X_TITLE = "x_title"
PROP_Y_TITLE = "y_title"
PROP_X_TITLE_ENABLED = "x_title_enabled"
PROP_Y_TITLE_ENABLED = "y_title_enabled"
PROP_CUSTOM_X_TITLE = "custom_x_title"
PROP_CUSTOM_Y_TITLE = "custom_y_title"
PROP_CUSTOM_X_TITLE_ENABLED = "custom_x_title_enabled"
PROP_CUSTOM_Y_TITLE_ENABLED = "custom_y_title_enabled"
PROP_X_RANGE = "x_range"
PROP_Y_RANGE = "y_range"
PROP_AUTO_SCALE_ENABLED = "autoscale_enabled"
PROP_X_AUTO_SCALE_ENABLED = "x_axis_autoscale_enabled"
PROP_Y_AUTO_SCALE_ENABLED = "Y_axis_autoscale_enabled"
PROP_LEGEND_ENABLED = "legend_enabled"
PROP_REF_CURVE_ENABLED = "ref_curves_enabled"
PROP_REF_CURVE = "ref_curves_code"
PROP_PV_PANEL = "pv_panel"
PROP_LINE_STYLE = "line_style"
PROP_PLOT_RANGE = "plot_range"
PROP_PHASORS_SETTINGS = "phasors_settings"
PROP_BARS_SETTINGS = "bars_settings"
PROP_ON_USE_ENABLED = "on_use_enabled"
PROP_ON_USE = "on_use_code"
PROP_ON_START_ENABLED = "on_start_enabled"
PROP_ON_START = "on_start_code"
PROP_ON_START_SOURCE = "on_start_code_source"
PROP_ON_TIMER_ENABLED = "on_timer_enabled"
PROP_ON_TIMER = "on_timer_code"
PROP_ON_TIMER_RATE = "on_timer_rate"
PROP_ON_STOP_ENABLED = "on_stop_enabled"
PROP_ON_STOP = "on_stop_code"
PROP_COMBO_VALUES = "values"
PROP_ENABLE_AUTOCOMPLETE = "enable_autocomplete"
PROP_VALUE_TYPE = "value_type"
PROP_INPUT_WIDTH = "input_width"
PROP_STEP = "step"
PROP_USE_PANEL_DIR = "use_panel_dir"
PROP_LOG_FILE_DIR = "log_file_dir"
PROP_LOG_FILE = "log_file"
PROP_LOG_FILE_FORMAT = "log_file_format"
PROP_USE_SUFFIX = "use_suffix"
PROP_LOGGING_ON_START = "start_logging_on_start"
PROP_USE_SLOWER_UPDATE_RATE = "use_slower_update_rate"
PROP_SLOWER_UPDATE_RATE = "slower_update_rate"
PROP_CONNECTION_IDENTIFIER = "connection_identifier"
PROP_SERIAL_PORT_SETTINGS = "serial_port_settings"
PROP_SERIAL_PORT_NAME = "serial_port_name"
PROP_GROUP_NAMESPACE = "group_namespace"
PROP_COLLAPSED = "collapsed"
PROP_USE_IMAGE = "use_image"
PROP_IMAGE = "image"
PROP_IMAGE_SCALING = "image_scaling"
PROP_TEXT = "text"
PROP_SUB_PANEL_MODE = "sub_panel_mode"
PROP_MODEL_COMP_TYPES = "model_components_types"
PROP_MODEL_COMP = "model_component"
PROP_WIDGET_VALUE = "widget_value"
PROP_CS_STATE = "state"
PROP_CS_CAPTURE_TIME_INTERVAL = "time_interval"
PROP_CS_CAPTURE_SAMPLE_RATE = "sample_rate"
PROP_CS_SCOPE_TIME_BASE = "time_base"
PROP_CS_CAPTURE_BG = "capture_background"
PROP_CS_SCOPE_BG = "scope_background"
PROP_CS_CAPTURE_LEGEND = "capture_legend"
PROP_CS_SCOPE_LEGEND = "scope_legend"
PROP_CS_CAPTURE_LAYOUT = "capture_layout"
PROP_CS_SCOPE_LAYOUT = "scope_layout"
PROP_CS_CAPTURE_SIGNALS = "capture_signals"
PROP_CS_SCOPE_SIGNALS = "scope_signals"
PROP_CS_SCOPE_TRIGGER = "scope_trigger"
PROP_CS_CAPTURE_TRIGGER = "capture_trigger"
PROP_CS_ACTIVE_CAPTURE_PRESET = "active_capture_preset"
PROP_CS_ACTIVE_SCOPE_PRESET = "active_scope_preset"

#
# Widget actions
#

ACT_CS_FORCE_TRIGGER = "force_trigger"
ACT_CS_ENABLE_TRIGGER = "enable_trigger"
ACT_CS_STOP_CAPTURE = "stop_capture"
ACT_CS_EXPORT_DATA = "export_data"

#
# Widget types
#

WT_MACRO = "Macro"
WT_BUTTON_MACRO = "MacroButton"
WT_TEXT_MACRO = "TextBoxMacro"
WT_COMBO_MACRO = "ComboBoxMacro"
WT_CHECKBOX_MACRO = "CheckBoxMacro"
WT_SLIDER_MACRO = "SliderMacro"
WT_KNOB_MACRO = "KnobMacro"

WT_GAUGE = "Gauge"
WT_DIGITAL = "DigitalDisplay"
WT_TEXT = "TextDisplay"
WT_LED = "LedDisplay"
WT_TRACE = "TraceDisplay"
WT_PV = "PVDisplay"
WT_XY_GRAPH = "XYGraphDisplay"
WT_PHASOR_GRAPH = "PhasorGraphDisplay"
WT_BAR_GRAPH = "BarGraphDisplay"

WT_GROUP = "Group"
WT_SUB_PANEL = "SubPanel"
WT_LIBRARY_CATEGORY = "LibraryCategory"
WT_TEXT_NOTE = "TextNote"
WT_IMAGE = "Image"
WT_SERIAL_COMM = "SerialComm"
WT_CAPTURE_SCOPE = "Capture/Scope"

WT_SIGNAL_DATA_LOGGER = "SignalDataLogger"
WT_STREAMING_DATA_LOGGER = "StreamingSignalDataLogger"

WT_FREQUENCY_RESPONSE = "FrequencyResponse"

# Capture/Scope signal types
CS_SIG_T_A = "Analog"
CS_SIG_T_D = "Digital"
CS_SIG_T_V = "Virtual"

HIL SCADAのSCADA API¶

HIL SCADA は、主にパネル ウィジェットのプロパティを変更し、手動の GUI アクションとほぼ同じアクションを実行するための SCADA API 関数のサブセットをサポートしています。

利用できる機能は次のとおりです。

  • get_widget_by_id()

  • get_widget_by_fqn()

  • set_property_value()

  • get_property_value()

  • アクション実行()

注記

上記の関数は、パネルおよびローカル名前空間 (グループのようなウィジェット) の初期化スクリプトを含む、すべてのハンドラー (アクション ウィジェット) および式スクリプト (監視ウィジェット) で使用できます。

注記

SCADA APIはHIL SCADA名前空間にインポートされます。 パネル

注記

ウィジェットのパラメータを複数の場所 (ハンドラー、式スクリプトなど) から同時に変更することはお勧めしません。

注記

現在、execute_action() 関数をサポートするウィジェットの数は限られています。詳細については、「利用可能なウィジェットアクション」ドキュメントをご覧ください。

この関数には、widget_handle と action_name という 2 つの必須引数が必要です。

他のオプションのキーワード引数 (arg_name=arg_value) も受け取ることができます。これは各ウィジェットの実装によって異なります。

以下に、ウィジェットの名前を変更してアクションを実行する例を示します。

# ウィジェット ID を保存w_id = "484d3a86ffcf11e9956de0d55e6b2045" # 変更が必要なウィジェットを取得 (この場合は Capture/Scope ウィジェット) wh = panel . get_widget_by_id ( w_id ) # ウィジェットのプロパティを変更panel . set_property_value ( wh , prop_name = api_const . PROP_NAME , prop_value = "New name" ) # "force_trigger" アクションを実行 (api_const.ACT_CS_FORCE_TRIGGER) panel . execute_action ( widget_handle = wh , action_name = api_const . ACT_CS_FORCE_TRIGGER )

APIリファレンス

クラス ScadaAPI

SCADA API (アプリケーション プログラミング インターフェイス) を使用すると、基盤となる HIL SCADA モデルとのインターフェイスが可能になります。

add_library_path ( library_path , add_subdirs = False , persist = False )

ライブラリ検索パスにパスを追加します。追加されたパスは一時的なパスとして扱われます(持続=False保存したい場合は、 持続=真.

パラメータ:
  • library_path ( str ) – ライブラリファイルが配置されているディレクトリパス。

  • add_subdirs ( bool ) – サブディレクトリでライブラリ ファイルを検索します。

  • persist ( bool ) – ライブラリパスの変更を永続的にします。

戻り値:

なし

可用性:
  • スタンドアロンスクリプト

例:

から 台風.api.scada import panel # ライブラリ検索パスに新しいパスを追加します。 panel . add_library_path ( r "C:\new_library_dir" ) # 検索パスが変更された後にライブラリを再読み込みしますpanel . reload_libraries ()
create_widget ( widget_typeparent = Nonename = Noneposition = Nonelink_to_model_comp = None )

指定されたウィジェットのようなグループ内に、提供されたウィジェットタイプを使用して新しいウィジェットを作成します。 。 もし 指定されていない場合は、メイン パネルのキャンバスが親として使用されます。

パラメータ:
  • ウィジェットタイプ (str) – 作成する必要があるウィジェットの種類。すべてのウィジェットの種類名のリストは、 typhoon.api.scada.const モジュールまたはセクションに記載されている SCADA API定数

  • ( WidgetHandle ) – このウィジェットを作成して追加する必要があるウィジェットのような親グループ。

  • name ( str ) – ウィジェットの名前。

  • 位置(リストまたはタプル) - 新しいウィジェットを作成後に配置する必要があるリスト[x、y]座標。

  • link_to_model_comp ( str ) –

    作成されたライブラリ ウィジェットに接続する回路図モデル コンポーネントの完全修飾名 (FQN)。

    注記

    この引数を指定すると、ライブラリ ウィジェットが作成され、そのライブラリ ウィジェットがモデル コンポーネントに接続されるように構成されている場合にのみ効果があります。

戻り値:

作成されたウィジェットへのハンドル。

戻り値の型:

ウィジェットハンドル(WidgetHandle)

昇給
  • ScadaAPIException – 引数のいずれかが無効な場合。

  • ScadaAPIException – パネルが指定されていない場合。

  • ScadaAPIException – 指定された ID を持つ親ウィジェットがロードされたパネル内に見つからない場合。

  • ScadaAPIException – 何らかの理由でウィジェットを作成できない場合

可用性:
  • スタンドアロンスクリプト

例:

から typhoon.api.scada インポートパネルのインポート typhoon.api.scada.const として api_const # 新しい空白のパネルを作成します panel . create_new_panel () # メイン/ルート キャンバスにグループ ウィジェットを作成します group_handle = panel . create_widget ( widget_type = api_const . WT_GROUP  parent = None  name = "Group for other widgets"  position = [ 0  200 ]) # グループ ウィジェット内にデジタル ディスプレイを作成します dig_d_handle = panel . create_widget ( widget_type = api_const . WT_DIGITAL  parent = group_handle  name = "Digital Display"  position = [ 20  20 ]) # # ライブラリ ウィジェットを作成し、それをインダクタ 'Lc' 回路図コンポーネントに接続します# # ライブラリが配置されているディレクトリをライブラリ検索パスに追加します。 panel . add_library_path ( r "C:\new_library_dir" ) # ライブラリをリロードします reload_libraries () # 新しい空のパネルを作成します panel . create_new_panel () # ウィジェットライブラリ「Lib1」から「グループ」ライブラリウィジェットを作成します group_handle = panel . create_widget ( widget_type = "Lib1/Group"  parent = None  name = "Group Library Widget"  position = [ 0  200 ]、 link_to_model_comp = "Lc" )
create_new_panel ( )

メモリ内に新しい空のパネルを作成します。

注記

パネルが作成され、読み込まれていない場合 ロードパネル()、初めて保存する場合は、 save_panel_as() 関数。パネルを保存した後、 save_panel_as() 通常の方法で後で保存できます save_panel() 関数。

戻り値:

なし

可用性:
  • スタンドアロンスクリプト

例:

から typhoon.api.scada インポートパネルのインポート typhoon.api.scada.const として api_const # 新しい空のパネルを作成しますpanel . create_new_panel () # メイン/ルート キャンバスにデジタル ディスプレイを作成しますdig_d_handle = panel . create_widget ( widget_type = api_const . WT_DIGITAL  parent = None  name = "Digital Display"  position = [ 20 , 20 ]) # パネルを初めてファイルに保存しますpanel . save_panel_as ( r "C:\panel.cus" ) # # パネルで何かを作成または変更します... # # これで、パネルを指定したパネル ファイルに保存できますpanel . save_panel ()
create_new_library_panel ( library_name , library_description = '' )

メモリ内に新しい空のライブラリ パネルを作成します。

パラメータ:
  • library_name ( str ) – ウィジェットライブラリの名前

  • library_description ( str ) – 短い説明

注記

ライブラリパネルが作成され、読み込まれていない場合 load_library_panel() 初めての場合は、呼び出しによってのみ保存できます save_panel_as() 関数。パネルを保存した後、 save_panel_as() 後で定期的に保存することができます save_panel() 関数。

戻り値:

なし

昇給

ScadaAPIException – 引数のいずれかが無効な場合

可用性:
  • スタンドアロンスクリプト

例:

から typhoon.api.scada インポートパネルのインポート typhoon.api.scada.const として api_const # 新しい空のライブラリ パネルを作成します panel . create_new_library_panel ( library_name = "Lib1" , library_description = "My simple library" ) # ライブラリ ウィジェットの候補となるグループを作成します group_handle = panel . create_widget ( widget_type = api_const . WT_GROUP , parent = None , name = "Group" , position = [ 20 , 20 ]) # グループ内にデジタル ディスプレイを作成します dig_d_handle = panel . create_widget ( widget_type = api_const . WT_DIGITAL , parent = group_handle , name = "Digital Display" , position = [ 20 , 20 ]) # ライブラリ パネルを初めてファイルに保存しますpanel . save_panel_as ( r "C:\lib1.wlib" ) # # ライブラリ パネルで何かを作成または変更します... # # これで、ライブラリ パネルを指定したライブラリ パネルファイルに保存できるようになりました panel.save_panel ( )
コピー( src_handle , dst_handle = None , name = None , position = None )
コピーウィジェットを識別 ソースハンドル ウィジェットのようなグループに

識別される dst_handle.

注記

ソース ウィジェットとそのすべての子ウィジェット (ソース ウィジェットがグループのようなウィジェットの場合) が宛先ウィジェットにコピーされます。

パラメータ:
  • src_handle ( WidgetHandle ) – コピーする必要があるウィジェットのハンドル。

  • dst_handle (ウィジェットハンドル) –

    ソース ウィジェットをコピーする必要があるグループのようなウィジェットへのハンドル。

    注記

    万一に備えて dst_handle None の場合、ソース ウィジェットはメイン (ルート) パネルのキャンバスにコピーされます。

  • name ( str ) – コピーされたウィジェットの新しい名前。

  • 位置(リストまたはタプル) - コピーした新しいウィジェットを配置する必要があるリスト[x, y]座標。

戻り値:

リストをフラット化する

コピーされたすべてのウィジェットのハンドルが含まれます。

戻り値の型:

コピーされたウィジェットのリスト (List[WidgetHandle])

昇給
  • ScadaAPIException – 引数のいずれかが無効な場合。

  • ScadaAPIException – 宛先ウィジェットがグループのようなウィジェットではない場合。

  • ScadaAPIException – パネルが指定されていない場合。

  • ScadaAPIException – 指定された ID を持つソース ウィジェットまたは宛先ウィジェットがロードされたパネル内に見つからない場合。

可用性:
  • スタンドアロンスクリプト

例:

から typhoon.api.scada インポートパネルのインポート typhoon.api.scada.const として api_const # 新しいパネルを作成しますpanel . create_new_panel () # メイン/ルート キャンバスにウィジェットを作成しますgroup_handle = panel . create_widget ( widget_type = api_const . WT_GROUP  parent = None  name = "Group for other widgets"  position = [ 0  200 ]) # メイン/ルート キャンバスにデジタル ディスプレイを作成しますdig_d_handle = panel . create_widget ( widget_type = api_const . WT_DIGITAL  parent = None  name = "Digital Display"  position = [ 20  20 ]) # グループ ウィジェットにデジタル ディスプレイをコピーします# `copied_widgets` はデジタル ディスプレイのコピーを含むリストですcopied_widgets = panel . copy ( src_handle = dig_d_handle , dst_handle = group_handle , name = "新しい名前" , position = ( 0 , 304 )) # グループ ウィジェットをメイン キャンバスにコピーします# `copied_widgets` は、グループ ウィジェットとデジタル ディスプレイのコピーを含むリストです。copyed_widgets = panel . copy ( src_handle = group_handle , dst_handle = None , name = "新しい名前" , position = ( 0 , 304 ))
delete_widget (ウィジェットハンドル)

読み込まれた、または作成されたパネルからウィジェットを削除します。

パラメータ:

widget_handle ( WidgetHandle ) – 削除する必要があるウィジェットのハンドル。

戻り値:

なし

昇給
  • ScadaAPI例外 - 万一に備えて ウィジェットハンドル 引数が無効です。

  • ScadaAPIException – パネルが指定されていない場合。

  • ScadaAPIException – 指定された ID のウィジェットがロードされたパネル内に見つからない場合。

可用性:
  • スタンドアロンスクリプト

例:

から typhoon.api.scada インポートパネルのインポート typhoon.api.scada.const として api_const # 新しいパネルを作成panel.create_new_panel ( ) #メイン/ルート キャンバスにグループ ウィジェットを作成group_handle = panel.create_widget ( widget_type = api_const.WT_GROUP  parent = None  name = "ウィジェットのグループ"  position = [ 0、200 ] ) #グループウィジェット削除panel.delete_widget ( group_handle )
execute_action (ウィジェットハンドル,アクション名, **パラメータ)

パネル上のウィジェット ハンドルによってウィジェットが見つかった場合、ウィジェットのアクションを実行します。

注記

この機能はHIL SCADAでのみ使用できます。各ウィジェットで実行可能なアクションの詳細なリストについては、 「利用可能なウィジェットアクション」ドキュメントを参照してください。

パラメータ:
  • widget_handle ( WidgetHandle ) – ウィジェットハンドルオブジェクト

  • アクション名 (str) – 実行する必要があるアクションの名前(すべてのaction_name定数は typhoon.api.scada.const モジュールまたはセクションに記載されている SCADA API定数)

  • params ( dict ) – アクションのオプションパラメータ

戻り値:

なし

昇給
  • ScadaAPIExceptionwidget_handleまたはaction_name引数が無効な場合

  • ScadaAPIException – ウィジェットに渡されたaction_nameアクションがない場合

  • ScadaAPIException – パネルが指定されていない場合

  • ScadaAPIException – 指定されたIDのウィジェットがロードされたパネル内に見つからない場合

可用性:
  • マクロスクリプト

  • 信号監視式

例:

# 注意: execute_action() は HIL SCADA でのみ呼び出すことができます。 # アクションを実行するウィジェットのハンドルを取得します。widget_handle = panel . get_widget_by_id ( "e18c3fe582d011e9bac3e0d55e6b2045" ) # "export_data" アクションを実行します (api_const.ACT_CS_EXPORT_DATA) # キャプチャされたデータはデフォルトの (png) 形式でエクスポートされます。panel . execute_action ( widget_handle = wh , action_name = api_const . ACT_CS_EXPORT_DATA )
reload_libraries ( )

ライブラリ検索パスで見つかったすべてのライブラリを再ロードします。

注記

ライブラリが再ロードされ、ライブラリ ウィジェットを含むパネルが開かれている場合は、最新のライブラリ ウィジェットをロードするために、パネルを再度開くことをお勧めします。

戻り値:

なし

昇給

ScadaAPIException – ライブラリの再ロード中にエラーが発生した場合。

可用性:
  • スタンドアロンスクリプト

例:

から 台風.api.scada import panel # ライブラリ検索パスに新しいパスを追加します。 panel . add_library_path ( r "C:\new_library_dir" ) # 検索パスが変更された後にライブラリを再読み込みしますpanel . reload_libraries ()
ライブラリパスを削除します( library_pathpersist = False )

ライブラリ検索パスからパスを削除します。

パラメータ:
  • library_path ( str ) – 削除するライブラリパス。

  • persist ( bool ) – ライブラリ パスが削除された後もライブラリ パスの変更を永続的にします。

戻り値:

なし

可用性:
  • スタンドアロンスクリプト

昇給

ScadaAPIException – 指定されたパスがライブラリ レジストリ検索パスに見つからない場合。

例:

から typhoon.api.scada import panel # ライブラリ検索パスからパスを削除します。 panel .remove_library_path ( r "C:\new_library_dir" ) # 検索パス変更された後にライブラリを再読み込みしますpanel .reload_libraries ( )
load_panel (パネルファイル)

提供された HIL SCADA パネル (.cus) ファイルをロードします。

パラメータ:

panel_file ( str ) – HIL SCADAパネル(.cus)ファイルへのフルパス。

戻り値:

なし

昇給
  • ScadaAPIExceptionpanel_file引数が無効な場合。

  • ScadaAPIException – 指定されたパネル ファイルを開くことができない場合。

可用性:
  • スタンドアロンスクリプト

例:

から typhoon.api.scada import panel # パネルファイルをロードするpanel . load_panel ( r "C:\scada_file.cus" )
load_library_panel ( library_panel_file )

提供された HIL SCADA ウィジェット ライブラリ (.wlib) ファイルをロードします。

パラメータ:

library_panel_file ( str ) – HIL SCADAウィジェットライブラリ(.wlib)ファイルへのフルパス。

戻り値:

なし

昇給
  • ScadaAPIExceptionlibrary_panel_file引数が無効な場合。

  • ScadaAPIException – 提供されたライブラリ パネル ファイルを開けない場合。

可用性:
  • スタンドアロンスクリプト

例:

から typhoon.api.scada import panel # ライブラリパネルファイルをロードします。panel.load_library_panel ( r " C : \lib1.wlib" )
save_panel ( )

現在開いているパネルを同じパネル ファイルに保存します。

戻り値:

なし

昇給
  • ScadaAPIException – パネル ファイルが開かれていない場合。

  • ScadaAPIException – 開いたパネルを保存できない場合。

可用性:
  • スタンドアロンスクリプト

例:

から typhoon.api.scada panelをインポートします# パネルファイルを読み込みますpanel . load_panel ( r "C:\scada_file.cus" ) # # 何かを変更します... # # 既存のファイル ("C:\scada_file.cus") に変更を保存しますpanel . save_panel ()
save_panel_as ( save_to )

現在開いているパネルを新しいパネル ファイルに保存します。

パラメータ:

save_to ( str ) – 開いたパネルを保存する場所の完全なパス。

戻り値:

なし

昇給
  • ScadaAPIException – パネル ファイルが開かれていない場合。

  • ScadaAPIExceptionsave_to引数が無効な場合。

  • ScadaAPIException – 開いたパネルを保存できない場合。

可用性:
  • スタンドアロンスクリプト

例:

から typhoon.api.scada panelをインポートします# パネルファイルを読み込みますpanel . load_panel ( r "C:\scada_file.cus" ) # # 何かを変更します... # # 変更を新しいパネルファイル ("C:\new_scada_file.cus") に保存しますpanel . save_panel ()
set_property_value (ウィジェットハンドル, prop_name , prop_value )

ウィジェット プロパティに新しい値を設定します。

パラメータ:
  • widget_handle ( WidgetHandle ) – ウィジェット識別子として使用されるウィジェット ハンドル。

  • prop_name ( str ) –

    変更したいプロパティの名前。すべてのプロパティ名のリストは、 typhoon.api.scada.const モジュールまたはセクションに記載されている SCADA API定数

    注記

    すべてのウィジェットプロパティがSCADA APIで変更できるわけではありません。特定のウィジェットで変更可能なプロパティの詳細については、 「利用可能なウィジェットプロパティ」セクションをご覧ください。

  • prop_value (オブジェクト) –

    設定する必要がある新しいプロパティ値。

    注記

    設定する必要がある値の種類は、変更するプロパティによって異なります。詳細については、「利用可能なウィジェットプロパティ」セクションをご覧ください。

戻り値:

なし

昇給
  • ScadaAPIException – パネル ファイルが開かれていない場合。

  • ScadaAPIException – 引数のいずれかが無効な場合。

  • ScadaAPI例外 – ウィジェットが ウィジェットハンドル 開いているパネルに見つかりません。

  • ScadaAPI例外 – ウィジェットに指定されたプロパティがない場合 プロパティ名.

  • ScadaAPIException – プロパティが読み取り専用で変更できない場合。

可用性:
  • スタンドアロンスクリプト

  • マクロスクリプト

  • 信号監視式

例:

から typhoon.api.scada インポートパネルのインポート typhoon.api.scada.const として api_const # パネル ファイルをロードしますpanel.load_panel ( r " C:\scada_file.cus" ) # プロパティ変更するウィジェットのハンドルを取得しますwidget_handle = panel.get_widget_by_id ( " e18c3fe582d011e9bac3e0d55e6b2045" ) #ハンドルウィジェット識別子として使用してウィジェット名を変更しますpanel.set_property_value ( widget_handle , api_const.PROP_NAME , "新しいウィジェット名" )
get_property_value (ウィジェットハンドル, prop_name )

指定されたウィジェット ハンドルの指定されたプロパティの値を返します。

パラメータ:
  • widget_handle ( WidgetHandle ) – ウィジェット識別子として使用されるウィジェット ハンドル。

  • prop_name ( str ) –

    プロパティの名前。すべてのプロパティ名のリストは以下にあります。 typhoon.api.scada.const モジュールまたはセクションに記載されている SCADA API定数

    注記

    すべてのウィジェットプロパティがSCADA APIで変更できるわけではありません。特定のウィジェットで変更可能なプロパティの詳細については、 「利用可能なウィジェットプロパティ」セクションをご覧ください。

戻り値:

値は任意の型にすることができます

ウィジェットとプロパティの種類によって異なります。詳細については、「利用可能なウィジェットプロパティ」セクションをご覧ください。

戻り値の型:

プロパティ値(オブジェクト)

昇給
  • ScadaAPIException – 引数のいずれかが無効な場合。

  • ScadaAPI例外 – ウィジェットにプロパティがない場合、 プロパティ名.

  • ScadaAPIException – プロパティが書き込み専用で読み取れない場合。

  • ScadaAPIException – パネルが指定されていない場合。

  • ScadaAPI例外 – ウィジェットが ウィジェットハンドル 開いたパネルに見つかりません。

可用性:
  • スタンドアロンスクリプト

  • マクロスクリプト

  • 信号監視式

例:

から typhoon.api.scada インポートパネルのインポート typhoon.api.scada.const として api_const # パネル ファイルをロードしますpanel.load_panel ( r " C:\scada_file.cus" ) # プロパティ変更するウィジェットのハンドルを取得しますwidget_handle = panel.get_widget_by_id ( "e18c3fe582d011e9bac3e0d55e6b2045" ) #ハンドルウィジェット識別子として使用してウィジェット名を変更しますpanel.set_property_value ( widget_handle , api_const.PROP_NAME , "新しいウィジェット" ) # ハンドルをウィジェット識別子として使用してウィジェット名取得ますwidget_name = panel.get_property_value ( widget_handle , api_const.PROP_NAME )
get_widget_by_id (ウィジェットID )

指定されたウィジェット ID を持つウィジェットのウィジェット ハンドルを返します。

パラメータ:

ウィジェットID (str) – ウィジェットID。ウィジェットIDはWidgetHandleから取得できます。 アイテムID 属性 (widget_handle_object.item_fqid)。

戻り値:

ウィジェットへのハンドル。

与えられた ウィジェットID ウィジェット識別子として使用できます。

戻り値の型:

ウィジェットのハンドル (WidgetHandle)

昇給
  • ScadaAPIException – パネル ファイルが開かれていない場合。

  • ScadaAPI例外 – 場合により ウィジェットID 引数が無効です。

  • ScadaAPIException – 指定された ID のウィジェットがロードされたパネル内に見つからない場合。

可用性:
  • スタンドアロンスクリプト

  • マクロスクリプト

  • 信号監視式

例:

から typhoon.api.scada インポートパネルのインポート typhoon.api.scada.const として api_const # パネル ファイルをロードしますpanel . load_panel ( r "C:\scada_file.cus" ) # プロパティを変更するウィジェットのハンドルを取得します# 'widget_handle' は他の関数でウィジェット識別子として使用され、 #このハンドルで識別されるウィジェットのID ('widget_handle.item_fqid') とタイプ ('widget_handle.item_type') も含まれますwidget_handle = panel . get_widget_by_id ( "e18c3fe582d011e9bac3e0d55e6b2045" ) # ハンドルをウィジェット識別子として使用してウィジェット名を変更しますpanel . set_property_value ( widget_handle , api_const . PROP_NAME , "新しいウィジェット名" )


get_widget_by_fqn ( widget_fqn= None )

指定されたウィジェットの完全修飾名 (FQN) を持つウィジェットのウィジェット ハンドルを返します。

パラメータ:
  • widget_fqn ( str ) – ウィジェットの完全修飾名

  • parent ( WidgetHandle ) – ウィジェットのような親グループ。指定されたwidget_fqnを持つウィジェットが検索されます。parent指定されている場合、指定されたwidget_fqnは相対的な完全修飾名(指定された親からの相対)として使用されます。

戻り値:

指定されたウィジェット FQN を持つウィジェットへのハンドル

戻り値の型:

ウィジェットハンドル

昇給
  • ScadaAPIException – 引数が無効な場合

  • ScadaAPIException – 指定された完全修飾名のウィジェットがロードされたパネル内に見つからない場合

  • ScadaAPIException – 指定されたWidgetHandleを持つ親ウィジェットがロードされたパネル内に見つからない場合

  • ScadaAPIException – パネルが指定されていない場合

可用性:
  • スタンドアロンスクリプト

  • マクロスクリプト

  • 信号監視式

例:

から 台風.api.scada インポートパネルのインポート typhoon.api.scada.const として api_const # パネル ファイルをロードしますpanel . load_panel ( r "C:\scada_file.cus" ) # # 完全修飾名 (FQN) を使用してウィジェットのハンドルを取得します# # 'widget_handle' は他の関数でウィジェット識別子として使用され、 # また、このハンドルによって識別されるウィジェットの ID ('widget_handle.item_fqid')、タイプ ('widget_handle.item_type')、 # ウィジェット名 ('widget_handle.item_name')、およびウィジェット FQN ('widget_handle.item_fqn') も含まれます。 # この例では、3 つの親ウィジェットを持つウィジェット 'Gauge' の FQN は"P1.P2.P3.Gauge"ですwidget_handle = panel . get_widget_by_fqn ( "P1.P2.P3.Gauge" ) # # 同じウィジェットを親 'P2' から相対的に検索する場合# 親を見つけますparent_handle = panel . get_widget_by_fqn ( "P1.P2" ) # 親ハンドルと、指定された親への相対 FQN を指定します。 # 絶対 FQN が 'P1.P2.P3.Gauge' の場合、親 'P2' からの相対 FQN は次のようになります: # 'P3.Gauge' widget_handle = panel . get_widget_by_fqn ( "P3.Gauge" , parent = parent_handle )



get_library_paths ( )

ライブラリ検索パスのリストを取得します。

戻り値:

ユーザーライブラリパスのリスト

戻り値の型:

ライブラリパス(リスト)

可用性:
  • スタンドアロンスクリプト