Industrial Shields製のPLC、M-duinoを使用してのステッピングモータ制御を紹介します。
まず、このPLC、Industrial Shields製のM-duinoを聞いたことがあるでしょうか。
M-duinoとは、arduino IDEがベースであり、それを産業用PLCとして使用しているものです。
電子回路を製作する方はarduinoをご存知だと思います。そのarduino IDEのプログラムで記述できるということで汎用性は高いと思われます。
今回のステッピングモータを動かすという経緯としまして、私にある企業からご連絡があり、お話が進みました。それがRSコンポーネンツです。
はじめまして。RSコンポーネンツ株式会社です。
少し変わった製品があります。部材を提供するのでレビュー記事の作成を依頼させてもらないでしょうか?
お世話になります。にわかFA電気屋です。
ではステッピングモータの制御でもしてみましょうか。
というやりとりが5月くらいにあり、今回やっと記事にすることができました。新規で取り掛かったので時間が掛かりました。笑
まず、RSコンポーネンツがどのような企業かご存じでしょうか。
RSオンライン|電子部品・半導体の通販/販売サイトRSコンポーネンツは主に電気部品の販売を行っています。
今回使用する部品のほとんどはRSコンポーネンツの支給品となっております。
IS.AB20AN.base | Industrial Shields PLC CPUユニット Ardbox | RS Components
・ステッピングモータ 191-8299
ステッピングモータ RS Pro ユニポーラ 40 x 40mm | RS Components
・電源ユニット UNO POWER
2902993 | Phoenix Contact, 2902993 スイッチング電源, UNO POWER, 定格:100W 24V dc/, 出力:4.2A | RS Components
・バッテリ ステッピングモータ駆動用9V
これらの支給品を使用しまして、ステッピングモータを制御します。
概要は下記の動画を参考にして頂ければと思います。
youtu.be【目次】
広告
はじめに
Mーduinoとはarduino IDEベースのPLCであり、無料プログラムを組むことができるという特徴があります。arduinoといえばステッピングモータの制御が多く行われており、今回はMーduinoでも同様なことが出来ないかという考えで進めました。
通常PLCとステッピングモータ間はステッピングモータ用ドライバがあり、PLCからの起動信号をステッピングモータ用ドライバが受け取り、ステッピングモータをドライバが動かすパルスを出力するようになっています。
理由としてはステッピングモータの制御プログラムを書く手間が省けるからが大きいかと思います。
また、トランジスタ出力の場合、電流を0.1A程度しか流すことができず、大きな容量のステッピングモータをトランジスタから制御することができなくなってしまうという点も、ドライバを設ける理由となっています。
今回はそのステッピングモータを動作させるプログラムを書き、位置制御させようというのが目的です。
ステッピングモータとは
ここまで読んでもらっておいて申し訳ありませんが、ステッピングモータをご存じでしょうか。ステッピングモータとは、正確な位置決め運転を簡単に実現できるものです。
パルス信号によって回転角度・回転速度を正確に制御できるモーターとして、さまざまな装置に利用されています。
詳しく知りたい方はオリエンタルモータサイトをご覧頂きたいです。
www.orientalmotor.co.jp
バイポーラ駆動とユニポーラ駆動
ステッピングモータの駆動方法は2通りあります。それがバイポーラ駆動とユニポーラ駆動です。
どのような違いがあるのか説明していきたいと思います。
バイポーラ駆動
バイポーラ駆動ではトランジスタを8つ(2相の場合)使用します。1相の電流をトランジスタを使用して正逆させ、回転方向を制御します。
私自身ステッピングモータに詳しくないのですが、バイポーラ駆動は低速トルクが強いという特徴があるそうです。
今回はPLCより直接ステッピングモータを制御するということでしたが、PLCのトランジスタは0Vが共通となっており、バイポーラ駆動のようにトランジスタを接続することができないので、バイポーラ駆動は諦めました。笑
ユニポーラ駆動
ユニポーラ駆動は1相あたりに別々のコイルがあるので、トランジスタを別々に接続することができます。それによって、PLCのトランジスタを0Vと共通にすることができました。
今回はPLCから制御したいので、ユニポーラ駆動にします。
・PLCから直接制御するならユニポーラ駆動にする。
支給部品
IS.AB20AN.base | Industrial Shields PLC CPUユニット Ardbox | RS Components
・ステッピングモータ 191-8299
ステッピングモータ RS Pro ユニポーラ 40 x 40mm | RS Components
・電源ユニット UNO POWER
2902993 | Phoenix Contact, 2902993 スイッチング電源, UNO POWER, 定格:100W 24V dc/, 出力:4.2A | RS Components
・バッテリ ステッピングモータ駆動用9V
PLC M-duino
ステッピングモータ 191-8299
パワーサプライ UNO POWER AC100V / DC24V 100W
セットアップ方法
ステッピングモータを動かすためには、
2.PLCからステッピングモータへの電源供給と出力トランジスタの接続
3.PLCのプログラム設定
が必要となります。
どのようにこの手順を踏んでいくかを説明していきます。
配線例
このように配線しました。
回路図も載せます。
まずはPLCへの一次側電源DC24Vを給電します。
パワーサプライでAC100VをDC24Vにすることで、PLCへの給電は完了します。
次にPLC出力トランジスタとステッピングモータへの給電です。これはバッテリ9Vにて行います。
広告
Mーduinoセットアップ方法
上記ショートカットをデスクトップに表示することができれば終わりです。
arduino IDEインストール
Arduino - Software
インストール方法は上記サイトから簡単にできますが、詳細が載っている下記のサイトを紹介致します。
Arduino IDEインストール方法 – Windows編 – IoT GymIoT GYM
M-duino接続設定
今回使用するM-duinoは、ボード『Arduino Leonardo』というタイプです。
ですので、『ツール』→『ボード』で『Arduin Leonardo』を選択します。
プログラム例
まず出力ピンを設定します。
設定方法は『pinMode(??, OUTPUT);』の部分です。
これを設定しないとPLCから出力することができないので、必ず設定します。
MsTimer2をライブラリ追加
MsTimer2はもともとライブラリに入っていないものです。
ですので、ライブラリに追加し、その命令、プログラムを使えるようにします。
まずはライブラリに追加したMsTimer2を認識させます。
その方法は、まず『スケッチ』→『ライブラリをインクルード』→『ライブラリを管理』を選択します。
選択が完了したら、上記画面がポップアップしてきますので、検索で『MsTimer2』を入力して下さい。
ここで検索しても表示されない場合は、ライブラリにMsTimer2を入れられていませんので、再確認して下さい。
検索が完了したら、インストールを選択して下さい。
これでMsTimer2が使用可能になります。
ダウンロードなどの詳細は下記サイトを参考にして下さい。
arduino使い方:タイマー割り込み(MsTimer2)Arduinoの動かせ方入門
どのようなプログラムかというと、タイマーが一定時間毎に割り込み、i=i+1を行います。
j=i÷4の余り(i%4)を計算することで、電流を与える箇所を決め、if文で出力のON、OFFを決定します。
正転回転確認
youtu.be連続位置決め制御
正転確認が終わったので、連続で位置決めできるようにプログラムを変更します。
プログラム例
追加プログラムとして、countの数値部分で指定位置xを決定します。
x[°] ÷ 1.8[°/step]を行い、yを決定します。
※1.8°は1ステップあたりの移動量です。
yはdouble型で演算していますので、それをint型のzに直します。
zとiを比較します。比較して正転方向ならiに+1、逆転方向ならiに-1を行います。
zとiを比較して同じなら、countを増やします。このようにすることによって、連続で位置決めを自動で行うことができます。
連続位置決め制御確認
youtu.be終わりに
今回はArduino IDEベースでプログラムを組みました。
私は大学生の時にC言語でプログラムを組んできたので、自然にプログラムを組むことができました。
普段ラダーでプログラムを組んでいる人には慣れないとかもしれませんが、参考にして見て下さい。
広告