针对西门子 S7-1500 PLC 的 USS (Universal Serial Interface) 通信,以下是详细的配置与使用指南。首先需要明确一个关键点:S7-1500 CPU 本体集成的 PROFINET 接口不支持 USS 协议。USS 是基于串行通信(RS485/RS232)的协议,主要用于连接西门子变频器(如 MM440, G120, V20, V90 等)。要在 S7-1500 上实现 USS 通信,必须扩展 串行通信模块,主要有两种方案:
使用 CM PtP 模块 + 官方 USS 指令库(推荐,稳定,支持多站)。使用 CM PtP 模块 + 自由口编程 (Freeport)(灵活但开发工作量大,需自行编写报文和校验)。以下重点介绍 方案一:CM PtP 模块配合 USS 指令库 的标准实施步骤。
---
一、硬件准备
CPU: S7-1500 系列任意型号。通信模块:CM PtP RS422/485 HF (6ES7541-1AB01-0AB0) - 高性能,支持更高波特率。CM PtP RS422/485 BA (6ES7540-1AB01-0AA0) - 基本型,性价比高。注意:不要选错成 RS232 模块,USS 通常使用 RS485 接口。
线缆: RS485 双绞线(DP 头或端子连接),需确保终端电阻设置正确(总线两端接通,中间断开)。从站设备: 支持 USS 协议的西门子变频器。---
二、软件环境
TIA Portal: 建议 V15.1 及以上版本(V16/V17/V18 更佳)。USS 指令库:在早期的 S7-300/400 中,USS 库是内置的。
在 S7-1200/1500 中,USS 库通常作为 全局库 (Global Library) 提供,或者集成在特定的工艺对象包中。
获取方式: 在 TIA Portal 右侧“任务卡” -> “库” -> “全局库”中查找 USS 相关文件夹。如果找不到,需去西门子官网下载 "S7-1200/1500 USS Protocol Library" 并导入到 TIA Portal 的全局库中(文件名通常为 USS_Library_Vx.x.al18 或类似格式)。---
三、详细配置步骤
1. 硬件组态 (Hardware Configuration)
打开 TIA Portal 项目,进入 设备组态 (Device configuration)。
将 CM PtP RS422/485 模块拖入 CPU 旁边的插槽。
点击该模块,在下方的 属性 (Properties) 选项卡中进行设置:
接口类型 (Interface type): 选择 RS485 (2-wire)。参数 (Parameters):波特率 (Baud rate): 必须与变频器一致(如 9600, 19200, 38400 等)。奇偶校验 (Parity): 通常为 Even (偶校验),具体看变频器手册。数据位: 8。停止位: 1。操作模式 (Operating mode): 这一点至关重要。如果使用官方 USS 库,通常选择 ASCII 驱动 (ASCII driver) 或者 自由口 (Freeport) 模式(取决于库的具体要求,大多数新版 USS 库基于自由口底层,但在使用库时无需手动编写发送接收逻辑,只需配置端口参数)。
注:部分旧版教程可能提到选择 "USS" 模式,但在 S7-1500 的 CM PtP 属性中通常没有直接的 "USS" 选项,而是通过调用 USS 指令块来管理协议。一般设置为 自由口 (Freeport) 或 ASCII,并在指令中定义协议细节。最稳妥的做法是:在模块属性中选择 "Freeport" (自由口),波特率等参数设好,然后在程序中调用 USS 初始化指令。2. 添加 USS 库
在 TIA Portal 右侧点击 库 (Libraries) -> 全局库 (Global libraries)。
如果没有 USS 库,点击“打开全局库”,找到下载的 .alxx 文件打开。
展开库,找到 USS 文件夹,里面通常包含:
USS_INIT (初始化)USS_CTRL (控制驱动器)USS_RPM (读取参数)USS_WPM (写入参数)以及相关的背景数据块和常量定义。
3. 程序编写 (Programming)
在 OB1 或专用功能块 (FB) 中按顺序调用以下指令:
A. 初始化 (USS_INIT)
只在 CPU 启动时执行一次(可使用 FirstScan 标志或 RE 上升沿)。
PORT: 选择 CM PtP 模块的硬件标识符 (Hardware Identifier),可在模块属性->常规->PROFINET/串口接口中查看,如 H100。BAUD: 波特率常数(库中通常有定义,如 USS_BAUD_9600)。ACTIVE: 激活哪些从站(位掩码,例如 W160003 表示激活站地址 0 和 1)。DONE / ERROR / STATUS: 监控初始化状态。B. 驱动器控制 (USS_CTRL)
对每个需要控制的变频器单独调用一次。
DRIVE: 变频器的 USS 站地址 (0-31)。RUN: 启动命令 (0/1)。OFF2 / OFF3: 停车命令。F_ACK: 故障复位。DIR: 方向控制。SPEED_SP: 速度给定值 (百分比或 RPM,取决于变频器设定)。RESPONSE: 输出变频器的状态字。SPEED_FB: 反馈的实际速度。STATUS: 状态字。ERROR / ERR_CODE: 错误代码。C. 参数读写 (USS_RPM / USS_WPM)
用于读取/修改变频器内部参数(如加速时间、电流限制等)。
INDEX: 参数索引号。VALUE: 读回或写入的值。注意:USS 是轮询机制,不要在一个扫描周期内请求过多的读写操作,以免通信超时。
4. 变频器侧设置
以常见的 G120 或 MM440 为例,需设置以下关键参数(具体参考变频器手册):
PZD 长度: 设置过程数据字数。USS 地址: 设置站地址 (Address)。波特率: 与 PLC 组态一致。USS 使能: 启用 USS 协议控制。控制权: 确保控制权切换到了通讯端(而非面板或端子)。---
四、常见问题与调试技巧
通信失败 (Error Code):
检查 硬件接线:A 接 A (P+),B 接 B (N-),地线接地。
检查 终端电阻:总线两端的插头/端子需要将终端电阻拨到 "ON" 位置。
检查 波特率和校验位:PLC 组态、指令库设置、变频器参数三者必须完全一致。
检查 站地址:确保 USS_CTRL 中的 DRIVE 地址与变频器设定一致。
指令库版本兼容性:
S7-1500 的 USS 库与 S7-1200 的通用,但要注意 TIA Portal 的版本。如果是 V15 以下的库导入 V17 环境,可能需要升级库文件。
如果在“全局库”中找不到 USS,务必去西门子工业支持中心搜索 "S7-1200/1500 USS library" 下载。
性能优化:
USS 是主从轮询协议,挂接的从站越多,轮询周期越长。如果一个站点无响应,会拖累整个总线。建议在 USS_CTRL 中合理管理 ENABLE 信号,暂时屏蔽故障从站。
避免频繁使用 USS_WPM 写入参数,这比控制启停慢得多。
替代方案:
如果您的变频器支持 Modbus RTU,S7-1500 的 CM PtP 模块原生支持 Modbus RTU 主站指令 (MB_MASTER),无需额外库,配置更简单,且通用性更强。如果不是必须用 USS(例如老款 MM440 只能用 USS),建议优先选用 Modbus RTU。
如果是新款变频器(如 G120 PN, V90 PN),强烈建议使用 PROFINET 连接,直接插在 CPU 的网口上,无需串口模块,速度快且配置最简单(使用工艺对象 Technology Object)。
总结
S7-1500 实现 USS 通信的核心在于:CM PtP 硬件模块 + TIA Portal 全局库中的 USS 指令。配置时请严格核对波特率、校验位和站地址,并确保 RS485 物理连接规范。对于新项目,若非老旧设备限制,优先考虑 PROFINET 或 Modbus RTU 方案。