06-21-2016 03:38 AM
ADコンバータボード AGB65-ADCを使い複数のセンサやモータをUARTポートで制御したいのですが、命令コードの送信方法がわかりません。
数値データで送ると書いてあるのですが、UART Express VIの入力がCharactorなので、数値制御機を接続することがせきないのですが、どのように数値データを送信すればよいのでしょうか。
浅草ギ研AGB65-ADCの紹介 : http://www.robotsfx.com/robot/AGB65_ADC.html
06-22-2016 09:27 PM
シリアル通信でしたら以下がまとまっていていいと思います。文字列を16進表記にするか、数値配列を文字列に変換するなどの方法があります。
http://digital.ni.com/public.nsf/allkb/69ACF712E1D430DE862572A4000AD9F8
06-23-2016 02:59 AM
返信ありがとうございます。
教えてくださったページを参考に添付のプログラムを組んでみたのですが何も出力されませんでした。
myrioのRX,TXポートを直接接続したら出力した値と同じ値が返ってきたので信号自体は送信できていると思うのですが、ボードと接続すると出力される値が""になってしまいます。
UART Express VIを使用せずVISA書き込み/読み込み関数を直接使ったほうがよいのでしょうか。
06-23-2016 09:11 PM
UARTはVISAが使えるのかわからないのですが、UART Express VIのままで大丈夫だと思います。
UARTは使用経験がありませんが、他のシリアル通信に似ていると思いますのでプログラム方法もVISAとあまり変わらないはずです。
1)通信設定があっていない、2)コマンドが仕様と合っていない、3)配線が違う のいずれかの問題があると思われます。
現在VIが見れない環境におりますので後で見てみます。
06-23-2016 10:45 PM
通信環境はボードの仕様書通りに設定できているともいます
配線はボード側のRXをmyrioのTX、ボード側のTXをmyrioのRXに接続し、GNDも接続しています
なのでコマンドが仕様どおり送れていないのではないかと疑っています
06-25-2016 05:11 PM
VIを開いてみましたが、数値配列にデータが入っていませんでした。ちなみに今はどのような数値配列を渡しているのでしょうか?
全ポート読み取りは、
[255][ID(120-127)][バイト長(1)][命令(1)]ということなので、数値配列では単純に255、<ID>、1、1となるはずです。
IDが合っていればそれで大丈夫だと思うのですが。。
IDのDIPスイッチによる指定は、コマンドのそれと合っていますか?
bpsのディップスイッチの設定とUART Express VIの設定値が合っていますか?
8ビット、ノンパリ、ストップ1ビット、いずれもExpress VIのそれと合っていますか?
06-27-2016 02:37 AM
viを見ていただきありがとうございました
数値配列の中は画像のように設定しています
ビット数、パリティ、ストップビットに関しては最初投稿で張らせていただいたURL(ボードの製品紹介)のページどおりに設定していて、DI、bpsは初期設定から変えてないので9600bpsのID120で問題ないと思います
これでもできない場合はボードの故障等も考えたほうがよいのでしょうか
06-27-2016 08:52 PM
MyRIOのスペックを見てみたのですがデジタル出力が3.3V(入力は3.3V, 5V両方可)ですね。使用されているデバイスが5V仕様なのでそれが原因のような気がします。
http://www.ni.com/pdf/manuals/376047c.pdfhttp://www.ni.com/pdf/manuals/376047c.pdf
06-28-2016 03:14 AM
見落としていました…
一度レベル変換してやってみるので、確認したら報告します
07-01-2016 03:34 AM
信号を5vに変換してみた結果、前回と違いボード側からなぜか常にhiの信号が返ってくるようになりました
このボードを使った方法以外にもいろいろ試してみますので、またなにかあったときはお願いします
ありがとうございました