总线配置

命名空间

https://forgeiec.io/v2/bus-config

本架构描述了 ForgeIEC 对 PLCopen XML 格式的扩展, 用于在 .forge 项目文件中存储现场总线配置。 它使用 PLCopen TC6 定义的标准 <addData> 机制。

概述

总线配置定义了工厂的物理拓扑: (现场总线网络)包含设备,每个设备通过 总线绑定与项目的 I/O 变量关联。

.forge 项目
  +-- 段(现场总线网络)
  |     +-- 设备
  |           +-- 变量(通过地址池中的总线绑定)
  +-- 地址池(FAddressPool)
        +-- 变量:DI_1, %IX0.0, busBinding -> Maibeere
        +-- 变量:DO_1, %QX0.0, busBinding -> Maibeere

XML 结构

总线配置作为 <addData> 存储在项目级别:

<project>
  <!-- 标准 PLCopen 内容 -->
  <types>...</types>
  <instances>...</instances>

  <!-- ForgeIEC 总线配置 -->
  <addData>
    <data name="https://forgeiec.io/v2/bus-config"
          handleUnknown="discard">
      <fi:busConfig xmlns:fi="https://forgeiec.io/v2">

        <fi:segment id="a3f7c2e1-..."
                    protocol="modbustcp"
                    name="现场总线车间 1"
                    enabled="true"
                    interface="eth0"
                    bindAddress="192.168.24.100/24"
                    gateway=""
                    pollIntervalMs="0">

          <fi:device hostname="Maibeere"
                     ipAddress="192.168.24.25"
                     port="502"
                     slaveId="1"
                     anvilGroup="Maibeere"/>

          <fi:device hostname="Stachelbeere"
                     ipAddress="192.168.24.26"
                     port="502"
                     slaveId="1"
                     anvilGroup="Stachelbeere"/>

        </fi:segment>

      </fi:busConfig>
    </data>
  </addData>
</project>

元素

fi:busConfig

根元素。包含一个或多个 fi:segment 元素。

属性必需描述
xmlns:fi命名空间:https://forgeiec.io/v2

fi:segment

一个现场总线段(物理网络)。

属性必需类型描述
idUUID唯一段标识符
protocolString协议:modbustcpmodbusrtuethercatprofibus
nameString显示名称(用户自定义)
enabledBool段激活(true)或禁用(false)。默认:true
interfaceString网络接口(如 eth0/dev/ttyUSB0
bindAddressString接口的 IP/CIDR(如 192.168.24.100/24
gatewayString网关地址(空 = 无网关)
pollIntervalMsInt轮询间隔(毫秒)(0 = 尽可能快)

fi:device

段内的一个设备。

属性必需类型描述
hostnameString设备名称(用作设备 ID)
ipAddressStringIP 地址(Modbus TCP)
portIntTCP 端口(默认:502
slaveIdIntModbus 从站 ID
anvilGroupStringAnvil IPC 组(零拷贝传输)

变量到设备的绑定

I/O 变量不在 fi:device 元素中列出。 地址池中的每个变量都带有一个 busBinding 属性, 指向设备的 hostname

FLocatedVariable
  name: "DI_1"
  address: "%IX0.0"
  anvilGroup: "Maibeere"
  busBinding:
    deviceId: "Maibeere"
    modbusAddress: 0
    count: 1

IEC 地址分配

绑定变量的 IEC 地址由物理拓扑决定:

段基地址 + 设备偏移 + 寄存器位置
地址范围含义来源
%IX / %IW / %ID物理输入总线绑定
%QX / %QW / %QD物理输出总线绑定
%MX / %MW / %MD标记(无物理 I/O)池分配器

支持的协议

协议protocol介质桥接守护进程
Modbus TCPmodbustcp以太网tongs-modbustcp
Modbus RTUmodbusrtuRS-485(串行)tongs-modbusrtu
EtherCATethercat以太网(实时)tongs-ethercat
Profibus DPprofibus串行(现场总线)tongs-profibus

兼容性

handleUnknown="discard" 属性确保不了解 ForgeIEC 的 PLCopen 工具可以安全地忽略总线配置而不产生错误。 反之,ForgeIEC 读取其他供应商的未知 <addData> 块 并在保存时保留它们。


ForgeIEC 总线配置 — 离线可用、PLCopen 兼容、无冗余。

blacksmith@forgeiec.io