0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用RS-485串行通信和Modbus通信协议实现电动机综合保护装置的设计

电子设计 来源:科技与创新 作者:邓元生 , 李力争 2020-12-25 10:41 次阅读

1 引言

在自控装置和电力系统微机综合保护以及其它工业自动化控制领域,微控制器的应用越来越 广泛,其装置的复杂性也越来越高。为了解决其开发对象实时多任务性的要求,单CPU、单个开发 的模式将被多个、多类型CPU 和多人协同开发的模式所代替,在这新的开发模式中,面临一个新 问题——在实施信息交互的过程中如何将实现CPU 之间信息交互的软硬件标准化,这是关系到 该模式能否成功实施的关键。在众多的通信方式中,基于UARTRS-485 串行通信模式以其连 线简捷、高可靠性以及可带动多CPU 的能力而被广泛采用。在软件通信协议的选择上,Modbus 协议由于其通用、成熟的调试软件,为用户使用提供了诸多优势。因此,在开发新型电动机综合 保护装置的过程中,采用RS-485 串行通信方式和Modbus 通信协议,实现了多CPU 之间的数据和 控制命令的信息交互。为了增强串行通信的高效、协调性,笔者在通信机制的软硬件结构上采取 了很多措施,并取得了很好的效果。在调试系统通信阶段,使用了各CPU 模块先与Modbus 标准 测试软件通信,之后再互相联调的方法,大大提高了协同开发的效率。实践证明,该设计思想简化 了系统的结构,大大提高了装置的运行效率和可靠性。

2 电动机综合保护装置的特点

电动机综合保护装置除综合保护功能以外,兼有测量、远动和通信的功能;大屏幕的汉字液 晶显示,可以实现友好的人机界面;利用CAN 总线,与监控主机进行通信,从而构成分级分散式的 变电站综合自动化系统的子系统。由于装置需要实现多任务,为了优化系统功能, 采用了多CPU 的系统结构设计方法。其中一个CPU 负责定时采样脉冲发送;主CPU 模块负责数据处理、电量计算、故障判断和开关操作;而板模块上CPU 负责人机交互,并实现与主保护模块和监控主机的通 信任务。各个CPU 模块有明确的任务分工,研制时也容易实现多人协同开发。在整个构成中,串 行通信沟通了主CPU 和面板CPU,使人机交互成为可能,因而有着重要的地位。建立合理的通信 机制则是串行通信部分的核心的所在,它决定着通信的协调性和系统开发后期调试的效率。

3 通信机制介绍

3.1 通信机制硬件设计

本系统通信机制的提出以高效、可靠为目的。RS-485 为半双工结构,现场中比全双工往往更接 近于实用,在此采用只有2 条信号线的简易型连接。系统接口电路图由图1 所示,主保护模块上 的8051 单片机输出的TTL 逻辑电平通过光电隔离后,由MAX485 芯片转换为RS-495 电平,再由面 板模块上的MAX485 芯片转换为TTL 逻辑电平,由8031 单片机读取。在8051 单片机一侧,使用并 行输入输出口2 的一位P2.7 对MAX 输入使能端RE、输出使能端DE 进行控制。由图1 可知,当P2.7 输出高电平时,RE 使能,单片机一侧接收数据;当P2.7 输出低电平时,DE 使能,单片机一侧发送数 据。这样,避免了盲目发送造成的数据叠加丢失现象,通信质量高,通信速度也能得到保证。

采用RS-485串行通信和Modbus通信协议实现电动机综合保护装置的设计

3.2 通信协议

为了保证保护装置中两个模块之间能够正确地传递数据,必须有一套关于信息传输的模 式、数据格式和内容等的规定,即规约或通信协议。由于没有现成的较成熟的调试软件,主 CPU 模块基本是黑匣子,系统联调时的困难较多且难以克服。因此,采用了当前流行的 Modbus 通信协议,并结合本装置的特点加以简化,从而实现了模块间的通信,事实证明效果 很好。Modbus 的通信方式为主从方式,主方首先向从方发送通信请求指令,从方根据请求 指令中的功能码向主方发回数据。每个从方都有自己独立的地址,主方所发的请求帧和从方 所发的应答帧都是以从方地址开头的。从方只读发给自己的指令,对以其他从方地址开头的 报文不作应答,它是通过8051 的串行口工作方式2 或方式3 来实现的,这种一问一答的通 信模式,大大提高了通信的正确率,本文装置中采用了Modbus 的RTU 传送方式。

4 提高通信可靠性的措施

Modbus 报文末的两个字节为校验字节,RTU 方式通信采用CRC-16 位循环码冗余校验, 它的编译码设备比较简单,误判概率很低,可通过计算法和编程法实现,几种方法如下:

4.1 基本算法(人工笔算)

以CRC16-CCITT 为例进行说明,CRC 校验码为16 位,生成多项式17 位。假如数据流为 4 字节:BYTE、BYTE、BYTE、BYTE[0];

数据流左移16 位,相当于扩大256×256 倍,再除以生成多项式0x11021,进行不借位的除 法运算(相当于按位异或),所得的余数就是CRC 校验码。 发送时的数据流为6 字节:BYTE、BYTE、BYTE、BYTE[0]、CRC、CRC[0]。

4.2 计算机算法1(比特型算法)

1)将扩大后的数据流(6 字节)高16 位(BYTE、BYTE)放入长度为16 的寄存器

2)如果寄存器的首位为1,将寄存器左移1 位(寄存器的最低位从下一个字节获得),再与生成多项式的简记式异或;否则仅将寄存器左移1 位(寄存器的最低位从下一个字节获得);

3)重复第2 步,直到数据流(6 字节)全部移入寄存器;

4)寄存器中的值则为CRC 校验码CRC、CRC[0]。

4.3 计算机算法2(字节型算法)(256^n 表示256 的n 次方)

把按字节排列的数据流表示成数学多项式,设数据流为BYTE[n]BYTE[n-1]BYTE[n-2] 。..BYTEBYTE[0],表示成数学表达式

BYTE[n]×256^n+BYTE[n-1]×256^(n-1)+ 。..+BYTE*256+BYTE[0],在这里+表示为异或运算。设生成多项式为G17(17bit),则CRC 码为CRC16。

CRC16=(BYTE[n]×256^n+BYTE[n-1]×256^(n-1)+.。.+BYTE×256+BYTE[0])×25

6^2/G17,即数据流左移16 位,再除以生成多项式G17。

经过推导可知,BYTE[n-1]字节的CRC 校验码等于上一字节CRC 校验码Y[n]的高8位(YH8[n])与本字节BYTE[n-1]异或结果。

字节型算法如下:

1)CRC 寄存器组初始化为全“0”(0x0000)。

2)CRC 寄存器组向左移8 位,并保存到CRC 寄存器组。

3)原CRC 寄存器组高8 位(右移8 位)与数据字节进行异或运算,得出一个指向值表的索引

4)索引所指的表值与CRC 寄存器组做异或运算。

5)数据指针加1,如果数据没有全部处理完,则重复步骤2)。

6)得出CRC。

5 提高通信效率的措施

5.1 将通信的接收和发送两个任务独立

8051 单片机可以使用中断的方法通过串行口发送和接收数据,串行口控制器SCON 可 以初始化、可以位寻址,当串行口发生中断请求时,SCON 低两位能锁存发送中断和接收中 断,当CPU 向串行口的发送数据缓冲器SUBF 写入一个数据或字符时(指令MOV SUBF, A),发送器就开始发送,当发送完一帧数据后,由硬件置“1”TI 标志,表示串行口正在向 CPU 请求中断,请求发送下一帧数据。同样,若串行口接受器允许接收,当接收器接收到 一帧数据,置“1”RI 标志,表示串行口正在向CPU 请求中断,请求CPU 到接收数据缓冲器 读取数据。

5.2 缩短中断时间

由于设计软件结构时使用了多个中断,为了保证程序的可靠运行,减少不同任务相互冲 突的机率,在编制软件时尽可能简练各种中断的任务,缩短中断执行时间。在通信中断子程序 中,进入中断后执行必要的任务,如:清串行口控制寄存器中相应的状态位,将刚接收到的字 符或需要发送的字符从缓冲区内读出或写入缓冲区,已接收或发送字符数增1 等,之后便立 即退出中断。其它任务如判断帧的有效性、对接收帧命令(遥测、遥控命令)的应答,准备 发送帧等,都放在主程序中完成。

5.3 有效地判断帧结束,防止通信停滞

利用单独的软件定时器,来判断一帧接收报文结束,可以防止若报文接收不完整,该帧通 信任务无法结束而影响下一帧的接收。由于一帧报文中字节与字节之间的时间间隔和帧与帧 之间的时间间隔相比要小得多,因此每当接收一个新字节,就启动软件定时器开始计时,定时 器的时间设定为帧与帧的最小时间间隔。波特率不同,该时间间隔也不同。若不到预定的时间内又接收到下一个字节,则说明一帧报文未结束,定时器重新计时;若定时器顺利计数到预 定时间,就会触发相应的中断号,在该定时器中断子程序中设定帧结束标志字节,表明一帧报 文接收完毕。当主程序内检测到一帧报文接收完毕后,会通过核查从方地址及循环冗余校验 字节是否正确来判断该帧的有效性。若确定接收到的是一帧发送给已方的正确报文,则会根 据报文内的功能码对该帧命令进行相应的处理,并准备发送帧,当从方接收报文不正确时发 回出错帧,如果从方收到的报文校验不正确,可采取不作应答的方式,主方若在规定时间内 未收到从方的应答报文时,将重发请求报文;若多次未收到从方应答报文,则报通讯故障。

5.4 通信速率的确定

由于所用的装置都在同一机箱内,模块与模块之间的间距很短,而Modbus 是基于RS485 的长距离通信,可以不考虑距离对通信波特率的影响,并且由于采用主从式通信模式,不会出 现线路堵塞现象。因此从通信效率来看,只要不超过模块所使用芯片对最高波特率的限制, 则设定的波特率越高,信息交互越快,通信效率也越高,由于设定通信双方波特率完全一致, 可以使接收端对每一个数据位的采样都发生在位周期的中点,从而实现可靠通信。

5.5 合理的调试方法

调试时先将各个CPU 模块分别通RS485/RS232 数据转化模块与微机进行通信测试,成 功后再进行模块间联调,大大提高了联调的效率。在调试各模块与微机通信的过程中,微机 使用Modbus 调试软件,模仿主方的通信过程,主动向从方索要信息,整个接收、发送过程 都是透明的、清晰的,从而使得模块中存在的问题得以及时解决;联调时,利用总线监控软 件观察双方的数据,及时地发现问题和解决问题。

6 本文的创新点

第一,本文在保护装置中的采用Modbus 这种通用的工业标准,所需的工具软件可以直 接从相关网站获得,不需知识产权方面的花费;第二,保护装置实施多任务化,利用Modbus 协议创建了CPU 模块间合理的联调机制,大大提高了系统协同开发的效率。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44522

    浏览量

    633162
  • 电动机
    +关注

    关注

    74

    文章

    4101

    浏览量

    96029
  • 串行通信
    +关注

    关注

    4

    文章

    566

    浏览量

    35296
收藏 人收藏

    评论

    相关推荐

    基于RS-485通信协议的自动控制液压系统设计

    控制领域的广泛应用,诞生了大量基于各种总线和通信协议通信方式。RS-485就是一种基于RS-485总线的通信协议,它已经被应用在了上位机和
    发表于 06-11 05:00

    电动机的过载保护保护装置是什么

    电动机的过载保护保护装置是?
    发表于 03-16 08:06

    浅析RS485通信Modbus通信协议

    RS485通信Modbus通信协议汇总1. 主从模式RS-485上的软件层协议
    发表于 08-23 06:16

    RS-485通信协议是怎样工作的

    通信协议是指什么?RS-485通信协议是怎样工作的?
    发表于 11-10 06:15

    RS485通信Modbus协议的特点

    RS485通信Modbus协议 附源码及视频教程下载RS485通信的特点1、采用差分信号。2、
    发表于 11-30 07:05

    Modbus通信协议的相关资料下载

    Modbus通信协议是在RS-485口实验的基础上实现的,简单说就是首先要实现
    发表于 02-09 07:47

    RS485Modbus通信协议让工业自动化更高效

    等元件来实现雷击保护。   【隔离】   在某些场合下,要求RS485接口与其他电路隔离。此时我们可以采用光耦隔离器或磁耦隔离器等元件来实现
    发表于 05-05 16:25

    基于RS-485变频器与PC机串行通信实现

    RS-485 串行通信能够保证快速、稳定、远距离地传输数据,已经越来越多地应用于工业控制。文中介绍了基于RS-485 三垦变频器与PC 机串行
    发表于 09-03 09:40 52次下载

    基于故障分量原理的电动机差动保护装置

    采用故障分量原理设计了一种微机保护装置,介绍了基于该技术的保护装置弥补已有的电动机综合保护装置
    发表于 01-08 15:03 10次下载

    基于ARM的电动机综合保护装置设计

    本文分析了国内外电动机保护的发展,针对当前电动机保护的现状,介绍了一种嵌入式综合电动机
    发表于 10-27 15:53 48次下载

    基于故障分量原理的电动机差动保护装置

    基于故障分量原理的电动机差动保护装置 采用故障分量原理设计了一种微机保护装置,介绍了基于该技术的保护装置弥补已有的
    发表于 07-11 16:49 777次阅读
    基于故障分量原理的<b class='flag-5'>电动机</b>差动<b class='flag-5'>保护装置</b>

    基于故障分量原理的电动机差动保护装置

    采用故障分量原理设计了一种微机保护装置,介绍了基于该技术的保护装置弥补已有的电动机综合保护装置
    发表于 07-23 11:52 594次阅读

    RS-232与RS-485的比较及基于RS-485变频器与PC机串行通信实现

    2 RS-232与RS-485的比较 常用的串行通信有两种,一种为RS-232串行
    发表于 09-29 17:10 6次下载
    <b class='flag-5'>RS</b>-232与<b class='flag-5'>RS-485</b>的比较及基于<b class='flag-5'>RS-485</b>变频器与PC机<b class='flag-5'>串行</b><b class='flag-5'>通信</b>的<b class='flag-5'>实现</b>

    RS-485总线通信协议分析

    RS-485总线技术只是规定了接口的电气标准,并没有规定RS-485接口的电缆,插件以及通信协议,只是OSI规范中物理层的一个标准,由于RS-485总线
    发表于 07-23 18:02 7188次阅读

    【C应用】一文看懂Modbus通信协议(下)

    Modbus通信协议是在RS-485口实验的基础上实现的,简单说就是首先要实现
    发表于 12-05 16:51 28次下载
    【C应用】一文看懂<b class='flag-5'>Modbus</b><b class='flag-5'>通信协议</b>(下)