西门子V90伺服Profinet通讯用FB284控制方法
个人总结,仅供参考
一.材料
1.电脑:系统Win10专业版
2.PLC:西门子6ES7 214-1AG40-0XB0
3.伺服电机:西门子V90系列1FL6032-2AF21-1AA1(0.2kw,0.64Nm,3000rpm,增量编码器 TTL,滑键,无抱闸)
4.伺服驱动器:西门子V90系列6SL3210-5FB10-2UF2(0.2kw,Profinet版本)
5.软件STEP7 Professional V15.1 /WINCC Professional V15.1
6.软件SINAMICS V-ASSISTANT 版本1.06.02
7.miniUSB线缆
8.网线
二.流程
接线注意点:
两个限位传感器必须为常闭信号且需接入伺服驱动X8接口,本例接入1号脚和3号脚。原点传感器可常开可常闭且需接入PLC任意物理输入点,本例接入I0.1。
1.打开博途软件,新建项目,添加PLC新设备,组态IP地址192.168.10.10,255.255.255.0以及设备名称PLC_1
2.组态V90硬件, IP地址以及设备名称,采用111标准报文
3.在程序中导入FB284官方功能块,打开功能块,在930行下方新增一行代码
#sxSendBuf.EPosSTW2.%X0 := TRUE; //TrackingMode Activated
(跟踪功能激活打开。解决低版本增量编码器伺服电机在关使能后推动伺服电机,再上使能时伺服自行归位的bug)
4. 新建DB块,新建变量;新建断电记忆保持DB块;新建PLC变量
5. 在OB1中调用FB284官方功能块,管脚填写(为了更好的移植性,本文新建了SCL语言的OB1块)
在上方编写代码,将我们的定位速度参数转换为浮点数再乘以系数6再给到功能块Velocity接口中, "MainDB".Axis1."I-Velocity" := 6 * DINT_TO_REAL("RetainDB".Axis1.Vel1);
(系数说明:本例伺服电机为增量编码器 TTL 2500 ppr,电机轴通过联轴器直连10毫米间距丝杠,在OverV参数设为100的前提下,当参数"RetainDB".Axis1.Vel1设置为10时,配合系数6,电机的实际定位速度为10毫米/秒。可根据实际应用调整此系数,多圈绝对编码器时系数为0.06)
继续在OB1上方预设参数。
第5行说明:当回原模式时,先手动将变量“Axis1回原硬限位失效”置1,限位保护功能失效,在电机碰到硬限位传感器时会自动反转寻原点方向。回原结束时手动将此变量置0,限位保护功能生效。
第6行说明:原点信号接入功能块接口,此例为常开信号;如果为常闭信号,则取反接入。
下载至PLC
6.V-Assistant软件用miniUSB线连接驱动器,在线读取,选择电机型号,控制模式
选择111报文,无辅助报文
配置网络参数和设备名称(需与博途软件内V90伺服硬件组态一致)
7.机械结构的参数设定
本例电机采用联轴器直连丝杠,所以N/M为1/1;
负载转动一圈的长度单位设为1000,本例丝杠间距10毫米。当我们给1000的目标位置时,伺服电机刚好会转一圈,也就是丝杠会带动负载位移10毫米,那么定位精度就是0.01毫米。
斜坡功能激活
配置正负硬限位
配置回零参数,使能反向挡块选是,回原时碰到硬限位会自动反向搜索原点信号
最后保存参数到ROM,重启伺服驱动
具体FB284功能块的管脚定义请参照官方文档,此文不作说明。