01-13-2015 01:43 AM
システム構成
Windows 7
LabVIEW2014
DAQmx14.0
USB-6356
添付ファイルのプログラムを作成しました。
デジタル出力をP0.0とP0.1の2ch同時に出力したいのですが、どうしてもPO.1が出力されません。
プログラムの何が問題なのか教えてください。
DAQ部分のプログラムは、DAQアシスタントからコード生成して「DAQmx書き込み (VI)」の多態性VIセレクタを「デジタル 2D U32 Nチャンネル Nサンプル」に変更したものです。
添付ファイル:
”デジタル出力_2ch_test.vi”
"デジタル出力_ブロックダイアグラム.jpg"
"デジタル出力_PO.1が出ない.png"
なお、DAQアシスタントを使って、「デジタルサンプルを生成する」では、PO.1も出力されるので、ハードウェアもオシロスコープにも問題ありません。
解決済! 解決策の投稿を見る。
01-16-2015 03:37 AM
mece様
P0.0とP0.1へ信号を出力される場合、LabVIEWに含まれている以下のサンプルを参照いただけると思います。
LabVIEWのメニュバーから ヘルプ >> サンプル検索 >> NIサンプルファインダが起動します
NIサンプルファインダのフォルダ一覧から ハードウェア入力と出力 >> DAQmx >> デジタル出力 >> デジタル出力 - 連続出力
こちらのサンプルではP0.0へ出力する場合は”1”、P0.1へ出力する場合は”2”が設定されています。
NI 技術部 山縣
01-20-2015 03:10 AM
山縣様
アドバイスをありがとうございます。お陰様で解決できました。
サンプルのフロントパネルにある「書き込むデータ」というのが直ぐに理解できませんでした。
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
01-21-2015 06:05 PM
ちなみにDAQアシスタントを使って、「デジタルサンプルを生成する」では、PO.1も出力されるので」とのことで、
DAQアシスタントはお使いのDAQmx関数に変換することができます。
DAQアシスタントで自動的にLabVIEWコードを生成する - National Instruments
http://www.ni.com/white-paper/4656/ja/
今回のような問題の場合、変換後と作成されたVIを互いに比較して、
どこに違いがあるか確認してみるのもいいと思いますよ!
01-22-2015 07:51 PM
アドバイスをありがとうございます。
DAQアシスタントからLabVIEWコードを生成するのは、最初の頃やっていたのですが、どうにもなりませんでした。
今、もう一度やってみました。
「デジタル 1D U32 1チャンネル Nサンプル」の設定で同じデータを与えるのですが、エラーコード-200524が発生してしまい、以前と同じ結果でした。
DAQアシスタントは容易そうに見えて、何かが足りない気がします。