一种基于Modbus RTU协议的永磁同步电机数据通信系统及方法转让专利

申请号 : CN201611036488.9

文献号 : CN106533874B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李凡段巍王成胜兰志明杨琼涛蒋珺唐磊赵悦苑莉刘澍

申请人 : 北京金自天正智能控制股份有限公司

摘要 :

本发明公开了一种基于Modbus RTU协议的永磁同步电机数据通信系统及方法,数据通信系统包括:永磁同步电机控制板、外部设备触摸屏、隔离型RS485协议转换芯片ADM2587和双绞电缆;通信方法为定时器中断与串口接收中断相结合的方式实现了Modbus RTU协议,并应用该协议使永磁同步电机控制系统与外部设备触摸屏之间实现双向数据交互,形成了一套集成速度控制、故障监测、指令输入、系统状态显示等功能于一体的功能完善的永磁同步电机工程化通信方法;本发明可使永磁同步电机控制系统与任意厂家的支持Modbus RTU协议的设备进行通信,扩展性好,传输数据准确无误、稳定可靠。

权利要求 :

1.一种基于Modbus RTU协议的永磁同步电机数据通信系统,包括永磁同步电机控制板、触摸屏和双绞电缆;

永磁同步电机控制板包括主控制器、隔离型RS485协议转换芯片和电气接口端子J2,主控制器采用DSP28335,隔离型RS485协议转换芯片采用ADM2587,电气接口端子J2为RS485;

主控制器DSP28335的串口C的接收引脚SCIRXC与隔离型RS485协议转换芯片协议转换芯片ADM2587的输入端RXD引脚相连接,主控制器DSP28335的串口C的发送引脚SCITXC与隔离型RS485协议转换芯片ADM2587的TXD引脚相连接,隔离型RS485协议转换芯片ADM2587的读写使能引脚 和DE连接,与主控制器DSP28335的通用IO口引脚GPIO46相连接,隔离型RS485协议转换芯片ADM2587的A引脚与电气接口端子J2的RS485+相连,隔离型RS485协议转换芯片ADM2587的B引脚与电气接口端子J2的RS485-相连,双绞电缆将电气接口端子J2的RS485+与触摸屏的端口A连接,双绞电缆将电气接口端子J2的RS485-与触摸屏的端口B连接;

永磁同步电机控制板与触摸屏之间的数据通信协议为Modbus RTU协议。

2.基于权利要求1所述的一种基于Modbus RTU协议的永磁同步电机数据通信系统的通信方法,触摸屏为主站,永磁同步电机控制板为从站,触摸屏每100ms向从站发送8个数据,在进入串口接收中断后,首先对串口进行ACK复位操作,然后再将存放在串口接收缓冲区的数据存放到预置数组Receive[count]中,接着,接收数据计数器count开始增1操作,并判断计数值是否等于8,如果等于8,则计数器清零且将接收完毕的标志位flag_finish置1;如果计数值不等于8,则继续接收,直到8个数据接收完毕;

永磁同步电机控制板的主控制器的定时器中断采用100ms的运算周期,对于输出到触摸屏上显示数据的刷新频率是1s,对于接收来自触摸屏的设置数据的刷新频率是300ms,在进入定时器中断之后,首先判断接收完毕的标志位flag_finish是否等于1,如果不等于1,说明串口并未接收8个数据完毕,则继续接收,如果标志位flag_finish等于1,则表示接收8个数据完毕,接下来要对接收的数据进行解析,按照Modbus RTU协议要求,首先判断数组Receive[8]中的第二个数Receive[1]是否为功能码3或者功能码6,如果Receive[1]等于功能码3,则表示读寄存器操作,即把显示的数据输出到触摸屏上进行显示,如果Receive[1]等于功能码6,则表示写寄存器操作,即接收来自触摸屏上设置的数据;如果Receive[1]等于功能码3,显示计数器Displaycount增1,当显示计数器Displaycount等于10时,即表示达到1s的显示刷新频率,要输出到触摸屏上显示的数据分类,第一类为实时变化的数据,均为数值型变量,通过逻辑与运算拆分成高低字节的形式,第二类为系统的故障数据,为开关型变量,将这类开关量通过按位移项操作,合并成若干个数值型变量发送出去,第三类为永磁同步电机系统状态的开关量数据,通过按位移项操作合成数值型变量发送,按照ModbusRTU协议的要求,将显示的数据值与设备地址、命令、字节数、CRC校验位的数据依次存入发送数组,再将此数组送入响应数据输出环节,接着将读写控制引脚置高电平,延时1ms,数组发送完毕之后,再将读写控制引脚置低电平,上述过程为永磁同步电机控制板输出到触摸屏上显示数据的过程;

如果Receive[1]等于功能码6,则表示接收来自触摸屏的速度控制数据、关键参数、控制指令;设置计数器Setcount增1,当显示计数器Setcount等于3时,即表示达到300ms的刷新频率,首先接收来自触摸屏的高低字节分开的参数值,进行左移及逻辑或操作合并在一起,其次,接收来自触摸屏的关键参数设置,最后接收来自触摸屏的关键指令设置,将开关量类的控制指令移位并组合成若干个数值型变量;将上述三类设置的数据值与设备地址、命令、字节数、起始地址、CRC校验位数据,依次存入发送数组后,再将此数组送入响应数据输出环节,接着将读写控制引脚置高电平,延时1ms,数组发送完毕之后,再将读写控制引脚置低电平,上述过程为永磁同步电机控制板从触摸屏上读取设置数据的过程。

说明书 :

一种基于Modbus RTU协议的永磁同步电机数据通信系统及

方法

技术领域

[0001] 本发明属于电力电子及交流传动系统的数据通信领域,具体涉及一种基于Modbus RTU协议的永磁同步电机数据通信系统及方法。

背景技术

[0002] 目前,节能降耗已经成为我国基本国策,对高效节能电机的需求日趋迫切,再加上近年来永磁材料的快速发展,永磁同步电机由于其具有体积小、重量轻、高效节能、运行平稳等一系列优点及优越的技术性能,已广泛应用于水泵、风机、升降机、起重机、电动汽车、船舶推进等多个场合。
[0003] 永磁同步电机的控制技术也得到细致研究,在永磁同步电机控制场合,数据通信是不可或缺的重要组成环节,为了满足对永磁同步电机的运行控制、维护、管理、运行或故障状态监测的需要,要进行大量的数据传输与数据交换,永磁同步电机控制系统必须具备数据通信的功能。
[0004] Modbus协议已成为数据通信领域最流行的协议,它具有标准、开放、高可靠性的特点,它采用主站查询从站的方式通信,并可以支持多种类型的电气接口,可以是RS232、RS485、RS422、以太网等,还可以在各种介质上传送,如双绞线、光纤等。依靠Modbus协议,不同厂商生产的控制设备可以连成工业网络,便于控制与管理。

发明内容

[0005] 本发明的目的是为了解决上述问题,提出一种基于Modbus RTU协议的永磁同步电机数据通信系统及方法,解决了对永磁同步电机的运行控制、状态监测及参数设置,实现了外部设备触摸屏与永磁同步电机控制系统之间的双向数据通信,并且该通信方法具有可扩展性,可使永磁同步电机控制系统与不同厂家的控制设备进行双向数据通信。
[0006] 一种基于Modbus RTU协议的永磁同步电机数据通信系统,包括永磁同步电机控制板、触摸屏和双绞电缆;
[0007] 永磁同步电机控制板包括主控制器、隔离型RS485协议转换芯片和电气接口端子J2,主控制器采用DSP28335,隔离型RS485协议转换芯片采用ADM2587,电气接口端子J2为RS485;
[0008] 主控制器DSP28335的串口C的接收引脚SCIRXC与隔离型RS485协议转换芯片协议转换芯片ADM2587的输入端RXD引脚相连接,主控制器DSP28335的串口C的发送引脚SCITXC与隔离型RS485协议转换芯片ADM2587的TXD引脚相连接,隔离型RS485协议转换芯片ADM2587的读写使能引脚 和DE连接,与主控制器DSP28335的通用IO口引脚GPIO46相连接,隔离型RS485协议转换芯片ADM2587的A引脚与电气接口端子J2的RS485+相连,隔离型RS485协议转换芯片ADM2587的B引脚与电气接口端子J2的RS485-相连,双绞电缆将电气接口端子J2的RS485+与触摸屏的端口A连接,双绞电缆将电气接口端子J2的RS485-与触摸屏的端口B连接;
[0009] 永磁同步电机控制板与触摸屏之间的数据通信协议为Modbus RTU协议。
[0010] 本发明的优点在于:
[0011] (1)本发明的通信方法采用Modbus RTU协议,扩展性好,可靠性高,可实现永磁同步电机控制系统与支持Modbus RTU协议的任何厂家的触摸屏、PLC等设备进行双向数据交互,且支持的电气接口多样化,本发明采用的RS485接口,抗干扰性好,可靠性高,适用于工业控制场合;
[0012] (2)本发明的通信方法采用定时器中断与串口接收中断相结合的模式,程序设计合理、有效,保证了数据交互过程中无读写冲突发生,数据传输准确无误;
[0013] (3)本发明形成了一套完善的工程化永磁同步电机控制系统的数据通信方法,实现了永磁同步电机的速度给定控制、故障监测与保护部分、关键参数的设置、状态显示等功能,方便调试人员在线调试,同时也方便用户进行管理。

附图说明

[0014] 图1为永磁同步电机控制系统控制板与触摸屏的通信系统框图;
[0015] 图2为基于Modbus RTU协议的永磁同步电机通信方法串口接收中断流程图;
[0016] 图3为基于Modbus RTU协议的永磁同步电机通信方法定时器中断流程图。

具体实施方式

[0017] 下面将结合附图和实施例对本发明作进一步的详细说明。
[0018] 本发明的一种基于Modbus RTU协议的永磁同步电机数据通信系统及方法实现了永磁同步电机控制板与触摸屏之间的双向数据传递。其硬件是由永磁同步电机控制板、触摸屏、隔离型协议转换芯片ADM2587和双绞电缆组成的。其软件采用串口接收中断与定时器中断相结合的方法,并编制Modus RTU协议来实现的。永磁同步电机控制板的主控制器为TI公司的TMS320F28335DSP,隔离型协议转换芯片ADM2587的作用是将串口协议转换为RS485协议。数据通信的电气接口为RS485,传输介质采用双绞电缆。触摸屏为主站,永磁同步电机控制板设为从站,永磁同步电机控制板与触摸屏之间的数据通信协议为Modbus RTU协议。
[0019] 首先,本发明提供了一种基于Modbus RTU协议的永磁同步电机数据通信系统,该通信系统的硬件连接是采用如图1所示的连接方法。将永磁同步电机控制板中的主控制器DSP28335的串口C的接收引脚SCIRXC与隔离型RS485协议转换芯片ADM2587的输入端RXD引脚相连接,永磁同步电机控制板中的主控制器DSP28335的串口C的发送引脚SCITXC与隔离型RS485协议转换芯片ADM2587的TXD引脚相连接,将隔离型RS485协议转换芯片ADM2587的读写使能引脚 和DE连接在一起,再与永磁同步电机控制板中的主控制器DSP28335的一个通用IO口引脚GPIO46相连接。隔离型RS485协议转换芯片ADM2587的A引脚与端子J2的RS485+相连,隔离型RS485协议转换芯片ADM2587的B引脚与端子J2的RS485-相连。用双绞电缆将端子J2的RS485+与触摸屏的端口A连接在一起,用双绞电缆将端子J2的RS485-与触摸屏的端口B连接在一起。
[0020] 在通信系统硬件按照图1所示连接好之后,本发明又提供了一种基于Modbus RTU协议的永磁同步电机数据通信方法。该通信方法采用串口接收中断(如图2所示)与定时器中断(如图3所示)相结合的方法实现Modbus RTU协议,并在永磁同步电机控制板中的主控制器DSP28335中编程,本发明的通信方法包括:定时器中断环节、串口接收中断环节、Modbus RTU协议环节、响应数据输出环节、数据生成环节、永磁同步电机速度控制和指令输入环节、永磁同步电机关键参数设定环节、永磁同步电机状态显示环节、永磁同步电机故障显示环节。
[0021] 所述的定时器中断环节为实现基于Modbus RTU协议的永磁同步电机通信方法的主模块,完成了将永磁同步电机DSP控制板发送到触摸屏上的数据进行显示,以及永磁同步电机DSP控制板从触摸屏上接收数据的功能。
[0022] 所述的串口接收中断环节是触摸屏作为主站,永磁同步电机DSP控制板作为从站,利用串口接收中断依次接收符合Modbus RTU协议格式的数据报文,并为数据报文的解析做准备。
[0023] 所述的Modbus RTU协议环节是在DSP28335中编写Modbus RTU协议的具体内容,将串口接收中断的数据进行解析,按功能码来区分是读操作还是写操作,是读寄存器操作还是写寄存器操作,再对接收到的数据进行16位CRC校验,之后要向主站发送报文响应。
[0024] 所述的响应数据输出环节是按照Modbus RTU协议要求,永磁同步电机DSP控制板要对主站触摸屏进行数据响应,即对主站发出应答,从而实现与主站的数据交互。
[0025] 所述的数据生成环节将接收到的来自触摸屏的高低字节分开的数据先通过移位,再进行逻辑或操作,合成为一个字的数据,用于永磁同步电机运行控制;或者将要在触摸屏上显示的数据通过逻辑与操作,拆分成高低字节的形式,按Modbus RTU协议要求的格式发送出去,用于显示永磁同步电机的运行状态或故障状态。
[0026] 所述的永磁同步电机速度控制和指令输入环节包括给定速度值和斜坡函数等速度控制环节的关键参数设置,电机控制指令环节包括永磁同步电机运行模式、正反转、启动停车等指令的设置。
[0027] 所述的永磁同步电机关键参数设定环节可以设定永磁同步电机闭环矢量控制中电流调节器、速度调节器、滤波器等的关键参数,方便调试人员进行实时调试。
[0028] 所述的永磁同步电机状态显示环节可以将系统状态信息上传到触摸屏进行数据实时显示,方便调试人员及用户了解系统当前状态。
[0029] 所述的永磁同步电机故障显示环节可以在系统有故障发生时,将故障信息上传到触摸屏上,方便调试人员和用户直观的掌握系统的故障及报警信息,从而可以及时快速的处理系统故障及报警。
[0030] 基于Modbus RTU协议的永磁同步电机数据通信方法具体实施是把上述各个环节结合起来,共同在DSP28335中编程实现。把触摸屏作为主站,永磁同步电机控制板作为从站。如图2所示,按照Modbus RTU的协议要求,触摸屏每100ms向从站发送8个数据,在进入串口接收中断后,首先对串口进行ACK复位操作,然后再将存放在串口接收缓冲区的数据存放到预置数组(Receive[count])中,接着,接收数据计数器(count)开始增1操作,并判断计数值是否等于8,如果等于8,则计数器清零且将接收完毕的标志位(flag_finish)置1;如果计数值不等于8,则继续接收,直到8个数据接收完毕。
[0031] 如图3所示,永磁同步电机主控制器DSP的定时器中断采用100ms的运算周期,对于输出到触摸屏上显示数据的刷新频率是1s;对于接收来自触摸屏的设置数据的刷新频率是300ms。在进入定时器中断之后,首先判断接收完毕的标志位(flag_finish)是否等于1,如果不等于1,说明串口并未接收8个数据完毕,则继续接收;如果标志位(flag_finish)等于
1,则表示接收8个数据完毕,接下来要对接收的数据进行解析。按照Modbus RTU协议要求,首先判断数组(Receive[8])中的第二个数(Receive[1])是否为功能码3或者功能码6,如果Receive[1]等于功能码3,则表示读寄存器操作,即把显示的数据输出到触摸屏上进行显示。如果Receive[1]等于功能码6,则表示写寄存器操作,即接收来自触摸屏上设置的数据。
如果Receive[1]等于功能码3,显示计数器(Displaycount)增1,当显示计数器(Displaycount)等于10时,即表示达到1s的显示刷新频率,把要输出到触摸屏上显示的数据分类,第一类为实时变化的数据,均为数值型变量,如永磁同步电机系统运行时的直流电压值、三相输出电流值、实际电机转速值等通过逻辑与运算拆分成高低字节的形式;第二类为系统的故障数据,此类数据为开关型变量,为了缩短传输时间,优化通信程序,将这类开关量通过按位移项操作,合并成若干个数值型变量发送出去,这类数据具体包括直流电压过压保护、输出电流保护、脉冲保护、通信保护、主回路保护、电机保护等永磁同步电机运行时的关键故障信息。第三类为永磁同步电机系统状态的开关量数据,也将此类信息通过按位移项操作合成数值型变量发送,此类数据包括输入开关状态、预充电电路状态等。按照Modbus RTU协议的要求,将显示的数据值与设备地址、命令、字节数、CRC校验位等数据依次存入发送数组,再将此数组送入响应数据输出环节,接着将读写控制引脚置高电平,由于显示的数据量很大,则需要延时1ms,数组发送完毕之后,再将读写控制引脚置低电平,以便下一次显示输出。上述过程为永磁同步电机输出到触摸屏上显示数据的过程。如果Receive[1]等于功能码6,则表示接收来自触摸屏的速度控制数据、关键参数、控制指令。设置计数器(Setcount)增1,当显示计数器(Setcount)等于3时,即表示达到300ms的刷新频率,首先接收来自触摸屏的高低字节分开的参数值,进行左移及逻辑或操作合并在一起。速度控制模块的关键参数,此环节的所有数据为永磁同步电机运转的前提。其次,接收来自触摸屏的关键参数设置,如速度调节器参数电流调节器参数电流滤波器和电压滤波器的滤波时间常数等。这些参数可以使调试人员在线修改,便于永磁同步电机控制。最后接收来自触摸屏的关键指令设置,如永磁同步电机的启动与停车指令、正转反转切换指令、开环控制和闭环控制切换指令等,将这些开关量类的控制指令移位并组合成若干个数值型变量。将上述三类设置的数据值与设备地址、命令、字节数、起始地址、CRC校验位等数据,依次存入发送数组后,再将此数组送入响应数据输出环节,接着将读写控制引脚置高电平,由于设置的数据量很大,则需要延时1ms,数组发送完毕之后,再将读写控制引脚置低电平。上述过程为永磁同步电机从触摸屏上读取设置数据的过程。
[0032] 通过在永磁同步电机控制板主控制器DSP28335中编程将图2所示的串口接收中断和图3所示定时器中断的相结合的方法共同实现了永磁同步电机控制系统与触摸屏双向数据交互。