NI製品ディスカッション

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

バーコード読み取った値が変化したら次のステートに行く

解決済み
解決策を見る

イベントストラクチャで値が変更すると、次のステートへ移り読み取った値を確認するVIを作成しました。

 

イベントストラクチャには、バーコードで読み取った27桁の文字列が入力されるのですが、「値が変わった」と認識するのが速く、バーコードを読み取っている途中で次のステートに移動してしまいます。(バーコードからは2桁のみしか入力を検出できていません。)

 

様子を動画にしています。

本来”HYT235V-CABEU62   800023”を読み取りたいのに対し、”HY”のみが入力値されています。

すべてをダウンロード
0 件の賞賛
メッセージ1/5
1,160件の閲覧回数

「タイプ中に値を更新する」を有効にすると、1文字でも入ると値変更イベントが発生します。

バーコードリーダはキーボードをシミュレートするヤツですね。

 

以下のどちらかを実現できませんか?

1) コードの文字数は必ず25文字または1文字目で後に続く文字数がわかる

2) バーコードリーダ出力の最後にEnter(CR)かTabコードを付ける

 

(1)が守れるならイベントストラクチャをWhileループに入れて、イベント毎に文字数を調べて既定の文字数になったら抜ける。

(2)ができれば文字列制御器の「1行入力制限」を有効にし「タイプ中に値を更新する」を無効にする。

 

あたりでいかがでしょう?

0 件の賞賛
メッセージ2/5
1,086件の閲覧回数
 
>(1)が守れるならイベントストラクチャをWhileループに入れて、イベント毎に文字数を調べて既定の文字数になったら抜ける。
 
こちらですが、実行する際は、「タイプ中に値を更新する」を無効にしますか。
「タイプ中に値を更新する」を無効にして、27文字かどうかを確認しイベントストラクチャが実行されるようVIを作成しようと思ったのですが、whileループに入る前で止まってしまいイベントストラクチャが実行されません。
 
添付させていただいたVIのどの部分が修正必要になりますか。
すべてをダウンロード
0 件の賞賛
メッセージ3/5
1,053件の閲覧回数
解決策
トピック作成者kuchaが受理

「タイプ中に値を更新する」を無効にするのは(2)の場合です。(1)は1文字以上入力されるたびに文字数を調べるため有効のままでなければいけません。

改改改VIはちょっと遠ざかってしまいました(残念(^^;))。

添付のVIでとりあえずバーコードは読めると思います。

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

 

J.H.Watsonさん

 

ありがとうございます。

改良いただいたものでバーコードの読み取りができるようになりました。

ありがとうございます。

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