找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[电源技术] 基于RS 485总线的蓄电池充放电装置远程控制系统

[复制链接]
admin 发表于 2014-4-3 13:37:02 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
电池作为一种主要的直流电源,在工业、航空航天、民用等各领域扮演着重要的角色。在定期的蓄电池充放电操作及维护中,现有的充放电装置工作时间过长,工作效率较低;被充放电电池的状态不能及时监测,且充放电现场工作环境恶劣,有损于操作人员的健康。针对这些问题,设计了一种远程控制的智能充放电装置。该装置主要通过下位机--单片机将采集到的蓄电池电压电流信号经处理后发送给上位机--PC机,再经可视化的人机界面实现充放电的控制和实时状态显示。考虑到该系统要具有较强抗干扰能力,传输距离长、工程布线简单、适合扩展、便于控制的特点,故采用RS 485总线实现远距离数据传输

   
  1 远程通信总体方案设计
  
  该系统中采用的RS 485是半双工接口,双向单信道的连接方式。在整个系统中他用1根双绞线将分布在不同地理位置的充放电装置并接在一起,在各个装置中,单片机采集模块和命令控制模块作为下位机。其网络结构简图如图1所示。PC机的串口通过232-485转换器接入网络。另外添加半双工低功率收发器件MAX485来为单片机提供TTL电平与RS 485的接口电平之间的转换。差分平衡型收发器MAX485是RS 485的一种接口芯片,他集成了1个驱动器和1个接收器。处于禁止状态的驱动器和多个接收器挂在传输线上不会影响信号的正常传送,故多个驱动器和接收器可以共享一组公用传输线。网络上可挂32个站,每个站点都有固定的地址。同一时刻只能有一个站点发送数据,而其他站点只能处于接收状态,以免发生数据碰撞错误。
  
   2012111205022141951402.jpg
  
  图2为输出简化示意图。
  
   2012111205022145076403.jpg
  
  单片机,MAX485和充放电驱动电路作为一个站点接入RS 485总线。A,B是总线的接口,DI是发送端,RO是接收端,连接单片机的串口,单片机通过引脚进行收发控制。
  
  2 通信硬件设计
  
  MAX485与单片机的电路连接如图3所示。
   2012111205022146639404.jpg
  
  第1脚(RO端)为接收输出端,当接收输出使能(第2脚(/RE))为低电平时,如果VA-VB>200 mV或者A,B断路,则第1脚输出为高;如果VA-VB<200mV,则第1脚输出为低;第2脚接收输出使能端低电平有效,第3脚(DE端)驱动输出使能端,第4脚(DI端)驱动输入端,第5脚为地,第6,7脚为总线接口端,第8脚为电源端。单片机将采集到的蓄电池状态信息经MAX 485转变成适合传输的电流环信号。该信号具有传输距离远,抗干扰能力强的特点,以保证信号无衰减地传到232/485转换器端。232/485转换器主要完成电流环到微机RS232接口的转换,如此即可实现PC机到单片机的通信。其原理图如图4所示。用户通过PC机的界面控制网络上各站点的工作,各站点的设备也可将反馈的信息发送给PC机进行蓄电池充放电装置的实时监测。
    3 通信软件设计
  
  3.1 网络协议
  
  RS 485是一种硬件连接说明标准,并没有指定所使用的通信协议。为了使命令和数据能在网络上正确传输,必须在数据链路层上提供一种网络协议,当物理层的比特流出现错误时能起到检验和校正的功能。参见(见图1)远程控制网络结构简图,单片机采集子系统将采集到的蓄电池状态上传到PC,命令控制子系统主要是接受PC机的各种命令并对充电系统进行控制。两子系统与PC机之间均采用主从协议,串口通信,其通信参数设置为:传输速度:9 600 b/s;校验位:无;数据位:8;停止位:1。
  
  3.1.1 上位机向下位机发送控制命令
  
  (1)上位机发送
  
  扩展在双绞线上的每个充电模块必须有惟一的地址编号,以便保证PC机发送控制命令时能准确无误地找到所需的充电的模块。分布式模块的命令格式被分为发送与接收两部分,格式如下:
  
   2012111205022151326405.jpg
  
  每一帧代表的信息如下:
  
  起始位:单片机与PC机之间通讯的起始标志;地址位:下位机的地址号设计为01H~1FH(即1~31),上位机的地址为00H。
  
  命令类型:0为停机命令,1为充电命令;设定数值:控制命令为充电时,数值量为充电电流;(2)控制板返回:Y(如果接收成功则返回Y)。
  
  3.1.2 下位机向上位机发送采集数据
  
  (1)下位机每隔10 s间断性的发送电压电流采集值给上位机;
  
   2012111205022154451406.jpg
  
  (2)采集板返回7个连续字符(中间不插入空格),格式如下:
  
   2012111205022157576407.jpg
  
  前3个字符为蓄电池端电压,接着3个为充电电流值。蓄电池端电压用3个字符表示,如:51.2 V~512 V。充放电电流3个字符表示:15.7 A~157 A(如果电流值<10 A,左边补0,如:8.9~089)。注意:所有的字符均为10进制数值对应的ASCⅡ码。考虑到单片机要及时将采集到的数据发送出去,故使用无握手的通信机制,不等待确认帧就不停发送。另外,若接收方在约定时问内未收到数据,则发送复位帧,双方回到通信程序的开始并清空缓冲区,然后重新同步。
    3.2 单片机程序设计
  
  在主程序中,先将单片机及其存储器初始化,进入死循环,等待中断程序。中断程序包括:A/D采集中断,他主要是将采集到的电压,电流瞬时信号值处理并保存;另外1个就是串口通信中断程序,他的主要作用是:当接收一个地址时,判断是否是本机地址,若是则判断控制命令,否则结束。继续执行PC机接收的数据命令,分别表示停机、充电、放电等命令。通过字符串比较,判断出执行的命令。具体流程如图5所示。
  
   2012111205022162263408.jpg
  
  3.3 PC机程序设计
  
  PC机的人机交互界面由C++Builder语言开发实现的,他主要包含通信模块,数据显示和处理模块。在综合考虑开发效率和程序功能后,选择了Win32API函数来编写通信程序。此函数在C++Builder里面中均已被声明,直接引用即可。为了提高通信程序的响应速度,程序通过Thread类实现多线程通信。在主线程中打开串口并发送数据,另外再建立1个线程来监听串口,若接收到数据后就调用数据分析和处理线程,显示状态曲线并且将数据录入数据库。部分程序代码如下:
   2012111205022168513409.jpg
  
  以3个站点的充放电实时监测为例,在PC机上可显示如图6所示的实时信息。
  
   2012111205022171638410.jpg
  
  4 结  语
  
  基于RS 485的远程充放电装置控制系统可以实现1台PC机上最多可控制32个站点。由于RS 485采用的是平衡驱动和差分接收的方法,因此能从根本上消除信号地线,有很强的抗共模干扰信号的能力。他还具有一对线路驱动器和接收器,能够作长距离的信号传输,最长为1 200 m。且传输结构简单、成本低、实用性强。可以广泛应用与工作环境恶劣,耗时劳民的充放电现场。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-25 13:27 , Processed in 0.062915 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表