S7-1200系列PLC通过PROFINET与V90 PN伺服驱动器搭配进行位置控制,实现的方法主要有以下三种:
• 方法一、在PLC中组态位置轴工艺对象,V90使用标准报文3,通过MC_Power、MC_MoveAbsolute等PLC Open标准程序块进行控制, 这种控制方式属于中央控制方式(位置控制在PLC中计算,驱动执行速度控制)。
• 方法二、在PLC中使用FB284(SINA_POS)功能块,V90使用西门子111报文,实现相对定位、绝对定位等位置控制,这种控制方式属于分布控制方式(位置控制在驱动器中计算)。
• 方法三、在PLC中使用FB38002(Easy_SINA_Pos)功能块,V90使用西门子111报文,此功能块是FB284功能块的简化版,功能比FB284少一些,但是使用更加简便。
V90 PN配置要点
• 对于方法一:设置控制模式为"速度控制(S)",配置通信报文为标准报文3
• 对于方法二或三:设置控制模式为"基本定位器控制(EPOS)",配置通信报文为西门子报文111
• V90在线后点击"设置PROFINET->配置网络",设置V90的IP地址及设备名称:注意:设置的设备名称一定要与1200项目中配置的相同。
参数保存后需重启驱动器才能生效。
方法一 使用标准报文3和工艺对象
V90 PN与PLC采用PROFINET RT通信方式并使用报文3,项目步骤如下:
1. 创建项目后,添加新设备S7-1200 PLC
2. 在网络视图中添加V90 PN设备(使用GSD)
2. 建立V90 PN与PLC的网络连接,并分别设置S7-1200及V90 PN的IP地址及设备名称:
3. 在设备视图中为V90配置标准报文3
4. 插入一个位置轴
"驱动器"选择"PROFIdrive" :
配置轴的驱动,选择连接到PROFINET总线上的V90 PN:可以手动设置参考转速及最大转速,也可以选择"自动传送设备中的驱动装置参数"。
配置编码器的数据交换:
用户可以根据实际的需要选择和填写后续的信息,完成工艺对象的配置。
5. 在OB1中使用MC_Power、MC_MoveAbsolute等PLC Open标准程序块编写轴的位置控制程序,PLC Open指令位于工艺指令目录下的运动控制文件夹中,命令相关说明请查看博途的帮助文件。
方法二 使用西门子报文111和FB284(SINA_POS)
V90 PN与PLC采用PROFINET RT通信方式并使用西门子报文111,V90 PN设置控制模式为"基本位置控制(EPOS)"。
1. PLC与V90 PN的项目配置与方法一中的步骤1-3相同。
2. 在V90 PN的设备视图中插入西门子报文111
3. 编写程序
此种方法需要调用驱动功能库文件,可以通过以下两种方法进行安装:
(1) 安装Startdrive软件,在TIA 博途软件中就会自动安装驱动库文件
Startdrive软件V14.1:
https://support.industry.siemens.com/cs/us/en/view/68034568
SINAMICS Startdrive V15:
https://support.industry.siemens.com/cs/us/en/view/109754382
SINAMICS Startdrive V15.1:
https://support.industry.siemens.com/cs/us/en/view/109760845
(2) 在TIA 博途中安装SINAMICS Blocks DriveLib,下载链接:
https://support.industry.siemens.com/cs/ww/en/view/109475044
在OB1中将DriveLib_S7_1200_1500中的SINA_POS(FB284)功能块拖拽到编程网络中(此功能块只能与报文111配合使用),进行位置控制。
注意:功能块参数HWIDSTW及HWIDZSW的赋值请参看下图:
4. FB284功能块输入输出块参数说明
输入参数:
输入信号 | 类型 | 含义 |
---|---|---|
ModePos | INT | 运行模式: 1 = 相对定位 2 = 绝对定位 3 = 连续运行模式(按指定速度运行) 4 = 主动回零 5 = 直接设置回零位置 6 = 运行程序段 0~15 7 = 按指定速度点动 8 = 按指定距离点动 |
EnableAxis | BOOL | 伺服运行命令: 0 = 停止(OFF1) 1 = 启动 |
CancelTraversing | BOOL | 0 = 取消当前的运行任务 1 = 不取消当前的运行任务 |
IntermediateStop | BOOL | 暂停任务运行: 0 = 暂停当前运行任务 1 = 不暂停当前运行任务 |
Positive | BOOL | 正方向 |
Negative | BOOL | 负方向 |
Jog1 | BOOL | 点动信号1 |
Jog2 | BOOL | 点动信号2 |
FlyRef | BOOL | 此输入对V90 PN无效 |
AckError | REAL | 故障复位 |
ExecuteMode | BOOL | 激活请求的模式 |
Position | DINT | ModePos=1或2时的位置设定值[LU] ModePos=6时的程序段号 |
Velocity | DINT | ModePos=1、2、3时的速度设定值[LU] [1000LU/min] |
OverV | INT | 设定速度百分比0~199% |
OverAcc | INT | ModePos=1、2、3时的设定加速度百分比 0~100% |
OverDec | INT | ModePos=1、2、3时的设定减速度百分比 0~100% |
ConfigEPOS | DWORD | 可以通过此参数控制基本定位的相关功能,位的对应关系见下表 |
HWIDSTW | HW_IO | V90设备视图中报文1的硬件标识符 |
HWIDZSW | HW_IO | V90设备视图中报文1的硬件标识符 |
ConfigEPOS位的对应关系:
输出参数:
输出信号 | 类型 | 含义 |
---|---|---|
AxisEnabled | BOOL | 驱动已使能 |
AxisPosOk | BOOL | 目标位置到达 |
AxisSpFixed | BOOL | 设定位置到达 |
AxisRef | BOOL | 已设置参考点 |
AxisWarn | BOOL | 驱动报警 |
AxisError | BOOL | 驱动故障 |
Lockout | BOOL | 位置环设定值到达目标位置 |
ActVelocity | DINT | 实际速度[十六进制的40000000h对应 p2000参数设置的转速] |
ActPosition | DINT | 当前位置LU |
ActMode | INT | 当前激活的运行模式 |
EPosZSW1 | WORD | POS ZSW1的状态 |
EPosZSW2 | WORD | POS ZSW2的状态 |
ActWarn | WORD | 驱动器当前的报警代码 |
ActFault | WORD | 驱动器当前的故障代码 |
Error | BOOL | 1=存在错误 |
更加详细的说明文档可点击下述链接:
http://www.ad.siemens.com.cn/download/docMessage.aspx?Id=15024
方法三 使用西门子报文111和FB38002 (Easy_SINA_Pos)
V90 PN与PLC采用PROFINET RT通信方式并使用西门子报文111,V90 PN设置控制模式为"基本位置控制(EPOS)"。
1. PLC与V90 PN的项目配置与方法二中的步骤完全相同。
2. FB38002(Easy_SINA_Pos)是FB284(SINA_POS)的简化版,功能比FB284少一些,但是使用更加简便,可以通过如下链接下载库文件:
http://support.automation.siemens.com/WW/view/en/109747655
3.在TIA 博途中添加库文件,并将库中的Easy_SINA_Pos功能块拖拽到左侧"程序块"中
4.在OB1中调用Easy_SINA_Pos功能块,为功能块各参数添加变量:
注意:对功能块参数HWI DSTW及HWI DSZW的赋值可以通过点击参数,在下拉菜单中选择对应的西门子报文111选项。
也可以参看下图,在设备视图的报文属性中查询硬件标识符的数值:
5. FB38002功能块输入输出参数说明
输入信号 | 类型 | 含义 |
---|---|---|
ModePos | INT | 运行模式: 1 = 相对定位 2 = 绝对定位 4 = 主动回零 7 = 按指定速度点动 |
EnableAxis | BOOL | 伺服运行命令: 0 = 停止(OFF1) 1 = 启动 |
Jog1 | BOOL | 点动信号1 |
Jog2 | BOOL | 点动信号2 |
MDIPosition | DINT | MDI运行模式下的位置设定值[LU] |
MDIVelocity | DINT | MDI运行模式时的速度设定值[1000LU/min] |
ExecuteMode | BOOL | 激活请求的模式 |
RefCamInput | BOOL | 回零开关信号 |
RefDirection | BOOL | 选择回零开始的方向: 0 = 正向寻零 1 = 反方向寻零 |
AckError | BOOL | 故障复位 |
HWLimitEnable | BOOL | 激活硬件限位开关: 1 = 激活 |
SWLimitEnable | BOOL | 激活软件限位开关: 1 = 激活 |
HWIDSTW | HW_IO | 符号名或SIMATIC S7-1x00设定值槽的HW ID |
HWIDSTW | HW_IO | 符号名或SIMATIC S7-1x00设定值槽的HW ID |
输出信号 | 类型 | 含义 |
---|---|---|
ModeError | BOOL | ModePos不在1-7范围内 |
CommunicationError | BOOL | 使用SFC14/15 于驱动器进行通讯发生故障 |
DiagID | WORD | 通信错误,在执行SFB 调用时发生错误 |
AxisEnabled | BOOL | 驱动已使能 |
AxisError | BOOL | 驱动故障 |
AxisWarn | BOOL | 驱动报警 |
AxisPosOk | BOOL | 目标位置到达 |
AxisRef | BOOL | 已设置参考点 |
ActVelocity | DINT | 实际速度[十六进制的40000000对应 p2000参数设置的转速] |
ActPosition | DINT | 当前位置LU |
ActMode | INT | 当前激活的运行模式 |
ActWarn | WORD | 驱动器当前的报警代码 |
ActFault | WORD | 驱动器当前的故障代码 |
S7-1200 可以控制几个V90 PN?
在不挂其他PROFINET设备下,最多可以控制16个V90 PN。