西门子S7-1200与G120变频器的USS通信分享
发布日期:
2023-08-02

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通信接口参数功能块的编程如下图所示。

西门子S7-1200与G120变频器的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功能块的编程如下图所示。

西门子S7-1200与G120变频器的USS通信分享

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功能块的编程 如下图所示。

西门子S7-1200与G120变频器的USS通信分享

USS_RPM功能块用于通过USS通信从变频器读取参数。

REQ:     读取参数请求。

DRIVE:   变频器的USS站地址。

PARAM:   变频器的参数代码。

INDEX:   变频器的参数索引代码

USS_DB:  指定变频器进行USS通信的数据块。

DONE:    读取参数完成。

ERROR:   读取参数错误。

STATUS:  读取参数状态代码。

VALUE:   所读取的参数的值。

注意:进行读取参数功能块编程时,各个数据的数据类型一定要正确对应。如果需要设置变量读取参数时,注意该参数变量的初始值不能为0,否则容易产生通信错误。

4.USS_WPM功能块的编程

USS_WPM功能块的编程如下图所示。

西门子S7-1200与G120变频器的USS通信分享

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的操作,并且同一时间只能进行一个参数的读或者写操作,而不能进行多个参数的读或者写操作。

声明:部分内容来源于网络,如侵权请后台留言联系删除。