V90 Modbus Library 简介

S7-200 SMART V90 Modbus Library 可以支持速度及内部位置控制,如图1。所有的功能块都编写成了子程序,使用时只需将相应的子程序拷贝到项目中即可, 但要注意避免使用与子程序中重复的地址。

图1. V90 Modbus Library

优势

1. 在 PLC 侧不必编写任何位控程序,只需调用 S7-200 SMART V90 Modbus 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 之前要先用SINAMICS V-ASSISTANT 软件对 V90 进行设置(或是直接在V90上进行参数设置)

1. 使用USB电缆连接V90与装有SINAMICS V-ASSISTANT 的软件, 如图2。

图2. USB 电缆连接 V-ASSISTANT 与 V90

 

2. 打开SINAMICS V-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
:WORD V90 驱动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,建议每个周间隔50 Bytes,例如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
:Bool MBUS通讯触发信号, 上升沿有效,触发一次COM_EN信号,子程序中通讯操作轮询一次;
Slave_Addr
:Byte V90 驱动MBUS通讯地址(P29004);
CTW
:WORD V90 驱动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,建议每个间隔100 Bytes,例如Axis_1----&VB7000;  Axis_2----&VB7100;  Axis_3----&VB7200......;
Done
:Bool 当前子程序扫描完成信号,可以用于下一个子程序的COM_EN触发信号,但是必须在下一个子程序扫描完成之后进行复位操作;
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
:Bool MBUS通讯触发信号, 上升沿有效,触发一次COM_EN信号,子程序中通讯操作轮询一次;
Slave_Addr
:Byte V90 驱动MBUS通讯地址(P29004);
CTW

:WORD V90 驱动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
:DWORD MBUS读写操作缓冲区,指针变量 格式必须为 &VB,建议每个间隔100 Bytes,例如Axis_1----&VB7000;  Axis_2----&VB7100;  Axis_3----&VB7200......;
Done
:Bool 当前子程序扫描完成信号,可以用于下一个子程序的COM_EN触发信号,但是必须在下一个子程序扫描完成之后进行复位操作;
Active
:Bool 当前子程序激活,正在处理;

图21. 绝对定位 40100 参数定义

库程序及例程

所有的功能块都编写成了子程序,使用时只需将相应的子程序拷贝到项目中即可, 但要注意避免使用与子程序中重复的地址。程序里面不能多个轴使用一个子程序,如要增加新的轴可通过拷贝增加新的子程序,每一个轴对应一个子程序;具体应用程序包里面有一个3轴速度模式程序和2轴位置模式程序,可以按照这种方式进行修改;

注意:此程序的作者和拥有者对于该程序的功能性和兼容性不负任何责任。使用该程序的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

ModbusV20Sample

 

常见问题

为什么修改了V90中的一些参数(如RS485 地址) 却不生效?

答:很多参数需要重新启动才会生效,注意参数后面的生效方式,图如22。

图22. 参数生效方式