NI製品ディスカッション

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

デジタル出力のch2が出ない

解決済み
解決策を見る

システム構成

 Windows 7

 LabVIEW2014

 DAQmx14.0

 USB-6356

 

添付ファイルのプログラムを作成しました。

デジタル出力をP0.0P0.12ch同時に出力したいのですが、どうしてもPO.1が出力されません。

プログラムの何が問題なのか教えてください。

DAQ部分のプログラムは、DAQアシスタントからコード生成して「DAQmx書き込み (VI)」の多態性VIセレクタを「デジタル 2D U32 Nチャンネル Nサンプル」に変更したものです。

 添付ファイル:

   ”デジタル出力_2ch_test.vi”

   "デジタル出力_ブロックダイアグラム.jpg"

   "デジタル出力_PO.1が出ない.png"

 

なお、DAQアシスタントを使って、「デジタルサンプルを生成する」では、PO.1も出力されるので、ハードウェアもオシロスコープにも問題ありません。

 

0 件の賞賛
メッセージ1/5
5,206件の閲覧回数
解決策
トピック作成者meceが受理

mece様

 

P0.0とP0.1へ信号を出力される場合、LabVIEWに含まれている以下のサンプルを参照いただけると思います。

 

  LabVIEWのメニュバーから ヘルプ >> サンプル検索 >> NIサンプルファインダが起動します
  NIサンプルファインダのフォルダ一覧から ハードウェア入力と出力 >> DAQmx >> デジタル出力 >> デジタル出力 - 連続出力

 

こちらのサンプルではP0.0へ出力する場合は”1”、P0.1へ出力する場合は”2”が設定されています。

 

NI 技術部 山縣

0 件の賞賛
メッセージ2/5
5,136件の閲覧回数
解決策
トピック作成者meceが受理

山縣様

 

アドバイスをありがとうございます。お陰様で解決できました。

 

サンプルのフロントパネルにある「書き込むデータ」というのが直ぐに理解できませんでした。

8bitのデータに重みをつけてHighとLowを作るという事ですね。

自分で作ったパルス生成部分でP0.0はそのままで、P0.1は「2」を掛けて重みを付けて加算しました。

その結果、P0.0がHighの時はデータとしては「1」、P0.1がHighの時はデータとしては「2」、P0.0とP0.1が共にHighの時は「3」となりました。

これで、P0.0とP0.1共に出力できました。

 

パルス生成部分はFORループで回しているので、データが有限です。そこでループのN値をDAQmxのサンプル数に直結し、「DAQmxタスク完了確認」を「DAQmx完了まで待機」に置き替えました。

 

viファイルを添付します。

Digital - Continuous Output_01.vi

 

mece

0 件の賞賛
メッセージ3/5
5,090件の閲覧回数

ちなみにDAQアシスタントを使って、「デジタルサンプルを生成する」では、PO.1も出力されるので」とのことで、

DAQアシスタントはお使いのDAQmx関数に変換することができます。

 

DAQアシスタントで自動的にLabVIEWコードを生成する - National Instruments

http://www.ni.com/white-paper/4656/ja/

 

 

今回のような問題の場合、変換後と作成されたVIを互いに比較して、

どこに違いがあるか確認してみるのもいいと思いますよ!

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

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

アドバイスをありがとうございます。

 

DAQアシスタントからLabVIEWコードを生成するのは、最初の頃やっていたのですが、どうにもなりませんでした。

今、もう一度やってみました。

 「デジタル 1D U32 1チャンネル Nサンプル」の設定で同じデータを与えるのですが、エラーコード-200524が発生してしまい、以前と同じ結果でした。

DAQアシスタントは容易そうに見えて、何かが足りない気がします。

 

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