这一节我们介绍简单的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. linux常用命令 查看文件

    Linux常用命令 查看文件 cat命令 cat命令的用途是连接文件或标准打印输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示. 命令格式: cat [ ...

  2. hdu 5190(水题)

    Go to movies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  3. poj 2007(凸包)

    Scrambled Polygon Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 8005   Accepted: 3798 ...

  4. 怎么将string list 转成有特殊字符分开字符串

    https://stackoverflow.com/questions/4021851/join-string-list-elements-with-a-delimiter-in-one-step Y ...

  5. quartz 配置运行

    这篇文章是对quartz 2.2.1进行配置 分为spring 整合版本和QuartzInitializerServlet整合版本 首先是QuartzInitializerServlet整合版本 主要 ...

  6. APP中常见上下循环滚动通知的简单实现,点击可进入详情

    APP中常见上下循环滚动通知的简单实现,点击可进入详情 关注finddreams博客,一起分享一起进步!http://blog.csdn.net/finddreams/article/details/ ...

  7. Nvidia 的新显卡架构 Maxwell 性能相比开普勒提升了多少?

    作者:喵西和熊链接:https://www.zhihu.com/question/22630075/answer/29041618来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  8. 洛谷P1095 绝地武士的逃离

    好吧原题是守望者的逃离,我强行改了一波题面,因为信仰=-=(? May the force be with us. 绝地跑步速度为17m/s,但无法逃离荒岛.绝地的原力恢复速度为4点/s,只有处在原地 ...

  9. Apache用户目录枚举工具apache-users

     Apache用户目录枚举工具apache-users Apache服务器提供UserDir模块,允许在网站为不同的用户设置对应的目录.这样,用户可以使用http://example.com/~use ...

  10. APIO2017伪题解

    题目质量还是比较高的,只是当时澳大利亚方面出了一点问题?最后造成了区分度非常迷的局面. 纵观三道题,T1是披着交互外衣的提答题,T2是披着交互外衣的传统题,T3是一道据说近年来APIO最水的一道传统题 ...