08-25-2022 09:30 AM
08-26-2022 02:32 AM
「仮想」とは、ArduinoのTx/Rxピンではなく任意のDIOピンということですか?
Tx/Rxの場合もLINXではLabVIEWとの通信に使っているので、複数のTx/Rxチャンネルがある機種(MEGAとか)でないとダメなんですが・・・
08-26-2022 02:46 AM
仮想というのはソフトウェアーシリアルという事です。
arduinoのハードウェアーシリアルであるTx,RxはPCとの通信に
使用しますので任意のDIOピンをソフトウェアーシリアルに指定し
RS232Cと通信するという事です。
Labviewでaruduinoのソフトウェアーシリアルを介してRS232C機器を
制御(データ書き込み、データ読み込み)したいんです。
arduino単体では指定したソフトウエア―シリアルポートとRS232C機器の通信は出来ています。
08-26-2022 03:58 AM
LabVIEWからArduinoを制御するのにLINXを使いますか? それともVISAでシリアル通信しますか?
前者ではLINXを改造することになり難易度高いです。後者ならArduino側にハードウェアシリアルとソフトシリアルをブリッジする機能を仕込むことになると思います。
08-26-2022 04:25 AM
LINXを使って楽に出来ないか?と思っていました。
LINXにはaruduinoのソフトウェアーポートを介したRS232C機器との通信はLINX標準機能として備わっていないという事ですね。
そうなるとaruduinoとは別ポートを使用してRS232C通信をしなければならないという事ですか?
そうなると通信対象のRS232C機器が増えた場合、パソコン側のポートが増えるのでarduinoのソフトウェアーシリアルを用いる事でパソコン側のポート数を減らしたかったんです。パソコンとaruduinoのみUSB-シリアル変換で接続し制御対象のRS232機器はaruduinoのソフトウェアーシリアルポートと接続する。この様にしたい訳です。
RS232CはVISAを使い、デジタル・アナログ制御はLINXを用いて制御
するという事でしょうか。
その場合にでもaruduino側の改造が必要という事でしょうか。
以上、宜しくお願いします。
08-26-2022 04:52 AM
>LINXにはaruduinoのソフトウェアーポートを介したRS232C機器との通信はLINX標準機能として備わっていないという事ですね。
そうです。
Arduino MEGA 2650を使えば、ハードウェアシリアルが3ポートあるので、改造なしで目的の使い方ができます。基板サイズが少々大きいのが難ですが・・・
08-26-2022 05:27 AM
お返事有難う御座います。
アナログ・デジタル制御はLINXを用い、arduino側でLabviewから
何かチャンネル切り替え"文字"みたいな合図を送りarduino側ソフト
にてLabviewから送られてきた切り替え"文字"にあわせてソフトウェアーシリアルで受信したチャンネルを切り替え、データをハードウェアーシリアルに渡して所望のRS232C側機器と通信するしかなさそうですね。RS232C機器とのソフトウェアーシリアル通信プログラムはarduino側で、RS232C機器切り替え制御部だけをLabviewで作る感じ
でしょうかね。
でもこれだとCでもC++でも出来る事なのでLabviewをわざわざ使用
する方が面倒そうですね。
(制御対象RS232C機器は複数存在する),MEGAだと接続するRS232C機器は2つが限界(ハードウェアーシリアルを使用する場合)
今回はRS232C機器を3種類制御する予定なのでUnoでもMegaでも
ソフトウェアーシリアルを使う必要があるんです。
以上、宜しくお願いします。
08-26-2022 07:36 AM
08-26-2022 07:51 AM
そうなんですね。
有難う御座います。
LINXとVISAによるシリアル通信が混在したLabviewによるVI
作成は問題特に問題はありませんか?
素直にRS232CマルチプレクサでRS232Cを切り替えて使用し、マルチプレクサの1つのポートにarduinoを接続しaruduinoをLINXで制御する
という方法は可能でしょうか?(時間を区切って使用)
何かスマートな方法はないものでしょうか。
08-26-2022 08:14 AM