「サブVI "Out Port Old 6.x.vi" もしくは "In Port Old 6.x.vi"が見つかりません」というエラーが発生する



使用ソフトウェア:
使用ソフトウェア・バージョン: 1.0 1.0.1 5.0.1f1 3.0.1 3.0 8.0.1 2.7.1 2.4.5 1.6 2.3 1.1 4.0.1
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: LabVIEW Development Systems>>LabVIEW Base Package, LabVIEW Development Systems>>LabVIEW Professional Development System

問題:
LabVIEWを新しいバージョンにアップグレードし、LabVIEW 6.x以前で作成された既存のVIを使用しようとしています。VIを開くと"Out Port Old 6.x.vi" または "In Port Old 6.x.vi"を自動検索しますが「サブVIが見つかりません」とエラーが発生してしまいます。しかし、LabVIEW 6.xで作成された既存のVIは上記の関数を使用していません。どうしてLabVIEWは上記の関数を検索するのでしょうか?また、どのようにしてプログラムを修復するのでしょうか?

解決策:
検索されている"Out Port Old 6.x.vi" や "In Port Old 6.x.vi"はLabVIEW4.1から6.1に含まれる関数で、レジスタレベルでのハードウェアアクセスの際に使用されます。これらの古いバージョンのLabVIEWに含まれる関数は直接ハードウェアにアクセスするカーネルモードルーチンではないためWindowsNT/2000/XPで使用することが出来ません。そのため、WindowsNT/2000/XPではLabVIEW7.0以降に含まれるバージョンの"In Port" と "Out Port" 関数を使用する必要があります。

LabVIEW7.0以降に含まれるバージョンの"In Port" と "Out Port" 関数はポリモーフィック型で8,16,32ビット対応となりましたが、LabVIEW6.1以前に含まれるバージョンの関数と互換性が失われてしまいました。その結果、LabVIEW6.1以前のバージョンで作成されたVIをLabVIEW7.0以降のバージョンでロードすると、今回のエラーが発生します。尚、古いバージョンの"In Port" と "Out Port" 関数がLabVIEW7.0以降のバージョンでロードされると、関数名が"Out Port Old 6.x" や "In Port Old 6.x"と自動的に変更されます。

VIを修復するには古いバージョンの"In Port" と "Out Port" 関数を新しいバージョンの関数で置き換える必要があります。関数配置後はワイヤを配線しなおしてください。

関数の場所
LabVIEW7.x : 全関数>>上級>>ポートI/O
LabVIEW8.x : 全関数>>コネクティビティ>>ポートI/O

関連リンク:
KnowledgeBase 2Q1FC3K8 : Accessing Hardware Registers and Physical Memory in Windows NT/2000/XP with LabVIEW

Developer Zone Example: Port and Memory Utilities for Windows

添付:





報告日時: 08/26/2005
最終更新日: 04/01/2008
ドキュメントID: 3OPDPR2W