S7‑1200 本体没有 RS485,必须加装 CM1241‑RS485(信号板 CB1241 也可以),做 Modbus RTU 主站;丹佛斯 FC 系列 (FC301/302/FC280/FC51) 做 RTU 从站西门子工业...。
一、硬件接线
丹佛斯端子:68 = 485+(A),69 = 485‑(B)CM1241:3=A(+),8=B(-)
接线:CM1241 的 3 → 变频器 68;CM1241 的 8 → 变频器 69
屏蔽层单端接地;总线两端终端电阻 120Ω;CM1241 拨码 S2,总线末端拨 ON,中间站 OFF。
禁止交叉 A/B,接反直接无通讯。
二、丹佛斯变频器参数(FC302/FC280 通用)西门子工业
表格
| 参数 | 设置值 | 说明 |
|---|---|---|
| 8‑30 | 2 | 协议选择:Modbus RTU |
| 8‑31 | 1 | 从站站号(1‑247,和 PLC 一致) |
| 8‑32 | 2 | 波特率:2=9600;3=19200 |
| 8‑33 | 0 | 校验:0 = 无校验,1 停止位(推荐) |
| 8‑01 | 2 | 控制源:总线控制字,必须设置,否则不响应总线启停 |
| 8‑02 | 1 | 控制字超时动作,1 = 冻结输出 |
8‑01 非常关键,不改,PLC 发命令变频器不执行启停。
三、博途 S7‑1200 配置
硬件组态添加 CM1241‑RS485,记下硬件标识符(例如 257)。
调用两个指令库指令:
MB_COMM_LOAD:初始化 485 硬件,只上电执行一次
MB_MASTER:Modbus 主站读写变频器(REQ 上升沿触发)
MB_COMM_LOAD 引脚
PORT:填写 CM1241 硬件标识符
BAUD:9600
PARITY:0(无校验)
REQ:M0.0(上电脉冲触发一次,完成后置 0)
MB_MASTER 引脚(读写丹佛斯)
MB_ADDR:1(变频器站号 8‑31)
MODE:0 = 读 (03 功能码);1 = 写单个寄存器 (06)
DATA_ADDR:丹佛斯寄存器地址‑1(重点!)
DATA_LEN:读写寄存器数量
DATA_PTR:指向 PLC 的 DB 块数组(非优化 DB)
丹佛斯寄存器编号:手册写 50000(控制字),PLC 里
DATA_ADDR = 50000‑1 =49999assets.dan。
常用寄存器(FC302)
表格
| 功能 | 丹佛斯寄存器 | PLC DATA_ADDR | 说明 |
|---|---|---|---|
| 控制字(启停) | 50000 | 49999 | 启动 = 16#047F;停止 = 16#047C;复位 16#04FF |
| 频率给定 | 50010 | 50009 | 0‑16384 对应 0‑最大频率 |
| 状态字 | 50200 | 50199 | 读变频器状态 |
| 实际频率 | 50210 | 50209 | 反馈实际输出频率 |
频率给定:16384 对应 100%,对应变频器参数 3‑03 最大参考频率。
四、程序示例逻辑
上电 M0.0 脉冲执行 MB_COMM_LOAD,完成后 M0.0 复位。
用 M0.1 上升沿触发 MB_MASTER:
读:MODE=0,DATA_ADDR=50199,读 2 个寄存器(状态字 + 实际频率)
写:MODE=1,DATA_ADDR=49999,写入控制字 16#047F 启动变频器。
五、常见故障排查
MB_MASTER 报错
16#8281:从站无应答A/B 接反;波特率 / 校验不匹配;8‑01 没有设置总线控制;终端电阻缺失。
通讯正常但变频器不启动:检查 8‑01 控制源参数,必须选总线控制字。
频率给定没变化:确认寄存器地址减 1;确认 3‑03 最大参考频率。
补充:Profinet 通讯(如果变频器带 PN 选件 MCA120)
丹佛斯官网下载 GSD 文件,博途选项安装 GSD。
网络视图拖拽 FC 驱动,分配 PN 设备名,选择报文 1 (PZD2/2),直接映射 I/Q 地址,不需要写 Modbus 程序。

