NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

サーボアンプのRS-232C通信について

下記の電気的特性のサーボアンプとサンプルファインダの「Basic serial write and read」で通信したいのですが、タイムアウトのエラーがでます。
 
どのようにすれば通信できるでしょうか??
 
子機側通信コネクタ・・・ハーフピッチ20ピン
 
信号レベル・・・RS-232C準拠
 
ボーレート・・・9600/19200bps 調歩同期式
 
スタートビット・・・1bit
 
データ長・・・8bit
 
パリティ・・・偶数
 
転送方式・・・キャラクタ方式、可変フレーム、半2重通信方式
 
 
 
0 件の賞賛
メッセージ1/6
5,203件の閲覧回数

平素よりNI製品をご利用頂きまして誠に有難うございます。
日本ナショナルインスツルメンツ技術部の幾田と申します。
お問い合わせいただきました件にて以下の通り回答いたします。

まず、通信が確立されているかハードウェア的な確認を行いたいのでMeasurement and Automation Explorerの
マイシステム>>デバイスとインターフェイス>>シリアル&パラレル>>今回使用しているCOMポート
を右クリックし、"VISAテストパネル"を開きます。

"Basic I/O"中のWriteタブにて機器の対応コマンド及び終端文字を入力し、"Execute"ボタンを押します。
今コマンドを機器に投げかけた状態なので、今度はその応答を聞いてやるために"Read"タブで"Execute"を押します。

まず、ここで返答が得られているのか否かを確認下さい。

返答が得られているようであれば通信は確立されているといえ、エラーなどが発生する場合は以下の点が問題として挙げられます。
①ハードウェア的な接続が間違っている、機器に電源が入っていない
②コマンド/終端文字が間違っている
③ボーレートなどの設定が合っていない


まず、ハードウェアに問題がないかの確認後、マニュアルで②、③部の仕様を確認し、Measurement and Automation Explorerで検証をお願いします。


Measurement and Automation Explorerで問題ない場合は次の手順としてVIの検証を行います。
今回タイムアウトが発生しているということで、まずはそれがどこで発生しているのかを特定します。
ブロックダイアグラムでハイライト実行を行い、関数のフローを確認して下さい。

VISA読み取り関数でタイムアウトが発生している場合、一度"読み取り前の遅延"パラメータを十分大きな値に設定してみて下さい。

それでもエラーが回避できない場合も、上記しました①~③の項目を確認下さい。


宜しくお願いいたします。

 

0 件の賞賛
メッセージ2/6
5,189件の閲覧回数

返信ありがとうございます。

アドバイスの通りにMeasurement and Automation Explorerで作業を行ったのですが、「BFFF0015」のエラーコードがでてタイムアウトしてしましました。そこで、

ACサーボのボーレット、データ長、パリティ等々の設定もPC側と同様の設定し、接続に問題ないかを確かめもう一度おこなったのですが、同様の結果になりました。遅延のパラメータを変更しようと思ったのですが、どのようにすればよいのかわかりません。

初歩的なことかもしれませんが、どのようにすればよろしいでしょうか?

0 件の賞賛
メッセージ3/6
5,176件の閲覧回数
平素よりNI製品をご利用頂きまして誠に有難うございます。
日本ナショナルインスツルメンツ技術部の幾田と申します。
 
まず、表記いただいているタイムアウトの設定についてご案内します。
Measurement and Automation ExplorerのVISAテストパネルでは"Property Node (Set)"タブにて、"Attribute Name"で"Timeouy Value"を選択します。
現在設定されている値が"Current Value"に表示されているので、"New Value"に十分大きな値を入力し、"Execute"ボタンを押すと設定完了です。
 
しかしながら、当初の問題としては"Basic Serial Write and Read.vi"でもタイムアウトエラーが発生していたかと思われ、あのサンプルは"VISAシリアルポート構成"でタイムアウトが10sに設定されています。
 
VISAでシリアル通信(RS-232)を行っている際のタイムアウトが発生する原因の一つとして、やはり終端文字を付加していないことが考えられます。

終端文字としては、改行(LF)や復帰(CR)などがあります。
終端文字を付加するために、二つの方法があります。
一つ目は、各送信コマンドの最後に終端文字を付け加える方法であり、二つ目はVISAセッションの属性にて終端文字を設定する方法です。
 
 
一度終端文字の仕様を再度ご確認願えますでしょうか。
 
宜しくお願いいたします。

 
0 件の賞賛
メッセージ4/6
5,162件の閲覧回数

返信ありがとうございます。

Measurement and Automation Explorerで終端文字を注意して入力したところ、

返信がありました。しかし、それでも「Return Count   14」、「Return Value   BFFF0015」とでました。

「Return Count」、「Return Value」とはどういった意味なんでしょうか??

「Basic Serial Write and Read」で試みたところ、コマンド入力の際に16進数で書き込むため「\x」書き込むと、「\」が消えてしまいます。

そこで、「\」を消えないようにするにはどうすればいいですか??消えた状態で送信しても、エラーも出ません。

シリアル通信のみを考えたとき最適なサンプルはどれが一番良いか教えていただけないでしょうか??

0 件の賞賛
メッセージ5/6
5,147件の閲覧回数
平素よりNI製品をご利用頂きまして誠に有難うございます。
日本ナショナルインスツルメンツ技術部の幾田と申します。
 
まずReturn Countですが、これはコマンドを送信して機器が応答した際に読み取ったバイト数を示します。
次にReturn Valueですが、これは実際に返ってきた値になります。

計測機器に16進数を送信してやる際にはただ単純に16進数に相当するASCII文字列を送信してやります。
以下に上記内容が記載されたデータベースがありますのでご参照いただければと思います。
 

シリアル通信のサンプルについてですが、恐らく今回使用していただいている"Basic serial write and read.vi"が一番シンプルなものになり、また前述いたしましたとおりMeasurement and Automation Explorerのテストパネルで通信が出来ない場合はやはりLabVIEWでも通信することは出来ません。
 
そこで、何点か気になる点がありますのでご教授願えます。
①機器自体はちゃんと応答しているのか
②VIでエラーが発生しないとのことですが、ハイライト実行した際の各関数は正常に実行されているのかの詳細
 

大変お手数かと思われますがかと思われますが、宜しくお願いいたします。
 
 
 
 
0 件の賞賛
メッセージ6/6
5,118件の閲覧回数