这就是我目前尝试将字符串数组写入操作操作单元服务器上的操作单元变量的方式(附带的图像2给出了属性(。下面的方法接收一个字符串[],并尝试将此字符串写入变量。我可以用类似的方法很容易地读取变量。
async writeFeatureName(arrayToWrite: String[]): Promise <any> {
console.log(arrayToWrite);
let nodesToWrite = [{
nodeId: "ns=3;s="DB_ScvsInterface01"."OUT"."FeatureName"",
attributeId: AttributeIds.Value,
value: new DataValue({
statusCode: StatusCodes.Good,
value: new Variant({
dataType: DataType.String,
arrayType: VariantArrayType.Array,
value: arrayToWrite
})
}),
}];
const dataValue = await this.session.write(nodesToWrite);
winston.debug(`wrote Feature Name Array : ${dataValue.toString()}`);
return dataValue
}
当我试图写入服务器上的变量时,我得到了一个类型不匹配的结果。数组的类型为string[]。我尝试了各种建议,但没有找到一个将数组写入服务器上的数组的明确示例?这可能吗?
这张图片显示了我得到的错误,这是一个类型不匹配的
这是我试图写入的变量的服务器属性
您正在使用正确的技术将字符串数组写入变量。
但是,变量的arrayDimension属性是[60],它指定变量在数组中应包含60个元素。
我想知道arrayToWrite是否包含60个元素,你能检查一下吗?