三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)

一、系统概述:

柳钢某车间一期控制系统主控制器使用松下FPXH系列PLC、主驱动器使用松下A5系列伺服控制器,二期项目立项开工,控制系统主控制器使用三菱FX5U系列PLC,该三菱FX5U系列PLC本体集成1路以太网通信口、1路RS485串行通信口。现今要求二期控制系统主控制器三菱FX5U系列PLC通过通信方式定时读取一期主驱动器松下A5系列伺服绝对式数据(单圈数据和多圈数据),经查松下A5系列伺服通信协议为非Modbus协议,故而三菱FX5U只能通过RS2指令无协议编程实现和松下A5系列伺服串口通信。

二、通信参数约定:

1、三菱FX5U系列PLC通信参数:协议格式为无顺序通信、数据位设置为8位、校验方式设置为偶校验、停止位设置为1位、通信物理层为RS485、通信波特率为9600bps、数据处理模式为16位模式、帧头无添加、帧尾无添加、和校验不添加、无添加回车和换行符、超时时间设置为1000ms,详细设置如下图所示:

三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)(1)

2、松下A5系列伺服通信参数:数据位设置为8位、校验方式设置为偶校验、停止位设置为1位、通信物理层为RS485、通信波特率为9600bps、轴编号设置为1。

三、松下A5系列伺服通信协议:

三菱FX5U系列PLC要读取松下A5系列伺服绝对式数据要经过4次通信发送和接收才能完成,其松下A5系列伺服通信协议流程图和数据格式如下两图所示:

三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)(2)

三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)(3)

其中通信命令详解如下:

(1)三菱FX5U发送:81 05

(2)松下A5返回:81 04

(3)三菱FX5U发送:00 01 D2 2D(2D为LRC校验码)

(4)松下A5返回:06 或 15

(5)松下A5返回:80 05

(6)三菱FX5U发送:80 04

(7)松下A5返回:0B 01 D2 03 11 00 00 D8 FF 01 00 00 00 00 36(36是LRC校验码)

(8)三菱FX5U返回:06 或 15

其中数据格式详解如下所示:

以0B 01 D2 03 11 00 00 D8 FF 01 00 00 00 00 36为例说明:0B:起始符

01:axis轴编号

D2:2为mode命令执行模式、D为command控制命令

03:编码器ID低8位

11:编码器ID高8位

00:编码器状态低8位

00:编码器状态高8位

D8:单圈数据低8位

FF:单圈数据中8位

01:单圈数据高8位

00:多圈数据低8位

00:多圈数据高8位

00:固定为0

00:错误码,无错时为00

36:前14个字节的LRC校验码

四、三菱FX5U系列PLC通信编程详解:

1、初始化程序命令段:上电初始化时置位M0、复位其他所有标志位和寄存器,M0置位后开始延时,延时时间到达时置位M1、复位M0,M1置位后开始执行和松下A5伺服串口通信程序段,程序梯形图如下图所示:

三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)(4)

2、通信命令程序段1:RS2指令发送缓冲区首地址为D10、发送字节计数为2、接收缓冲区首地址为D20、接收字节计数为2,标志位M1置位后开始延时,延时时间到达后,给发送缓冲区依次填写数据81、05,将开始发送标志位SM8561手动置位,发送完成后进入到等待接收程序命令段。如果接收超时则进入到继续定时发送数据H0581程序段;如果接收完成,接收完成标志位SM8562自动置位,判断接收到的数据是否为81 04,如果接收到的数据为81 04则进入到下一个通信命令程序段;如果接收到的数据非81 04则继续定时发送数据81 05,梯形图程序如下图所示:

三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)(5)

3、通信命令程序段2:RS2指令发送缓冲区首地址为D40、发送字节计数为4、接收缓冲区首地址为D50、接收字节计数为1,标志位M4置位后开始延时,延时时间到达后依次给发送缓冲区填写数据00 01 D2 2D,将开始发送标志位SM8561手动置位,发送完成后进入到等待接收程序命令段。如果接收完成,接收完成标志位SM8562自动置位,判断接收到的数据是否为06,如果接收到的数据为06则进入到下一个通信命令程序段;如果接收到的数据非H06则进入继续定时发送数据81 05程序命令段,梯形图程序如下图所示:

三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)(6)

4、通信命令程序段3:RS2指令发送缓冲区首地址为D70、发送字节计数为2、接收缓冲区首地址为D80、接收字节计数为2,标志位M7置位后则进入到等待接收程序命令段,如果接收超时则进入到继续定时发送数据81 05程序段;如果接收到的数据为80 05则开始给松下A5伺服发送80 04,发送完成进入到下一个程序命令段;如果接收到的数据非80 05则进入到继续定时发送数据81 05程序命令段,程序梯形图如下图所示:

三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)(7)

5、松下A5伺服绝对式数据的处理与保存:D130、D131、D132等3个寄存器中保存的是松下A5伺服单圈数据和多圈数据的原始值,经过数据处理,D200和D201组成的32位寄存器中保存的是单圈数据、D202保存的是多圈数据,程序梯形图如下图所示:

三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)(8)

五、松下A5系列伺服通信测试:

使用USB转RS485电缆连接电脑和松下A5系列伺服,串口调试助手通信测试命令如下所示:

串口调试助手发送:81 05、松下A5伺服返回81 04

串口调试助手发送:00 01 D2 2D、松下A5伺服返回06

松下A5伺服发送:80 05、串口调试助手返回80 04

松下A5伺服发送:0B 01 D2 03 11 00 00 D8 FF 01 00 00 00 00 36、串口调试助手返回06

以上说明,松下A5伺服通信测试无误。

三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)(9)

六、三菱FX5U系列PLC通信测试:

使用USB转RS485电缆连接电脑和三菱FX5U系列PLC,串口调试助手通信测试命令如下所示:

三菱FX5U发送:81 05、串口调试助手返回81 04

三菱FX5U:00 01 D2 2D、串口调试助手返回06

串口调试助手发送:80 05、三菱FX5U返回80 04

串口调试助手发送:0B 01 D2 03 11 00 00 D8 FF 01 00 00 00 00 36、三菱FX5U返回06

以上说明,三菱FX5U通信测试无误。

三菱fx5u编程指令培训(三菱FX5UPLC和松下A5伺服实现无协议串口通信)(10)

七、系统联调:

将三菱FX5U系列PLC和松下A5系列伺服连接起来,通信测试后,发现PLC可以定时读取到伺服绝对式数据,并可将读取到的绝对式数据保存至指定的寄存器中,通信已然成功。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页