学术论文投稿/征稿

欢迎您!请

登录 注册

手机学刊吧

学刊吧移动端二维码

微信关注

学刊吧微信公众号二维码
关于我们
首页 > 学术论文库 > 理工论文 基于单片机的多变频器 Modbus 通讯控制论文

基于单片机的多变频器 Modbus 通讯控制论文

39

2022-11-28 10:15:48    来源:    作者:lvyifei

摘要:摘要:为解决变频器与同品牌PLC通讯往往采用专用协议,不利于不同品牌的多变频器的通讯控制的问题,提出一种以单片机控制板代替PLC或工控机作为控制核心,以高性价比的串口屏作为人机界面,实现不同品牌的多变频器的Modbus通讯控制方案。所设计的单片机控制板带有RS485接口电路,具备IO控制功能,分析了变频器Modbus通讯协议的硬件接线、寄存器设置、Modbus帧,设计了单片机Modbus主站程序,通过串口屏实现人机交互,完成对不同品牌变频器的通讯控制。实际应用表明,提出的方案极大地降低了成本,提高了通用性

  摘要:为解决变频器与同品牌PLC通讯往往采用专用协议,不利于不同品牌的多变频器的通讯控制的问题,提出一种以单片机控制板代替PLC或工控机作为控制核心,以高性价比的串口屏作为人机界面,实现不同品牌的多变频器的Modbus通讯控制方案。所设计的单片机控制板带有RS485接口电路,具备IO控制功能,分析了变频器Modbus通讯协议的硬件接线、寄存器设置、Modbus帧,设计了单片机Modbus主站程序,通过串口屏实现人机交互,完成对不同品牌变频器的通讯控制。实际应用表明,提出的方案极大地降低了成本,提高了通用性和可移植性,具有较大的实用价值。

  关键词:RS485;ModbusRTU;单片机;变频器;串口屏

  引言

  通用变频器是三相异步电动机进行调速的首选控制器。一般来说,可采用面板、外部端子和通讯3种基本方法实现变频器运行指令和频率值的给定[1-3]。面板方式适合对变频器参数进行初始设置,如系统调试、维护阶段,外部端子走线不宜太长,特别是模拟量给定方式容易受到干扰、精度不高。随着现场总线技术的普及,通讯方式逐步成为主流做法。不同厂家往往开发有自家的专门协议,用于快速实现自家PLC与变频器的通讯控制,如三菱变频器采用ASCII码形式专用协议[4-5]、西门子变频器采用USS协议[6]、松下变频器采用MEWTOCOL-COM协议[7]等,不利于不同品牌之间的自由选用。而在一些应用场合,如水洗机、挤出机等只需实现多台变频器的控制,且根据控制要求同一控制系统可能选用不同品牌的变频器。

  Modbus是用于工业现场的总线协议,具有完全免费、简单易用、标准规范等优点,在工业控制中获得广泛的应用。大多数通用变频器搭配有RS485接口电路、内置有Modbus协议。陈建荣等[8]、吴征等[9]、郝迎吉等[10]给出了基于Modbus协议的、以单片机为控制核心的变频器通讯控制方案,但缺少单片机Modbus主站功能的具体实现,也未给出实用的控制程序。本文设计制作了一款带有RS485接口电路的、8进8出的单片机控制板,分析设计Modbus控制程序,通过淘晶驰串口屏进行人机交互,实现对不同品牌变频器的通讯控制。

  1控制原理

  单片机控制板是控制系统的核心,通过TTL电平实现与串口屏的全双工通讯,接收串口屏发来的运行指令、运行频率,同时定时将查询到的变频器的状态信息上传到串口屏中进行显示。在实际工程中,为提高控制系统的可靠性,变频器的运行指令还允许通过外部物理信号进行控制,为此单片机控制板接收外部按钮等开关信号。单片机板、变频器通过RS485总线二线制连接,并以单片机板作为Modbus主站,各变频器作为具有指定站号的从站。控制的核心是,按Modbus协议,单片机将控制信号按一定控制逻辑产生相应的查询帧发送到总线上,目标从站处理后按规定的帧格式进行应答。本文分析了Modbus通讯的帧格式及其单片机编程实现。控制框图如图1所示。

基于单片机的多变频器 Modbus 通讯控制论文

  2硬件结构

  2.1单片机控制板

  本文选用国产增强型8051内核、超高性价比的STC单片机作为主控,具体型号是STC15F2K60S2-PDIP40。该型号具有两个串口,其中一路与串口屏进行TTL通讯,接收触摸屏的命令、上传变频器的状态;一路设计RS485接口电路实现Modbus通讯。该控制板设计有8路漏型输入、8路晶体管输出,可灵活增加输入输出信号,比如输入按钮信号,用以控制运行指令。整个电路板使用24VDC开关电源供电,输入输出电路、RS485通讯电路均使用光耦(EL357)隔离,其中RS485接口电路使用2片高速光耦(TLP109)隔离收发信号、1片普通光耦作为方向控制信号。电源使用DCDC隔离电源模块,B2405S将输入电压24 V转为控制板所需的5V电源,B0505S产生隔离的RS485电源。特别地,为提高波特率的准确性和通讯稳定性,时钟电路选用外部22.118 4 MHz的晶振,而不使用内部RC时钟。单片机控制板框图、实物图如图2所示。

基于单片机的多变频器 Modbus 通讯控制论文

  2.2三菱变频器的RS485接线与参数设置

  三菱FR-A700系列变频器的通讯分为使用变频器的PU接口的通讯和使用RS485端子的通讯,分别对应两组不同的参数。PU接口方式的通讯,使用三菱变频器专用协议,且通讯帧采用ASCII码格式,数据密度低,通讯效率低;RS485端子使用标准化、通用的Modbus RTU协议。RS485端子如图3(a)所示,可采用四线式、两线式两种接法。两线式更为普遍,将RXD1+和TXD1+短接并接RS485总线的A端,将RXD1-和TXD1-短接并接RS485总线的B端,如图3(b)所示。

基于单片机的多变频器 Modbus 通讯控制论文

  相互通讯的各方必须设置同样的通讯格式,才能确保通讯正常。本文通讯格式统一设置为9 600/8/N/2,即通讯波特率为9 600 bit/s,8位数据位,无奇偶校验,2位停止位。三菱变频器使用RS485端子的ModbusRTU通讯相关的参数如表1所示。设置通讯参数前,建议执行ALLC=1操作,将所有参数恢复出厂默认值。

基于单片机的多变频器 Modbus 通讯控制论文

  2.3西门子变频器的RS485接线与参数设置

  西门子V20系列变频器的控制回路接线端子如图4所示,P+接RS485总线A端,N-接RS485总线的B端。西门子V20变频器可通过RS485接口的USS协议与西门子PLC进行通讯。用户可以通过参数设置为RS485接口选择USS或者Modbus RTU协议。为增强抗干扰性能,建议使用屏蔽双绞线作为RS485通讯电缆。

  本文选择ModbusRTU协议实现单片机与变频器的通讯,如前文所述通讯规格统一为9600/8/N/2,V20变频器相关参数设置如表2所示。设置通讯参数前,最好执行恢复出厂默认值的操作,且在更改P2023后,须对变频器重新上电。

基于单片机的多变频器 Modbus 通讯控制论文

  3 ModbusRTU的控制实现

  3.1 ModbusRTU简介

  Modbus是用于工业现场的总线协议,具有标准、开放、免费、通俗易懂等优点,支持多种电气接口,已纳入国家标准。Modbus分为标准Modbus、Modbus-TCP、Modbus Plus三种形式。标准Modbus的物理层是串行链路,广泛采用的是RS485电气接口。串行链路Modbus可分为ASCII码和RTU两种传输模式。RTU模式具有较高的数据密度,在相同的波特率下比ASCII模式有更高的吞吐率,是标准Modbus要求支持的传输模式。Modbus串行链路协议是一个主-从协议。Modbus通讯总是由主站发起,从站被动响应,从站从来不会主动向主站发送信息,从站之间也从来不会相互通讯。主站可以采用单播模式和广播模式向从站发送信息。每个从站都有一个唯一的站号。Modbus的对象有单比特和16比特两个类型。单比特类型主要处理离散输入与线圈,16比特类型则是两字节的寄存器。在工程实际应用中,用户可以将16个单个比特类型的对象包装成一个16比特类型的寄存器,读写一个16比特的寄存器可以实现对16个单比特类型的对象进行读写操作。

基于单片机的多变频器 Modbus 通讯控制论文

  3.2变频器的功能码与寄存器

  查阅手册[11-12],无论是三菱变频器还是西门子变频器,在Modbus通讯时,均主要支持0x03、0x06、0x10三个功能码,其中0x03功能码的主要功能是读取保持寄存器的数据,用户可实时监视变频器的各种状态信息、运行参数等,0x06功能码的主要功能是向单个保持寄存器写入数据,实现变频器的运行控制或频率调节,0x10功能码则可以一次向多个保持寄存器写入数据。在实际应用中,可以简化成只需用两个功能码,即0x03监视运行状态,0x06实现运行控制与频率值写入。Modbus通讯有关寄存器分析汇总如表3所示。

基于单片机的多变频器 Modbus 通讯控制论文

  V20变频器使用基准变量,这有助于采用统一的方式显示设定值和实际值信号,一个100%的值相当于一个0x4000的过程数据值。用户通过设置P2000~P2004分别实现基准频率、基准电压、基准电流、基准转矩、基准功率的设置。寄存器40101的数据与频率值的对应关系是:

  频率值(Hz)=据×P2000

  已知期望输出频率,则寄存器40101的设定值表示为:频率值(Hz)P2000

  3.3单片机控制程序

  单片机程序分为串口基本读写部分、串口屏通讯部分、ModbusRTU主站程序等3部分。串口1与串口屏通讯,初始化为38400/8/N/1;串口2实现RS485接口,初始化为9600/8/N/2,两路串口均使用环形数组实现串口数据的读写,开放收发中断且配置为高优先级,确保响应实时性。

  本文选用淘晶驰的X5系列7寸电阻屏,型号是TJC8048X570_011R。相比于工控常用同等尺寸的触摸屏,串口屏具有明显的价格优势,开发难度低,自由灵活设计用户界面。单片机与串口屏的通讯是无协议的自由通讯。串口屏以连续3个0xff作为数据帧的结尾,一旦接收到第1个字节,串口1开始监视接收的信息,如连续接收到3个结束符0xff则视为一帧结束,立即解析并将控制信息通过串口2发送给相应从站。同时,单片机还通过串口1定时将从站的状态信息发往串口屏进行显示。

  标准ModbusRTU要求帧间隔不少于3.5 t,帧中字符间隔不超过1.5 t。由于从站收到查询帧时需要时间进行处理,再进行应答,在实际应用中,简化了对3.5 t的判断,采用定义一个监视变量HostRx_TimeOut,在持续规定时间未再接收到字符,则视为一帧结束HostRx_Time⁃Out被置为1,开始分析数据帧。无论收发,由于使用了缓冲功能,先将数据写入缓冲区再启动发送,确保了同一数据帧中的字节是连续发送的,字符间隔不超过1.5 t。

  三菱、西门子、ABB[7]等知名品牌变频器的Modbus通讯均主要支持0x03、0x06、0x10等3个功能码,在实际工程应用中,0x03和0x06这两个功能码足以满足通讯要求。0x03功能码用于读取16 bit的寄存器,其收发帧格式如图5所示。

基于单片机的多变频器 Modbus 通讯控制论文

  定义从站地址Slave_Addr、寄存器地址RegAddr、寄存器数量RegNum,则存在如下关系:查询帧与应答帧的头两个字节相同,分别是从站地址、功能码(03H);应答帧的“字节数”等于寄存器数量RegNum的两倍;寄存器地址、寄存器数量、寄存器内容都是16 bit类型,在Modbus帧中均高字节在先、低字节在后,CRC16则是低字节在先、高字节在后。0x06功能码用于写入单个16 bit的寄存器,其收发帧格式如图6所示。定义寄存器内容RegVal。明显地,0x06功能码收发帧完全一致,这是一个重要的判断依据。

基于单片机的多变频器 Modbus 通讯控制论文

  在编程时,使用全局变量Host_Status,只有当Host_Status为0时(称为准备状态)才允许更新功能码Host_Tx_Code的值,相应地更新从站地址Slave_Addr、寄存器地址RegAddr、寄存器数量RegNum或寄存器内容RegVal,再根据功能码Host_Tx_Code是0x03还是0x06分别调用不同的处理函数。这样做的好处是避免上一次的通讯被打断。另外,为提高通讯可靠性,对应答帧进行了多次判断处理,一旦超时或判断出错,启用多次发送机制,如多次尝试均失败,则认定通讯故障。对0x03功能码而言,在接收到应答帧时,依次进行从站地址、CRC校验、帧长度判断等判断无误后,将接收到的数据寄存器值填入到相应的区域。图7、图8分别给出了0x03和0x06功能码的处理函数。

  4结束语

  本文以单片机控制板为核心、以串口屏为人机界面实现对不同品牌的多变频器的Modbus通讯控制。设计了一款通用性强、成本低的单片机控制板,克服了PLC或工控机不利于对不同品牌变频器的通讯困难,分析了Modbus收发帧格式,为编写Modbus通讯处理函数提供依据。实践证明,本方案可以大幅度降低控制系统成本,在成本敏感场合具有明显的优势。特别地,如使用同一品牌的变频器,可以使用广播方式实现对全部从站的同时控制,较好地保障了同步性;同时控制板具有IO功能,可方便实现输入输出控制,具有简易PLC的灵活性。

  参考文献:

  [1]冯情.基于单片机控制的异步电机调速装置设计[J].设备管理与维修,2018(16):147-148.

  [2]朱高中.基于单片机和变频调速技术的水塔液位控制系统研究[J].计算机与数字工程,2021,49(3):482-486.·243·

  [3]游乙龙.基于单片机的PWM转DAC实现通用变频器的自动控制[J].机电工程技术,2015,44(6):90-92.

  [4]申建广,淘涛,梅雪松,等.基于RS-485的单片机与三菱变频器通讯的多电机控制研究[J].机床与液压,2012,40(9):5-7.

  [5]姜凤武,王杭.基于MODBUS协议实现单片机与变频器的通信[J].自动化技术与应用,2006(4):78-79.

  [6]游辉胜.Simatic S7-1200和Sinamics V20在卷绕机上的应用[J].电气传动,2018,19(10):85-87.

  [7]胡建国,罗勇武.基于RS485的单片机和变频器通信控制多电机研究[J].机床与液压,2013,41(22):139-141.

  [8]陈建荣,吕春放.基于ModBus协议的无纺布主从式变频控制[J].自动化与仪器仪表,2014(8):60-62.

  [9]吴征,喻支乾.基于Modbus通讯协议变频器速度给定系统的改造及设计[J].山东化工,2020,49(11):157-161.

  [10]郝迎吉,梁云龙,程晓茹,等.基于单片机的采煤机变频器安全预警系统的设计[J].煤炭技术,2017,36(4):215-217.

  [11]三菱电机.三菱通用变频器FR-A700使用手册(应用篇)[Z].2007.

  [12]西门子(中国)有限公司.Sinamics V20变频器操作手册[Z].2017.