USS 协议(Universal Serial Interface Protocol,即通用串行接口协议)是西门子专为驱动装置开发的通用通信协议,它是一种基于串行总线进行数据通信的协议。USS 通信总是由主站发起,USS 主站不断轮询各个从站,从站根据收到主站报文,决定是否、以及如何响应。从站必须在接收到主站报文之后的一定时间内发回响应到主站,否则主站将视该从站出错。USS 协议是主从结构的协议,总线上的每个从站都有唯一的从站地址。一个 S7-1200 CPU 中最多可安装三个 CM 1241 RS422/RS485模块和一个 CB 1241 RS485 板,每个 RS485 端口最多控制 16 台驱动器。S7-1200与V20的USS通信
【一】使用环境
TIA Portal STEP 7 V16CPU1215C DC/DC/DC V4.4CM1241 RS422/RS485 V2.2SINAMICS SINAMICS V20(6SL3210-5BE03-7UV0)1LA9 电机(1LA9060-4KA10-Z)【二】实现功能S7-1200 与西门子传动设备 V20 之间 USS 通信,控制变频器的启停和频率,并读取和修改变频器的加减速时间。
两类指令“USS通信”与“USS”区别如图 1 所示,S7-1200 USS 有两个 USS 指令库(1)“USS通信” 指令库下的指令除了适用于 S7-1200 中央机架串口模块(CM 1241 V2.1 以上或 CB 1241 且 S7-1200 CPU V4.1 以上),还可用于分布式 I/O PROFINET 或 PROFIBUS 的 ET200SP/ET200MP 串口通信模块。(2)“USS通信” 是目前最新的指令库,并且以后的更新也会基于这个指令库。一般情况下,“USS” 只是在老项目中使用。下面的介绍以 “USS 通信” 指令库为例。(3)“USS” 指令库下的指令只能用于 S7-1200 中央机架串口模块(CM 1241 或 CB 1241)
图 1.S7-1200 PLC 的 USS 通信指令
SINAMICS V20变频器设置SINAMICS V20 的启停和频率控制通过 PZD 过程数据来实现,参数读取和修改通过 PKW 参数通道来实现。可以使用连接宏 Cn010 实现 SINAMICS V20 的 USS 通信,也可以直接修改变频器参数。变频器参数设置步骤如下:(一)恢复工厂设置 设置参数 P0010(调试参数)= 30,P0970(工厂复位)= 21(二)设置用户访问级别 设置参数 P0003(用户访问级别)= 3 (专家访问级别)(三)设置 SINAMICS V20 变频器 USS 通信所需的命令源、协议、波特率、地址等参数。选择连接宏 Cn010 后,需要将参数 P2013 的值由 127(PKW长度可变)修改为 4(PKW长度为 4);(1)此外对于本例需要将参数 P2010 的值由 8(波特率 38400)修改为 6(本例中使用波特率为 9600),P2010 值与波特率对应关系参见表 1。
参数值 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
波特率(bps) | 9600 | 19200 | 38400 | 57600 | 76800 | 93750 | 115200 |
表 1 P2010 值与波特率对应关系(2)本例中使用如下表 2 所列的设置值。
参数 | 描述 | 设置值 | 备注 |
P0700[0] | 选择命令源 | 5 | 命令源来源于 RS485 总线 |
P1000[0] | 选择设定源 | 5 | 设定值来源于 RS485 总线 |
P2000[0..2] | 基准频率值 | 50.00 | 百分比100% ==> P2000 的值 |
P2023[0] | RS485 协议选择 | 1 | USS协议 |
P2010[0] | USS 波特率 | 6 | 波特率为 9600 |
P2011[0] | USS 地址 | 1 | USS 站地址为 1 |
P2012[0] | USS PZD 长度 | 2 | USS PZD 长度为 2 个字长 |
P2013[0] | USS PKW 长度 | 4 | USS PKW 长度为 4 |
P2014[0] | USS 报文间断时间 | 500 | 可设置范围 0-65535 ms。报文间隔超过此设定时间还没有接收到下一条报文信息,则变频器将会停止运行。 |
表 2.SINAMICS V20 设置变频器参数值(四)变频器重新上电在更改通信协议 P2023 后,需要对变频器重新上电。在此过程中,请在变频器断电后等待数秒,确保 LED 灯熄灭或显示屏空白后再次接通电源。
USS_Port_ScanUSS_Port_Scan 指令用于处理 USS 网络上的通信。用户程序执行 USS_Port_Scan 指令的次数必须足够多,以防止驱动器超时。通常从循环中断调用 USS_Port_Scan 。例如添加循环中断 OB30, 并设置循环中断时间 30ms。如图 2 所示:
图 2.添加 OB30USS_Port_Scan 指令输入引脚”PORT“为分配的串口模块的“硬件标识符”。安装并组态串口模块之后,可用的端口标识符将出现在 “PORT “功能框连接的参数助手下拉列表中。或者,可在系统常量中找到该硬件标识符值。在 OB30 中调用”USS_Port_Scan“指令, 鼠标双击 CPU 1215 DC/DC/DC 站点下的 ”PLC变量>默认变量表“ , 在”系统常量“标签栏中找到本例所使用的 CM1241 RS422/485 模块,如图 3 所示。USS_Port_Scan 指令输入引脚”USS_DB“指向为 USS_Drive_Control 指令放入程序时创建并初始化的背景数据块的名称。表 3 为该指令的接口参数说明。
图 3.USS_Port_Scan
参数 | 类型 | 数据类型 | 描述 |
PORT | IN | Port | 串口模块硬件标识符 |
BAUD | IN | DInt | 波特率 |
USS_DB | INOUT | USS_Base | 将 USS_Drive_Control 指令放入程序时创建并初始化的背景数据块的名称 |
ERROR | OUT | Bool | 该输出为 True 时,表示发生错误,此时 STATUS 输出错误代码。 |
STATUS | OUT | WORD | USS 通信状态值 |
表 3.USS_Port_Scan 指令接口参数说明注意:(1)一个串口通信端口无论与几台变频器连接,都只能有一个 USS_Port_Scan 指令,每次调用该函数块都与单个驱动器进行通信。(2)如果使用 CB1241,需要使得 USS_Port_Scan 背景 DB 中的 LINE_PRE 起始值更改为 0。
- 西门子软PLC与组态软件如何通讯? 2024-11-23
- 教你玩转西门子S7-1200 运动控制 2024-11-23
- 详解S7-1200存储卡的四大重要功能! 2024-11-23
- PLC高手编写的程序都有这六个特征 2024-11-23
- 干货!S7-1500硬件安装接线图完整版 2024-11-23
- 大神讲解西门子V90伺服参数,很详细! 2024-11-23
- 大型的西门子PLC程序结构示例! 2024-11-23
- 分享基于OPC UA的SCADA数据采集系统 2024-11-23
- 教你一个外部插件控制博途的方法! 2024-11-23
- 如何计算S7-1200Zui大I/O和电源需求? 2024-11-23