• ベストアンサー

機械制御に適したOSと言語

12年ほど前に、趣味と実益を兼ねて、重量選別機を作りました。 制御は、PC9801でOSはMS-DOSで、コンパイルはターボアセンブラを使っています。 一部壊れ、部品もなくなりつつあるので、今回改良をしようと思います(機械的部分も含め)。 そこで、OSはウィンドウズ系、言語はDelphiの組み合わせを考えていました。 しかし、制御用ボード会社の方から、ウィンドウズ系では、リアルタイムに正確なことが できません、とアドバイスいただきました。 RTLinuxやDOSがお勧めとのことでした。 当方、RTLinux、PC-ATのDOSに関しては全く知識がありません。 また、Linuxもインストールがようやくできる程度の知識しかありません。(これから勉強しようと思いますが) どちらにしても、一からの勉強になると思いますので、 完成できるかどうか不安です。 そこで、将来性も考えた上で、機械制御に適当だという組み合わせを教えて下さい。 また、それらの参考書、サイトを紹介いただければ幸いです。 (RTLinuxの公式サイトは名前が変っていますが、将来、先細りということでしょうか?) 機械の条件 時間的には1ないし10msec単位 入力はアナログ入力1ないし2点 デジタル入力2ないし12点 デジタル出力6ないし16点 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.3

先ず市販されているRTOSは高価ですよ。 QNX・VxWorks・OS-9000あたりでしょうけど、そろえると100万円近くしました(最近は知りません) WindwosRTもベンダーから出てますけど、解説が英語でとっつきにくいですね。 NO1さんのシーケンサに賛成ですが間に合うかなあ、案外FX遅いので10ms以下特に1msは不可能だと思います。 各メーカーの最高速版のシーケンサを使用しても1msオーダーは辛いでしょうね。 弊社で重量計測しているのは、PC-DOS上でアセンブラで組んだものです。 シーケンサでは間に合わなかったのでPCでやってます。 そろそろPC-DOS2000の供給が切れるかも知れない事を考えると若干恐いのですが。

rakujin
質問者

お礼

シーケンサは案外遅いのでしょうか、不安ですね。 >供給が切れるかも これまた不安材料ですね。 市販のRTOSはご指摘のように凄く高いようなので範囲外といたします。 RTLinuxの学習は難しいのでしょうか。 経験からのご指摘、とても参考になります、ありがとうございました。

その他の回答 (8)

  • aton
  • ベストアンサー率47% (160/334)
回答No.9

RTOSのことは詳しくないのですが,I-TRONなどはどうなのでしょうか? TOPPERSというフリー版が存在するようなのですが..。 http://www.toppers.jp/ TOPPERSプロジェクト/INDEX それから,参考URL二番目のページには,リアルタイム制御に使えるかどうかは わかりませんが,FreeDOSというDOSのフリー版も紹介されていました。 http://www.sanritz.co.jp/realtime/rtoslink.htm Link of Operating Systems

参考URL:
http://www.toppers.jp/,http://www.sanritz.co.jp/realtime/rtoslink.htm
rakujin
質問者

お礼

TRON には興味を持っております。 ただ、まったくの素人なので、どのように勉強して 行けばよいのかもわかりませんし、近くにTRONに関し て知識のある方が皆無です。 それで、踏み込めないでいます。 フリーDOSについては、少し検討してみようと思います。 ありがとうございました。

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.8

DOSならそれほど大きな違いはないでしょうから、DOSでの作成をおすすめします。 RTOSは使ったことがないと、覚えることがかなりあって大変だろうと思います。 (VxWorks,pSos+,OS-9は経験有) RTLinuxはlinux知っていれば少し楽でしょうけど。 ただ、将来性というとどうでしょうね。 DOSそのものと、DOSが動くハードウェアがこの先どうなるか。 RTOS使えば、それが動いているハードウェアなら比較的楽に移植できそうに思えますが。 これもRTOSが生き残っていればになりますが。 WindowsやLinux等はそのままではリアルタイム性がないので問題外ですね。 確かWindowsは動作精度的には10msもなかったと思いますし、いつ長時間(10msと比べて)待たされるかわからなかったと思いますし。 あと素人でもボードコンピュータ使う人はいますね。 秋月電子通商なんかH8,Z80等いろいろありますし。 http://akizukidenshi.com/

参考URL:
http://akizukidenshi.com/
rakujin
質問者

お礼

>覚えることがかなりあって大変だろうと思います。 そのようですね。 そこで、今躊躇しております。 やはり、DOSが手っ取り早いでしょうか。 秋月のサイトは時折眺めております。 いろんな物があって見るだけでも楽しいですね。 アドバイスありがとうございました。

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.7

アセンブラが理解できるならそれほど難しいものではないです。 ただし、教えてくれる上級者は必要です。 PLC独自の癖があって、PCプログラマーはたまに、はまります。 計算・関数・データメモリは持ってます。 良い所は見かけ上のOSが無いので電源ON即実行可能。 電源OFFに制約が無いことです(もちろんデータの書き込み時にOFFはいけませんが) またRT-OSのように作成者が悩むことなくリアルタイム性が保障されるのです。 プログラム作って開発環境からスキャンタイムの計測すれば数秒で表示されます。 辛い所 ユーザーインターフェースが無いので、制御盤のスイッチや必要な場合タッチパネルを追加しないといけない。 出力メディアが少ないので、他にデータを移行するのが少し面倒。 でも最近はタッチパネルが安くなり、タッチパネル側にCFカードスロット等が実装され、PLCがCFカードを利用できるようになりました。 またイーサネットも徐々に普及しつつあります。

rakujin
質問者

お礼

たびたびの回答、恐れ入ります、ありがとうございます。 実は、この機械は最初クイックベイシックで制御しようと製作しました。 (当時、N88BASICとDBaseコンパイラしか、使ったことが ありませんでした。) ところが、秒単位の制御しかできないことがわかり急きょ他を検討したのですが、結局アセンブラということになり、 特急の付け焼刃でアセンブラを学習して、完成しました。プログラムタイマーを作るのに、INT21Hを利用 したために、10msec単位の制御となりました。 できればもう少し、小さくできたらと思っています。 (10msecでも一応仕事にはなっています) 田舎なもので近くにシーケンサに詳しい方が少なく、 二つ隣の市に、数人、達者な方がいると聞きましたが、 教えてくれるかどうかは、わかりません。 いっそ、その方に、制御部分をお任せする方が安上がりで 早いでしょうかね。 日が暮れて道なお遠いといったところです。 今後ともよろしくおねがいします。

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.6

このような案件が年に数回来るのでその度に実証してるのですが、松下電工最速のFP2SHを利用して0.5ms~2ms程度にスキャンタイムに変化がある為に1msを保障できない事と、そのスキャンが必要な場合の膨大なデータの取り扱いがPLC実装のメモリをすぐオーバーしてしまうのです。 10msでデータが少ないのなら十分に機能しますよ。 下のランクのFPシグマでも5msでスキャンしてましたから。 FPシグマならアナログ入力もあります。 開発環境もFP-WINだけですし。 1セット5万円程度かな RTLinuxは使ったことがありません。

rakujin
質問者

お礼

再度、回答ありがとうございます。 シーケンサは、今まで興味がなかったので、あまり知識が ありません。素人でも、簡単に習得できるでしょうか。 計算したり、結果を表示したり、累積などもだしたいのですが、 可能でしょうか。

  • matyrcry
  • ベストアンサー率47% (101/213)
回答No.5

ルネサステクノロジ(旧日立、三菱) のH8かM16Cを使ったマイコンボードで 処理させてはどうですか? 1msならタイマ割り込みで十分可能です。 一応RTOSも積めます。 (うちはmispoのnortiでやってます) オークス電子が夏休み工作キットが出してたので そのあたりから情報収集するといいかも。

rakujin
質問者

お礼

今回は、ボードコンピュータは使用しない方針です。 機会があったら次回、H8などにチャレンジしようと思います。 ありがとうございました。

  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.4

 #3さんの回答を読んでいて・・・質問の条件を読み違えていたことに気がつきました・・・10msec単位しかみてなかったですm(__)m  1~10msec単位のオーダーだと・・・ちょっと苦しいですね。  でも、このクラスの応答速度要求されると、汎用PCと汎用OSの世界でも苦しいような気がします。  結局、ボードコンピュータとアセンブラの世界かしら?こうなると・・・という気がしてきました。(MS-DOSにアセンブラなら、まぁ、これに近い世界かもしれません。)

rakujin
質問者

お礼

ボードコンピュータは、なるべく避けたいです。 あまり素人向きでないように思います。 可能な限り、たくさんん世の中に出ている汎用品をくっつけて、 作ろうと思います。 ありがとうございました。

noname#7341
noname#7341
回答No.2

普通にDOS or RT LinuxとC/C++/ASM/System C/VHDL or Verilogでいいんじゃないですか。 OSでWindows系を薦めなかったそうですが、RT処理に適したWindowsもあるでしょうが、VxWorksなども含めてRT-OSなんて個人で使うのに買うのもなんですし、RT Linuxか、OSなしの選択しかないでしょう。 PC98ですむくらいなら、オンボードのCPUかFPGA内のCPUにRT OS乗っけて余力でデータ処理させればOKで、デバッガ用にRS232CかUSBのI/Fでも付けておくといったところでしょうか。

rakujin
質問者

お礼

RTLinuxが選択肢中、お金もかからず、最良ということ でしょうか。アドバイス、ありがとうございました。

  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.1

 システムの規模がよくわかりませんが、私が業務でこのシステム組むなら、機械制御部分には、パソコン使わないです。素直にシーケンサを利用するでしょう。機械条件の規模からすると、三菱でしたらFXシリーズか、A1Sあたりでしょうか・・・。  機器制御に関しては、それ専用のシステムですので、リアルタイム性、安定性に関しては問題はほぼ無いですし、プログラムも、とっても組みやすいです。  ただ、欠点は、機器制御に特化しているので、データ処理に関しては、貧弱ということでしょう。(データベースから品名リストを検索し、その品名に合わせて選別重量を自動で設定し・・・となるときついです。)  そこで、データ処理がある程度必要な場合は、シーケンサとパソコンをリンクさせ(シーケンサに、イーサネットで接続できるモジュールや、RS-232Cで接続できるモジュールなど多々あります。)、データの処理に関しては、パソコンでやらせ、その情報をシーケンサに送るということもよくやります。  適材適所という意味では、パソコンのみでやるより、このほうが組みやすいかと。  

rakujin
質問者

お礼

やはりこの程度だと、シーケンサになるのでしょうか。 この分野も素人ですので、一から始めることになります。 どうせ一からなら、パソコンでと思ったのですが・・・。 シーケンサも検討することにいたします。 ありがとうございました。

関連するQ&A

  • 子らから主流になる言語・・・。

    こんばんわ、今までVBAでプログラムを勉強していましたが、 そろそろ本格的な言語を学ぼうかな、なんて思っています。 そこで質問ですが、将来的には、システム的なこと、Webアプリケーション、Windowsアプリケーションなどを開発したいと思っています。 どのような言語が最適だと思いますか?自分的にはDelphi,C++,C#,Javaの 4言語で結構迷っています。 あと、最近雑誌などを見ると、JavaとC#を比較した記事を頻繁に見ます。 結局どちらがいいのでしょう。(たとえば開発のしやすさや言語の覚えやすさなど。) 次は何を覚えたらいいでしょうか?お願いします。

  • 組込みソフトウェアと制御について・・・アナログとデジタル、必要とされるハードの知識

    シーケンス制御・フィードバック制御・PID制御・サーボ制御などの制御を理解するにはアナログ回路とデジタル回路のどちらの知識が必要となるのでしょうか? また、制御系の組込みソフトウェアを開発する場合(例えば、半導体製造装置や工場の組立・加工ロボットなどの産業機械、医療機器、エアコンや洗濯機などの家電、航空機やイージス艦やミサイルなどの兵器)には、ハードに関する知識として上記の制御分野の知識は必須となるのでしょうか? 文系出身で言葉の正確な定義を理解しておらず意味不明な箇所があるかもしれませんが、もしご存知の方がおりましたら回答のほどよろしくお願いいたします。

  • 制御盤やシーケンス制御の仕事について

    現在、二種電気工事士とDD3種の資格を持っていて転職を考えてます。現在は電化製品の販売設置等の仕事をしています。 自分の持っている免許で職安での検索をすると制御盤盤やシーケンス制御という仕事があり未経験でも可となっております。そこで図書館でいくつか関連する本を読み知識面は勉強すれば大丈夫だと感じています。 ただ、仕事の適性としてどういったものが必要とされますか? 比較的細かい作業の連続、電気を扱う面で細心の注意を持って行動するといった点を想像しています。

  • 大学の機械工学科に在学している3年生です。

    大学の機械工学科に在学している3年生です。 先日、研究室配属で希望していたロボットの研究室に落ちてしまいました。 しかし、将来はロボットを開発するエンジニアになりたいと思い、これから独学でロボットに必要な分野の勉強を進めていこうと思っています。 なので、機械工学分野以外で自分は何から勉強を始めればいいでしょうか。 制御工学・ロボットの運動学・センサ・プログラミング(fortran)・オペアンプ などは授業で簡単に学びましたが、電気・電子や情報分野はさっぱりです。。。

  • 機械学習の勉強法について教えてください

    幼いころより将棋を親しんでおり、最近になってボナンザが機械学習という技術で実現されていると知りました。そこで機械学習にとても興味がわき、勉強したいと思ったのですが 私は私立の文系大学に通っていて高校もろくにいっていなかったため数学の知識もあまりありません。 プログラミングの知識は基本情報技術者は持っていて、Cとjavaが入門書程度使える程度です。 英語に関してもTOEIC500点ほどしかありません。 そんな私が機械学習のプログラムをつかって簡単な将棋のAIを作れるぐらいにはなるには、何から勉強していけばよいでしょうか? たとえばまず英語で文献を読めるようになってから数学を数3Cまでやって、この本を読んで、それからこの本を読んでなど、詳しく教えていただければ幸いです。

  • DCブラシレスモータの速度制御

    DCブラシレスモータの速度制御の設計に関する 見積りをすることになりました。 可変抵抗で速度を制御するだけのものです。 (DCブラシレスモータの使用経験は全くありません) まだ見積りの段階ですから モータがどのようにして回転するか・・・というような 理論的な知識は必要ありません。 ターゲットのモータはドライバーは内蔵しています。 回路的に「このドライバーどのように制御をするべきか」 ということだけを知りたいと思います。 概要を知るために色々検索してみましたが 「メーカの製品説明」的なものばかりで悩んでいます。 制御回路としての入門レベルの適切なHPをご存知の方 アドバイスを御願いします。 回答いただいた皆様ありがとうございます。 私のおぼろげな記憶によると ”リングカウンタのようなものをディジタル的につくりフルブリッジの ドライバー(今回の質問で「内蔵されている」といったもの)で励磁し、 機械的な回転はホール素子で検出している” だったような気がします。 これに間違いがなければ ここから「どのような考えで、回路をつくるべきか?」 のアドバイスをいただければ幸いです。

  • 電気工学科の人間が他学科(機械)の科目を履修することで将来役に立つのか?

    私は工学部の電気系学科の学部4年生なんですが、将来は重工系メーカーへの就職を考えているので、研究も人工衛星の制御というどちらかというと機械科よりなテーマをやっており、また3年までの間に他コースの材料力学や機械力学、機械製図の単位を取得しました。 制御を専門とするなら機械系の知識も無駄にならないと思うので、4年の後期にまた弾性力学、工業熱力学、連続体力学といった他コースの科目をいくつか履修しようと思っているのですが、こんなふうに電気系の人間が機械系の科目の単位を取得しているということは、重工メーカーへの就職を目指すうえで有利に働くのでしょうか? もし有利に働くのなら、単位取得にある程度力を注ごうと思いますが、働かないのなら「自分の勉強・自己満足のため」と割り切って、単位取得だとか評定だとかは気にせず気楽に履修しようと思います。 またそもそも電気系の人間が機械の勉強をちょこちょことすることに意味があるのでしょうか? もしないならそもそもそんな科目を履修せずに研究に専念しろって話になりますよね。 みなさんどう思われますか?

  • "制御"に関して

    ※制御工学の質問なんですが、ないので物理で失礼します。 気軽に受けた仕事(論文に基づくプログラム実装)なんですが、"制御系"の知識が不可欠であることが判明。 "制御工学"、"ラプラス変換"に関して色々読み齧ってみたものの、 どうにもそうした教科書的な知識だけでは実装に結びつきません。 中でも悩んでいるのが、以下の二点です。 1)実測時系列データの空間   伝達関数"S"は論文中所与で、教科書通り、複素変数sの有理式で表わされています。   独立変数、従属変数ともに"t"ではなく、"s"空間であることは明らか(だと思います)。   そこで、実測時系列データを"s"の関数にするためラプラス変換(正確にはZ変換)し、   伝達関数"S"を掛けた後、逆ラプラス変換し直すべきと考えました。   ラプラス変換とフーリエ変換の類似性から、   ラプラス変換の数値的解法を適用すれば済むと、、。   しかし、、     ・時系列データ全体をラプラス変換(Z変換)すべきか?     ・"制御"というのはそもそもリアルタイム制御可能であるべきで、      エンドレスにデータが来るかもしれないから時系列データ全体はありえない。     ・では、どうやって時間範囲を区切って変換すべきか?     ・いや、それとも時系列データ全体をラプラス変換すること自体間違っている?   と堂々巡り。 2)"フィードバック"の実装法   教科書どおりの逆戻りの矢印が書いてあり、何となく分かった気になっていたのですが、   実際にプログラムに落とすとなると、     ・1ステップ前(i.e.,Δt前)のOutを今回の入力にするような漸化式   ではなさそうなのです。   どうするのが常道なのでしょう? どなたか、お知恵を貸してください。

  • 制御工学 信号の入出力について

    大学院試のため制御工学の勉強をしていますが、専門外のため、いまいち解らない点があるので教えてください。 伝達関数G(s)=2/s^2+2s+16 が与えられており、 これに正弦波入力u(t)=sin(ωt)を入力した時に得られる定常出力y(t)の振幅が最大になる角周波数ωを求める問題です。 よろしくお願いします。

  • VC++で他のアプリケーションを制御する方法

    こんにちは。 VC++で他のアプリケーションを制御するにはどうすればいいのでしょうか? 例)インターネットエクスプローラのツール/オプションでできるホームページアドレス設定を、直接モニタおよび変更するプログラムを作りたい。 当方VC++勉強中のため、上記のようなことがどれくらい難しいのか知っておきたいと思い、質問させて頂きました。 たぶん、難しい回答を頂いても、チンプンカンプンと思いますので、やろうとしていることの難易度とこれらをするために勉強しなくてはいけないことを教えていただければ助かります(参考HP、書籍等)。 よろしくお願いします。 当方のレベル 初心者(Cの基本的知識はあるが、VC++は現在勉強しはじめ) 使用環境 VC++.NET,WINDOWS_XP

専門家に質問してみよう