本記事のゴールと必要な作業内容
本記事のゴール
CODESYSにて、ラダー図とHIMボタンを作成し、
ボタンをONOFFするとランプがONOFFするシミュレーションが可能となる

必要な作業内容
- CODESYS開発環境のインストール
- 新規プロジェクトの作成
- ラダー言語でコーディング
- Visualization(HMI)でボタンを作成する
- タスクの作成
- シミュレーションの実行
CODESYS開発環境のインストール
インストールは別記事に記載しましたので参考にしてください。
新規プロジェクトの作成
- スタートページ→「新規プロジェクト」を選択

別の方法
「ファイル」タブ→「新規プロジェクト」でも可能

- 新規プロジェクトの各設定項目を選択する
- カテゴリー:プロジェクト
- テンプレート:標準プロジェクト
- 名前:任意
- 場所:プロジェクトの保存場所を選択

- 以下ダイアログにて、任意のデバイスを選択し、OKボタンを押す


デバイスの選び方
筆者の場合は「CODESYS Control for Raspberry Pi SL (CODESYS)」を選択
理由と選択基準はこちらをクリック
- 前提:筆者はRaspberryで動作させる環境を整えている
- デバイス選択基準:
「実際にRaspberry Piにインストールされるランタイム」に合わせて選ぶ必要がある
→筆者はOS: Raspberry Pi OS 32bitをインストールしたため、上記デバイスが最適
- デバイスの選択基準
| 使用している OS / イメージ | CODESYS で選択すべきデバイス |
|---|---|
| Raspberry Pi OS 32bit (Bookworm / Bullseye / 旧Raspbian など) |
CODESYS Control for Raspberry Pi SL |
| Raspberry Pi OS 64bit | CODESYS Control for Raspberry Pi 64 SL |
| 産業用 PC 向け Windows (7/10/11) 32bit | CODESYS Control Win V3 |
| 産業用 PC 向け Windows (7/10/11) 64bit | CODESYS Control Win V3 x64 |
| CODESYS Runtime Environment (RTE) 32bit | CODESYS Control RTE V3 |
| CODESYS Runtime Environment (RTE) 64bit | CODESYS Control RTE V3 x64 |
- 画面左側に、「デバイス」「POU」内にプロジェクト名称(ここではproject1)のツリーが表示されたらOK
※選択したデバイスによってデバイスツリーの構造が異なるようです

ラダー言語でコーディング
以下の作業を実行してラダー図を書いていきます。
- POUの新規作成
- 変数宣言
- ラダー言語によるコーディング
POUの新規作成
- Application→オブジェクトの追加→POUを選択

- 「新規POU(プログラム構成ユニット)の作成」ダイアログにて各項目を設定し、「追加」ボタンを押す
- 名前
- タイプ
- 実装言語

- 以下のように命名した名前のタブが開いたらOK

変数宣言
- 変数宣言部の右側の表マークをクリックする

- 以下の二つの変数を宣言する

ラダー言語によるコーディング
- 右のツールボックスからラダー要素>a接点をドラッグ&ドロップ

- 「???」をクリックし、変数名「HMI_Button」を入力する


- 同様に、ツールボックスからコイルをドラッグ&ドロップし、変数名「LED_OUT」を入力

Visualization(HMI)でボタンを作成する
Visualization は、プログラムの変数値をランプやメーターなどの仮想のアイテムとCODESYS-IDE上で紐づけることによって、視覚的にデバッグすることができる機能です。
以下の作業を行います。
- Visualizationの作成
- コンポーネントの選択とデバイスと紐づけ
Visualizationの作成
- デバイスウインドウにて「Application」を右クリック
- 「オブジェクトの追加」→「ビジュアライゼーション」を開く

- 任意の名前を入力→「追加」をクリック

- 「ビジュアライゼーションマネージャー」と「Visualization」がデバイスウインドウに表示され、
メイン画面にVisualizationエディタが表示されたらOK

コンポーネントの選択とデバイスと紐づけ
以下のコンポーネント(アイテム)を配置しデバイスを紐づけます.
| コンポーネント | 変数 |
| ランプ | LED_OUT |
| ディップスイッチ | HMI_Button |
- ビジュアライゼーションツールボックスからディップスイッチをエディタ画面にドラッグ&ドロップする

コンポーネントが画面に現れないときの対処法
以下の画像の赤枠部分にカーソルを合わせ、ドラッグして動かすと現れます

- ディップスイッチをクリック→プロパティ画面の変数名入力欄をダブルクリック

- 「…」をダブルクリック→入力アシスタント内の「HMI_Button」をダブルクリック

- 変数にデバイス名が入力され、ボタンとラダー内のデバイスの紐づけが完了

- 同様に、ランプをデバイス「LED_OUT」と紐づける


タスクの作成
ここではタスクを作成し、実行するPOUとして「LED_ONOFF」を割り付けます
- デバイスウインドウ「タスク構成」→「オブジェクトの追加」→「タスク」

- 好きな名前を入力して「OK」ボタンを押す

- 「呼び出しを追加」をクリック

- 入力アシスタントにて、実行するPOUである「LED_ONOFF」をダブルクリック

- LED_ONOFFが追加されていることを確認できればOK

シミュレーションの実行
- オンライン→シミュレーションをクリック

- オンライン→ログイン

以下のアイコンでもログイン可能

- 以下ダイアログがでたら「はい」

- デバッグ→運転ボタンを押す

以下のアイコンでも運転可能

- ボタンをONするとライトがONする


まとめ
本記事では、CODESYSにて、ラダー図とHIMボタンを作成し、ボタンをONOFFするとランプがONOFFするシミュレーションを実行してみました。
今後、Raspberry PiとCODESYSによるデータ取得に関する記事を公開予定です。
参考
- PLC(シーケンサ)・ラダーがフリーで使える!おすすめ入門ソフト
- https://www.mgco.jp/mssjapanese/PDF/NM/B/nmbacds35_c.pdf
- https://www.tokyokeiki.jp/Portals/0/resources/hyd/j/cx2500/CCOT-24-016_CX2500Codesys_UserManual_ForPrograming.pdf
社内外で評価されるエンジニアになる、ひいてはエンジニア人生を楽しくするためには、
日常のインプットとアウトプットの重要性が日に日に増していることを実感しています。
そのなかで、私は「書籍による学習」と「ブログによるアウトプット」を強くおすすめしております。
その重要性や効果の実感をブログに書いてみましたので、参考にしていただければ幸いです。




