From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



「サブ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