06-16-2021 08:10 PM
下記のようなVIを作成しようとしています。
<生産者>
①常時データをエンキューする生産者ループ
⇒3台の溶接機の電流電圧値を3000hzで取得
②値が入力された時のみデータをエンキューする生産者ループ
⇒28桁のバーコードが入力されるまで制御器をキーフォーカスして待機
<消費者>
①溶接機1
②溶接機2
③溶接機3
⇒それぞれバーコードが読み取られたらフォルダを作成
⇒作成された後に出てきた電流と電圧値をフォルダ内に保存
06-16-2021 08:19 PM
下記のようなVIを作成しようとしています。
<生産者>
①常時データをエンキューする生産者ループ
⇒3台の溶接機の電流電圧値を3000hzで取得
②値が入力された時のみデータをエンキューする生産者ループ
⇒28桁のバーコードが入力されるまで制御器をキーフォーカスして待機
<消費者>
①溶接機1
②溶接機2
③溶接機3
⇒それぞれバーコードが読み取られたらフォルダを作成
⇒作成された後に出てきた電流と電圧値をフォルダ内に保存
生産者ループの②にイベントストラクチャがあり、バーコード読み取りが実行されるまでは
①の電流電圧値のキューがデキューされずデータ数があふれてしまいます。
・生産者①でバーコードが読み取られるまで生産者②の値はエンキューしない
・もしくはバーコードが読み取られていない間は空のデータとして消費者ループに、生産者①のデータを消費者に渡す
という動作はどちらか可能でしょうか。
06-17-2021 02:53 AM
バーコードが読み取られていない間は、電流電圧値のキューは読み捨てられなければいけません。
バーコードをデキューする関数の「タイムアウト(ms)」入力に定数(1msくらいでOK)を接続します。
デキュー関数の「タイムアウト?」出力がTrueのときには何もしないで「バーコード読み取り」を繰り返し、Falseのときに「フォルダ作成」に移行するようにします。
06-17-2021 03:24 AM
ありがとうございます。実行してみます。
06-17-2021 03:48 AM
実行を試みたのですが、やはり同じエラーが出てしまいました。
>「タイムアウト(ms)」入力に定数(1msくらいでOK)
実行内容の変更部分はこちらでよかったでしょうか。
アプリケーションが集録に追いつかなくなるのはやはり消費者ループの時間でしょうか。
06-17-2021 04:42 AM
また遠ざかってしまいました(残念(^^;)