NI製品ディスカッション

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

LabVIEWとPythonでQRコードを作る

 LabVIEWとPythonでQRコードを作る

(LabVIEWからPython Scriptの実行)

LabVIEWは、装置制御とGUIを作るのが容易です。一方、Pythonはモジュールが多くいろいろな機能を持っています。そこで、pythonを呼び出すLabVIEWプログラムを参考に作成しました。

(なお、解説と作成したファイルを添付いたします。)

 0.Ancondaのインストール
参考HP
[データサイエンティストを目指す人のpython環境構築 2016]

(http://qiita.com/y__sama/items/5b62d31cb7e6ed50f02c)
Pythonは2系と3系がありますが、今回は3系をインストールします。
2系のサポートは2020年までです。2系と3系の大きな違いは、文字コードの扱いとPrint文です。
※実行環境:Python3はAnaconda3(win10 64bit)によりインストール。LabVIEW2014。

インストールが終わったら、Anaconda Promptかコマンドプロンプトを立ち上げて
```
conda update anaconda
```
と入力してください。(モジュールがアップデートされます。)
```
#インストールされているパッケージを調べるには
conda list
```
入っているモジュールの一覧が取得できます。
今回、qrcodeモジュールも利用しますので
```
conda install qrcode
#または
pip install qrcode
```
と入力してインストールしてください。
コマンドプロンプトでPythonを立ち上げ、"import qrcode"と入力。何もエラーが発生しなければインストールは成功しています。
```
C:\\>python
Python 3.5.2 |Anaconda 4.3.0 (64-bit)| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import qrcode
>>>
```
 1.コマンドライン(CMD)入力によるPython Script(ファイル名.py)の実行
CMDを用いてPython Scriptは以下のように実行します。
```
#スクリプト(プログラム)があるところにDirectryを変更したのち
python スクリプト名.py パラメータ
#または
python スクリプト絶対パス+スクリプト名.py パラメータ
#パラメータがあればパラメータを入れてください。
```
 2.コマンドライン引数(パラメータ)をPythonプログラムに引き渡すための変更
参考プログラム
[Calling Python Code from LabVIEW]

(https://forums.ni.com/t5/Developer-Center-Resources/Calling-Python-Code-from-LabVIEW/ta-p/3521538)
この中のPythonプログラムを利用します。
AddNumbers.py
```
import sys

#Command Line Arguements are stored in list argv
#len関数は要素が何個あるかを返します。
numArgs = len(sys.argv) - 1
sum = 0

#Iterate through each element and add to the sum
for n in range (1, len(sys.argv)):
    sum = sum + int(sys.argv[n])

#use the print function to output the sum
print(sum)
```
sys.argvは、0番目にプログラム名、1番目にパラメータ1、・・・・
このプログラムを,2つの数の足し算の関数とScript実行形式のものに分けて書き直すと
AddNumbers2.py
```
import sys

def plus(a,b):
    c=a+b
    print(c)

#以下のコードは、Script実行のときのみ実行されます。
if __name__=="__main__":
    a=sys.argv[1]
    b=sys.argv[2]
    plus(a,b)
#sys.argvの要素0番目は、プログラム名、1番目はパラメータ1、2番目はパラメータ2
```
CMDで以下のように入力
```
C:\Users\ディレクトリー名>python C:\Users\??\\\AddNumbers.py 5 3
#結果
8
#同様に
C:\Users\ディレクトリー名>python C:\Users\??\\\AddNumbers2.py 5 3
#結果
8
```

3.LabVIEWによるPython Scriptの呼び出し
 例1:足し算
CMDにコマンドをLabVIEW側から入力すればよいことになります。
参考プログラムから
Calling Python Code from LabVIEW.vi
CallingPython.png※コードの解説
このコードでは、Python.exeの絶対パスを指定していますが、Anacondaでインストールすると環境変数にPython.exeのパスが入っているので、Pythonだけでも起動します。(Python3が起動します。)
このViがあるところにPythonプログラム(AddNumbers.py)がありますので、そのパスをとってきます。
A,Bの数値を入力して、文字列に変換します。
これをまとめて、「システム実行」に入力します。

やっていることをまとめると
LabVIEWでCMDに送る文字列を作る
python␣スクリプト絶対パス+スクリプト名.py␣パラメータ1␣パラメータ2

なお、私が作成したAddNumbers2.pyでも同じ結果が得られます。


 例2:QRコード
まず、QRコード作成のPythonプログラムを作成します。
(qrcodeモジュールをインストールしてください。)
QRmaker2.py
```
# -*- coding: utf-8 -*-
#qrcodeを読み込む
import qrcode

def QRmaker(code,path):
    img = qrcode.make(str(code)) #codeの文字をQRコードに変換
    img.show() #生成したQRコードを表示
    img.save(str(path)) #QRコードに名前をつけて保存
 
#以下のコードは、Scriptのときのみ実行されます。
if __name__=="__main__":
    import sys
    code=sys.argv[1]
    path=sys.argv[2]
    QRmaker(code,path)
```
同様に「システム実行」に入力する文字列を作成します。

python␣スクリプト絶対パス+スクリプト名.py␣QRコードにしたい文字列␣QRコードの保存場所と名前.png
Calling Python Script_QRcode2.vi
Calling Python Script_QRcode2.png
※pngファイルの表示は、テクトス様のHPを参考にしました。[Googleのチャートツールでマップチャートを描く [ Google Map Charts ]](http://www.tectos.co.jp/technique/A095.html)
また、同HPにオンラインではありますが、QRコードの作成プログラムがあります。[GoogleのチャートツールでQRコードを描く[ Google QR Code ]](http://www.tectos.co.jp/technique/A060.html)
- - -

メッセージ1/1
6,335件の閲覧回数