Pythonノードを使用してLabVIEWとPythonの間でデータ構造を渡す

更新しました Apr 9, 2024

環境

ソフトウェア

  • LabVIEW

プログラミング言語

  • Python

この記事では、LabVIEW Pythonノードを使用してLabVIEWとPython環境間の通信を可能にするために、タプル/クラスタ、配列/リストなどの複雑なデータ構造を設定する方法を説明します。これにより、LabVIEWとPythonが相互通信できるようになり、両方の言語の最良の機能を使用できるようになります。

この記事では、LabVIEWを使用してPython データを読み取ります。このデータをLabVIEWからPythonに書き込む場合も原理は同じですが、方向が異なることに注意してください。

符号なしまたは符号付きの数値、文字列、ブール値などの標準データ型は、Pythonノードによって自動的に変換されることに注意してください。

LabVIEW配列とPythonリストを使用している場合:

Pythonノードは、入力として正しいデータ型が与えられると、サポートされているPythonデータ型のLabVIEW配列をそのデータ型のPythonリストに自動的に変換します。

Pythonコード:

TestList = [True, True, False]
def return_list():
    x = TestList
    return x

上記のコードはLabVIEWでブール値の配列を返します。
LabVIEW_OEYlyBO8LN.png

LabVIEWクラスタとPythonタプルを使用している場合:

Pythonノードは、サポートされているデータ型のクラスターまたはタプルを変換します。

Python コード:

TestTuple = (3, 5, "TestList")
def return_tuple():
    x = [TestTuple, TestTuple]
    return x



上記のコードでは正しいデータ型が指定されると、LabVIEWクラスタが返されます。
LabVIEW_NjfD5Kodg7.png
これは名前付きタプルでも機能します。

名前付きペアを使用してPython辞書とLabVIEWクラスタを使用する場合:

Python辞書項目にはネイティブ翻訳はなく、キーと値のペアで保存されます。
代わりに、この通信にはJSON文字列を使用する必要があります。

Pythonコード:

​​​​
import json
TestDict = {
    "String": "Test",
    "Number": 2,
    "Other number": 3
}

def return_dict():
    x = json.dumps(TestDict)  
    return x

 

上記のコードはLabVIEWを通じて過ぎに用に読み取ることができます。

LabVIEW_MYlij8HFjF.png

LabVIEWクラスタ内の変数の名前付けは重要です。

完全なコード

上記のLabVIEWコードのスニペットは以下にあります。
Python 呼び出しのスニペット.png

同様に、この記事で使用したPythonスクリプトは以下にあります。

import json ##Required for the dict conversion

TestList = [True, True, False]
def return_list():
    x = TestList
    return x
##
TestTuple = (3, 5, "TestList")
def return_tuple():
    x = [TestTuple, TestTuple]
    return x
##
TestDict = {
    "String": "Test",
    "Number": 2,
    "Other number": 3
}

def return_dict():
    x = json.dumps(TestDict) 
    return x