2016-10-10 24 views
0

部品のヒステリシステストを実行するには、1サイクルごとにモータを動作させ、サイクルごとに増分するデューティサイクルで動作させる必要があります。Labview:シリアルポート@ 1Hzからデューティサイクル信号を増やす

私が利用できるNIDaqカードは、古すぎて任意の波ジェネレータとして使用できないため、出力としてシリアルポートを使用してMOSFET回路をアクティブにする必要があります。 1秒ごとにデューティサイクルを0%から100%に1%ずつ増やす必要があります。

デューティサイクルを調整してシリアルポートに出力するプログラムを作成しましたが、周波数は遠いです遅くなる。 1hzが必要ですが、ラボビューのサイクルは1刻みで1つの立ち上がりエッジで6秒以上かかります。

この1hz信号を時間通りにシリアルポート出力バッファにプログラムで送信する方法はありますか?

+0

シリアルコマンドを何らかのシリアルインターフェイスのデジタル出力モジュールに送信するか、シリアル出力ラインの1つを直接操作してデジタル出力として使用したいのですか? – nekomatic

+0

以降の場合は、シリアル回線をデジタル出力として使用してください。 – RedOculus

+1

DAQカードへのソフトウェアタイムアウト書き込みを試したことがありますか? 1秒のサイクル時間(Wait(ms)またはTimed Loop構造を使用)のループで、DOラインをハイに設定し、次に必要な時間待機してから再びローに設定します。エラーワイヤを使用して実行フローを制御しますおよび/または配列構造を含む。なぜこれがあなたのシリアルポートのアイデアより悪いのか分かりません。これらのどちらも、非リアルタイムOSで完全に正確なタイミングを保証するものではありませんが、ほとんどの場合は正常に動作します。 – nekomatic

答えて

0

私は動作しているようです。この思い付いた:

enter image description here

任意の他のアイデア?

+0

それは確かに発明的です。どのシリアルラインを出力として使用していますか?私はTXDではなく、ハンドシェイクラインの1つを想定していますか? – nekomatic

+0

私はそれをMAX232E ICに送ります。ここで、デジタル信号が得られ、MOSFETゲートに出力されます。私はその後、文字列定数を16進数00および空のスペース定数に変更することによって、上記のプログラムを変更しました。 – RedOculus

関連する問題