別のプログラミング言語からLabVIEWとDIAdemを制御する方法

更新しました Mar 31, 2021

環境

ソフトウェア

  • LabVIEW
  • DIAdem

Active Xを使用可能な環境の場合、DIAdemやLabVIEWを別のプログラミング言語から制御する事ができます。ここではLabVIEW, JavaScript, VBScript, PythonからLabVIEW及びDIAdemを制御する方法を確認します。

DIAdemを他言語から制御する

1. LabVIEWからDIAdemを開く
AttachmentsのOpenDIAdem.viを使用します。このVIではDIAdemのリファレンスを取得し、LabVIEWから送信したVBScriptのコマンドをDIAdemで実行しています。このVIを実行するとDIAdem上で"Hello, DIAdem from LabVIEW"というメッセージボックスが表示されます。
 
OpenDIAdem.png

2. VBScriptからDIAdemを開く
下記のVBScriptをメモ帳などにコピーし、*.vbs形式で保存します。保存した*.vbsファイルをダブルクリックして実行すると、DIAdem上で"Hello, DIAdem from VBScript"というメッセージボックスが表示されます。
 
Dim DIAdem
set DIAdem = CreateObject("DIAdem.TOCommand")
		
DIAdem.bDontCloseApplication = true
DIAdem.CmdExecuteSync("wndshow('shell','MAXIMIZE')")
DIAdem.CmdExecuteSync("msgboxdisp(""Hello, DIAdem from VBScript"")")

3. PythonからDIAdemを開く
下記のpythonコードをVisualStudio Code等で実行します。このコードを試すにはwim32comが必要となります。詳細な手順はこちらの資料 確認できます。
 
import win32com.client

DIAdem = win32com.client.Dispatch("DIAdem.ToCommand")
DIAdem.bDontCloseApplication = True

success, dd = DIAdem.VariantVarGet("Application")

dd.wndshow("shell","MAXIMIZE")
dd.msgboxdisp("Hello, DIAdem from Python.")

実行すると、DIAdem上で"Hello, DIAdem from Python"というメッセージボックスが表示されます。
 
1python execute diadem.png

4. JavaScriptからDIAdemを開く
下記のスクリプトをメモ帳などにコピーし、*.html形式で保存します。
 
<html> 
<head>      
<script language="JavaScript" type="text/javascript">     
   
function OpenDIAdem()
    {
    var DIAdem = new ActiveXObject("DIAdem.TOCommand");
    DIAdem.bDontCloseApplication = true
    DIAdem.CmdExecuteSync("wndshow('shell','MAXIMIZE')")
    DIAdem.CmdExecuteSync("msgboxdisp(\"Hello, DIAdem from JavaScript\")")
    }
</script>
</head>  
<body>
<button onclick="OpenDIAdem()"><font size="5" color="#119911">Open DIAdem</font></button>
</body> 
</html>

上記の手順で作成した*.htmlファイルをInternetExplorerで開き、Open DIAdemのボタンを押すとDIAdemが起動し、"Hello, DIAdem from JavaScript"というメッセージボックスが表示されます。
 
2JavaScriptExecuteDIAdem.png

ただし、こちらの手順はブラウザのセキュリティやPCのセキュリティに強く監視されており、多くの場合下記の様な警告が発生します。また、こちらの手順については使用できない環境、ブラウザがとても多い点に注意が必要です。
 
JavaScriptActiveXWarning2.png


 

LabVIEWを他言語から制御する


1. DIAdem(VBScript)からLabVIEWを開く
下記のVBScriptをメモ帳などにコピーし、*.vbs形式で保存します。また、VBScriptが保存されているフォルダにLabVIEWで実行するVIをsample.viという名前で保存し、VBSファイルをダブルクリックもしくはDIAdem上で実行すると、LabVIEWが開き、sample.viが実行されます。
 
Option Explicit
Dim lvapp, vipath, viref
Set lvapp = CreateObject("LabVIEW.Application")
vipath = currentscriptpath + "sample.vi"
Set viref = lvapp.getvireference(vipath)
viref.FPWinOpen = True
pause 1
viref.run

2. PythonからLabVIEWを開く
下記のpythonコードのvipathの部分にLabVIEWで実行するVIの絶対パスを入力し、VisualStudio Code等で実行します。VIのパスの記述の際はエスケープ文字を適切に使用する必要があります。このコードを試すにはwim32comが必要となります。
 
import win32com.client
import os
wd = os.getcwd()
lvapp= win32com.client.Dispatch("LabVIEW.Application")

vipath = "C:\\Users\\username\\Desktop\\sample.vi"
viref = lvapp.getvireference(vipath)
viref.FPWinOpen = True
viref.run

Attachments