工控网首页
>

应用设计

>

通过Modbus RTU读取迈信伺服电机绝对位置

通过Modbus RTU读取迈信伺服电机绝对位置

迈信伺服电机支持2500线增量编码器17位绝对值编码器,23位绝对值编码器,25位绝对值编码器,其中绝对式编码器有每一个位置绝对唯一、抗干扰性强、掉电记忆等特点,在定位方面优于增量编码器,已经越来越广泛地应用于各种工业系统中。本文将介绍如何使用MC运动控制器读取电机的绝对位置供大家参考。

电机-3.jpg

1、配置电缆

准备mc运动控制器,EP1C Plus伺服驱动,迈信绝对式伺服电机,按照说明配置好电缆,示意图如下:

2.png

2、连接伺服驱动器与控制器电缆

制作伺服驱动与控制器的通讯电缆并连接,驱动器通讯接口为X5、X6,控制器通讯接口为绿色端子标注的485A、485B处。

3.png

3、将编程软件连接到控制器

打开“Maxsine Motion2.69 ”编程软件,连接控制器,新建项目,新建BASIC程序,添加到项目:

4.png

4、查找RS485,port通道号

不同型号的控制器支持的通道数不同,使用在线命令?*port查看。

>>?*PORT

Port:0-COM.

Port:1-COM.

Port:2-ETH.

Port:3-ETH.

5、设置驱动器的通讯参数

迈信EP1C Plus驱动器通讯参数为P300,站号,P301,波特率,P302,通讯协议。例程中设置分别为P300=1 ,P301=1,P302=4。

6、编写通讯程序

1)设置运动控制器的com参数

SETCOM(9600,8,1,2,1,14,0,1000)'vr和modbus,超时是1000毫秒

WA(20)

MODBUSM_DES(1,1)'设置485端口,对方站号1

2)测试通讯连接

MODBUSM_REGGET(4120,1,0)'读报警代码

WAIT UNTIL MODBUSM_STATE <> 1'等待消息结束

?MODBUSM_STATE'打印通讯结果

IF MODBUSM_STATE=0 THEN

? "MODBUS PORT opened ok"

ELSEIF MODBUSM_STATE=2 THEN

? "MODBUS PORT timeout"

ELSEIF MODBUSM_STATE=3 THEN

?"error, MODBUS server NOT found"

ENDIF

3)添加读取绝对值单圈多圈信息程序并合成32bit数据的用户函数

GLOBAL SUB READ_ABS_POS()

'read absolute position from 1014h and 1015h

MODBUSM_REGGET($1014,2,single_pos)

WA(200)

WAIT UNTIL MODBUSM_STATE <> 1 

'combine two 16-bit signed positions to a 32-bit signed position

IF VR(single_pos)<0 THEN

VR(abs_pos)=(65536+VR(single_pos))+(VR(single_pos+1)<<16)

ELSE

VR(abs_pos) = VR(single_pos) + (VR(single_pos+1)<<16)

ENDIF

?"当前绝对位置是" VR(abs_pos)

END SUB

7、下载到控制器中测试

6.png

7-1.png

审核编辑(
王静
)
投诉建议

提交

查看更多评论
其他资讯

查看更多

迈信电气许强博士荣获“光谷工匠企业家”称号

EP5系列产品应用案例集(第一期)

迈信EP5系列高性能伺服

EP5新一代高性能伺服亮相中国(玉环)国际机床展

迈信电气获湖北省专精特新“小巨人”企业荣誉称号