运动轴控制类:用RS485通信来读取绝对值伺服电机的定位操作

您所在的位置:网站首页 绝对值编程怎么写 运动轴控制类:用RS485通信来读取绝对值伺服电机的定位操作

运动轴控制类:用RS485通信来读取绝对值伺服电机的定位操作

2024-07-16 14:24| 来源: 网络整理| 查看: 265

操作视频:

https://www.bilibili.com/video/BV1pf4y1c7Mw/

PLC程序文件与触摸屏界面程序(百度网盘下载):

https://pan.baidu.com/s/1h8zWfeZstM6G4d6anLhv_A

【正文】

PLC控制伺服电机用到的最多的方式就是脉冲控制,也就是PLC发送脉冲,伺服驱动器接收脉冲。现在呢,我们需要通过modbus协议,PLC用RS485通信来读取绝对位置伺服电机的当前位置值。

先了解用RS485通信(以下简称485)读取电机当前位置的作用:

PLC控制伺服电机运动,可以通过编程来设定电机的速度和位移,一旦PLC断电,再次上电运行时,我们就不能确定电机在PLC掉电前的位置,所以只能做上电回零的处理,那这样操作的话,设备就必须从头开始运行。

类似这样上电回零再运行的设置方式,对于个别行业是不适用的,因此我们需要记录PLC掉电前的电机实际位置,所以PLC必须要用到掉电记忆的功能,为了精准的采集到电机的当前位置,就需要PLC的掉电记忆以及跟伺服电机的485通信来达到实时读取电机位置的目的。

我们现在侧重于PLC与绝对位置伺服电机的设置方式。

此处PLC与绝对位置型的伺服电机通信,我们这里以纳智伺服电机为例:

一、PLC程序设置:

1.PLC控制伺服电机运行的启动程序:

在触摸屏界面做点动启动,用M1作为电机启动的按钮(按钮功能:交替)。

程序中对应的电机运动方式:按下M1按钮,电机正转,松开M1按钮,电机停止;再按一次M1按钮,电机反转,松开M1按钮,电机停止;如此往复循环。

2.PLC中的485通信设置程序:

请注意,电机驱动器内部通信数据为16进制,PLC的通信数据为10进制,所以两者之间的通信必须要进行进制转换。

① PLC内部Modbus_RTU通信配置:

添加两条通信程序,如下图:

指令解析:

序号0:检测标志M80,M80作为显示屏上采集伺服电机绝对位置的启动键;本机资料W0,表示将读取到的电机编码器位置,保存在PLC的W0寄存器里面;传输方向是双字,读取,用于读取伺服电机位置,因为用的W0寄存器来保存位置值的,所以是用双字节的读取方式;从机资料:4xd4127。(详细说明,见下方进制换算的解说)

其中M80的启动程序需要用到一个环编辑,用M0启动标志M80的程序。

在PLC与电机的通信过程中,用的是标准的modbus协议,所以是以“次”为单位计算的,每次通信,M80都会自动断开一次,如果M0一直有信号,就会一直触发M80通。

序号1:检测标志M81,M81作为显示屏上对电机位置的清零键;本机资料G0,表示将清零的数据通过寄存器G0直接写入到电机驱动器里面,从而实现清零的操作;传输方向是写入,也就是写入清零的数据,因为用的是G0寄存器,所以是单字节的写入方式;从机资料4x4096。(详细说明,见下方进制换算的解说)

二、伺服电机参数对照-进制换算:伺服电机的数据是16进制,需要换算成10进制数据,才能对应到PLC,从而实现通信。

1、PLC读取伺服电机的绝对位置设置:

这个数据是读取伺服电机绝对位置的,我们需要将16进制的0x101F,换算成10进制的数据,再写进PLC程序中。

进制换算小助手

进制换算可以借助电脑的智能计算器 👇👇👇

⬇⬇⬇

选择进入“程序员”的界面后,直接在“HEX”这一栏中输入101F,计算器的“HEX”一栏,表示16进制,在这里输入伺服电机的位置地址单元101F(地址单元是0x101F,只要输入101F);。

输入101F后,下面的“DEC”一栏就会自动的生成相对应的10进制地址值:4127,也就是PLC通过485方式读取的位置地址,在PLC中是0x4127,编辑程序的时候将地址值写成4127即可。

对应的PLC程序解析:

电机的多圈位置,是32位地址,对应到PLC的数据必须要用到双字节,PLC内部关于位置的双字节寄存器就是W32位寄存器,也就是用到W寄存器显示电机的绝对位置。

①M80:实时读取的启动键;

②主机资料:0,表示寄存器的ID;

③数据类型:选择的是:双字;写4xD,这个对应的是PLC的W32位寄存器,因为W寄存器是双字节的,所以表示W寄存器;对应到主机资料0,这条指令就是用的W0寄存器。

④从机资料:4127,就是PLC读取的伺服电机位置的10进制地址值;

2、伺服电机多圈位置清零设置:

多圈位置清零:伺服驱动器对应的清零地址单元是0x1000,清零写入的数据是0x1111。

用智能计算器进行进制换算,写入PLC内部通信的10进制的地址以及数据,分别是:

进制换算小助手

进制换算可以借助电脑的智能计算器 👇👇👇

1>地址换算:伺服电机驱动器清零对应地址是0x1000。

计算器的“HEX”一栏,表示16进制,在这里输入伺服电机的清零地址单元1000(地址单元是0x1000,只要输入1000);

输入1000后,下面的“DEC”一栏就会自动的生成相对应的10进制地址值:4096,也就是PLC通过485方式读取的清零地址,在PLC中是0x4096,编辑程序的时候将地址值写成4096即可。

对应的PLC程序解析:

添加指令后,只要填写属性中打勾部分的参数,其他的默认。

①M81:清零键

②主机资料:0,表示寄存器的ID;

③数据类型:选择的是:字;写4x,这个对应的是PLC的G_16位寄存器,因为G寄存器是单字节的,所以表示G寄存器;对应到主机资料0,这条指令就是针对G0的数据写入。

④从机资料:4096,就是PLC识别的伺服电机清零位置的10进制地址值;

2>数据换算:伺服电机驱动器清零对应数据是0x1111。

伺服电机清零的数据是0x1111换算成十进制就是4369,也就是G0的数值是4369,我们可以直接在寄存器值那里填写4369。

以上所述,读取绝对值伺服电机的位置以及清零多圈位置,也就是PLC的寄存器W0显示电机的绝对位置,寄存器G0数据表示清零。这样对应写好,就能实现对绝对式伺服电机的位置读取以及对电机的多圈位置清零的操作。

请注意,必须填写对应的数据,否则读取或者清零都是无效的。

将设置好程序下载进PLC,PLC与伺服电机用485通信线连接,就可以检验设置的成果了。

操作视频:

https://www.bilibili.com/video/BV1pf4y1c7Mw/

PLC程序文件与触摸屏界面程序(百度网盘下载):

https://pan.baidu.com/s/1h8zWfeZstM6G4d6anLhv_A

JENASI_PLC

娄底市简思工控有限公司研发的新一代可编程PLC

不同于传统PLC基于继电器电路的梯形图编程方法

基于控制流程采用电脑中文指令进行编程

具有编程简易,维护方便的特点



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3