You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VB调用OPC UA FileSystem方法时遇类型不匹配错误求助

问题分析与解决方案

核心问题

你遇到的类型不匹配错误,本质是OPC UA FileSystem的Delete方法输入参数要求字符串类型的文件名,而非NodeId类型。

OPC UA标准定义的FileSystemType中,Delete方法的输入参数是名为fileName的String类型,用于指定要删除的文件名称(或相对路径),而非目标文件的NodeId。你当前传入的OpcNodeId对象和方法预期的数据类型不匹配,因此触发了类型错误。

修正后的代码

Dim FileFolderObjectId As String = "ns=2;s=Sinumerik/FileSystem/Part Program"
Dim methodDeleteNodeId As String = "ns=2;s=Sinumerik/FileSystem/Part Program.Delete"
Dim SourcePartProgramId As New OpcArgumentCollection()
' 直接传入文件名字符串,而非NodeId对象
Dim Argument1 As New OpcArgument("fileName", "T_5M.MPF", False)
SourcePartProgramId.Add(Argument1)
client.Connect()
' 删除指定文件
client.CallMethod(FileFolderObjectId, methodDeleteNodeId, SourcePartProgramId)

额外验证建议

可以使用UA客户端工具(如UaExpert)连接到目标OPC UA服务器,查看Part Program.Delete方法的输入参数定义:

  • 确认参数的名称(比如是否为fileName而非你写的InputArgument)
  • 确认参数的数据类型(必须为String类型)
  • 确保参数的方向性(输入参数需设置为False,和你当前的设置一致)

内容的提问来源于stack exchange,提问作者Steve Wei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 23:26:00