Skip to main content

例: 最初のステップ

製品: CODESYS Application Composer

この例では、モジュールの作成と使用を開始する方法を示します。CODESYS Application Composerこの目的のために、照明とスイッチを備えた部屋を作成します。

説明

この例では、ビルディングオートメーションの短いシナリオを実装しています。部屋に照明と対応するスイッチを設置します。スイッチは調光器としても使用できます。そのため、照明は異なる明るさレベルをサポートする必要があります。

  1. 準備作業

    新規作成CODESYSプロジェクトからアプリケーションコンポーザーを使用した標準プロジェクトテンプレート。選択AC_ModuleBase図書館として。

    _ex_ac_img_first_steps1.png
  2. トップレベルモジュールRoom

    プロジェクトのPOUプールに新しいモジュール宣言を追加します。名前を割り当てます。Roomモジュール宣言とそれに関連する関数ブロックに拡張する必要があります。関数ブロックは、AC.Module関数ブロックは、AC_ModuleBase図書館。AC.Module関数ブロックには、上書きする必要のない多数のメソッドとプロパティがすでに用意されています。

    _ex_ac_img_first_steps2.png

    宣言はキーワードで始まるMODULEモジュール名と追加のキーワードが続くIMPLEMENTED_BY、およびモジュールを実装する機能ブロックによって制御されます。具体的には、この機能ブロックはRoom作成されたばかりの機能ブロックです。ほとんどの場合、MetaDataセクションが宣言されました。

    すべてのパラメータとセクションの詳細については、以下を参照してください。モジュールエディター

    なぜならRoomモジュールは、この例ではトップレベルのモジュールなので、Toplevel次のセクションに進みます。このセクションでは、生成されたトップレベル関数ブロックのインスタンス名を含むグローバル変数リストの名前を定義します。その後、少なくとも1つのタスクを定義する必要があります。Toplevelセクション。このタスクはStandard_Taskこの例では、MEDIUMタスクとCREATE_IF_MISSINGそしてUPDATE_IOSフラグ。

    _ex_ac_img_first_steps3.png

    説明とアイコンのプレースホルダーとして使用されるすべてのアイコンと文字列(DescIcon_16、 そしてIcon_32テキストリストやイメージプールでは、パラメータを参照する必要があります。そのため、対応するテキストリストを作成します。TLそして画像プールIP参照されるアイコンとテキストが含まれる POU プール内。

  3. サブモジュール: Switch

    モジュール宣言と対応する関数ブロックを作成します。Switchこのモジュールはトップレベルモジュールではないため、Toplevelセクション。モジュールを表すすべての機能ブロックと同様に、Switch機能ブロックも拡張する必要があるAC.modules。 さらに、Switch実装するISwitchインターフェースも作成する必要があります。ISwitchインターフェースは拡張するAC.IModuleただし、新しいメソッドやプロパティは追加されません。

    さらに、スイッチが押されたことを認識するためには入力信号が必要です。この信号は、IOセクションを使用してxIn入力変数Switchファンクションブロック。さらに、スイッチの2つの機能を区別するために基準時間が必要です。スイッチを一定時間押し続けると、tTimer調光機能を開始します。短く押すとライトのオン/オフのみになります。入力変数を定義します。tTimerモジュールのパラメータとして(Parametersセクションを参照してください。このようにして、後でモジュールを使用するときに簡単に時間を設定できます。

    変数を定義するxInそしてtTimerの入力としてSwitch関数ブロックで、初期値を500msに設定します。tTimerパラメータ。

    _ex_ac_img_first_steps4.png

    説明を表示するには、テキスト リストと画像プールを拡張する必要もあります。

  4. サブモジュール: SwitchSimple

    2つ目に作成するスイッチモジュールは、オンとオフの2つの状態のみを持つ単純なスイッチです。これを行うには、モジュール宣言とファンクションブロックを作成する必要があります。これらのモジュールは、既存のスイッチとはパラメータとtTimer変数は必須ではありません。また、実装する必要はありません。ISwitchしかしISwitchSimple、これも拡張されますAC.IModule

    _ex_ac_img_first_steps5.png
  5. サブモジュール: Light

    スイッチの場合と同様に、ライトについてもモジュール宣言を作成する必要があります。LightLight機能ブロックとILightインタフェース。

    挿入するにはLight部屋の下のモジュールを追加するには、SlotsセクションLightモジュール宣言。このセクションではサブセクションを宣言します。Slot_Multi、あなたが呼ぶLightsそして、次のようなモジュールを保持できる。ILight部屋に追加する必要がある、または追加できる照明の数は、Cardinality変数も定義しますVariableそしてVar_Countこれらをモジュール宣言にリンクするpLights(POINTER TO ILight)そしてuiNumberOfLights (UINT)これにより、機能ブロックが実装されているモジュールのみがILightインターフェースを追加することができますLightsスロット。

    _ex_ac_img_first_steps6.png

    Lightモジュールでは、スイッチを挿入できるスロットも定義します。そのため、SwitchスロットにLightモジュール宣言。追加パラメータLightモジュールは調光器の速度ですrSpeed最大輝度uiMaxValue最後に、ライトの明るさを表す出力を定義する必要があります。すべてのパラメータ、スロット、出力、そして変数を追加する必要があります。Light機能ブロック。

    _ex_ac_img_first_steps7.png
  6. サブモジュール: LightSimple

    最後に作成するモジュールは、シンプルなスイッチと連動するシンプルなライトです。これを行うには、モジュール宣言とLightSimple拡張する機能ブロックAC.Module既存のILightインターフェース。Lightモジュールは次のようになります。出力は次のようになります。BOOLそして名前を持つxSwitchedOnさらに、rSpeedパラメータは必須ではありません。

    _ex_ac_img_first_steps8.png
  7. 実装

    機能の実装については、Switchモジュールを使用するには、CallPrioMediumStart方法からAC.Moduleそれを独自の実装でオーバーライドします。この関数が選択された理由は、RoomトップレベルモジュールはMEDIUMタスク。これは、CallPrioMediumStartの方法Switchファンクションブロックはタスクの各サイクルで自動的に呼び出されます。しかし、スイッチの主な機能は、オン/オフと調光を切り分けることです。スイッチを押すと、ユーザーパラメータで設定可能な時間でタイマーが起動します。タイマーが経過してもスイッチが押されたままの場合、調光機能が適用されます。これは変数によって表されます。xPushLong変数xPushスイッチが短時間だけ押されたとき、TRUEとなります。どちらの変数もxPushLongそしてxPush、プロパティは両方に追加されますSwitch機能ブロックとインターフェースを、親ライト機能ブロックから使用できるようにします。

    また、LightファンクションブロックはCallPrioMediumStart方法。それぞれの入力変数の値に応じて、照明は調光されるか、単にオン/オフに切り替わります。調光器の場合、宣言されたパラメータの速度値はrSpeedが使用されます。最大または最小の調光値に達すると、調光は停止します。調光状態でスイッチを押すと、ライトが点灯します。

    サンプル プロジェクトで可能な実装を確認できます。

  8. エンジニアリング

    モジュールツリーは、モジュールビューを表示します。これを行うには、まずRoomモジュールがインポートされた後、モジュールツリーに最上位モジュールを追加します。Lightsスロットに1つ追加Lightそして1つLightSimpleそれぞれにSwitchまたはSwitchSimpleその後、モジュールインスタンスのパラメータとI/Oを設定できます。テスト目的では、入力と出力をグローバル変数リスト内の変数にリンクすることをお勧めします。

    最後に、作曲家作成するコマンドを実行してプロジェクトを作成します。デバイスにダウンロードしたら、サンプルを自由にテストできます。コードやモジュールを変更することなく、部屋のレイアウトを変更することもできます。モジュールインスタンスのパラメータの値を変更し、その効果を確認することもできます。パラメータ値はオフラインでもオンラインでも変更できます。

    _ex_ac_img_first_steps9.png

システム要件と制限事項

プログラミングシステム

CODESYS Development System(バージョン3.5.17.0以上)

ランタイムシステム

CODESYS Control Win(バージョン3.5.17.0)

アドオンコンポーネント

CODESYS Application Composer

注記

_example_icon.pngダウンロードプロジェクト