|
西门子 S7-1200 PLC 与 三菱电机(Mitsubishi Electric)FR-E800 系列变频器 通过 Modbus TCP 实现通信,是一种典型的跨品牌工业集成方案。FR-E800 系列原生支持 Modbus TCP 从站(Server)功能(需选配 FR-ECB2 Ethernet 通信模块),可与 S7-1200(作为主站)进行启停控制、频率设定、状态监控等操作。 --- 一、通信角色与硬件要求 关键前提:标准 FR-E800 本体无以太网口!必须安装通信扩展板 FR-ECB2(订货号:FR-ECB2)。该模块提供 RJ45 接口,支持 Modbus TCP 和 MC Protocol。 --- 二、FR-E800 变频器侧配置 1. 安装 FR-ECB2 模块 将 FR-ECB2 插入 E800 的 PU 接口(前面板右侧) 上电后模块指示灯应正常(绿色) 2. 设置 IP 地址(通过操作面板) MENU → NETWORK SETTINGS → ETHERNET参数 | 示例值 | 说明 | IP Address | 192.168.3.80 | 与 S7-1200 同网段 | Subnet Mask | 255.255.255.0 | — | Default Gateway | 192.168.3.1 | 可选 | Modbus TCP Port | 502 | 默认,可修改 |
建议先用 三菱专用工具 MR Configurator2 配置网络,更可靠。 --- 3. 启用 Modbus TCP 并设置控制模式 关键参数(通过操作面板或软件): Pr.79 = 7 是关键!否则通讯控制无效。 修改后需 断电重启 或执行 参数写入(Pr.77=2)。 --- 4. FR-E800 Modbus 寄存器映射(核心!) E800 将内部数据映射到 4x 保持寄存器(Holding Registers),地址从 40001 开始。 控制字(40001)常用位定义(十六进制): Bit 0: 正转启动(1=ON) Bit 1: 反转启动(1=ON) Bit 2: 故障复位(上升沿有效) Bit 3: 自由停车(1=OFF) 示例: 正转启动:40001 = 1(0x0001) 停止:40001 = 8(0x0008) 故障复位:40001 = 4(0x0004) 状态字(40003)常用位: Bit 0: 正转运行中 Bit 1: 反转运行中 Bit 2: 加速中 Bit 3: 减速中 Bit 4: 就绪(可运行) Bit 5: 故障(1=有故障) 详细映射参考:《MELSERVO / FR-E800 Modbus TCP 手册》(文档号:IB(NA)0300407-A) --- 三、S7-1200 配置(TIA Portal) S7-1200 作为 Modbus TCP Client,使用 MB_CLIENT 指令。 1. 定义连接参数(TCON_IP_v4) Connection_E800 : TCON_IP_v4 :=( InterfaceID := 1600000001, ConnectionType := 160B, // TCP ActiveEstablished := TRUE, // 主动连接 RemoteAddress := '192.168.3.80', // E800 IP RemotePort := 502, LocalPort := 2000);2. 定义数据缓冲区 // 读取状态(3 个 Word:40003~40005)E800_ReadBuf : Array[0..2] of WORD;// 写入命令(2 个 Word:40001~40002)E800_WriteBuf : Array[0..1] of WORD;3. 调用 MB_CLIENT 指令 (1)周期性读取状态(OB1 中) // 使用 100ms 时钟触发ReadTrigger := Timer_100ms_Q AND NOT LastRead;MB_CLIENT( REQ := ReadTrigger, CONNECT := "Connection_E800", MODE := 0, // 自动管理连接 DATA_ADDR := 40003, // 从状态字开始 DATA_LEN := 3, // 读 3 个寄存器 DONE => ReadDone, BUSY => ReadBusy, ERROR => ReadError, STATUS => ReadStatus, DATA_PTR := %PE800_ReadBuf);LastRead := Timer_100ms_Q;(2)写入控制命令 // 启动正转,50HzIF "Start_PB" THEN "E800_WriteBuf"[0] := 1; // 控制字 = 1 "E800_WriteBuf"[1] := 5000; // 50.00 Hz WriteTrigger := TRUE;END_IF;// 停止IF "Stop_PB" THEN "E800_WriteBuf"[0] := 8; // 控制字 = 8 WriteTrigger := TRUE;END_IF;MB_CLIENT( REQ := WriteTrigger, CONNECT := "Connection_E800", MODE := 1, // 写模式 DATA_ADDR := 40001, DATA_LEN := 2, DONE => WriteDone, BUSY => WriteBusy, ERROR => WriteError, STATUS => WriteStatus, DATA_PTR := %PE800_WriteBuf);// 写入后清触发IF WriteDone OR WriteError THEN WriteTrigger := FALSE;END_IF;--- 四、典型应用逻辑 1. 故障检测 // 状态字 Bit 5 = 故障(0x0020) IF ("E800_ReadBuf"[0] AND 160020) <> 0 THEN "E800_Fault" := TRUE;END_IF;2. 实际频率显示 ActualFreq_Hz := INT_TO_REAL("E800_ReadBuf"[1]) / 100.0; // 40004 → [1]--- 五、调试与故障排查 推荐调试工具: Modbus Poll:测试读写 40001~40006 Wireshark:抓包分析 Modbus 请求/响应 --- 六、注意事项 FR-ECB2 模块必须安装,标准 E800 无以太网功能。Pr.79 = 7 是启用通讯控制的前提。控制字需 持续发送“运行”命令(非脉冲),否则变频器会停止(取决于 Pr.340 设置)。 三菱 E800 的 Modbus TCP Unit ID 默认为 0,但主站通常可忽略(设为 1 也可通信)。 --- 七、总结 优势: 支持标准 Modbus TCP,跨品牌兼容性好 可实现远程监控与控制,适合改造项目 局限: 需额外购买 FR-ECB2 模块(增加成本) 实时性不如 CC-Link IE 或 PROFINET --- 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |