实战手记:三台变频器与1200 PLC的Modbus局

📅 发布时间:2026/7/5 22:56:42 👁️ 浏览次数:
实战手记:三台变频器与1200 PLC的Modbus局
西门子1200 PLC与3台力乐士Rexroth VFC3610变频器通讯程序 器件西门子1200 PLC3台力乐士Rexroth VFC x610变频器西门子KTP700 Basic Pn触摸屏昆仑通态触摸屏(带以太网)中途可以加路由器 控制方式触摸屏与plc以太网通讯PLC与变频器通讯485口相连 功能触摸屏控制变频器设定频率启停读取输出频率电压 说明是程序非硬件。 程序有注释西门子触摸屏程序昆仑通态程序变频器设置接线都有一应俱全最近刚折腾完一个西门子1200带三台力乐士变频器的项目趁热把核心代码和配置要点整理一下。这个方案用485总线同时控制三台设备实测下来响应速度够用稳定性也不错适合中小型自动化场景。先看PLC端的核心配置// Modbus主站配置 MB_MASTER_DB( REQ : Modbus轮询使能, // 自己做的轮询触发器 MB_ADDR : 1, // 从站地址 MB_FUNC : 16#03, // 功能码03读保持寄存器 DATA_ADDR : 40001, // 起始地址 DATA_LEN : 4, // 读取4个寄存器 DATA_PTR : #读缓冲区); // 存储返回数据注意这里有个坑——力乐士的寄存器地址要减1。比如手册说40001对应的是频率设定值实际发40000才对。这个地址偏移问题折腾了我半小时后来在变频器监控里抓包才发现的。三台变频器的轮询策略// 用定时器做简单轮询 IF 500ms脉冲 THEN CASE 站号切换计数器 OF 0: 调用变频器1读写程序 1: 调用变频器2读写程序 2: 调用变频器3读写程序 END_CASE; 站号切换计数器 : (站号切换计数器 1) MOD 3; END_IF;这里每个从站分配了不同的超时时间建议设500ms以上。曾经试过连续轮询结果第三台设备经常超时改成这种间隔轮询就稳了。西门子1200 PLC与3台力乐士Rexroth VFC3610变频器通讯程序 器件西门子1200 PLC3台力乐士Rexroth VFC x610变频器西门子KTP700 Basic Pn触摸屏昆仑通态触摸屏(带以太网)中途可以加路由器 控制方式触摸屏与plc以太网通讯PLC与变频器通讯485口相连 功能触摸屏控制变频器设定频率启停读取输出频率电压 说明是程序非硬件。 程序有注释西门子触摸屏程序昆仑通态程序变频器设置接线都有一应俱全触摸屏的关键点昆仑通态的按钮控制直接用Modbus TCP协议地址映射要和PLC的DB块对应。比如启动按钮绑定DB10.DBX0.0正转/反转用不同的位。西门子KTP700那边更简单直接组态HMI变量就行。变频器参数设置清单P058 3 (Modbus通讯模式)P059 1 (站号三台分别设1/2/3)P060 3 (波特率19200)P061 3 (8位数据位无校验)P062 1 (RTU模式)避坑指南485终端电阻一定要接特别是总线超过10米时变频器软件版本要V3.2以上才支持完整Modbus功能昆仑通态屏的浮点处理要注意字节顺序建议单独做心跳包检测从站状态这个方案的优势在于成本低省了三个通讯模块维护简单。实测在30米线缆长度下三台设备同时运行没出现过数据冲突。下次如果再做到五台设备可能要考虑上Profibus或者换支持以太网的变频器了。