超值干货!三菱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,详细设置如下图所示:
2、松下A5系列伺服通信参数:数据位设置为8位、校验方式设置为偶校验、停止位设置为1位、通信物理层为RS485、通信波特率为9600bps、轴编号设置为1。
三、松下A5系列伺服通信协议:
三菱FX5U系列PLC要读取松下A5系列伺服绝对式数据要经过4次通信发送和接收才能完成,其松下A5系列伺服通信协议流程图和数据格式如下两图所示:
其中通信命令详解如下:
(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伺服串口通信程序段,程序梯形图如下图所示:
2、通信命令程序段1:RS2指令发送缓冲区首地址为D10、发送字节计数为2、接收缓冲区首地址为D20、接收字节计数为2,标志位M1置位后开始延时,延时时间到达后,给发送缓冲区依次填写数据81、05,将开始发送标志位SM8561手动置位,发送完成后进入到等待接收程序命令段。如果接收超时则进入到继续定时发送数据H0581程序段;如果接收完成,接收完成标志位SM8562自动置位,判断接收到的数据是否为81 04,如果接收到的数据为81 04则进入到下一个通信命令程序段;如果接收到的数据非81 04则继续定时发送数据81 05,梯形图程序如下图所示:
3、通信命令程序段2:RS2指令发送缓冲区首地址为D40、发送字节计数为4、接收缓冲区首地址为D50、接收字节计数为1,标志位M4置位后开始延时,延时时间到达后依次给发送缓冲区填写数据00 01 D2 2D,将开始发送标志位SM8561手动置位,发送完成后进入到等待接收程序命令段。如果接收完成,接收完成标志位SM8562自动置位,判断接收到的数据是否为06,如果接收到的数据为06则进入到下一个通信命令程序段;如果接收到的数据非H06则进入继续定时发送数据81 05程序命令段,梯形图程序如下图所示:
4、通信命令程序段3:RS2指令发送缓冲区首地址为D70、发送字节计数为2、接收缓冲区首地址为D80、接收字节计数为2,标志位M7置位后则进入到等待接收程序命令段,如果接收超时则进入到继续定时发送数据81 05程序段;如果接收到的数据为80 05则开始给松下A5伺服发送80 04,发送完成进入到下一个程序命令段;如果接收到的数据非80 05则进入到继续定时发送数据81 05程序命令段,程序梯形图如下图所示:
5、松下A5伺服绝对式数据的处理与保存:D130、D131、D132等3个寄存器中保存的是松下A5伺服单圈数据和多圈数据的原始值,经过数据处理,D200和D201组成的32位寄存器中保存的是单圈数据、D202保存的是多圈数据,程序梯形图如下图所示:
五、松下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系列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系列PLC和松下A5系列伺服连接起来,通信测试后,发现PLC可以定时读取到伺服绝对式数据,并可将读取到的绝对式数据保存至指定的寄存器中,通信已然成功。
PLC是怎么控制伺服电机的?如何设计一个伺服系统?
(一)PLC是怎么控制伺服电机的?
在回答这个问题之前,首先要清楚伺服电机的用途,相对于普通的电机来说,伺服电机主要用于精确定位,因此大家通常所说的控制伺服,其实就是对伺服电机的位置控制。其实,伺服电机还用另外两种工作模式,那就是速度控制和转矩控制,不过应用比较少而已。
速度控制一般都是有变频器实现,用伺服电机做速度控制,一般是用于快速加减速或是速度精准控制的场合,因为相对于变频器,伺服电机可以在几毫米内达到几千转,由于伺服都是闭环的,速度非常稳定。转矩控制主要是 控制伺服电机的输出转矩,同样是因为伺服电机的响应快。应用以上两种控制,可以把伺服驱动器当成变频器,一般都是用模拟量控制。
伺服电机最主要的应用还是定位控制,位置控制有两个物理量需要控制,那就是速度和位置,确切的说,就是控制伺服电机以多快的速度到达什么地方,并准确的停下。
伺服驱动器通过接收的脉冲频率和数量来控制伺服电机运行的距离和速度。比如,我们约定伺服电机每10000个脉冲转一圈。如果PLC在一分钟内发送10000个脉冲,那么伺服电机就以1r/min的速度走完一圈,如果在一秒钟内发送10000个脉冲,那么伺服电机就以60r/min的速度走完一圈。
所以,PLC是通过控制发送的脉冲来控制伺服电机的,用物理方式发送脉冲,也就是使用PLC的晶体管输出是最常用的方式,一般是低端PLC采用这种方式。而中高端PLC是通过通讯的方式把脉冲的个数和频率传递给伺服驱动器。
比如:Profibus-DP CANopen、MECHATROLINK-II、EtherCAT等等。
这两种方式只是实现的渠道不一样,实质是一样的,对我们编程来说,也是一样的。这也就是我想跟大家说的,要学习原理,触类旁通,而不是为了学习而学习。
对于程序编写,这个差别很大,日系PLC是采用指令的方式,而欧系PLC是采用功能块的形式。但实质是一样的,比如要控制伺服走一个绝对定位,我们就需要控制PLC的输出通道,脉冲数,脉冲频率,加减速时间,以及需要知道伺服驱动器什么时候定位完成,是否碰到限位等等。无论哪种PLC,无非就是对这几个物理量的控制和运动参数的读取,只是不同PLC实现方法不一样。
(二)如何设计一个伺服系统?
(来源:网络,版权归原作者所有,侵删!)
相关问答
plc与伺服驱动器通讯怎么编写程序?
PLC与伺服驱动器通讯的程序编写步骤通常如下:1.确定通讯方式:根据PLC和伺服驱动器的型号和通讯接口,确定采用何种通讯方式,例如Modbus、Ethernet/IP、Profib...
西门子plc和伺服用哪种通信?
西门子PLC与伺服系统之间的通信方式有多种选择,这主要取决于具体的PLC型号、伺服系统型号以及应用场景需求。以下是几种常见的通信方式:1.**PPI通信**:这是S...
伺服驱动器和PLC通信协议?
各大知名厂家都有一套自己的协议。FANUC的是FSSB总线西门子是自己的总线,PROFIBUS用的较多吧,当然也可是以太网,PROFINETMPI。数控车床上用伺服通信的,都...
PLC与伺服电机的连接-懂得
一、触摸屏、PLC、伺服控制器、伺服电机之间的连接顺序如下:通过专用的数据线,就可以将他们有机的联系起来,构成一套比较完整的自动化控制系统。二...
plc怎么连接和控制伺服电机-阿朔与土拨鼠的回答-懂得
plc一般不会直接接伺服电机,而是先接伺服驱动器,由伺服驱动器去控制电机,具体要几根线就要看你的伺服电机和驱动器是什么样的了,这些说明书上都有,...
信捷plc总线控制伺服编程实例?
回答如下:以下是一个信捷PLC总线控制伺服编程实例:假设我们要控制一个伺服电机,该电机有一个编码器反馈,用于检测它的位置。我们需要使用信捷PLC和总线控制...
PLC怎样与伺服驱动器连一起?
PLC可以通过数字量输出或模拟量输出与伺服驱动器连接。数字量输出可以用来控制伺服马达的启停、正转、反转等功能,而模拟量输出可以用来控制伺服马达的速度和...
汇川plc与汇川伺服控制器通讯设置?
你好,汇川PLC与汇川伺服控制器通讯设置需要以下步骤:1.检查PLC和伺服控制器的通讯接口,确保它们之间可以进行通讯。2.在PLC中,设置通讯协议和通讯参数,...
西门子PLc和伺服驱动器通信如何设置运动控制向导?
要设置西门子PLC和伺服驱动器之间的通信,可以使用西门子的运动控制向导。首先,确保PLC和驱动器之间的硬件连接正确。然后,在TIAPortal软件中打开运动控制向...
plc总线控制伺服如何编程?
我用的是松下的plc----脉冲指令有PLSH:脉冲输出指令---SPDH:位置控制----PWM:PWM输出指令----PLS:脉冲输出指令SPD1:位置控制--------SPCH...