From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

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

常時データをエンキューする生産者ループと値が入力された時のみデータをエンキューする生産者ループの受け渡し

 

下記のようなVIを作成しようとしています。

<生産者>

①常時データをエンキューする生産者ループ

⇒3台の溶接機の電流電圧値を3000hzで取得

②値が入力された時のみデータをエンキューする生産者ループ

⇒28桁のバーコードが入力されるまで制御器をキーフォーカスして待機

 

<消費者>

①溶接機1

②溶接機2

③溶接機3

⇒それぞれバーコードが読み取られたらフォルダを作成

⇒作成された後に出てきた電流と電圧値をフォルダ内に保存

 

 

0 件の賞賛
メッセージ1/6
1,027件の閲覧回数

下記のようなVIを作成しようとしています。

<生産者>

①常時データをエンキューする生産者ループ

⇒3台の溶接機の電流電圧値を3000hzで取得

②値が入力された時のみデータをエンキューする生産者ループ

⇒28桁のバーコードが入力されるまで制御器をキーフォーカスして待機

 

<消費者>

①溶接機1

②溶接機2

③溶接機3

⇒それぞれバーコードが読み取られたらフォルダを作成

⇒作成された後に出てきた電流と電圧値をフォルダ内に保存

 

生産者ループの②にイベントストラクチャがあり、バーコード読み取りが実行されるまでは

①の電流電圧値のキューがデキューされずデータ数があふれてしまいます。

 

・生産者①でバーコードが読み取られるまで生産者②の値はエンキューしない

・もしくはバーコードが読み取られていない間は空のデータとして消費者ループに、生産者①のデータを消費者に渡す

 

という動作はどちらか可能でしょうか。

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

バーコードが読み取られていない間は、電流電圧値のキューは読み捨てられなければいけません。

 

バーコードをデキューする関数の「タイムアウト(ms)」入力に定数(1msくらいでOK)を接続します。

デキュー関数の「タイムアウト?」出力がTrueのときには何もしないで「バーコード読み取り」を繰り返し、Falseのときに「フォルダ作成」に移行するようにします。

 

0 件の賞賛
メッセージ3/6
980件の閲覧回数

ありがとうございます。実行してみます。

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

実行を試みたのですが、やはり同じエラーが出てしまいました。

 

>「タイムアウト(ms)」入力に定数(1msくらいでOK)

実行内容の変更部分はこちらでよかったでしょうか。

アプリケーションが集録に追いつかなくなるのはやはり消費者ループの時間でしょうか。

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