1.控制系统原理与连接图
S7-1200PLC串口通信模块可使用USS协议库来控制支持USS通信协议的SIEMENS变频器。USS是西门子专为驱动装置开发的通信协议。USS的工作机制是:通信总是由主站发起,USS主站不断循环轮询各个从站,从站不会主动发送数据。图1为连接图。
图1:连接图
2.硬件需求
1)PM1207电源(非必须)
2)S7-1214C 6ES7 214-1AG40-0XB0(V4.2)
3)CM1241 RS485 6ES7241-1CH30-0XB0(V1.0)
4)G120 PM240
5)G120 CU240S
6)MOTOR
7)操作面板
8)USS通信电缆
3.软件需求
1)TIA V14
4.组态
4.1PLC硬件组态
将RS485通讯模块插入到机架101位置处,如图2
图2:硬件组态
设置RS485模块的通信数据,此部分数据要和变频器数据设置一致,如图3:
图3:RS485通信模块设置
4.2G120参数设置
图3:G120参数设置
注:图3中的17、18、19、20这四项参数值的设置必须使PLC的参数值与变频器的参数值相一致,而19、20这两个参数值必须设置成图3中的参数,否则有可能变频器与PLC的通信有问题。
4.3软件编程
1)OB1主循环中添加USS_DRV指令,背景数据块自动生成,如图4,
图4:参数设置
USS_DRV功能块用来与变频器进行交换数据,从而读取变频器的状态以及控制变频器的运行。每个变频器使用唯一的一个USS_DRV功能块,但是同一个CM1241 RS485模块的USS网络的所有变频器(最多16个)都使用同一个USS_DRV_DB。
针脚含义如下:
USS_DRV_DB:指定变频器进行USS通信的数据块。
RUN:指定DB块的变频器启动指令。
OFF2:紧急停止,自由停车。该位为0时停车。
OFF3:快速停车,带制动停车。 该位为0时停车。
F_ACK:变频器故障确认。
DIR:变频器控制电机的转向。
SPEED_SP:变频器的速度设定值。
ERROR:程序输出错误。
RUN_EN:变频器运行状态指示
D_DIR:变频器运行方向状态指示
INHIBIT:变频器是否被禁止的状态指示。
FAULT:变频器故障。
SPEED:变频器的反馈的实际速度值。
DRIVE:变频器的USS站地址。变频器参数P2011设置。
PZD_LEN:变频器的循环过程字。变频器参数P2012设置。
2)建立循环中断OB,中断时间120ms,并添加USS_PORT指令,如图5
图5:设置USS_PORT参数
USS_PORT功能块用来处理USS网络上的通信,它是S71200CPU与变频器的通信接口。每个CM1241 RS485模块有且必须有一个USS_PORT功能块。
针脚含义如下:
PORT:指的是通过哪个通信模块进行USS通信(硬件标识符)。
BAUD:指的是和变频器进行通行的速率。变频器的参数P2010进行设置。USS_DB:指的是和变频器通信时的USS数据块。每个通信模块最多可以有16个USS数据块,每个CPU最多可以有48个USS数据块,具体的通信情况要和现场实际情况相联系。每个变频器与S7-1200进行通信的数据块是唯一的。
ERROR:输出错误。
STATUS:扫描或初始化的状态。S7-1200 PLC与变频器的通信是与它本身的扫描周期不同步的,在完成一次与变频器的通信事件之前,S7-1200通常完成了多个扫描。USS_PORT通信的时间间隔是S7-1200与变频器通信所需要的时间,不同的通信波特率对应的不同的USS_PORT通信间隔时间。下表列出了不同的波特率对应的USS_PORT最小通信间隔时间。
3)USS_RPM功能块编程
在OB1中添加USS_RPM,USS_RPM功能块用于通过USS通信从变频器读取参数。如图6
图6USS_RPM编程
针脚含义如下:
REQ:读取参数请求。
DRIVE:变频器的USS站地址。
PARAM:变频器的参数代码。
INDEX:变频器的参数索引代码
USS_DB:指定变频器进行USS通信的数据块。
DONE:读取参数完成。
ERROR:读取参数错误。
STATUS:读取参数状态代码。
VALUE:所读取的参数的值。
注意:进行读取参数功能块编程时,各个数据的数据类型一定要正确对应。如果需要设置变量读取参数时,注意该参数变量的初始值不能为0,否则容易产生通信错误。
4)USS_WPM功能块编程
在OB1中添加USS_WPM,USS_WPM功能块用于通过USS通信向变频器写入参数。如图9
图9USS_WPM编程
USS_WPM 功能块用于通过USS通信设置变频器的参数。
针脚含义如下:
REQ:读取参数请求。
DRIVE:变频器的USS站地址。
PARAM:变频器的参数代码。
INDEX:变频器的参数索引代码。
EEPROM:把参数存储到变频器的EEPROM。
VALUE:设置参数的值。
USS_DB:指定变频器进行USS通信的数据块。
DONE:读取参数完成。
ERROR:读取参数错误状态。
STATUS:读取参数状态代码。
注意:对写入参数功能块编程时,各个数据的数据类型一定要正确对应。如果需要设置变量进行写入参数值时,注意该参数变量的初始值不能为0,否则容易产生通信错误。
4.4通讯测试
1)当同一个CM1241RS485模块带有多个(最多16个)USS变频器时,这个时候通信的USS_DB是同一个,USS_DRV功能块调用多次,每个USS_DRV功能块调用时,相对应的USS站地址与实际的变频器要一致。
2)当同一个S7-1200PLC 带有多个CM1241 RS485模块(最多3个)时,这个时候通信的USS_DB相对应的是3个,每个CM1241RS485模块的USS网络使用相同的USS_DB,不同的USS网络使用不同的USS_DB。
3)当对变频器的参数进行读写操作时,注意不能同时进行USS_RPM和USS_WPM的操作,并且同一时间只能进行一个参数的读或者写操作,而不能进行多个参数的读或者写操作。
5.总结
以上内容是基于各位朋友对西门子PLC和变频器基本熟悉的情况下,如果不清楚,要加油了,欢迎关注公众号,进行交流。工控行业不易,需要持续学习,你做好准备了吗?