USS(Universal Serial Interface,通用串行通信接口)是西门子专为驱动装置开发的一种基于串行总线传输数据的通信协议。可将变频器与PLC或PC进行通信连接,并直观地实现对驱动器的监控。
USS是一种主从结构协议,USS总线上只允许有一个主站和最多31个从站,且每个从站拥有唯一的站地址。其工作机制是由主站发起、轮询访问各个从站,从站接收到主站报文且本站被主站寻址时,才会做出响应。
USS协议的波特率最高可达115.2 kbps,通信字符格式为:1个起始位,8个数据位,1个偶校验位和1个停止位。USS通讯的刷新周期与PLC的扫描周期是不同步的,通讯时间与通讯波特率、总线上变频器的台数以及扫描周期有关。
使用S7-1200/1500的USS程序块,用户无需详细了解USS协议格式,通过简单的调用,即可完成USS通讯,实现对驱动器的控制。
下面以一台S7-1200PLC与两台SINAMICS变频器的通讯为例,完成USS通讯控制。
一. 新建项目、硬件组态
1. 打开TIA Portal v14 SP1新建项目,添加CPU 1214C AD/DC/Rly。
2. 组态硬件:添加通信模块_点到点_CM1241 (RS422/485),模块操作模式选择“半双工(RS485)两线制模式”,编译保存硬件组态。
二. 通讯编程
1. USS_PORT端口组态
打开OB1主程序调用USS端口组态程序:
2. USS_DRV与驱动器交换数据
添加函数快FB1, 组态“块接口”,关联程序块相关管脚:
调用USS_DRV程序块,将生成的“USS_DRV_DB”关联到“USS_PORT端口组态”的“USS_DB”管脚:
由于程序块中输入管脚“SPEED_SP”与输出管脚“SPEED”所代表的频率值均为最大频率(P1082)百分比,这里我在“USS_DRV”程序块前后做了换算:
3. 新建PLC数据类型,重命名为“USS控制参数”,添加相关控制参数:
4. 添加函数快FB2,调用两次FB1:
再次组态“块接口”(本属于个人习惯,将FB1嵌套调用,所需接口直接显示在OB1,调试更清楚一些,多此一举,可不做。 )
5. 添加全局DB,调用PLC数据类型“USS控制参数”2次(或N次):
6. OB1调用函数快FB2,填写管脚地址:
7. 变频器参数设置与电气接线
1. 参数设置:
命令源选择P700=5(COM链路的USS设置)
频率源选择P1000=5(通过COM链路的USS设定)
USS控制支持OFF2、OFF3两种停机方式,当以OFF2自由停机时,变频器禁止输出,电动机惯性停机;当以OFF3快速停机时,电动机以P1135设定的减速时间减速到0Hz。
2. 西门子变频器RS485通讯端口为控制端子的29#和30#;
三. 总结
我们做了1200PLC通过USS通讯对两台变频器的控制,或者说31台的控制。似乎是很简单也很方便。整个过程完成,我们做了USS通讯,UDT,多重背景,FB块嵌套......等等。
楼主最近还看过