通过OPC UA协议连接IDS NXT工业相机

通过OPC UA协议将IDS NXT相机集成到工厂自动化流程中

软件更新为IDS NXT相机提供了另一个面向未来的组件,以便将IDS NXT相机无缝集成到工厂自动化流程中。OPC UA服务器通过一个插件集成到IDS工业相机中。IDS工业相机通过软件更新实现OPC UA,并通过网络中的“配方集”实现AI功能,并能够将结果直接从现场级发送至机器和控制级进行通信。因此,OPC UA协议是IDS NXT相机的理想补充,它使用户可以在工业环境中通过OPC UA终端实现相机配置和基于Vision App的推理任务。因此,OPC UA协议是IDS NXT相机的理想工业4.0组件。

OPC UA协议

OPC UA协议是一项关键技术标准。它统一了客户端与服务器之间的语言。此外,它定义了设备(服务器)如何向客户端描述自己,或者设备提供哪些信息以及哪些服务。如果不需要通过不同的协议读取、转换和同步数据,则从物理层和基于以太网的现场总线直至云采用统一的通信标准将极大地简化工程开发。这样可以节省自动化时间和成本,并确保快速集成到工厂中。借助OPC机器视觉配套规范,跨制造商和跨行业的通信技术为IDS NXT相机提供了理想的接口扩展,以便在工厂自动化流程中轻松地使用基于AI的“配方”。

IDS NXT OPC UA服务器插件

OPC UA服务器插件将IDS NXT相机转换为OPC UA服务器,因此可由任何OPC UA客户端寻址访问。图像处理任务由插件封装在被称为“配方”的功能模块中。同样,对特殊应用程序做出的必要和复杂设置会被汇总并保存在配置数据集中。插件通过REST接口提供相应的功能。您可以通过IDS NXT cockpit中的图形化用户界面(GUI)轻松地使用这些功能。图像处理结果可由OPC UA客户端通过结果管理进行查询,或者作为事件进行订阅。通用设备信息(例如:名称或序列号)通过设备信息模型提供。 OPC UA通信的工作原理类似于一个附加的相机接口,在启动OPC UA服务器后,该接口可运行于基于以太网的网络。

OPC UA服务器

IDS NXT相机可以通过OPC UA插件连接到任何OPC UA客户端。例如:这可以是机器控制或管理系统的专有软件。凭借不同编程语言如C++、C#或Python的OPC UA开发库,您也可以实现自己的OPC UA客户端。由于我们要在此演示如何将相机轻松、快速地集成到现有的OPC UA网络中,因此我们使用大家所熟知的OPC UA客户端“UaExpert®”来演示OPC UA插件。功能齐全的客户端提供了广泛的功能和可以轻松演示IDS NXT OPC UA服务器可能性的GUI。它支持OPC UA功能,例如:数据访问、事件和OPC UA方法的调用。

将IDS NXT用作OPC UA视觉系统

为了演示通过OPC UA控制IDS NXT相机,此技术说明描述了一个AI图像处理工作流程示例,您可以使用IDS NXT相机和一些物体(圆珠笔、尺子、橡皮、钥匙等)轻松地掌握示例中的功能。为此,只需按照以下说明进行操作即可。

1)设置推理任务

  • 对于本示例,我们使用“Classifier”视觉应用程序和预装的神经网络(CNN)“ImageNet1000”。通过IDS NXT cockpit中的“Vapp Manager”安装并启动该应用程序。
  • 分类器通过预先训练好的ImageNet1000,可以识别很多物体,例如:圆珠笔、钥匙、名片等。将任何物体放置在IDS NXT相机下,并在自由运行模式下设置图像捕捉,使您的物体通过适当的设置(颜色、锐度、曝光等)完全成像。
  • 对您要识别的物体使用ROI。
    每个图像捕捉的分类推理结果以各自的概率显示在ROI和结果区域中。
    在我们的案例中,相机识别出了圆珠笔(68%)、削笔器(100%)和橡皮擦(98%)。

2)启动OPC UA服务器

  • 您无需对相机进行任何编程即可实现OPC通信。只需在IDS NXT相机上通过IDS NXT cockpit中的“Vapp Manager”安装(1)并启动(2)OPC UA服务器插件。
  • 您可以通过插件的操作来启动(1)和停止(2)OPC UA服务器。默认情况下,服务器会在插件启动时自动启动(3)。

3)创建OPC UA配置和配方

  • 利用OPC UA插件通过IDS NXT cockpit在IDS NXT相机上轻松地创建和保存配置。
  • 只需利用分类器定义当前相机设置(配置名称)和推理任务(配方名称),然后通过相应的操作即可保存配置和配方。操作完毕,您就通过cockpit完成了相机的OPC UA设置。

4)建立OPC UA客户端-服务器连接

  • 安装并启动OPC UA客户端“UaExpert®”。
  • 要连接相机的OPC UA服务器,请在菜单栏中单击添加服务器)。切换到“高级”选项卡。
  • 为连接指定“配置名称
  • 指定服务器的“端点URL ”(例如“opc.tcp://169.254.173.231:4840”)
    • 协议:opc.tcp
    • 相机的IP地址
    • OPC UA服务器端口:4840
  • 选择所需的“安全政策”(支持的参数包括:None,Basic128Rsa15,Basic256,Basic256Sha256
  • 选择“消息安全模式”(None, Sign, Sign & Encrypt
  • 在“身份验证设置”中输入IDS NXT相机的访问数据。(例如管理员服务用户)
  • 现在,您可以连接OPC UA服务器:连接

5)请求/编辑设备信息

  • 要测试服务器连接,您可以通过“地址空间”窗口中的相机信息模型来实现。例如,如果您在UaExpert®中更改了设备名称,那它就会在IDS NXT cockpit中实时更新。
  • 此外,您还可以通过“ 数据访问视图”来订阅状态和统计参数,以跟踪的更改状态。例如,如果您将图像计数器的“图像总计”拖进这个窗口,那么该值将随着相机每捕捉一个新图像而实时增加。
  • 要重置图像计数器,请在“全部重置”的快捷菜单中执行“调用”。然后所订阅的帧计数器就会再次从“0”开始计数。

6)激活相机配置

  • 首先,通过调用函数GetConfigurationList来检索存储在相机上的配置列表。
    ResultCount通过InternalId“ conf_classifier.json”显示1个可用配置。
  • 使用函数ActivateConfiguration定义当前的有效配置,这些保存下来的参数随后会被相机使用。将相应的InternalId设置为该调用的输入值(Id)。
  • 您可以通过节点已激活配置检查当前激活的配置。Id“ conf_classifier.json ”应该会显示在这些属性中。

7)设置任务(配方)

现在,我们以相同的方式处理相机预先保存的图像处理任务。

  • 调用输入值为 IsPrepared = 2(DONTCARE_2)的函数 GetRecipeListFiltered 会返回“1”个保存的配方作为ResultCount。这种情况下,保存的配方会显示为Id recipe_classifier_imagenet.json”。
  • 通过调用函数 PrepareRecipe ,并且将先前查询的Id设为输入值“InternalIdIn”,您可以将该配方设置为激活图像处理任务。

8)订阅结果事件

现在相机已通过OPC UA客户端设置完毕。在执行相机任务之前,必须先订阅结果事件。

  • 具体操作是,添加一个EventView...
  • 并将相机的VisionSystem拖放到该事件视图中。
  • 激活SimpleEventsConditionTypes字段以获取所有详细信息。
  • 通过应用按钮确认所选。

9)执行任务(配方)-评估事件结果

假如我们想让相机只执行一个任务,

  • 那么具体操作是,仅调用StartSingleJob方法一次。
  • 然后在机机的EventView中就可以收到ResultReadyEvent
  • 在事件的详细信息中,通过各自的分类可能性,我们可以看到三个指定的ROI(圆珠笔、铅笔刀、橡皮擦)的推理结果。