给力小青年|如何轻松玩转西门子 USS 通讯

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)两线制模式” , 编译保存硬件组态 。
给力小青年|如何轻松玩转西门子 USS 通讯
二. 通讯编程
1. USS_PORT端口组态
打开OB1主程序调用USS端口组态程序:
给力小青年|如何轻松玩转西门子 USS 通讯
2. USS_DRV与驱动器交换数据
添加函数快FB1 ,组态“块接口” , 关联程序块相关管脚:
给力小青年|如何轻松玩转西门子 USS 通讯
调用USS_DRV程序块 , 将生成的“USS_DRV_DB”关联到“USS_PORT端口组态”的“USS_DB”管脚:
给力小青年|如何轻松玩转西门子 USS 通讯
由于程序块中输入管脚“SPEED_SP”与输出管脚“SPEED”所代表的频率值均为最大频率(P1082)百分比 , 这里我在“USS_DRV”程序块前后做了换算:
给力小青年|如何轻松玩转西门子 USS 通讯
给力小青年|如何轻松玩转西门子 USS 通讯【给力小青年|如何轻松玩转西门子 USS 通讯】
3. 新建PLC数据类型 , 重命名为“USS控制参数” , 添加相关控制参数:
给力小青年|如何轻松玩转西门子 USS 通讯
4. 添加函数快FB2 , 调用两次FB1:
再次组态“块接口”(本属于个人习惯 , 将FB1嵌套调用 , 所需接口直接显示在OB1 , 调试更清楚一些 , 多此一举 , 可不做 。)
给力小青年|如何轻松玩转西门子 USS 通讯
给力小青年|如何轻松玩转西门子 USS 通讯


推荐阅读