ページ 11

RS232CのCAN通信(C++)

Posted: 2014年1月14日(火) 21:26
by KillerQueen
あるセンサーのデータをCAN通信でリアルタイムに取得する場合どうしたらよいでしょうか.
私は現在,CANreal(参考:http://esd.eu/en/content/canreal)という直接CANをモニタリングできるツールを用いてセンサーのデータ取得を行っています.具体的にはセンサーとCANrealはRS232Cで接続しており,CANrealはPCとUSB接続し,専用アプリケーションソフトで画面上にCANデータを表示させています.画面の挙動としては,センサーの前に物をかざすと,16進数のデータが次々に流れてくるといった感じです(センサーの前に何もない場合は,データは流れてきません).しかしながら,このツールではデータを.txtとしてロギングして後で解析しなければならないため,リアルタイムで物理値として表示させることができません.そこで,センサーをシリアルUSB変換ケーブルに繋いで直接PCでデータを取得したいのですが,可能でしょうか.センサーからのデータ出力フォーマットは分かっており(DLCが8byte等)ますが,その他,通信プロトコル等は問い合わせなければ私も分からない状況です.現状ではCANrealと同じように16進数のデータが次々に流れてくる状況をVisual Studioのコンソール画面で再現するのが目先の目標です.

質問をまとめます.
・現状でCANデータをコンソール画面に表示することは可能でしょうか.
・その場合,どのようにプログラムを書けば良いでしょうか(取得したいCANのIDを指定も含めて).
・現状で不可能な場合,どうすればよいのかアドバイスを頂きたいです.

当方,普段はMATLABを使用しており,C++等にはあまり詳しくありません(基礎的な文法がわかる程度).宜しくお願い致します.

Re: RS232CのCAN通信(C++)

Posted: 2014年1月14日(火) 21:38
by beatle
CAN関係なく、RS232C通信をパソコンのプログラムで行えるかという質問でよろしいですかね?
それなら、答えは「出来ます」ですね。

例えば.NET Frameworkを用いて
.NET Framework 2.0 コア機能解説 ~ 第 2 回 シリアルポートのサポート ~

またはWin32APIを用いて
RS232C シリアル通信

Re: RS232CのCAN通信(C++)

Posted: 2014年1月14日(火) 21:56
by softya(ソフト屋)
リアルタイム性次第では取りこぼしが出るかもしれません。
あとパソコンのRS232C自体が完全準拠ではないので、CAN通信で使っているRS-232C規格によっては受信さえ出来ないかもしれません。
http://www.ys-labo.com/pc/2007/070408%20PC_PS232C.html

Re: RS232CのCAN通信(C++)

Posted: 2014年1月18日(土) 18:46
by KillerQueen
みなさま,回答有り難うございます.
サイトを参考にしつつ試してみたいと思います.
また,質問させて頂くことになるかも知れませんが
その際は宜しくお願い致します.