西门子S7-200SMART 控制Profinet闭环步进MD-4250-PN (4)仿SinaPos控制块
一、前言
本文是我的第二篇专栏《西门子S7-200SMART 控制Profinet闭环步进MD-4250-PN》的第四篇文章,该文章讲讲如何使用S7-200smart控制三台Profinet闭环一体式步进伺服MD-4250-PN。
我的往期文章讲解了这一款Profinet闭环一体式步进伺服,并且讲解了硬件连接、软件组态,还没有看过的可以看我往期文章
西门子S7-200SMART 控制Profinet闭环步进MD-4250-PN (1)电机及专栏介绍
西门子S7-200SMART 控制Profinet闭环步进MD-4250-PN (2) 硬件介绍-CSDN博客
西门子S7-200SMART 控制Profinet闭环步进MD-4250-PN (3) PLC组态与连接-CSDN博客
本文从控制块讲解开始。
二、控制块MD_PN_CTRL
1、控制块接口
可通过添加库文件 “BCMD_LIB.smartlib”来生成这个控制块。
横向MD_PN_CTRL对比SinaPos控制块的接口
这是它的输入接口含义
这是它的输出接口含义
2、控制块关联电机
第一步:确认I/O映射区
首先我们先回顾如何查看I/O映射区。
在向导 - > Profinet
选择已经组态的对应设备,即可查看PNI起始 和 PNO起始
根据上一篇文章,我们三台设备的I/O映射区汇总信息如下:
设备名称 | 输入映射区 | 输出映射区 |
md42-dev121 | 128 | 128 |
md42-dev122 | 256 | 256 |
md42-dev123 | 384 | 384 |
第二步:将I/O映射区填入控制块接口
我们总共有三台设备,所以需要添加三个控制块,并且分别将三台设备的输入输出映射区的指针填入控制块的St_I_add、St_Q_add引脚,如下图所示。(这里需要注意是填入指针,符号"&"别漏了)
将I/O映射区填入控制块接口后,就将控制块与电机所关联起来了。
3、控制块 “Control_table”定义
注意:由于Control_table是通过指针寻址的,例如在控制块的Control_table输入中填入 &VB12,
那么想要控制正向点动则需要将V12.2设置为1。
字节偏移 | 位7 | 位6 | 位5 | 位4 | 位3 | 位2 | 位1 | 位0 |
0 | 预留 | 预留 | AckError 确认错误 | 预留 | JOG2 负向点动 | JOG1 正向点动 | Negative 负向旋转 | Positive正向旋转 |
1 | 预留 | |||||||
2 | OverV 设定速度百分比,输入范围:0~199(%) 相对位置模式、绝对位置模式、速度模式、程序块模式有效 | |||||||
3 | ||||||||
4 | OverAcc 加速度百分比0~100(%) | |||||||
5 | ||||||||
6 | 预留 | |||||||
7 | ||||||||
8 | ConfigEpos ConfigEposX0:OFF2 ConfigEposX1:OFF3 ConfigEposX8:TransferType | |||||||
9 | ||||||||
10 | ||||||||
11 |
4、控制块 “Status_table”定义
注意:由于Status_table是通过指针寻址的,例如在控制块的Status_table输入中填入 &VB24,
那么想要查看参考点是否设置完成则需要判断V24.2是否是1。
字节偏移 | 位7 | 位6 | 位5 | 位4 | 位3 | 位2 | 位1 | 位0 |
0 | 预留 | Overrange_Error 输入数据超范围 | AxisError 轴错误 | AxisWarn 轴警告 | 预留 | AxisRef 参考点设置完成 | AxisPosOk 位置到达 | Axisenabled 轴使能 |
1 | Error ID(0 = 无错误,3 = 不支持所选模式,4 = OverV、OverAcc、OverDec 超出范围) | |||||||
2 | Actmode 当前所选模式 | |||||||
3 | ||||||||
4 | 预留 | |||||||
5 | ||||||||
6 | 预留 | |||||||
7 |
三、控制块控制电机
1、创建符号表
创建符号表不仅仅是为了使用方便,也更是为了避免地址重叠带来控制异常。
首先我们要先 “Control_table”所要用到的字节数量是12字节、“Status_table”所要用到的是8个字节,所以在创建的时候要注意避免地址冲突。
由于我有三台电机,所以我创建了轴1、轴2、轴3的符号。
表1:控制块输入部分符号表
表2:控制块输出部分符号表
2、创建控制块
创建三个不同的控制块,三个控制块通过St_I_add,St_Q_add分别关联上三台电机。将分配好的地址填入控制块的输入输出引脚以便控制。
3、库存储器分配
在项目树中找到 库 -> 库存储器
对库进行存储器分配
4、相对定位模式
将控制块配置并且编译完成后,我们可以使用控制块来控制电机,这里给出相对定位模式下以30rpm的速度往正方向旋转半圈的步骤(出厂默认每圈为10000LU,关于每圈LU配置以及换算可以详见“ 西门子S7-1200PLC 控制步进电机 MD-4240-PN (1) 电机开箱" 中有写)。
步骤 | 图示 |
1、ModePos = 1 运动模式切换到相对位置模式 | ![]() |
2、CancelTraversing = TRUE 让设备不暂停任务 | |
3、IntermediateStop = TRUE 让设备不取消任务 | |
4、Position = 5000 确定相对位置移动的距离,单位为 lu。 | |
5、Velocity = 5000 确定相对位置移动的速度,单位为 lu/s。 | |
6、 OverV = 100 速度倍率设定,值范围: 0-199(%) 相对位置模式、绝对位置模式、速度模式、程序块模式有效 | |
7、 OverAcc = 100 加速度倍率设定,值范围: 0-100(%) | |
8、 OFF2、 OFF3都设置为 1 Control_table 中的 ConfigEpos 的 X0(OFF2),X1(OFF3)设定为 1。 | |
9、 EnableAxis=1 让电机使能。 | |
10、等待时间 X 确保参数传输完毕, X 应大于 2 倍 IO 周期时间。 | |
11、 ExecuteMode = TRUE 该信号上升沿时启动任务,设备按照设定的位置和速度执行相对位置运动。 |
往期的文章可以搜索《西门子S7-200SMART 控制Profinet闭环步进》找到我的CSDN博客
CSDN博主:小小小小小6-CSDN博客
七、结尾
本篇重点讲解了如何使用跟SINAPOS具有相同引脚的控制块MD-PN-CTRL 来控制这款profinet一体式步进伺服电机。详细介绍了这个控制块的控制引脚,并且从块关联电机到使用这个控制块让电机运行在相对定位模式的样例。
下一篇我会讲讲触摸屏的项目搭建,以及使用触摸屏控制M寄存器来操作这个MD-PN-CTRL控制块实现电机的各种模式运动。