S7-1200与伺服V90标准报文3通信控制
·
一、系统架构概述
- 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)
- 设置控制模式为 EPOS(基本定位)
- P29000 = 1 (EPOS 模式)
- 设置参考点方式
- P29240 = 1 (主动回零,如使用零点开关 + 编码器零脉冲)
- 或 P29240 = 4(仅编码器零脉冲)
- 设置电机参数、编码器类型等
- 启用 PROFINET 控制
- P29001 = 1 (允许通过 PROFINET 控制)
- 确认报文为 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 块,实现断电记忆(需电池或非易失存储)
更多推荐

所有评论(0)