いつもお世話になっております。開発環境 :VB2005OS :XPVBというよりPLCになるのか。。。。良くわからないのですがPLCはPLCの中にPID演算?の値を持っているんですか?その値をとるのにVBで受け取り用のワードを用意しておいてそのワードをPLCに送れば後はPLCが受け取って、PID演算値を送ってくれると考えていいのでしょうか?
> VBというよりPLCになるのか。。。。良くわからないのですが> PLCはPLCの中にPID演算?の値を持っているんですか?> その値をとるのに> VBで受け取り用のワードを用意しておいて> そのワードをPLCに送れば> 後はPLCが受け取って、PID演算値を送ってくれると考えていいのでしょうか? 何を期待されているのでしょうか? 温調ユニットがスロットに搭載されていればPID制御は 行えますが、PID演算値をただ計算させて取得したいの であれば、それはお門違いです。 PID演算方法は方程式としても出来上がったものですの で、VBで記述しなおすか、ラダーでPID演算を構築しな いと道程できませんが・・・以上。
追伸PLCのメーカーによっては、PID演算マクロが搭載されている場合もあるようです。以上。
返答有難うございます。使用するのは三菱のPLC(シーケンサ)です。PID演算をPLCで行うと、処理が重たくなるということでPCでPID演算が行いたいのですがそのPID演算の値はPLCのどこにいて、どう取り出せばいいのか解らなく質問しました。
> 使用するのは三菱のPLC(シーケンサ)です。> PID演算をPLCで行うと、処理が重たくなるということで> PCでPID演算が行いたいのですが> そのPID演算の値はPLCのどこにいて、どう取り出せばいいのか> 解らなく質問しました。 MELFANS Webで会員登録されてますか? されているのであれば・・・ QCPU(Qモード)/QnACPUプログラミングマニュアル(PID制御命令編) SH(名)-080022 に記載されています。● 重たくなる・・・とのことですが、それは昔の話・・・ 今のQシリーズならそれで重たくなるほどステップ数書いてある 巨大なラダーなら解らなくもないですが・・・● PCでPID演算・・・ 検索すれば方程式や解法のコード、山ほどヒットしますが。 因みに、PLCでのオートチューニング機能は当然ありませんので センサー入力(A/D変換等)から得られた値から算出する途中で 破たんしてしまった場合(アンダーフロー・オーバーフロー)、 入力値のスパン調整(ゲインやオフセット調整)を、ご自身でコー ディングしないといけないので、経験がないと大変かと。※ 出力値は、何に使用されるのでしょうか? D/Aから電圧?速度?・・・以上。
回答有難うございます。> MELFANS Webで会員登録されてますか?> されているのであれば・・・> > QCPU(Qモード)/QnACPUプログラミングマニュアル(PID制御命令編) > SH(名)-080022 はい。登録してあるので参考にさせていただきます。> ● 重たくなる・・・とのことですが、それは昔の話・・・> 今のQシリーズならそれで重たくなるほどステップ数書いてある> 巨大なラダーなら解らなくもないですが・・・巨大か解らないですが結構長いです。> ● PCでPID演算・・・> 検索すれば方程式や解法のコード、山ほどヒットしますが。どのような言葉で検索するのが良いのでしょうか。。。私はPLC PID 演算 と検索しましたが、PID演算のことがわかったぐらいでした。。。> ※ 出力値は、何に使用されるのでしょうか?> D/Aから電圧?速度?・・・速度に使用します。
> 巨大か解らないですが結構長いです。 何キロと言うか、何ステップくらい? 数万ステップなら小さい方 1サイクルはどの程度で回っているのでしょうか・・・> どのような言葉で検索するのが良いのでしょうか。。。 モータ制御なら・・・ http://www.picfun.com/motor05.html 理論は解っておられるのでしょうか・・・※ 大抵温度制御でひっかかる・・・> 速度に使用します。 速度でも出力はD/Aで出力して、速度制御にと言う ことですか?● 因みに、PLCで・・・と言うニュアンスと受け取って ますが、PCなら環境は?言語はVB6ですか? A/D・D/Aボードはどこのメーカーの使うの? 計算はVB6でできても、A/D・D/Aはボードメーカ のライブラリ使ってサンプリングして、出力することにな るかと・・・ 一層のこと、A/DとサーボモータボードでPCのみで制 御しますか?サーボアンプとの設定で、速度制御できるは ずですが・・・※ ただ電圧・速度で制御を構築した場合、暴走することがあ るので、オススメではないんですが・・・ ノイズや電位差や周辺機器の電源オンオフの影響受けたり しますので。以上。
プログラムコードは・・・http://www.make21.net/products/hard/pidservo/program.htmlhttp://uhiro.fc2web.com/robo-one/special/report009.htmlhttp://flex.phys.tohoku.ac.jp/riron/tool/builder5/pid/http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1020455145C系が主ですが、移植にはそう問題ないかと・・・以上。
入力値に大きい変動によって離散する場合があります。PLC等ではオートチューニングとしてフィルタを作成して入力値の異常データを除外する仕掛けになっています。スパン値の調整(ゲイン・オフセット)もありますが・・・PCの場合、簡単に行うならば、前回値と現在値に差がある一定異常大きい場合、異常値として読み捨て、再度サンプリングして適正値でPID演算を行うようにすれば、大丈夫でしょう。(環境によりますが・・・)以上。
おかげさまでなんとかなりそうです。ありがとうございました。
もう少し調べてみました・・・パナソニック電工・三菱・キーエンスのPLCにはそれぞれPID演算用の関数が用意されています。恐らく以外のメーカーでも機能は搭載されていると思いますので、センサー等からの入力をスパン値換算して入力データとし、PID演算関数にかけ、目標値を出力させれば、後は何等かの出力方法で得られると思います。何の入力から演算させて、その出力結果を何にしたいと言うか、どういう制御にフィードバックしたいのでしょうかネ〜・・・以上。参考まで