ラダーロジックで nucleo マイコンをプログラミング †ラダーロジックで nucleo マイコンを制御してみました. ラダーロジックとは †ラダーロジックとは,リレーの組み合わせでプログラムを記述する言語です. で,リレーというのは,スイッチを電磁石で動かす素子です. 昔はリレーで論理回路を組んだコンピュータや計算機がありましたね. 詳しくは「WikiPedia.ja:ラダー・ロジック」を参照してください. ラダーロジックの例を以下に示します. | Q R Q | +---| |---+---|/|-------( )---+ | | | | S | | +---| |---+ | | |
で,上記の回路では
ということで,論理回路の RS ラッチのような動作をします. nucleo とは †nucleo とは,STM32 マイコンを搭載したボードマイコンです. マイコンでの開発となると JTAG を使ってプログラムの書き込みやデバッグをするのが普通です. が,このボードには主マイコンの他にプログラム書き込み・デバッグ用のマイコンが搭載されていて,パソコンと直接 USB ケーブルでつないでプログラムの書き込みやデバッグができます. 今回はこの↑ nucleo F446RE を使いました. このボードは,38 ピン x 2 の入出力コネクタの他に Arduino 互換のコネクタもあり,(プログラムを書けば)Arduino のシールド(ドータボード)が使えます. ただし,ロジック入出力レベルが Arduino UNO の 5V と違って nucleo は 3.3V なので,これが原因で動かないシールドもあると思います. 開発の流れ †図にすると以下のようになります. PLC Open Editor ←→ (プロジェクト保存ファイル) ↓ (ST 言語プログラム) ↓ matiec STM32CubeMX ↓ ↓ (C 言語プログラム) (グルーロジック) (C 言語ソースコードツリー) ↓ ↓ ↓ ----------------------------------------------- ↓ コンパイル・リンク ↓ (ファームウェアバイナリ) ↓ 書き込み
初回はこのような手順になります. 入出力ピンが確定し,グルーロジックが出来上がっている状態ならば
で,ラダーロジックの修正ができます. 利用シーン †C 言語でプログラムが書けるのならば,素直に C 言語オンリーで書いた方が良いでしょう. が,ラダーロジックの使い手は,制御対象に対して独自のノウハウを持っていることが多いようです. そのような方と共同で作業する場合は,このような開発手段も有効かと思います. 開発例 †LED 点滅のラダーロジックを組んで,実際に上記の手順でファームウェアを作りました. この記事のウケが良かったら書いてみようかと思います. リンク †
あと,この本も参考になると思います. |