本ブログでは,026 PyVISAとExcelファイルで測定機器をコントロールするから,033 測定機器をコントロールするためのExcelファイルの読み書き時間まで,PyVISAパッケージを使って測定機器をコントロールするために,Pythonのopenpyxlパッケージを使ってExcelファイルを読み書きする方法を紹介してきました.
一方,ExcelのVBA(Visual Basic for Application)でマクロを作成し,測定機器をコントロールする方法もあります(そのようなトレーニングコースは今でも募集されています).
両者は,SCPIコマンドを使って測定機器をコントロールするのは同じですが,SCPIコマンドを送受信するのが,
PyVISAパッケージを使ったPythonスクリプト
ExcelのVBAマクロ
という根本的な違いがあります.
確かに,ExcelのVBAマクロで測定機器をコントロールする方法だと,PythonやC#などの開発環境を前もってインストールする必要はなく,Excelを開いて,そのままVBAマクロを作成すれば良く,Excelシートにボタンを配置して,そのボタンを押下すれば,作成したVBAマクロが実行され,測定機器をコントロールし,測定機器から取得したデータを,Excelシートに出力することができます.
但し,作成するVBAマクロが数十行に収まる程度であれば良いのですが,そのうち,だんだんと行数が増えてくることになります.VBAマクロは本来,Excelの操作を自動化するために開発されたものであって,測定機器をコントロールするなどのシステム用途への開発は想定されていません(全く向いていません).
ExcelのVBAで測定機器をコントロールするマクロを作ってしまうと,作ったマクロを使うぶんには良いのですが,マクロをメンテナンス(不具合に対処する,機能を変更する etc.,)する段階になると,いきなり問題が表面化します.
一般的に,個人やグループが社内で作成したExcelのVBAマクロを,別の人やグループが引き継げなくなってしまう(VBAマクロの内部処理を解読できない)ケースは,色々な職場で発生しています(いわゆるExcelマクロ地獄です).VBAマクロを作った本人でされ,時間が経つと,自らメンテナンスできなくなってしまうことも,珍しくありません.
よって,本ブログでは,
ExcelのVBAを使って測定機器をコントロールするマクロを作成すべきでない
と心底思っています(ExcelのVBAだけは避けるべきです).
次の投稿で紹介する,xlwingsパッケージを使えば,ExcelからPythonスクリプトを実行することができます.すると,xlwingsとPyVISAパッケージを使えば,ExcelのVBAマクロと同じように,Excelから測定機器をコントロールするPythonスクリプトを作ることができるようになります.
(Excelのボタンを押下すると,Excelシートのデータを読み込んで,測定機器をコントロールし,測定機器から得たデータを,Excelシートに書き込むようなことができるようになります)
これであれば,測定機器をSCPIコマンドでコントロールする処理部分は,Pythonスクリプトで作成するので,たとえ処理部分が数十行を超えるようになったとしても,ExcelのVBAマクロよりも,格段にメンテナンスし易い,実用的なシステムを作ることができます.
このブログを検索
アーカイブ
-
►
2022
(55)
-
►
4月 2022
(18)
- 025 PyVISAでコマンドを送受信した後でlast_statusの値をチェックする
- 026 PyVISAとExcelファイルで測定機器をコントロールする
- 027 Excelファイルから測定機器をコントロールするデータを読み込む
- 028 Excelファイルから測定機器をコントロールするデータを読み込む(その2)
- 029 Excelファイルから測定機器をコントロールするデータを読み込む(その3)
- 030 測定機器から得たデータをExcelファイルとして保存する
- 031 測定機器から得たデータをExcelファイルとして保存する(その2)
- 032 測定機器から得たデータをExcelファイルとして保存する(その3)
- 033 測定機器をコントロールするためのExcelファイルの読み書き時間
- 034 PyVISAとxlwingsのパッケージを使ってExcelから測定機器をコントロールする
- 035 ExcelからPythonスクリプトを実行する
- 036 ExcelからPythonスクリプトを実行する(その2)
- 037 PyVISAを使ってASCIIデータとBinaryデータを送受信する
- 038 PyVISAを使ってASCIIデータを送受信する
- 039 PyVISAを使ってBinaryデータを送受信する
- 040 PyVISAを使ってBinaryデータを送受信する(その2)
- 041 PyVISAを使ってBinaryデータを送受信する(その3)
- 042 PyVISAを使ってBinaryデータを送受信する(その4)
-
►
4月 2022
(18)
分類
- その他/雑談 (7)
- 環境構築/Python (5)
- 実機/オシロ (6)
- 実機/ファンクションジェネレータ (5)
- 紹介/Python (5)
- 紹介/PyVISA (12)
- 紹介/オブジェクト指向 (5)
- 紹介/スクリプト (10)
自己紹介
- メジャーメントラボ
- C++やC#を使って数値解析プログラムの開発を長年行ってきました.
今は,Pythonを使った自動処理システムの開発をメインに行っています.
0 件のコメント:
コメントを投稿