USS通讯协议是西门子内部的通讯协议,不对外公开,只能用来控制西门子的驱动器及控制器,利用西门子的USS协议,用西门子的S7-1200PLC控制G120变频器,非常方便。
一、PLC组态
根据PLC设备正确组态PLC,可以直接让博图软件获取PLC的配置,快捷省事。我实验室的PLC配置为1214DC/DC/DC、CM1241RS422/485、sm1221、sm1222、sm1234,如下图。因为USS通讯利用了485通讯的物理链接,而1200PLC本身不带485接口,要想进行USS通讯就必须添加通讯模块或通讯板。
二、 G120参数设置
1、复位变频器,变频器可能被调试或修改了参数,为了不受其他因素影响,每次调试最好先复位工厂设置。
2、通过宏配置G120变频器为总线控制。
3、设置G120变频器的其它参数。P2020=6,波特率设置为9600bps;P2021=3,地址为3;p2030=1,为USS总线协议,如果为2则是modbus总线协议。p2031=2,偶校验。p2022=2,p2023=4,设置PZD=2、PKW=4 其它可以保持默认。
三、编写1200PLC程序
1.USS通信接口参数功能块的编程
USS通信接口参数功能块的编程如下图所示。
PORT功能块用来处理USS网络上的通信,它是S71200 CPU与变频器的通信接口。每个CM1241 RS485模块有且必须有一个USS_PORT功能块。
PORT:指的是通过哪个通信模块进行USS通信。
BAUD:指的是和变频器进行通行的速率。变频器的参数P2020进行设置。
USS_DB:指的是和变频器通信时的USS数据块。使用USS_DRV_DB数据块。
STATUS:扫描或初始化的状态。
2.USS_DRV功能块的编程
USS_DRV功能块的编程如下图所示。
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站地址。变频器参数P2030设置。
PZD_LEN: 变频器的循环过程字。变频器参数P2022设置。
注意:变频器的PKW的长度在这里是特殊需要注意的,在使用USS通信时必须是4,如果改成3或者127都将不能读取反馈回来的过程值。
3.USS_RPM功能块的编程
USS_RPM功能块的编程 如下图所示。
USS_RPM功能块用于通过USS通信从变频器读取参数。
REQ: 读取参数请求。
DRIVE: 变频器的USS站地址。
PARAM: 变频器的参数代码。
INDEX: 变频器的参数索引代码
USS_DB: 指定变频器进行USS通信的数据块。
DONE: 读取参数完成。
ERROR: 读取参数错误。
STATUS: 读取参数状态代码。
VALUE: 所读取的参数的值。
注意:进行读取参数功能块编程时,各个数据的数据类型一定要正确对应。如果需要设置变量读取参数时,注意该参数变量的初始值不能为0,否则容易产生通信错误。
4.USS_WPM功能块的编程
USS_WPM功能块的编程如下图所示。
USS_WPM 功能块用于通过USS通信设置变频器的参数。
REQ: 读取参数请求。
DRIVE: 变频器的USS站地址。
PARAM: 变频器的参数代码。
INDEX: 变频器的参数索引代码。
EEPROM: 把参数存储到变频器的EEPROM。
VALUE: 设置参数的值。
USS_DB: 指定变频器进行USS通信的数据块。
DONE: 读取参数完成。
ERROR: 读取参数错误状态。
STATUS: 读取参数状态代码。
注意:对写入参数功能块编程时,各个数据的数据类型一定要正确对应。如果需要设置变量进行写入参数值时,注意该参数变量的初始值不能为0,否则容易产生通信错误。
5. S7 1200 PLC进行USS通信的调试
S7-1200 PLC 通过CM1241 RS485模块与变频器进行USS通信时,需要注意如下几点:
当同一个CM1241 RS485 模块带有多个(最多16个)USS变频器时,这个时候通信的USS_DB是同一个,USS_DRV功能块调用多次,每个USS_DRV功能块调用时,相对应的USS站地址与实际的变频器要一致,而其它的控制参数也要一致。
当同一个S7-1200 PLC 带有多个CM1241 RS485模块(最多3个)时,这个时候通信的USS_DB相对应的是3个,每个CM1241 RS485模块的USS网络使用相同的USS_DB,不同的USS网络使用不同的USS_DB。
当对变频器的参数进行读写操作时,注意不能同时进行USS_RPM和USS_WPM的操作,并且同一时间只能进行一个参数的读或者写操作,而不能进行多个参数的读或者写操作。