TWINCAT3运动控制入门
DEMO程序介绍
BECKHOFF运动控制编程入门
1、运动控制功能块介绍
倍福的编程遵循IEC61131-3的编程规范。运动控制编程倍福提供一个TcMc2库,这个库是基于PlcOpen规范进行开发的。市面上很多家控制器的运动控制库也是遵循这个规范,例如AB(rockwell)、西门子博图、施耐德、欧姆龙(NJ)台达和汇川的新款控制器等。所以编程指令的风格类似。
运动控制相关的指令分为管理类指令和运动指令。
管理类指令包括:轴使能、复位、强制设定轴当前位置、读取轴状态等。
运动指令:绝对位置移动、相对位置只移动、回零、暂停、停止、轴电子齿轮耦合、凸轮耦合等。
轴可以通过不同指令的触发,在不同状态之间进行切换。大部分指令都是上升沿触发的。有的指令触发之后需要保持,例如MC_POWER,MC_STOP.MC_STOP指令触发后,会让轴停止下来,如果保持触发信号为TRUE,这时轴就会禁止其他的运动控制指令。而同样是让轴停止,MC_HALT效果就不一样,MC_HALT也是通过上升沿触发轴停止,但即使保持触发信号为TRUE,别的指令触发后,也是可以重新执行新的指令的。详细的功能块说明,请安装倍福information离线帮助系统。提供全面和详细的倍福硬件和软件使用说明。
2、编程演示
演示通过最基本的倍福运动功能块来实现轴的使能、点动、绝对定位、电子齿轮速度同步。
功能块实例化:
功能块用之前需要先实例化,为该功能块分配内存控件。函数是不需要实例化的。
fbPowerOnA,fbPowerOnB:Tc2_MC2.MC_Power;
fbJogA,fbJogB:Tc2_MC2.MC_Jog;
fbMoveAbsA:Tc2_MC2.MC_MoveAbsolute;
fbMoveAbsModule:Tc2_MC2.MC_MoveModulo;
fbGearin:Tc2_MC2.MC_GearIn;
fbgearout:Tc2_MC2.MC_GearOut;
fbHalt:Tc2_MC2.MC_Halt;
实例化之后在编程区域调用:
Aaxis.ReadStatus();
Baxis.ReadStatus();
fbPowerOnA(
Axis:=Aaxis ,
Enable:=benable ,
Enable_Positive:=TRUE ,
Enable_Negative:=TRUE ,
Override:=Override ,
BufferMode:= ,
Options:= ,
Status=> ,
Busy=> ,
Active=> ,
Error=> ,
ErrorID=> );
fbPowerOnB(
Axis:=Baxis ,
Enable:=benable ,
Enable_Positive:=TRUE ,
Enable_Negative:=TRUE ,
Override:=Override ,
BufferMode:= ,
Options:= ,
Status=> ,
Busy=> ,
Active=> ,
Error=> ,
ErrorID=> );
fbJogA(
Axis:=Aaxis ,
JogForward:=bJogPlus ,
JogBackwards:=bjogmin ,
Mode:=Mode ,
Position:=Position ,
Velocity:= Velocity,
Acceleration:= ,
Deceleration:= ,
Jerk:= ,
Done=> ,
Busy=> ,
Active=> ,
CommandAborted=> ,
Error=> ,
ErrorID=> );
fbMoveAbsA(
Axis:=Aaxis ,
Execute:=bgoAbs ,
Position:=Position ,
Velocity:=Velocity ,
Acceleration:= ,
Deceleration:= ,
Jerk:= ,
BufferMode:= ,
Options:= ,
Done=> ,
Busy=> ,
Active=> ,
CommandAborted=> ,
Error=> ,
ErrorID=> );
fbGearin(
Master:=Aaxis ,
Slave:=Baxis ,
Execute:=bgearin ,
RatioNumerator:=1 ,
RatioDenominator:=1 ,
Acceleration:= ,
Deceleration:= ,
Jerk:= ,
BufferMode:= ,
Options:= ,
InGear=> ,
Busy=> ,
Active=> ,
CommandAborted=> ,
Error=> ,
ErrorID=> );
fbgearout(
Slave:=Baxis ,
Execute:= ,
Options:= ,
Done=> ,
Busy=> ,
Error=> ,
ErrorID=> );
fbHalt(
Axis:=Aaxis ,
Execute:=bhalt ,
Deceleration:= ,
Jerk:= ,
BufferMode:= ,
Options:= ,
Done=> ,
Busy=> ,
Active=> ,
CommandAborted=> ,
Error=> ,
ErrorID=> );
样例程序功能介绍
培训的配套资料里面给客户提供了一个TEST例子程序,功能介绍如下:
1、获取系统信息及定时发生器
客户可以获取当前系统的一些信息,控制器的系统时间、task有没有运行超时、超时次数统计、Task周期等。
2、数据文件保存
这里主要介绍了把数据用TXT进行读写。分为两种方式,一种是写到TXT文件,并且离线可以打开看到数据,并可以修改后读取上来(TXT OFFLINE),也可以参考这个方式来写log信息到TXT文件。
另一种方式是写到TXT文件,但数据是看不到的,打开文件是乱码。这种便于保密,同时操作比较简单,可以对结构体直接进行操作。
另外就是倍福自带的persistent类型数据进行数据保存。此外倍福TC3还自带配方功能reciepe。
3、轴基础功能和HMI的封装
4、通过电子齿轮功能块来实现两轴或多轴合成直线运行,在搬运场合非常适用。无需购买凸轮授权或NCI授权。
5、使用CASE和SFC两种方式来编写轴的两点之间正反运动,体验步序流程的编写。
6、凸轮运动
采用函数来生成凸轮曲线,支持运动过程中在线修改凸轮曲线
通过代码生成的凸轮曲线,可以在凸轮编辑器中上载看到曲线
ScopView监控的运行过程中修改凸轮曲线
关注本公众号和个人微信CloudKuang,获取培训资料及例程。其他倍福产品使用问题或工控应用解决方案欢迎交流探讨。
|