西门子 V20 变频器通过 USS 通讯(西门子通用串行协议)可与 PLC(如 S7-1200/1500、S7-200 SMART 等)实现数据交互,实现频率设定、启停控制、状态监控等功能。以下是详细的实现步骤:
一、硬件准备与接线
二、V20 变频器参数设置
通过 V20 的操作面板或 STARTER 软件设置以下参数:
参数号 | 参数名称 | 设定值 | 说明 |
---|---|---|---|
P2010 | 通讯波特率 | 6(对应 9600bps) | 需与 PLC 一致,可选 4800/9600/19200 等 |
P2011 | 变频器地址 | 1 | 范围 1~31,唯一且与 PLC 配置一致 |
P2012 | 通讯协议 | 2 | 选择 USS 协议(1=MODBUS,2=USS) |
P2023 | 应答延迟时间 | 100ms | 变频器响应 PLC 请求的延迟(默认即可) |
P0700 | 命令源选择 | 5 | 由 USS 通讯控制启停 |
P1000 | 频率设定值来源 | 5 | 由 USS 通讯设定频率 |
设置完成后,保存参数(P0970=1)并重启变频器生效。
三、PLC 程序配置(以 TIA Portal 为例)
1. 硬件组态
2. 调用 USS 库函数
西门子提供 USS 协议库(USS_PROTOCOL
),需在项目中添加并调用:
梯形图(SCL语言示例):
// 定义变量 VAR USS_Init: "USS_Init"; // 初始化函数 USS_Control: "USS_Control"; // 控制函数(启停、频率设定) USS_Read: "USS_Read"; // 读取函数(状态、实际频率) // 输入参数 Init_Enable: BOOL := TRUE; // 初始化使能 Drive_Address: BYTE := 1; // 变频器地址(与P2011一致) Control_Enable: BOOL := TRUE; // 控制使能 Run: BOOL; // 启动信号 Stop: BOOL; // 停止信号 Setpoint: INT := 3000; // 频率设定(0~16384对应0~50Hz,3000≈9.2Hz) // 输出参数 Status_Word: WORD; // 状态字(如运行状态、故障) Actual_Freq: INT; // 实际频率(对应0~50Hz) Error: BOOL; // 通讯错误 END_VAR // 初始化USS协议 USS_Init( Enable := Init_Enable, Mode := 1, // 1=RS485模式 Baudrate := 9600, // 波特率 Timeout := 1000, // 超时时间(ms) Error => Error ); // 控制变频器(启停+频率设定) USS_Control( Enable := Control_Enable AND NOT Error, Drive := Drive_Address, Run := Run, Stop := Stop, Setpoint := Setpoint, Status => Status_Word ); // 读取变频器状态 USS_Read( Enable := Control_Enable AND NOT Error, Drive := Drive_Address, Parameter := 21, // 21=实际频率(r0021) Value => Actual_Freq );
3. 关键参数说明
四、调试与故障排查
五、注意事项
通过以上步骤,可实现 V20 变频器与 PLC 的 USS 通讯,核心是匹配通讯参数 + 正确调用 USS 库函数。实际应用中,建议先用 STARTER 软件单独测试 V20 的 USS 通讯功能,再集成到 PLC 系统中。