将设备添加到通讯管理器

概述

通过在设备树中选择现场设备管理器节点(例如,CANopenModbus 管理器)并单击绿色的加号,可向通讯管理器添加现场设备。也可以右键单击设备树中的现场设备管理器节点,然后执行添加设备命令。

前提条件是,在设备存储库对话框中,必须有设备可用。

添加设备

步骤

操作

1

设备树中选择现场设备管理器节点(CANopenModbus 管理器),单击绿色加号,或右键单击现场设备管理器节点并执行上下文菜单中的添加设备... 命令。

结果添加设备对话框随即打开。

2

添加设备对话框中的供应商列表框中,选择 Schneider Electric

注意:通过单击供应商列表框,可以按品牌筛选设备。

3

从下面的列表中选择所需设备。

4

名称文本框中键入名称,重命名您的设备。

注: 请勿在名称中使用空格。请勿在名称结尾使用下划线字符 (_) 。

如果您未重命名设备,则在默认情况下会提供一个名称。

为设备指定有意义的名称会便于您组织管理项目。

5

单击添加设备按钮。

结果:现场设备会添加到现场设备管理器。

注: 添加设备对话框保持打开状态。

您可进行以下操作:

  • 通过返回到第 2 步,可添加其他设备。

  • 可以单击关闭按钮.

访问诊断信息

若要获取有关 CANopen 上设备的诊断信息,请使用 CAA_CiA405.library。

访问配置诊断(适用于高级用户)

可以使用 CANopen 配置器的服务数据对象选项卡上的选项如果有错,则退出如果有错,则跳转到行来管理潜在的配置不一致。

为优化 CAN 主站性能,CAN 诊断在控制器中的 CAN 主站外部。CAN 诊断结构是在库管理器中提供的 CanConfig Extern 库中定义的。

结构 g_aNetDiagnosis 包含来自从站的最新诊断信息。每次配置从站时,都会更新结构。

此结构可在程序中使用,以执行以下操作:

  • 监控通过 SDO 消息配置的从站的响应。

  • 在允许机器/应用程序启动前,监控主站中是否存在来自从站的中止消息。

在应用程序的测试、调试和试运行过程中,必须在用户应用程序中定义和激活此结构。在试运行和验证机器及其控制应用程序后,就可以禁用此代码执行以减小 CANopen 网络上的通讯量。

但是,如果在应用程序及其控制的机器和过程的生命周期中,在运行系统中添加或替换从站,则诊断结构应继续在应用程序中保持活动状态。

 警告
意外的设备操作
  • 在应用程序中使用 g_aNetDiagnosis 数据结构,以监视 CAN 从站对配置命令的响应。
  • 如果从任意 CAN 从站收到 SDO 中止消息,请确认应用程序未启动或是将机器或过程置于运行状态。
未按说明操作可能导致人身伤亡或设备损坏等严重后果。

将 CanConfig Extern 库添加到应用程序后,请在应用程序中使用净诊断 (Net Diagnostic) 定义,以测试来自 CAN 从站的 SDO 中止消息。

下面的代码示例说明了 CAN 诊断数据结构的使用方式:

IF g_aNetDiagnosis[CAN_Net_Number].ctSDOErrorCounter = 0 THEN
    (* No error is detected in the configuration*)
ELSE
    (* An error has been detected during configuration. Get the latest error information.*)
    // node ID of the slave which sent the abort code
    ReadLastErrorNodeID := g_aNetDiagnosis[CAN_Net_Number].usiNodeID;
    // index used in the aborted SDO
    ReadLastErrorIndex := g_aNetDiagnosis[CAN_Net_Number].wIndex;
    // subIndex used in the aborted SDO
    ReadLastErrorSubIndex := g_aNetDiagnosis[CAN_Net_Number].bySubIndex;
    //SDO abort code
    ReadLastErrorSdoAbortCode := g_aNetDiagnosis [CAN_Net_Number].udiAbortCode;
    (* Do not allow the start-up or other operation of the machine or process *)
END_IF
注: 在此示例中,CAN_Net_Number 对于 CAN0 端口为 0;如果控制器是如此配备的,则对于 CAN1 端口为 1。