S7-1200PLC通过PROFINET G120X PN变频器进行速度控制


S7-1200和G120X PN通讯实例请参考以下文档步骤:

PLC通过PN总线启停和速度控制,实现的方法主要有以下两种:
• 方法一、PLC通过FB285SINA_SPEED)功能块,G120X PN使用1号标准报文,进行速度控制。
• 方法二、不使用任何专用程序块,利用报文的控制字和状态字通过编程进行控制,G120X PN使用1号标准报文,使用这种方式需要对报文结构比较熟悉。

方法一  使用标准报文1SINA_SPEED功能块

G120X PNPLC采用PROFINET RT通信方式并使用报文1,项目步骤如下:

1. 创建项目后,添加新设备S7-1200 PLC

2. 在网络视图中添加G120X PN设备(使用GSDML)

GSDML 

GSDML下载链接:

GSDML (https://support.industry.siemens.com/cs/cn/zh/view/109763250/en)

2. 建立G120X PNPLC的网络连接,并分别设置S7-1200G120X PNIP地址及设备名称:

组态S7-1200 Device Name 和分配IP 地址

1. 选择CPU1215C DC/DC/DC,点击“以太网地址”;

2. 分配IP 地址;


3. 设置其Device Name plc1200
Device_name

组态G120X Device Name 和分配IP 地址

1. 选择G120X,点击“以太网地址”;

2. 分配IP 地址;

3. 设置其Device Name g120pn

g120xpn

组态G120X PN 的报文

完成上面的操作后,硬件组态中S7-1200 G120X IP 地址和Device Name 就已经设置好了。现在组态G120X 报文:

1. 将硬件目录中标准报文1PZD-2/2 模块拖拽到设备概览视图的插槽中,系统自动分配了输入输出地址,本示例中分配的输入地址

IW68IW70,输出地址QW68QW70编译项目。

HWIDSTW

TIA V16环境下在OB1中将选件包中将的SinaSpeed(FB285)功能块拖拽到编程网络中(此功能块只能与报文1配合使用),进行速度控制:

Sina_speed

注意:功能块管脚HWIDSTWHWIDZSW的赋值请参看下图:

HWIDSTW

6. SINA_SPEED功能块输入输出参数说明

输入参数:

输入信号

类型

含义

EnableAxis

BOOL

=1,驱动使能

AckError

BOOL

驱动故障应答

SpeedSp

REAL

转速设定值[rpm]

RefSpeed

REAL

驱动的参考转速[rpm],对应于驱动器中的p2000参数

ConfigAxis

WORD

默认设置为16#003F,说明参看下表

HWIDSTW

HW_IO

G120X设备视图中报文1的硬件标识符

HWIDZSW

HW_IO

G120X设备视图中报文1的硬件标识符

 

ConfigAxis的各位说明:

默认值

含义

0

1

OFF2

1

1

OFF3

2

1

驱动器使能

3

1

使能/禁止斜坡函数发生器使能

4

1

继续/冻结斜坡函数发生器使能

5

1

转速设定值使能

6

0

速度设定值反向

7

0

打开抱闸

8

0

电动电位计升速

9

0

电动电位计降速

输出参数:

输出信号

类型

含义

AxisEnabled

BOOL

驱动已使能

LockOut

BOOL

驱动处于禁止接通状态

ActVelocity

REAL

实际速度[rpm]

Error

BOOL

1=存在错误

Status

INT

16#7002:没错误,功能块正在执行

DiagID

WORD

通信错误,在执行SFB 调用时发生错误

方法二 PLC通过报文IO地址直接控制G120X PN

此种控制方式无需专用的程序块,直接给定速度。G120X使用标准报文1,项目及网络配置步骤与方法一相同。通过对输出的第一个控制字进行驱动器的起停控制、第二个控制字可以指定电机运行的速度。
G120X的输出地址可从设备视图中查看:

Standard

 

OB1中调用MOVE命令,发送对驱动的控制字及速度给定:

1. 通过第一个控制字进行驱动器的起停控制(先发送16#047E,再发送16#047F

Controlword
2. 通过第二个控制字可以指定电机运行的速度(十六进制16#4000,即十进制的16384对应 p2000 速度参数值)
Speedsetpoint

例如,G120X PNp2000=3000rpm,如果SpeedSetpoint设置为十进制的8192(即十六进制的16#2000),则表示速度给定1500rpm