西门子S7-200SMART控制V90伺服(图文)
S7-200 SMART V90 ModbusLibrary 可以支持速度及内部位置控制,如图1。所有的功能块都编写成了子程序,使用时只需将相应的子程序拷贝到项目中即可,但要注意避免使用与子程序中重复的地址。
图1. V90 Modbus Library
优势
1. 在 PLC 侧不必编写任何位控程序,只需调用 S7-200 SMART V90Modbus Library 即可。
2. 不必查询V90 中的参数号,只需通过库的接口参数输入相应的速度,位置以及控制参数
3. 库例程中已经做好轮询程序,用户只需稍做修改就可用在自己的项目中。
注意:由于Modbus RTU 是串口通信,实时响应与直接脉冲控制相比要慢,特别是控制多轴时
软硬件要求
序号 | 软硬件要求 |
1 | S7-200 SMART CPU V2.1 |
2 | STEP7-Micro/WIN SMART V2.1 Update 2 |
3 | V90 驱动器 V1.05 以上 |
4 | SINAMICS V-ASSISTANT V1.03 |
SINAMICS V-ASSISTANT 设置V90
使用S7-200 SMART V90 Modbus Library 之前要先用SINAMICSV-ASSISTANT 软件对 V90 进行设置(或是直接在V90上进行参数设置)
1. 使用USB电缆连接V90与装有SINAMICS V-ASSISTANT 的软件, 如图2。
图2. USB 电缆连接 V-ASSISTANT 与 V90
2. 打开SINAMICSV-ASSISTANT 软件,并点击“在线”,软件会自动检测出所使用的V90 的型号以及电机的型号,如此时可设置控制模式,如图3。
图3. 在线检测读出 V90 及电机型号
3. 定义IO输入输出分配,有些输入信号如果没有实际接入,可以通过软件中的强制实现,如图4。
图4. 输入输出分配
4. 仿真及测试电机,使用PLC 控制前可先进行 IO 及电机测试,以便检测V90 侧没有任何问题,如图5。
图5. IO 仿真及电机测试
速度控制
1. 在 V-ASSISTANT中设置 V90 基本参数,如图6。
图6. V-ASSISTANT 中设置 V90 参数
2. 如果不使用 V-ASSISTANT,则在 V90 上直接设置参数,如图7。
图7. V90 面板直接设置伺服驱动器参数
3. Modbus 初始化,设置的通信速率要与V90中的设置一致, 如图8。
图8. Modbus 初始化
4. 控制速度轴,如图9。
图9. 控制速度轴
参数定义如表1.
表1. 速度轴参数定义
EN | :Bool 子程序使能信号; |
COM_EN | :Bool MBUS通讯触发信号, 上升沿有效,触发一次COM_EN信号,子程序中通讯操作轮询一次; |
Slave_Addr | :Byte V90 驱动MBUS通讯地址(P29004); |
CTW | :WORDV90 驱动MBUS通讯控制字(40100),第0位SON_OFF1必须需要0-->1才能伺服使能;输入:16#41E-16#41F与V90中的40100一致,如果需要单独控制其它位,需要参照控制字每一位的含义,如图10; |
SpeedSet | :Real 速度给定(40101),范围 0.0 %--100.0%额定转速;例:如果额定速度为3000,输入20,则速度为3000*20%=600; |
COM_Buf | :DWORD MBUS读写操作缓冲区,指针变量 格式必须为 &VB,建议每个周间隔50Bytes,例如Axis_1----&VB6000; Axis_2----&VB6050;Axis_3----&VB6100......; |
Done | :Bool 当前子程序扫描完成信号,可以用于下一个子程序的COM_EN触发信号,必须在下一个子程序扫描完成之后进行复位操作; |
Active | :Bool 当前子程序激活,正在处理; |
图10. 控制速度 40100 参数定义
内部位置控制
内部位置控制可以实现相对位移和位移的控制,可根据实际应用选择使用,如图11。
图11.位置控制程序块
相对定位控制
1. 在 V-ASSISTANT 中设置 V90 基本参数,如图12。
图12. V-ASSISTANT 中设置 V90 参数
2. 如果不使用 V-ASSISTANT,则在 V90 上直接设置参数,如图13。
图13. V90 面板直接设置伺服驱动器参数
3. Modbus 初始化,设置的通信速率要与 V90 中的设置一致, 如图14。
图14. Modbus 初始化
4. 控制相对定位(通过40100参数中的 “POS_TYP" 参数来选择相对位定位),如图15。
图15. 控制相对定位
参数定义如表2.
表2. 相对定位接口参数定义
EN | :Bool 子程序使能信号; |
COM_EN | |
Slave_Addr | :Byte V90 驱动MBUS通讯地址(P29004); |
CTW | :WORDV90 驱动MBUS通讯控制字(40100),位置模式给出 16#40E 到 16#40F,驱动使能,第0位SON_OFF1必须需要0-->1才能伺服使能;再给出16#41F,使得STEP_ACC有一个触发上升沿;如果需要单独控制其它位,需要参照V90位置模式IPOS下的控制字每一位的含义,如图16; |
PositionSet | :Dint 位置给定,对应于 LU; |
SpeedSet | :Dint 速度给定,对应于 SpeedSet * 1000 LU/MIN; |
COM_Buf | :DWORD MBUS读写操作缓冲区,指针变量 格式必须为 &VB,建议每个间隔100Bytes,例如Axis_1----&VB7000; Axis_2----&VB7100; Axis_3----&VB7200......; |
Done | |
Active | :Bool 当前子程序激活,正在处理; |
图16. 相对定位 40100 参数定义
定位控制
定位控制,V90 的基本参数设置与相对定位基本相同,如图12。还需要对参考点进行参数设置。
1. 使用 V-ASSISTANT 选择参考点类型,如图17。
图17. 选择定位参考点类型
2. 分配参考点输入地址,如图18。
图18. 分配参考点输入地址
3. 分配"参考点OK" 输出地址,当执行寻找参考点指令并寻参成功后, “REFOK” 输出置位为1,如图19。可使用该输出判断寻参成功后,执行定位指令。
图19. 分配参考点OK" 输出地址
4. 控制定位(通过40100参数中的“ POS_TYP" 参数来选择定位),图20。
图20. 控制定位
注意:一定要在寻参成功后,即“REFOK”为1后,才可执行定位。
表3. 定位接口参数定义
EN | :Bool 子程序使能信号; |
COM_EN | |
Slave_Addr | :Byte V90 驱动MBUS通讯地址(P29004); |
CTW | :WORDV90 驱动MBUS通讯控制字(40100),位置模式给出 16#40E 到 16#40F,驱动使能,第0位SON_OFF1必须需要0-->1才能伺服使能;再给出16#240F,寻找参考点;用REFOK来判断寻参成功后,再给出16#46F,执行定位操作。以后只要位置或速度变化就会立即执行,不需要再改变CWT的参数。如果需要单独控制其它位,需要参照V90位置模式IPOS下的控制字每一位的含义,如图21; |
PositionSet | :Dint 位置给定,对应于 LU; |
SpeedSet | :Dint 速度给定,对应于 SpeedSet * 1000 LU/MIN; |
COM_Buf | |
Done | |
Active | :Bool 当前子程序激活,正在处理; |
图21. 定位 40100 参数定义
库程序及例程
所有的功能块都编写成了子程序,使用时只需将相应的子程序拷贝到项目中即可, 但要注意避免使用与子程序中重复的地址。程序里面不能多个轴使用一个子程序,如要增加新的轴可通过拷贝增加新的子程序,每一个轴对应一个子程序;具体应用程序包里面有一个3轴速度模式程序和2轴位置模式程序,可以按照这种方式进行修改;
常见问题
为什么修改了V90中的一些参数(如RS485 地址) 却不生效?
答:很多参数需要重新启动才会生效,注意参数后面的生效方式,图如22。
图22. 参数生效方式