右击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

 

倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何配置虚拟轴 TC2的更多相关文章

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

    在Motion上添加一个NC Task   在Axis上右击添加一个轴,类型为Continuous Axis   在PLC上右击添加新项,然后添加一个PLC项目   在引用中添加TC2_MC2的库引用 ...

  2. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-T_AmsNetID是什么

    该参数是包含六个数字类似于IP地址的字符串形式,例如"1.1.1.2.7.1",如果为空字符串,则默认使用本机的AmsNetID 你可以右击贝福的图标,然后点击About查看当前本 ...

  3. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-TwinCAT自带的找原点功能块MC_Home怎么用

    对于相对编码器类型轴(包括虚拟轴),可以使用贝福提供的找原点功能块MC_Home.   HomingMode是指机器在往前跑的时候(30单位/s的默认速度),当碰到阻挡,则会有一个布尔值从FALSE改 ...

  4. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-报错0X4655,18005错误怎么办

    首先确认驱动器没有报错(如果驱动器报错,请先解决绝对值编码器的清除多圈数据问题) 报错一般上使能就会报错,没法测试运转,而且不管是用贝福自带的NC功能还是自己写的都会一样的效果   请删除在贝福的Et ...

  5. 倍福TwinCAT(贝福Beckhoff)基础教程1.2 TwinCAT安装配置

    由于TC2和TC3都有可能用到,个人推荐都安装,但是注意必须是先安装的TwinCAT2,然后安装TwinCAT3,如果反了可能两个都没法用(打开TcSwitchRuntime提示Both TwinCA ...

  6. 倍福TwinCAT(贝福Beckhoff)应用教程13.1 TwinCAT控制松下伺服 NC高级

    本节主要演示了使用自定义函数实现电机的运动(梯形曲线和S曲线都有实现),这里的JOG+和JOG-,针对单个关节实现了PTP的运动(跟贝福的MoveAbsolute功能块实现效果一致),在此没有介绍运动 ...

  7. 倍福TwinCAT(贝福Beckhoff)应用教程12.3 TwinCAT控制松下伺服 NC进阶

    在前面一节,我们简单介绍了通过PLC+HMI实现完整控制松下伺服的上使能-运动,采集位置,速度等功能,这里我们会大量简化用到的贝福功能块(为了更加实用).首先依然是对单个轴的封装,我们之前的做法,例如 ...

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

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

  9. 倍福TwinCAT(贝福Beckhoff)应用教程12.1 TwinCAT控制松下伺服 连接和试运行

    首先是用松下伺服自带的软件可以测试运行(驱动器,电机都连接好,然后用USB线连接到松下伺服驱动器的X1口),打开调试软件会自动提示连接到伺服   一般需要对驱动器清除绝对值编码器数据(驱动器可能报错4 ...

随机推荐

  1. [ 手记 ] Oracle 11g安装过程

    安装环境:    操作系统:Centos6.4 Desktop    主机名:oracle    内存:2G    安装前准备:    修改主机名: [root@oracle ~]# vim /etc ...

  2. 【 HAProxy 】学习笔记

    一.haproxy的功能: HAProxy vs LVS        HAProxy支持tcp和http两种代理模式,而lvs仅支持tcp代理模式        HAProxy相比LVS的使用要简单 ...

  3. BZOJ 3098

    : Hash Killer II 时间限制: Sec 内存限制: MBSec Special Judge 提交: 解决: [提交][][] 题目描述 这天天气不错,hzhwcmhf神犇给VFleaKi ...

  4. catkin详细解释

    http://answers.ros.org/question/58498/what-is-the-purpose-of-catkin_depends/

  5. MYSQL的内外连接

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 stude ...

  6. 肖申克的救赎 -Hope

    典狱长诺顿高高在上,平时道貌岸然,对圣经倒背如流,实际上攫取利益时不择手段,残酷.阴险而贪婪.狱警长海利和其他警员,凶狠残暴,充当诺顿的打手,草菅囚犯的人命.他们是不是象极了我们现实中的掌权阶层?我称 ...

  7. Web.config中appSettings节点值两种读取方法

        <appSettings>    <add key="ClientPort" value="5252"/>   <add ...

  8. 训练指南 UVALive - 3523 (双联通分量 + 二分图染色)

    layout: post title: 训练指南 UVALive - 3523 (双联通分量 + 二分图染色) author: "luowentaoaa" catalog: tru ...

  9. ASP.NET Core 2.2 基础知识(十六) SignalR 概述

    我一直觉得学习的最好方法就是先让程序能够正常运行,才去学习他的原理,剖析他的细节. 就好像这个图: 所以,我们先跟着官方文档,创建一个 SignalR 应用: https://docs.microso ...

  10. ASP.NET Core 2.2 基础知识(十五) Swagger

    安装 Nuget 包 注册 Swagger public void ConfigureServices(IServiceCollection services) { services.AddMvc() ...