NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

LabviewによるRTD温度測定およびPID温度制御、そしてSSRへの電気信号の送り方について

現在Labviewを使用し始めたばかりの初心者です(プログラミングも初心者です)。

皆様にお聞きするのは大変恐縮ではありますが、ご教示いただけますと幸いです。

 

私は現在、添付します図のような回路を組み、ヒータ温度のPID制御を試みようとしています。

参考にしている.viはサンプルにあります[Autotuning Smith Predictor.vi]です。

これを用いて、できれば設定温度(set point)のみを操作して、

設定温度よりも低温の場合、SSRを起動→ヒーターON

設定温度よりも高温の場合、SSRを停止→ヒーターOFF

といったことをLabviewにて行いたいです。

 

そこで、上記のviを参考にした場合、

NI9216入力ソケット情報をどこに組み込めばよいか

また、NI9264出力ソケットへどこで配線しSSRへ信号を送ればよいか

大変大雑把な質問にて申し訳ございませんがご教示いただけますと幸いです。

 

また、各ソケットへはDAQアシスタントを介すことと存じますが、

こちらにつきましてもどの端子(データなのかエラー出力なのかなど)から配線すれば良いのか、時間を割きましたが解決しないので、こちらについてもお教えいただけますと幸いです。

 

知識が浅く大変お恥ずかしい質問とはなりますが

何卒よろしくお願いいたします。

0 件の賞賛
メッセージ1/11
5,688件の閲覧回数

ice-royce 様

 

申し訳ないのですが、SSRがどのような電圧で動作するのか情報をいただけますか?

 

個人的な想像ですが、温度測定値から設定値を比較して、その結果(TrueもしくはFalse)をOn/OFFのデジタル値のような形でSSRを制御すれば良い感じがします。

そうなると、PID関数を使用する意味合いがなくなってしまいます。

そのため、SSRの仕様を確認してからご返答したほうが良いかと思います。

 

 

0 件の賞賛
メッセージ2/11
5,608件の閲覧回数

Y.Ueno 様

 

お返事ありがとうございます。

そして、返答が遅くなり申し訳ございません。

 

SSRは

crydom製 CSW2410 を使用予定です。

入力電圧は3-32Vで動作します。

 

PID制御では通常のON/OFFの制御に加えて温度システムの管理の役割で必要と考えています。

LabviewやPID制御に関してまだまだ理解が追いついていない状態で質問しておりますため点、ご返答に悩まれることと思いますが

ご返答のほど何卒よろしくお願い申し上げます。

0 件の賞賛
メッセージ3/11
5,562件の閲覧回数

ice-royce 様

 

ご返答ありがとうございます。PID関数からの返り値をNI-9264の出力電圧値してアナログ出力し、SSRに入力すれば良いわけででしょうか。

PID制御をおこなうには、一気に作るよりは入力処理、出力処理、統合(制御)と分けておこなったほうがトラブルシューティングしやすいと思います。

セッションに分けてお伝えします。

 

・アナログ入力

  1. NI-9216RTDを配線してから、NI MAXを起動してデバイスとインタフェースの下にリストされているNI-9216の項目を右クリックしてテストパネルを開き、入力確認をおこないます。
  2. LabVIEWを起動してファイルメニュー 新規VIを選択し、ダイアグラム画面を表示します。
  3. ダイアグラムを右クリックして関数パレットから、測定I/O DAQmx - データ収集 DAQアシスタントを選択して配置します。
  4. ダイアログが表示されますので、信号を集録 アナログ入力 温度 RTDと選択します。
  5. 配線した物理チャンネルを選択します。(例:cDAQ1Mod1(NI9216) ai0
  6. 終了ボタンを押すと、構成画面になりますので、RTDの仕様に合わせて構成します。
  7. 画面上部にある実行ボタンで、動作確認して値が正しく収集されていれば、OKボタンを押します。これで「データ」出力端子から測定値が返ります。

 

・アナログ出力

  1. NI-9264からテスターやオシロスコープなどアナログ出力が確認できる機器に接続して、こちらもMAXのテストパネルで出力確認をおこないます。
  2. 新規VIのダイアグラムにDAQアシスタントを配置します。
  3. ダイアログが表示されたら、信号を生成 アナログ出力 電圧 と選択します。
  4. 配線した物理チャンネルを選択して終了ボタンを押します。(例:cDAQ1Mod1(NI9264) ao0
  5. 構成画面で生成モードを1サンプル(オンデマンド)に変更して、動作確認します。
  6. ダイアグラムに戻ると「データ」入力端子ができていますので、値と書き込むとその値を出力します。
  7. SSRと接続して、SSRの出力を確認します。

 

・制御

PIDのサンプルを参考に、上記で作成したDAQアシスタントをPID関数に配線します。ハードウェアがないため、動作確認はとれませんが大体下記のような感じだと思います。

PID Control with DAQmx.png

 

 参考になりますでしょうか。

 

メッセージ4/11
5,549件の閲覧回数

Y.Ueno 様

 

ご回答誠にありがとうございます。

現在添付していただきました配線図を元にVIを組んでいるところであります。

 

動作確認を行った際にご報告いたします。

よろしくお願いいたします。

0 件の賞賛
メッセージ5/11
5,493件の閲覧回数

Y.Ueno 様

 

ご報告が遅れまして申し訳ございません。

ご提示いただきました.viのようにプログラム編成し、

実行することができました(実際に機器を接続しての実行は未了です)。

ありがとうございました。

 

重ね重ね申し訳ございませんが、

再度ご質問をさせていただきたく存じます。

PID制御に関しまして、オートチューニングでの制御を検討しておりましたが、

私のオートチューニングに対する認識が甘く、PID定数を自動で求めてくれるものだと思い込んでおりました。

 

調べました結果(http://www.rkcinst.co.jp/techno/11/techno_11.htm)、セルフチューニングによるPID制御でしたら、特別な操作なしでコントローラ自身がPID定数を適切な値に変更するシステムを利用すべきと判明しました。

 

おそらく、本.viにおけるオートチューニングの部分をセルフチューニングの仕様に変更すれば良いとは思われるのですが、参考にすべきサンプル.viが見当たらないため、

もしご存知でしたらご教示いただけますと幸いです。

 

大変お手数をおかけいたしますが、ご返答お待ちいたしております。

0 件の賞賛
メッセージ6/11
5,393件の閲覧回数

ice-royce 様

 

手動で定数を設定されるのでしたら、「汎用PIDシミュレータ(General PID Simulator.vi)」あたりのサンプルから参照されてみては如何でしょうか?

 

サンプルは、ヘルプメニュー ≫ サンプルを検索 ≫ 参照タブ ≫ 制御とシミュレーション ≫ PID からアクセス可能です。

 

0 件の賞賛
メッセージ7/11
5,383件の閲覧回数

Y.Ueno 様

 

ご返答ありがとうございます。

定数につきましては、手動ではなく、プログラムが自動で適正化してくれるものを探しているところです。

その中でも、オートチューニングとセルフチューニングという手法があり、

セルフチューニングでは特別な操作なしで自動的に定数を適切な値に変更するシステムのためこちらの参考資料を捜索中です。

 

誠に恐縮ではございますが、もしご存知の資料などがございましたら、お知らせいただけますと幸いです。

私も引き続き調べます。

0 件の賞賛
メッセージ8/11
5,370件の閲覧回数

ice-royce 様

 

PIDに関する資料を探してみたところ、ヘルプメニュー ≫ LabVIEWヘルプを選択して、目次タブにある項目で、基本機能 ≫ PID/ファジー論理 ≫ PID制御の中にドキュメントがあるのと、下記のユーザマニュアルがございました。

 

LabVIEW PID and Fuzzy Logic Toolkit User Manual

http://www.ni.com/pdf/manuals/372192d.pdf

 

提供いただいたリンクにあるセルフチューニングに関する資料では、

具体的な仕組みやアルゴリズムに関しては記載がないので推測ですが、

サンプルにある“オンライン”という名称を含むサンプルは、オンオフのオートチューニング以外に、オンラインオートチューニング関数からPIDゲイン出力して処理しておりますので、ご参照ページのセルフチューニングにあたる内容かもしれません。

 

制御の専門家ではございませんので詳しくなくて申し訳ないです。

 

 

 

 

 

0 件の賞賛
メッセージ9/11
5,355件の閲覧回数

Y.Ueno 様

 

ご返答ありがとうございます。

また、資料などのご提示ありがとうございます。

引き続き、システムについて調べます。

 

現在、PIDオートチューニングの制御についても同時に進めておりまして、

ご専門分野でなく大変恐縮なのですが、ご質問をさせていただきたいです。

 

現在、オートチューニングの制御ループを組むことができ、SSRやヒータを介しての.viの実行には成功しました。

しかしながら問題点が生じており、以下にまとめましたのでご相談させてください。

DAQアシスタントについて

NI9216RTDより温度情報を入力し、システム上計測はできているのですが、NI9264での電圧出力の際、本添付します図のように本来はSPよりPVが上回れば電圧信号OFF、下回ればONという制御がなされるべきなのですが、.viの実行を押し、SPよりPVが下回っているにもかかわらず電圧信号がONにならず、また、逆の状態(ONのまま)も散見されます。これは、PIDなどの問題ではなく、DAQアシスタント上での問題かと推測しているのですが、何か解決方法をご存知ではないでしょうか。

 

大変申し訳ございませんが、お答えが可能な範囲でご回答のほどよろしくお願いいたします。

0 件の賞賛
メッセージ10/11
5,335件の閲覧回数