倍福TwinCAT(贝福Beckhoff)应用教程12.2 TwinCAT控制松下伺服 NC初步

在前面我们已经学会了使用贝福自带的调试软件完成试运行,接下来是使用TWINCAT PLC实现这个功能,右击PLC添加一个PLC项目

 

在VISUs上右击添加一个HMI人机界面

 

目前PLC程序和人机界面都是空的,我们要通过这两个实现我们自定义的点动。首先右击Reference添加TC2_MC2的类库(这个类库是Motion Control的类库)

 

右击GLVs,添加两个全局变量,注意类型为AXIS_REF(比较特殊的类型,是跟NC轴交互的变量),在TWINCAT2中不太一样,一个AXIS_REF相当于PlcToNC+NcToPlc一对变量(因为PLC需要将数据传给驱动器,又需要从驱动器获取指定的数据,所以本质上是一对变量,只不过TWINCAT3把他们放到一起了)

Axis_1:AXIS_REF;

 

PlcToNc AT %Q*    : PLCTONC_AXLESTRUCT;

NcToPlc AT %I*    : NCTOPLC_AXLESTRUCT;

 

选中Axis1,然后Link To PLC中选择刚才新建的AXIS_REF类型变量(如果没有显示,就点击左上角的激活配置然后再绑定)

 

在编写具体程序的时候(不会每一行都讲一遍,基本看代码+参照基础的培训视频即可),注意我们添加了一个特殊类型的变量,让变量添加AT%Q就是表示他可以跟驱动器的某个参数绑定(从PLC写入到驱动器的数值),我们前面讲过需要在实际运行之前将Modes of operation改成8,需要先在MAIN程序中写,然后激活配置,然后自己绑定

AxisControlWord AT%Q*:SINT:=8;//Normally will be 8

 

说明:因为只是初步验证,程序结构会尽可能简化。但是获取位置,速度,错误是任何项目都必不可少的,而且应该放在程序最前面,一旦错误发生了,后续的就不要再进行了。

 

说明:主程序通过一个INT类型变量的切换实现不同的功能(这个是自定义的,比如数值1表示清除错误,2表示上使能,3表示下使能,以此类推),建议在0状态的时候让要用的功能块都变成FALSE并执行,这样下次点击某个按钮的时候就会产生上升沿,从而执行运动(要充分认识到TWINCAT的扫描周期的原理,必须是这个周期为FALSE,下个周期为TRUE,才能产生上升沿,很多功能块才能真正执行)

 

说明:在每一个功能块执行的时候,尽量做一个判断,如果执行成功了,给字符串赋一个done,否则是doing,以此来区分是否成功执行(在人机界面上可以看到字符串知道是否执行完成),当然你也可以每次定位到功能块的指定变量上看是否为TRUE,但是这样做显然效率更高,只要看HMI一个即可。

 

说明:这里演示的功能块大部分是没用的(至少做实际项目上很少用),比如一个绝对运动模块就可以实现相对运动,匀速运动这些功能,那么相对运动,匀速运动就是多余的。而标记零点的功能并没有把值写入到文件或者写入到驱动器的参数中去,下次重启项目还需要重新标记零点,所以也不完善。这些都将在后面的程序中完善,这里着重需要理解TWINCAT提供的典型的功能块。

 

 

更多教学视频和资料下载,欢迎关注以下信息:

我的优酷空间:

http://i.youku.com/acetaohai123

 

我的在线论坛:

http://csrobot.gz01.bdysite.com/

 

问题交流:

QQ:910358960

邮箱:acetaohai123@163.com

 

 

原文地址:https://www.cnblogs.com/acetaohai123/p/6823718.html