【每周一话 助力成长】西门子200smart使用增量式编码器控制伺服V90
西门子200smart使用增量式编码器控制伺服V90一、项目用到的为200smart型号为ST30;编码器为AB增量式编码器,编码器旋转一圈为5000脉冲。V90使用PN通讯,用速度模式,使用西门子标准报文1控制。二、打开STEP 7-MicroWIN SMART新建项目,双击型号选择ST30,设置PLC的IP地址,以及设备名称;本项目用的IP地址为192.168.0.12,设备名称为:PLC200smart。如图1注意:设定PLC的IP地址时要注意与电脑的IP地址处于同一网段。

图1三、添加高速计数器。1.双击“CPU ST30”--选择“数字量输入”--将“I0.0”和“I0.1”6.4us改为3.2us如图2。

图22.在菜单栏上选择“工具”-----选择“高速计数器”如图3

图33.点击打开“高速计数器”进入高速计数器向导,选择要组态的高速计数器。本项目中选择HSC0。选择完点击“下一步”如图4

图44.将HSC0命名,本项目中命名为“测试”,命名完成后点击“下一步”如图5。

图55.模式选择,根据需求选择对应的模式,所有模式如下表
0 | 带有内部方向控制的单相计数器 |
1 |
3 | 带有外部方向控制的单相计数器 |
4 |
6 | 带有增减计数时钟的双相计数器 |
7 |
9 | A/B相正交计数器 |
10 |
本项目使用的模式为“模式9”,选择完模式后点击“下一步”,如图6。

图66.HSC初始化,如图7

图7(1)为初始化子程序命名,或者使用默认名称。(2)设置计数器预置值:可以为整数、双字地址或符号名:如 5000、VD100、PV_HC0。用户可使用全局符号表中双字整数对应的符号名。 设置计数器初始值:可以为整数、双字地址或符号名:5000、VD100、CV_HC0。(3)初始化计数方向:增,减。(4)对于带外部复位端的高速计数器,可以设定复位信号为高电平有效或者低电平有效。(5)使用A/B相正交计数器时,可以将计数频率设为1倍速或4倍速。使用非A/B相正交计数器时,此项为虚。本案例演示中用的×4,(6)HSC设置完成后点击生成。四、高速计数器组态完成,之后要组态V90。在STEP 7-MicroWIN SMART菜单栏点击“工具”---点击“PROFINET”进入向导选择“控制器(CPU ST30_plc200smart)”将控制器复选框勾选上,在以太网端口设置PLC的IP地址。设置完成后点击下一步,如图8。

图81.在右侧的目录中选择“PROFINET”-------“Drives”------“Siemens AG”-----“SINAMIGS”-----“SIMAMICS V90 PN V1.0V1.00”将设备拖到设备表中,在设备表中,双击IP地址,设置V90的IP地址,设置完成后,点击下一步。如图9。

图92.右侧的模块目录添加子模块,将“标准报文1”拖入设备中-----点击下一步,可查看V90的IP地址-----点击下一步,这里查看模块的配置信息-----点击下一步,可看到V90的全部信息----点击生成。五、配置V90,打开V-ASSISTANT,选择“Ethernet连接”-----点击确定。如图10。

图101.择要配置的V90,点击设备调试。如图11

图112.控制模式选择“速度控制”模式。如图12

图123.点击“设置PROFINET”------选择“标准报文1”如图13

图134.将参数保存到驱动器中。如图14

图14 六、编写程序1.编写编码器读取脉冲的程序。用定时器指令做一个周期为1秒的中断程序,读取1秒内编码器计数。

2.使用Sina-speed指令控制V90伺服。EnableAxis:伺服启动;AckError:将伺服错误复位;VD26:伺服速度设定值。

Sina-speed指令各管脚的参数如下:
EnableAxis | IN | BOOL | “EnableAxis”= 1 -> 启动驱动器 |
AckError | IN | BOOL | 确认轴故障 ->“AckFlt”= 1 |
SpeedSp | IN | REAL | 速度设定值。SpeedSp 的值随 Refspeed 而变化。例如,如果将 Refspeed 设置为 1000 rpm,则 SpeedSp 值的范围为(0,1000 rpm)。 |
Refspeed | IN | REAL | 驱动器的额定速度。取值范围(6,210000 rpm)。 |
ConfigAxis | IN | WORD | 一个输入,用于控制未在块中直接指定的 SINA_SPEED 函数。(默认值 = 0) |
Starting_I_add | IN | DWORD | PROFINET IO I 存储区起始地址的指针。 |
Starting_Q_add | IN | DWORD | PROFINET IO Q 存储区起始地址的指针。 |
AxisEnabled | OUT | BOOL | 正在执行或启动驱动器。 |
Lockout | OUT | BOOL | 1 = 接通禁止激活。 |
ActVelocity | OUT | REAL | 实际速度 -> 取决于标定因子 RefSpeed。 |
Error | OUT | BOOL | 1 = 组故障激活。 |
3.程序开始执行,定时器一秒钟接通一次,VD208的值是由高速计数器读出来的数值,每一秒接通一次,VD208通过MOVE指令将值传到VD100,是一秒钟内高速计数器读出来的数值,VD100通过MUL指令乘以60可以算出每分钟高速计数器所读出来的数值,再通过DIV指令除以编码器每圈的脉冲数,案例中用的为5000个脉冲,在配置高速计数器中用到的为4倍频,要将脉冲数乘以四,用刚刚算出每分钟高速计数器所读出来的数值,去除以刚刚算出来的脉冲数,这样,编码器的速度就算出来了,通过MOVE指令将算出来的速度传到V90的速度中。4.程序编写完成下载到PLC中,运行程序,当将伺服启动后,转动编码器,伺服电机会与编码器同样的速度转动。