抖音粉丝群1
『7x24小时有问必答』

AI浪潮下的计算机行业——从业者现状与未来展望

近期工控PLC项目居多,所以接下更新内容大多数是关于工控PLC内容。所有程序知识由项目组成员“糖芦卢”提供晓煜做整理和讲解,不足之处欢迎指出。


开年那几天写了一篇关于什么是EtherCAT通讯协议的文章,那是一篇简单介绍的协议的方便软件开发人员进行EtherCAT总线开发使用。但是我们在使用PLC时就是需要用到这么复杂的报文规则,因为PLC和伺服都帮我们规划好了报文之间的通讯,我们只需要简单的进行配置就能驱动伺服了。

本期我们来简单使用信捷HDH-60T4-E型号PLC与信捷DS5C系列伺服进行EtherCAT通讯。软件是:信捷PLC编程工具软件(在信捷官网下载就行了)当然你也可以使用XS studio。方式有很多




信捷PLC常用的总线指令




如果你是使用传统梯形图篇写那就需要手打命令,我们常用的单轴命令有。


使能、停止、绝对位置、相对位置、速度控制、回原点。几乎能满足我们正常使用需求


我们使用伺服时必需使能伺服电机,才能进行位置控制操作。





使能





















速度控指令常用于点动操作
回原点指令有二个分别是Home和ZRN二个指令,区别在于回原点方式不一样
ZRN通常以较高速度运动到接近原点开关的位置,变为爬行速度,当离开原点开关后停止脉冲轴,并对当前脉冲轴位置清零
Home具有多种回原点方式,如绝对式直接设定新的绝对坐标;相对式在现有坐标基础上进行调整;被动式轴的位置值为参数“Position”的值;主动式先以较高速度运动到限位,再反向运动寻找原点等
当然这不是绝对的不同PLC的定义有细微的差别




信捷PLC和EtherCAT通讯设置




创建工程这边我就不进行操作了,我们点EtherCATMaster进行行伺服扫描,就能扫到我们的伺服了。


轴配置这边是我轴的参数配置,轴类型选项有虚轴和实轴二个,虚轴就是虚拟轴的意思,实轴就是我们真实现场的轴,从站号是我们当前这个轴的地址,默认是从0开始的,代表第一个轴。如果有第二个轴那从站号就是1以此类推。

功能映射这边我们要勾选上,这样我们才能对真实伺服进行操作



单位换这边是我们的对伺服每发一个脉冲转几圈的设置,可以选脉冲模式和mm模式,就比如在空运时,我们设置每100个脉冲转一圈,就是发100个脉冲电机就转动一圈的意思。当然这是在空运的时候,真实的需要你结合现场丝杆算出来。
如果有启动电机也需要打开



模式参数这边是我们设置伺服的软位操作,这边看图就可以了,字面意思没有多复杂


ZRN和Home回原点二个设置回原点方式,速度、限位选择操作,有一点需要提的是,你在这边设置了,程序上面使用的话没有设置新的参数,他默认是采用这边的参数


需要注意的是使用轴时先把伺服状态设置成OP,不然使用不了


简单来看看一轴的快速配置





同时控制32个轴封装程序




如果我们只有一个轴时我们可以一个一个配置它,因为只有一个我不需要写很多程序,但是如果我们有32个或都100个轴时,我们怎么办?一个一个的手写重复的命令吗?比如1轴要使能,我这边就要写一个ld m0 A_Power hd0 hd1 k0这样下个轴又要这样写,我们的工作就会变的很烦锁。





这个时候了,我们使用FB块功能,把我们重复用到的东西写成一个功能块,然后我们再进行调用。就像这样,我们要使能就使能对应的开关量,想要控制那个就控制那个,把这个FB块打出来就行了。






使能FB块




使能FB块我们使能变量Power为InPut类型,Axis为输入输出双类型,最后就输出一个使能完成就可以了。


结省一下时间,这边我就只直叫变量功能,这边需要有一定的FB基础不然还真看不会。






点动FB块




点动用到变量,我这边取名给以下变量


输入:JOG_F点动正方向、JOG_B点正反方向、JOG_E点触发、Axis轴名字、JOG_VEL点动速度、JOG_ACC点动加速度


使用到的的功能块:BMC_A_VelMove









停止FB块




用到变量,我这边取名给以下变量


输入:JOG_E点触发、STOP_E停止按钮、Axis轴名字


使用到的的功能块:BMC_A_Stop







绝对定位FB块




用到变量,我这边取名给以下变量


输入:MOVEA_E绝对定位启动、、Axis轴名字、MOVEA_POS绝对定位 位置、MOVEA_VEL绝对位置 速度、MOVEA_ACC绝对位置 加速度


输出:MOVEA_OK绝对定位OK


使用到的的功能块:BMC_A_MoveA







相对定位FB块




用到变量,我这边取名给以下变量


输入:MOVER_E绝对定位启动、、Axis轴名字、MOVER_POS绝对定位 位置、MOVER_VEL绝对位置 速度、MOVER_ACC绝对位置 加速度


输出:MOVEA_OK绝对定位OK


使用到的的功能块:BMC_A_MoveR







Home回原点FB块




用到变量,我这边取名给以下变量


输入:HOME_E HOME回原启动、、Axis轴名字、




输出:HOME_OKHome回原OK


使用到的的功能块:BMC_A_Home










ZRN回原点




用到变量,我这边取名给以下变量


输入:E_ZRN回原启动、、Axis轴名字、




输出:ZRN_OK回原OK


使用到的的功能块:BMC_A_ZRN








轴复位FB块




用到变量,我这边取名给以下变量


输入:RESET_E启动、、Axis轴名字、




输出:RESET_OK 复位完成


使用到的的功能块:BMC_A_Reset







WRITE位置设定FB块




用到变量,我这边取名给以下变量


输入:WRITE启动、、Axis轴名字、




使用到的的功能块:BMC_A_Write







轴的状态显示




轴的状态显示我这边用C语言写一个FB功能块,为什么这么用了,因为我们很多触摸屏不支双精度位数的所以我才转了一次,不是64转32啊记得




轴的状态,我这边用每个输出的忙在内部使用Busy这样无论是那个块在用都显示出来了。




轴的位置显示FB块,这边是调用做好了的数据转换块。


也就是我们常说的FB调用FB块。


Axis.Act.Pos这个参数是需要调用系统轴的配置的只读不能写


Axis结构体的类型,至于什么是结构体大家可以百度,它讲的比我好。









其它轴的参数输出









FB块的使用




我们做好了FB块,要想使用我们必须给它实例化,把轴给实例化过去给FB块,有多少个轴就使用多少个数组数就要可以了。




在使用FB时我们只需输入对应的轴号就行了。


让我们的卢工讲解一下程序配置






所有程序知识由项目组成员“糖芦卢”提供晓煜做整理和讲解,不足之处欢迎指出


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?获取邀请码

x
您需要登录后才可以回帖 登录 | 获取邀请码

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

Copyright 2010-2015. All rights reserved. 

微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码