一、系统架构概述

  • PLC:S7-1214C DC/DC/DC(6ES7 214-1AG40-0XB0),固件 V4.5,IP: 192.168.0.1
  • 远程 I/O:EX-1110 适配器 + 3×EX-210H(DI/DO 模块)+ 4×EX-3208(AI/AO 模块),IP: 192.168.0.11
  • 伺服驱动器:SINAMICS V90 PN(固件 V1.0),IP: 192.168.0.16,使用 标准报文 3(PZD-5/9)
  • 网络设备:交换机连接所有设备,PC 用于编程与监控
  • 通信协议:PROFINET IO(V90 作为 PROFINET 设备)

二、硬件组态(TIA Portal 中)

1. 创建新项目

  • 打开 TIA Portal(建议 V16 或更高,兼容 S7-1200 V4.5)
  • 添加 S7-1214C DC/DC/DC 控制器

2. 设置 PLC IP 地址

  • 在设备视图中 → 属性 → PROFINET 接口 → 设置 IP 为 192.168.0.1,子网掩码 255.255.255.0

3. 添加远程 I/O(DEC 模块)

  • 在“硬件目录” → “Other field devices” → “IO” → 找到 EX-1110 适配器(需安装 GSD 文件)
  • 若未安装 GSD,从厂商官网下载 .gsdml 文件并导入 TIA Portal(选项 → 安装 GSD 文件)
  • 添加 EX-1110,设置 IP 为 192.168.0.11
  • 在其插槽中添加:
    • 3 个 EX-210H(数字量输入/输出模块)
    • 4 个 EX-3208(模拟量输入/输出模块)

4. 添加 SINAMICS V90 PN

  • 在“硬件目录” → “Drives” → “SINAMICS” → “SINAMICS V90 PN”
  • 拖入 V90 驱动器,设置 IP 为 192.168.0.16
  • 选择 报文类型:Standard Telegram 3 (PZD-5/9)

    报文3结构:

    • 控制字(2字节) + 速度设定值(2字节) → 共4字节(PZD1-PZD2)
    • 状态字(2字节) + 实际速度(2字节) + 实际位置(4字节) → 共8字节(PZD1-PZD4)

⚠️ 注意:V90 固件 V1.0 支持报文3,但功能有限。建议确认是否支持 EPOS(基本定位)模式


三、V90 参数设置(通过 V-ASSISTANT 或 BOP)

  1. 设置控制模式为 EPOS(基本定位)
    • P29000 = 1 (EPOS 模式)
  2. 设置参考点方式
    • P29240 = 1 (主动回零,如使用零点开关 + 编码器零脉冲)
    • 或 P29240 = 4(仅编码器零脉冲)
  3. 设置电机参数、编码器类型等
  4. 启用 PROFINET 控制
    • P29001 = 1 (允许通过 PROFINET 控制)
  5. 确认报文为 Standard Telegram 3

四、PLC 编程(TIA Portal)

1. 分配 I/O 地址

  • V90 的输入/输出数据将自动映射到过程映像区(如 IB100/QB100 等)
  • 建议在“设备视图” → V90 属性 → “地址”中查看实际地址

假设:

  • 输出(PLC → V90):QB100(控制字低字节)、QB101(控制字高字节)、QB102-QB103(速度设定值,但 EPOS 中通常用位置)
  • 输入(V90 → PLC):IB100-IB101(状态字)、IB102-IB105(实际位置,DINT)

💡 报文3中,EPOS 模式下,速度设定值字段可被复用为位置设定值(需设置 P29227=1)

2. 关键控制逻辑(使用 MC 指令或直接写控制字)

方案 A:使用 MC_Power / MC_Home / MC_MoveAbsolute(推荐)


七、扩展建议

  • 需在“工艺对象”中添加 定位轴(Positioning axis)
    • 类型:外部编码器或驱动器内部编码器
    • 通信:PROFINET,报文3
    • 驱动器:V90 PN
  • 配置完成后,自动生成 DB 块,可直接调用 MC 指令
  • 方案 B:手动控制字操作(适用于不支持工艺对象的情况)
  • 控制字(Control Word, CW)关键位(报文3):
    功能
    0 ON/OFF1
    1 OFF2
    2 OFF3
    3 脉冲使能
    4 RFG 使能
    7 故障确认
    8 运行使能(必须为1)
    9 回原点启动(设为1触发)
    10 绝对定位启动(设为1触发)
    状态字(Status Word, SW)关键位:
    含义
    0 驱动就绪
    1 运行使能
    2 故障
    10 回原点完成
    12 定位完成
  • 示例逻辑(LAD/STL/SCL):
    
      

    Scl

    编辑

    1// 回原点
    2IF "Start_Home" THEN
    3    "ControlWord" := 16#047F; // 包含 ON, Enable, Home=1
    4ELSIF "Home_Done" THEN
    5    "ControlWord" := 16#047E; // Home=0,保持使能
    6END_IF;
    7
    8// 绝对定位(点位1)
    9IF "Start_Move1" THEN
    10    "Position_Setpoint" := 10000; // 单位:增量单位(根据 P29245 设置)
    11    "ControlWord" := 16#0C7E;     // Bit10=1 (Start positioning)
    12END_IF;

    数据写入:

    • 将 ControlWord 写入 QB100(低字节)和 QB101(高字节)
    • 将 Position_Setpoint(DINT)写入 QB102~QB105(注意字节序)

    五、3个绝对定位点实现

    在程序中定义3个目标位置(如 Pos1=10000, Pos2=20000, Pos3=30000),通过按钮或 HMI 触发:

    
      

    Scl

    编辑

    1CASE "Mode" OF
    2    1: "TargetPos" := 10000;
    3    2: "TargetPos" := 20000;
    4    3: "TargetPos" := 30000;
    5END_CASE;
    6
    7IF "Execute_Move" AND NOT "Axis_Busy" THEN
    8    // 写入目标位置到 V90 输出区(QB102-QB105)
    9    PQD 102 := "TargetPos";  // 或使用 MOVE 指令到 QD102
    10    // 设置控制字启动定位
    11    "ControlWord".Start_Positioning := TRUE;
    12    // 等待完成或超时
    13END_IF;

    六、调试与注意事项

  • 确保网络连通:PLC、V90、远程IO 在同一网段,能 ping 通
  • V90 必须处于“EPOS”模式,否则报文3无法执行定位
  • 单位一致性:位置单位由 V90 参数 P29245(每转单位数)决定
  • 回原点前需先使能驱动(控制字 bit0,3,8=1)
  • 故障处理:监控状态字 bit2,若故障需发送控制字 bit7=1 清除
  • 使用 HMI(如 KTP700)实现点动、回零、多点选择
  • 添加 急停逻辑(通过 OFF2/OFF3 控制)
  • 记录当前位置到 DB 块,实现断电记忆(需电池或非易失存储)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐