这一节我们介绍简单的NC运动(前面所讲的所有内容都是PLC编程和HMI的界面,算是基础知识),这里NC就是控制伺服电机的部分(当然还不是实际的NC轴,是虚拟轴,但是用到的函数都是一样,可以为后面的实际应用做准备),既然用到了贝福的NC功能,就要添加对应的库

 

首先添加一个让轴上使能的PRG(注意是FBD格式)

 

在第一个空行后面插入空运算块,然后在中间的???里面输入运算块的名称(NC的函数名,NC的函数就是控制轴运动的函数,无非是上使能,下使能,位置,速度等等运动,跟运动控制卡提供的函数类似),输入MC_Power之后,该块直接变成了指定的形式(左侧的都是输入,右侧的都是输出)

 

NC的函数本质是一个FB的功能块,而且注意TC2和TC3的不太一样,最大的区别就是TC3把跟轴交互的输入输出变量做成了一个(这个以后会讲到),我们只要记住在TC3中一个轴跟NC交互的就是一个AXIS_REF类型变量,这里把所有变量都定义成10个元素的数组,是为了方便(假如有多个轴要绑定就不需要再声明这么多变量了),左侧的BufferMode和Options也可以不管照抄即可(前面讲了很多贝福的模块很复杂,而实际上我们用到的部分很简单,所以不需要每个细节都掌握)

 

右侧如果没有输出符号,可以右击引脚,然后插入输出即可

 

我们既然定义好了这样一个功能块,如何使用呢?首先添加一个NC的配置项目(PLC的配置和NC的配置本质上是分开的,因为NC就是对所有IO输入输出的配置,而PLC程序怎么写跟外部设备怎么配没关系)

 

在Axis上右击添加一个新的轴(所有参数保持默认即可)

 

双击Axis 1,然后在Settings中把Link To PLC设置成一个PLC中的对应变量(注意前面创建完了AXIS_REF变量之后要点击激活配置,否则这里不会自动弹出来有效变量)

 

如果是实际的轴还需要配置其他参数,比如编码器分辨率,但是虚拟的就无所谓了,只需要把Monitoring中的跟随误差检测这些设置为FALSE即可,设置完了还是点击左上角的激活配置,确认Online value也是FALSE才说明真的写进去了

 

NC的简单配置完成之后,我们继续写程序要实现的功能,为了简单只使用一个绝对运动功能块,输入还是一个上升沿触发,注意输出仅当已经到达目标位置的时候Done才是TRUE,否则为FALSE,一个绝对运动模块需要位置,速度,加速度,减速度,加加速度这些参数(S曲线的PTP运动),我们还是使用数组来对应

 

这些都有了之后,程序就很好写了,在0状态的情况下,将绝对运动模块复位,点击按钮将可以上使能和下使能,也可以让虚拟轴按照给定的运动参数运动到指定的位置,注意为了在人机界面中可以看到程序的执行情况,还是做了一个字符串表示是否上使能成功,是否运动完成

 

注意打开Axis 1的Online页面对照,点击上使能,下使能,绝对运动执行的时候,都可以在这个页面看到轴的数据变化(当然这里只是测试了最简单的两个模块,实际上轴运动的时候可能会报错,会需要采集错误的模块,清除错误的模块,还需要停止运动的模块等等,都将在实际应用案例中讲解)

 

理论上,获取轴的位置,速度都是有指定方法的(如MC_ReadActualPosition),这里为了简单,还是只是用了轴的自身的属性(可以对AXIS_REF类型加深理解,一个AXIS_REF类型包括了FromPLC和ToPlc的两部分数据,PLC程序可以从一个AXIS_REF类型中获取到指定的数据或设置AXIS_REF的数据,在本节的另一篇文章中将介绍在TC2中同样的内容的做法,TC2是讲两部分数据分开的,需要分别绑定到同一个轴上)

 

事实上,在配置好一个虚拟轴(实际轴也是一样)之后,激活配置,不运行PLC程序,也可以通过每个Axis页面的Online测试这个轴,比如Set-All可以伺服上使能,F2,F3可以慢速点动,F1,F4可以快速点动

 

可以在Function中测试绝对运动,相对运动,往复两点等

 

可以新建一个轴,并将轴设置为丛动轴(以一些贝福自带的从动方式跟随主动轴的运动),注意需要两个轴都手动Set-All上使能。但是这些功能都不太常用,所以只要了解即可。

 

 

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

我的优酷空间:

http://i.youku.com/acetaohai123

 

我的在线论坛:

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

 

问题交流:

QQ:910358960

邮箱:acetaohai123@163.com

 

 

 

倍福TwinCAT(贝福Beckhoff)基础教程7.1 TwinCAT 如何简单执行NC功能块 TC3的更多相关文章

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

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

  2. 倍福TwinCAT(贝福Beckhoff)基础教程1.1 TwinCAT背景知识

    本节附件中有很多PPT介绍贝福TwinCAT和EtherCAT的相关技术,在此只做简单说明. 简单总结:EtherCAT就是一种总线技术,具有速度快,稳定性高,布线简单等优点,详细可以参考下面这个PP ...

  3. 倍福TwinCAT(贝福Beckhoff)基础教程6.1 TwinCAT如何与高级语言通讯

    因为使用TwinCAT的人用途不同,重视点就不同.如果用来代替传统PLC+HMI做项目的,很少会需要用到跟高级语言通讯,但是如果是用来做运动控制平台如做机器人运动控制器的,就肯定会用到.不管是否用得上 ...

  4. 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT如何执行系统命令

    TwinCAT提供了一系列的执行Windows系统命令的方法 Name 描述 NT_Shutdown 关机操作系统 NT_AbortShutdown 取消关机操作系统命令 NT_Reboot 重启操作 ...

  5. 倍福TwinCAT(贝福Beckhoff)基础教程4.1 TwinCAT如何读写TXT文件

    TwinCAT提供了FB_FileRead等一系列读写文件的方法,本小程序演示的是多个贝福自带的FBD功能块连起来用的方法,跟前面讲的一样,建议在初始化的时候把所有FBD都复位,准备使用   真正的读 ...

  6. 倍福TwinCAT(贝福Beckhoff)基础教程4.2 TwinCAT如何读写CSV文件

    本程序只是在官方范例程序上稍作修改,在官方原有的范例中,演示了多种模式的读写(可以认为CSV文件是比TXT文件需要更多数据量的时候使用,比如记录一个小型的数据库集合)   但是写的比较混乱,甚至没有H ...

  7. 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_字符串

    一般声明字符串都会加一个长度的限制,比如A:STRING(80);至于真实的字符串长度不要超过这个限制即可   在测试中,我演示了两个字符串的方法,CONCAT字符串拼接和REPLACE字符串替换.拼 ...

  8. 倍福TwinCAT(贝福Beckhoff)基础教程7.1 TwinCAT如何简单执行NC功能块 TC2

    TC2的程序是在TC3的基础上稍作调整,只说明不同点,请先看TC3的. TC2中的一个原本是AXIS_REF类型变量被拆成了两个(PLCTONC_AXLESTRUCT和NCTOPLC_AXLESTRU ...

  9. 倍福TwinCAT(贝福Beckhoff)基础教程3.1 TwinCAT如何编写简单的计算器

    把编写简单计算器作为入门的第一个范例程序,主要是因为比较简单,而且综合了HMI,数据类型,数据转换,PRG和FBD等功能块的混合等知识,个人认为还是比较适合用来快速上手的.由于是第一个范例,所以视频教 ...

随机推荐

  1. k8s创建资源的两种方式

    命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建 kubectl run nginx-deployment --image=nginx: -- ...

  2. node中通过orm2链接mysql的一个坑

    代码是orm上的例子,出现如下错误: ORMError: Connection protocol not supported - have you installed the database dri ...

  3. Java基础:异常机制

    最近开始了找工作的面试,在面试过程中,面试官问了关于Java当中的异常处理机制,一直以来,无论写代码还是看书,自己对异常处理这一块就没有很好的重视过,对它的认知也仅仅停留在通过Try-catch去进行 ...

  4. flutter 极光推送

    一.配置极光开发者 1.注册极光开发者 https://www.jiguang.cn/push 2.创建应用 二.创建APP 1.添加依赖 pubspec.yaml  添加: flutter_jpus ...

  5. 大数据DMP画像系统(转载 简介-龙果学院)

    一.目标 1.掌握画像标签开发技巧 2.掌握数据挖掘技巧 3.了解业内画像和DMP系统的架构和开发 4.大数据结合业务场景落地 系统开发要求 涉及的技术要点:spark .elasticsearch. ...

  6. The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - J CONTINUE...?

    CONTINUE...? Time Limit: 1 Second      Memory Limit: 65536 KB      Special Judge DreamGrid has  clas ...

  7. [PKUSC2018]神仙的游戏(FFT)

    给定一个01?串,对所有len询问是否存在一种填法使存在长度为len的border. 首先有个套路的性质:对于一个长度为len的border,这个字符串一定有长度为n-len的循环节(最后可以不完整) ...

  8. [Contest20180311]朋友

    是毒瘤的friends呢~ 注意到“产生感情”和后缀自动机的$Right$集合定义很像,所以先对所有串建广义sam,那么一个节点$s$里的所有串都互相产生感情,而从起点走到$s$走最长路所经过的节点里 ...

  9. 1.1(学习笔记)JSP(Java Server Pages)基础(脚本元素、指令元素)

    一.JSP简介 JSP全称为Java Server Pages,是一种动态网页开发技术,可以在HTML界面中嵌入java代码, 实现动态的提供数据.访问JSP时服务器会将JSP翻译成Servlet,访 ...

  10. 《深入理解Spark-核心思想与源码分析》(一)总体规划和第一章环境准备

    <深入理解Spark 核心思想与源码分析> 耿嘉安著 本书共计486页,计划每天读书20页,计划25天完成. 2018-12-20   1-20页 凡事豫则立,不豫则废:言前定,则不跲:事 ...