03-23-2022 08:33 PM
QRコードの値を2次元バーコードリーダで読込み、その値を文字列表示器に表示させるviを作成中です。
読み込む度に表示器の値を新しいデータで上書きしたいのですが、その方法がなかなか思いつきません。
どなたかアドバイスを頂けないでしょうか。
使用している2次元バーコードリーダは以下です。
unitech MS852Plus(USB接続)
よろしくお願いいたします。
解決済! 解決策の投稿を見る。
03-23-2022 08:47 PM
03-23-2022 11:41 PM
ご連絡ありがとうございます。
※件名や上に書いた「表示器」は誤りで「制御器」が正しいです。失礼しました。
バーコードリーダでQRコードを読んだら制御器の文字列に上書きしようという考えで、
文字列制御器にキーフォーカスして文字列を選択しているだけになります。
VISA読み取り関数に関する知識はありませんが、それを使うのが一般的なのでしょうか。
よろしくお願いいたします。
03-23-2022 11:57 PM
制御器の値ということでしたら、プロパティノードの「値」や、ローカル変数を使う方法があります。
制御器/表示器、ローカル変数、値プロパティノードの相違点 - NI
VISA関数はすみません、忘れてください。
バーコードリーダーによって、LabVIEWからの使い方が異なるので、
既に読み込みができているようでしたら関係ありません。
03-24-2022 12:28 AM
アドバイスありがとうございます。
上に画像を添付したVIを実行すると、例えば「4100710518」という10桁の数字を
記録したバーコードを繰り返し読むと、下記のように桁が少なくなることがあります。
1回目:4100710518
2回目:0710518
3回目:100710518
4回目:8
5回目:18
この原因として何が考えられますでしょうか。
ご助言いただけたら助かります。よろしくお願いいたします。
03-24-2022 12:53 AM
添付頂いた画像では、バーコードリーダーからの情報取得部分や、
文字列処理の詳細が分からないため、なんとも言えないところです。
状況から推察するに、以下の2つが考えられると思います。
03-24-2022 01:40 AM
何度もご助言いただき、ありがとうございました。
所望の動作を妨げていると思われる二つについて、少し時間をかけて調査してみます。
また質問した際にはアドバイスをお願いいたします。
ありがとうございました。
03-24-2022 08:51 PM
横から失礼します。
バーコードリーダはキーボードエミュレーションモードですね。これは「ユーザが文字を入力したい箇所を指定してから読み取る」用途なので自動プログラムでは使いにくいです。
文字は1文字ずつ入力されるので、フォーカスとセレクションプロパティを繰り返していると、読み取りタイミングと干渉して文字列が欠けます。
リーダをUSB仮想COMエミュレーションモードにして、シリアル通信で受信することをお勧めします。
VISAを使ってデータが送られてくるのを待機するプログラムが書けます。1行分受信したら文字列制御器のローカル変数などに書き込みます。例えばプロパティノードで「値(信号)」に書き込めばイベントストラクチャをトリガできます。
03-24-2022 09:34 PM
アドバイスありがとうございます。
なるほど、そのような理由から文字列の欠けが生じるのですね。
ご助言いただいたVISAを使ってデータが送られてくるのを待機するプログラム、
こちらで所望の動作は達成できそうです。
でもお恥ずかしながら、VISAやシリアル通信を使用した経験がありませんので、
どう実現するのか見当もつかない状況にあります。
参考になるプログラムや情報等ありましたら、お教えしていただけないでしょうか。
よろしくお願いいたします。
03-24-2022 11:43 PM
LabVIEWのサンプルファインダで、ハードウェア入力と出力>>シリアル>>連続シリアル書き込みと読み取り、を開いて、VISAリソース名(COMポート)と終端文字をセットして実行し、バーコードリーダで何か読んでみてください。
終端文字はバーコードリーダのサフィックス設定に合わせます。CR+LFなら0xA、CRなら0xD、ETXなら0x3です。
うまく読めればラッキーですが・・・