设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
排行榜
积分充值
帖子
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国产:台达/汇川/信捷产品交流区』
›
信捷PLC-EtherCAT通讯32个轴程序写法
返回列表
发新帖
[信捷]
信捷PLC-EtherCAT通讯32个轴程序写法
[复制链接]
90627
|
0
|
5 天前
|
显示全部楼层
|
阅读模式
‖ 系统学习
人生就像一场马拉松,偶尔停下来摸摸鱼,才能走得更远
近期工控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
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
shtymzd
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』