例: オブジェクト指向プログラミング (拡張)
製品: CODESYS Development System
この例では、オブジェクト指向を使用して、さまざまな機能を持つさまざまな部屋を持つ建物を実現する方法を示します。付属の視覚化は実装を示しています。
![]() |
説明
この例は、オブジェクト指向プログラミングのアプローチを示しています。この目的のために、さまざまな部屋と機能を備えた建物が実装されました。日中はすべての電球が消え、エアコンは 21°C に設定されます。夜間はすべての電球が点灯し、温度は 15°C に設定されます。マニュアルモードでは、ライトのオンとオフを個別に切り替えることができます。の CellarRoom
ライトは 1 つありますが、サービスは提供されません。の CheapRoom
も電球が 1 つありますが、寿命に達した電球を交換するサービスが追加で提供されます。の BetterRoom
通常の部屋の 2 倍の寿命を持つデュオライトがあり、 ClimateBetterRoom
さらに、一定回数の温度変化後にフィルターを交換する必要があるエアコンも備えています。
追加情報
Main
: 4 つの部屋すべてを作成し、モードに応じて必要な関数を呼び出します (daytime
、nighttime
、manual
)clsRoom
: ルームの基本機能ブロック。部屋ごとに必要な機能をここにまとめました。 4 つの部屋すべてがこの機能ブロックを継承します。clsCellarRoom
: ベース ルームを拡張し、clsLight
電球を実装する関数ブロックclsCheapRoom
: ベース ルームを拡張し、clsLight1min
関数ブロック。寿命が 1 分の電球を実装します。サービス機能も搭載しております。clsBetterRoom
: ベース ルームを拡張し、次のインスタンスを含みます。clsDuoLight1min
、寿命が 2 倍になり、サービス機能も含まれます。clsClimateBetterRoom
: を拡張します。clsBetterRoom
そしてエアコンも追加FB_AirCondition
: この機能ブロックは昼と夜の温度を調整します。clsLight
: ライトのオン/オフを検出する基本機能ブロックclsLight1min
: を拡張します。clsLight
関数ブロックを実装し、IService
インターフェース。この機能は電球の寿命を監視するために使用されます。clsDuoLight1min
: を拡張します。clsLight1min
2番目のタイマーによる機能ブロックにより寿命が2倍になりますFB_LifeTimer
: スイッチが入った電球の寿命をカウントダウンします。Visualization
: メインのビジュアライゼーションにはさまざまな部屋が含まれています。各部屋は次の要素で構成されます。電球1個
1 サービスメッセージ
1 サービス表示 (サービスが必要かどうかを表示)
1 つのボタンでライトのオンとオフを切り替えます
サービスをリセットするための 1 つのボタン
上部の部屋には温度も表示されます。の
OpMode
スライダーを使用して、モードを「昼間照明あり」、「夜間照明なし」または「手動」に設定できます。
システム要件と制限事項
プログラミングシステム | CODESYS Development System (バージョン 3.5.14.0 以降) |
ランタイムシステム | CODESYS Control Win (バージョン 3.5.14.0) |
アドオンコンポーネント | - |
注記
ダウンロード 計画