倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何配置虚拟轴 TC2

右击NC- Configuration,然后Append Task,然后右击Axis,Append Axis

 

轴的类型可以分为:Continuous Axis,默认的类型,NC可以连续闭环控制该轴,Encoder Axis,编码器类型,NC只能读不能控制,不做任何设置直接确认。

 

有些页面默认是不可用的,只有在RUNNING模式下才会变得可用

 

首先是对编码器的设置,General中设置的是编码器名称和类型(这里不用管,因为是虚拟轴)

 

右击PLC,然后添加PLC项目,把前面写好的PLC程序载入进来。载入之后,将自动识别PLC程序中与NC的交互变量(目前只有两个,NcToPlc和PlcToNc)

 

点击PlcToNc,然后打开Linked to窗口,自动弹出对应的Axis1的对应变量(注意由于前面只添加了一个轴,所以这里只绑定一个)

 

用同样的方法把FromPlc的部分绑定变量

 

然后点击激活配置,可以观察Online页面变成可用状态,NC就基本配置完成了,虚拟轴Axis1就等着PLC给出控制命令,从而实现转动

 

开始编写PLC程序:

在PLC程序中切换到Library Manager,然后再库中右击,添加库,找到TcMC的库,添加完成之后,出现了除了STANDARD.LIB之外的库

 

在全局的字符串中定义好与NC轴的输入输出结构体

VAR_GLOBAL

    PlcToNc AT %Q*    : PLCTONC_AXLESTRUCT;

    NcToPlc AT %I*    : NCTOPLC_AXLESTRUCT;

END_VAR

    

在主程序中添加FBD程序(FBD不常用,但是在表示TwinCAT 标准的运动函数的时候比较方便,我们后期可以把FBD转换成ST语言),右击增加一个Program,然后设置类型是FBD,名称是AxisEnable(假如我们要定义的是MC_Power功能块,这里相当于新建一个类取名为AxisEnable),默认是三个问号

 

双击该程序,然后添加一个BOX,默认自动叫做AND,可以改名为MC_Power,改好之后将会自动变成标准功能块的格式,按回车结束

 

此时我们需要定义这个功能块,前面介绍功能块相当于类,我们需要实例化,同时按照官方定义该功能块。在顶部的问号中输入类的实例化的名称,比如Power,回车之后自动要求确认变量类型(就是MC_Power类型),然后顶部会自动创建Power的变量

 

接下来定义该功能块的各种参数,注意左侧的最后两个就是我们定义好的全局结构体

VAR_GLOBAL

    PlcToNc AT %Q*    : PLCTONC_AXLESTRUCT;

    NcToPlc AT %I*    : NCTOPLC_AXLESTRUCT;

END_VAR

 

然后再Variable_Configuration中也填写好

VAR_CONFIG

    .PlcToNc AT %QB0 : PLCTONC_AXLESTRUCT;    (* ~ {LinkedWith:TINC^NC-Task 1 SAF^Axes^Axis 1^Inputs^Axis 1_FromPlc} *)

    .NcToPlc AT %IB0 : NCTOPLC_AXLESTRUCT;    (* ~ {LinkedWith:TINC^NC-Task 1 SAF^Axes^Axis 1^Outputs^Axis 1_ToPlc} *)

END_VAR

 

 

用户可以在InfoSys中找到每个功能块的定义

 

对于右侧的参数,鼠标移动到伸出的直线部分,右击然后Assign就可以设置参数了(你可以在前面定义好,也可以在这里直接输,回车之后会弹出窗口要求确认变量类型)

 

这样就完全定义好了

 

定义好MC_MoveAbsolute模块,注意是在MAIN上面右击添加一个Action,然后添加一个BOX,然后设置名称为MC_MoveAbsolute,同样有很多输入输入变量(除了AxisRefOut是全局的,跟前面一样套用)

 

注意MoveAction是一个功能块,它定义的变量都会出现在MAIN中,而不同于前面的AxisEnable是一个程序,他的变量就是自身的(访问是通过AxisEnable.XXX来访问的)

 

完整的程序运行运行,该虚拟轴将会在0-2000的位置往复运动

 

已经能看到PLC控制NC虚拟轴运动之后,我们可以尝试在TwinCAT Scope中看位置,速度,加速度曲线。,打开TwinCAT ScopeView,然后新增一个

 

新增一个Channel

 

修改名称,然后在Acquisition中设置监控的变量(位置对应了ACTPOS)

 

因为我们已经知道PLC程序是控制电机在0-2000的位置跑,所以这里可以设置上下限为-1000到3000,也可以设置为其他数值,设置好之后,先启动PLC程序,然后再启动这里,可以看到默认已经绘制了位置曲线

 

可以修改颜色和画笔粗细,在Style页面中

 

用同样的方法监控速度和加速度,可以运行之后看最大值最小值然后再修改速度和加速度的上下限(可以直接复制位置的通道然后修改,注意分别对应了ACTVELO和ACTACC)

 

最后可以看到三条曲线如下图所示,注意可以修改单位

 

为什么加速度曲线一直是1000呢,因为我们没有设置编码器类型,将编码器类型改成POSVELOACC,然后就可以监控加速度

 

改完之后的曲线如下图所示

 

 

 

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

我的优酷空间:

http://i.youku.com/acetaohai123

 

我的在线论坛:

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

 

问题交流:

QQ:910358960

邮箱:acetaohai123@163.com

 

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