错误91: 变体的数据类型与类型输入连线的数据类型不兼容

更新 Nov 13, 2025

适用于

软件

  • LabVIEW

问题详述

LabVIEW中的变体至数据转换函数回传以下错误:

<VI>中的 变体至数据转换 发生错误91
LabVIEW: (Hex 0x<>) 变体的数据类型与类型输入连线的数据类型不兼容。

错误91.png

解决方案

该错误可能由不同原因引起,最有可能的原因是变体至数据转换函数的类型输入端子和要变体输入端子内容的数据类型不匹配。此外,若使用共享变量存储含有映射表数据类型的变体并使用此函数时,也会发生该错误。

将变体数据转为不正确的数据类型

  • 如果您尝试使用变体至数据转换函数来提取跟您输入的数据类型不对应的数据,即有可能会出现此错误。如下图的例子:它尝试从变体数据中提取布尔值。
虽然变体数据中含有一个布尔值,但它实际是簇的组成部分。因此正确的做法是:先将变体转换为簇,再从簇中提取布尔值。如下图所示:
 
  • 不要将获取类型信息VI类型输出接线端连接到变体至数据转换函数的类型输入接线端,以尝试自动检测变体转换到的数据类型,这很可能会引起91错误,因为获取类型信息VI的类型输出端子是枚举数据类型。例如,下图所示的代码预计就会产生91错误,因为变体中的数据是布尔,但变体至数据转换函数的类型接入的却是枚举数据类型:
获取类型.png


使用共享变量来存储映射表

第二个可能得原因:如果原始变体数据包含映射表数据,这个变体数据被存储在共享变量中,当从共享变量中读出变体并传递给变体至数据转换函数以尝试从变体中提取映射表数据时,将会出现此错误。因为共享变量目前是无法存储映射表这种数据类型的。即便共享变量可以存储变体这种数据类型,但变体中的实质数据类型仍是映射,仍会收到制约。要解决这个问题,您可以使用不同的数据结构(如数组或簇)来储存映射表,或是从映射表中先读出所有的键和值,传入共享变量中,待所有数据从共享变量取出后,再用相应数据来重新创建映射表。

 

相关信息

获取类型信息VI的类型输出接线端是一个枚举类型的数据值,其包含LabVIEW中多种数据类型,但这个数据本身的类型是枚举,而并非与变体至数据转换函数的变体接线端中输入的数据匹配的数据类型。