我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 743|回复: 0

MODBUS协议在光伏并网系统中的应用 - 单片机/处理器 - 电子

[复制链接]

该用户从未签到

1万

主题

1292

回帖

2万

积分

管理员

积分
29577

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-30 00:36:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

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

×
<strong>引言</strong>

光伏并网发电系统是将太阳电池发出的直流电馈送给交流电网的DCAC逆变系统。传统的光伏并网系统常常被设计成只有单个DSP的嵌入式系统,即在一块电路板上,DSP除了要完成数字信号处理和逆变器控制的功能外,还要完成显示、输入等功能。由于并网逆变系统复杂,采用单个DSP的设计方案时,适时性往往难以达纠要求。为此,在原来设计的基础上外加一块单片机,构成舣核的主从式结构。DSP只负责逆变器的控制和信号的处理,而由单片机来完成剩余的功能。同时利用MODBUS协议来实现单片机和DSP问的通信,单片机作为通信方的主机.DSP作为从机,主从双方各自独立的T作,仅在串口通信的时候才占用系统资源。采用这种设计方案,极大的节省了DSF的开销,保证了并网系统高效稳定的运行。

<strong>1 光伏并网系统的硬件结构</strong>

在项目中,使用的DSP足TI的TMS320F2812,而单片机为AVR系列的Mega64。光伏并网系统的硬件结构如图1所示。在图中,将由172812DSP控制的部分称为并网逆变模块,而将由Mega64单片机控制的部分称为人机接口模块,两个模块构成一个完整的光伏并网系统。通信接口电路负责连接F2812和Mega64的串行口。


<ignore_js_op>





2010-3-31 20:57:42 上传
<strong>下载附件</strong> (4.32 KB)




</ignore_js_op>

图1光伏并网系统硬件结构

1.1并网逆变模块硬件结构及原理

并网逆变模块的功能足将太阳能电池产生的直流电逆变成与电网电压同频同相的交流电。在项目中采用的并网逆变模块硬件结构如图2所示。


<ignore_js_op>





2010-3-31 20:57:43 上传
<strong>下载附件</strong> (6.61 KB)




</ignore_js_op>

图2并网逆变模块硬件结构图

太阳能电池发出的直流电首先由高频逆变器转换为高频脉动电压,通过高频变压器隔离升压后,再经整流、低频逆变,转换成与电网电压同频同相的交流电送到电网中。整个模块为DC一高频AC—DC一工频AC 三级功率变换电路,TMS320F2812为其主控芯片。采样的太阳能电池输出电压、电流送入F2812后,按照MPPT(太阳能电池最大功率点跟踪)的要求,产生出PWM信号,驱动高频逆变部分的功率管,以实现MPPT功能。工频逆变部分采用电流内环、电压外环的控制策略,采样剑的电压电流信号按照控制策略处理后,产生出PWM驱动信号驱动工频逆变部分功率管,保证高压侧电压稳定,同时保证并网电流与电网电压问频同相,并网的功率因素为1。

1.2人机接口模块硬件结构及原理

人机接口模块的功能是实现对并网系统的监控和设置,大致可概括为以下几点:

(1)能实现DSP和单片机的正确通信;

(2)能实现对并网逆变系统运行参数的实时显示,如太阳电池当前输出的直流电压、系统当前发出的电量等等,同时还能对并网系统的一些系要参数进行设置,如最高输入电压、最低输出频率等等。

(3)当并网系统运行出现故障时,能判别故障类型,并能产生报警信号通知用户。在故障末解决前,能停止并网逆变系统的工作;

(4)能和PC机实现通信,将霞要参数传递给PC机用于存档。

人机接口模块的硬件结构如图3所示。


<ignore_js_op>





2010-3-31 20:57:43 上传
<strong>下载附件</strong> (3.47 KB)




</ignore_js_op>

图3人机接口模块硬件结构

整个接口模块是以Mega64为核心的小型嵌入式系统。采用带中文字库的160*32液晶模块作为整个系统的主显示屏。其与Mega64采用并行总线的方式通信。时钟芯片选用Dallas公司出品的DS1302,它采用三线接口和CPU进行同步通信,控制简单易于实现。模块与Pc机的通信有可选的RS232或RS485两种方式,使用BL0505LS隔离电源模块为该通信块供电。

在硬件设计中,F2812和Mega64的通信接口电路是整个设计的关键之一。由于F2812是3.3V的CMOS电平,而Mega64是5V的TTL电平,两者的串行口不能直接相连,中间必须进行电平转换。在本项目中,采用电阻分压的方法来实现电平转换,Mega64接收电路如图4所示:


<ignore_js_op>





2010-3-31 20:57:44 上传
<strong>下载附件</strong> (2.46 KB)




</ignore_js_op>

图4 MEGA64串口接收电路

三极管T1及T2组成3.3V/5V电平转换电路,通过R1与R2的分压来保证输入接口的电压不超过3.3V,二极管D1防止电流反向。F2812发送高电平时,T1导通T2截止,保证Mega64接收高电平信号;F2812发送低电平时,T1截止T2导通,Mega64接收低电平信号。

<strong>2 MODBUS通信协议简介</strong>

MODBUS是一种工业通信和分布式控制系统协议,该协议是一个主从协议,允许一台主机与多台从机通信。若主机发送一个信息,则可从一台从机设备返回一个响应,类似,当一台从机接受信息时,它就组织一个相应的响应信息,并返回至原发送信息的主机。在物理层,标准的MODBUS端口是使用一个RS232兼容的串行接口。在MODBUS协议中有两种有效的数据传送方式,即ASCII码和RTU方式。无论哪种传送方式,MODBUS信息都是以帧的方式传输,每帧有确定的起始点和结束点。

在本项目中,采用了RTU的传送方式。RTU信息帧格式如下表所示:

<ignore_js_op>





2010-3-31 20:57:44 上传
<strong>下载附件</strong> (2.66 KB)




</ignore_js_op>


每个信息帧的发送至少要以3.5个字符时间的停顿间隔开始,即表格中的T1-T4。每一帧以地址字符为起始点,以CRC校验码为结束点,每个字符包括1位起始位,8位数据位,1位偶校验位,1位停止位。整个信息帧必须连续发送,如果在发送帧信息期间,相邻字符问有超过1.5个字符时间的停顿,则认为帧错误,停止接收。最后一个传输字符结束后,至少要停顿3.5个字符的时间才能开始下一个信息帧的传递。字符的时间与具体的通信波特率有关,如波特率设置为4800,则1.5个字符时间为:1/4800*11*1.5*1000=3.44ms。

<strong>3 MODBUS协议软件实现</strong>

在并网逆变模块和人机接口模块的MODBUS通信中,Mega64作为主机,F2812作为从机。在通信中,主要使用了MODBUS协议的两个公用功能码:0x03读多个保持寄存器,0x10预置多个寄存器。从上文可看出,在MODBUS通信中,信息帧的区分和同步完全依靠相邻帧之问的时间间隔来实现。要保证主从双方通信的成功,必须对信息帧之间的间隔进行准确判断。

3.1 MODBUS协议主机程序设计

通信时,主机Mega64首先发送信息帧,如果从机响应正确则进行数据处理同时发送下一帧信息。如果从机响应错误或在0.5秒内无响应,则主机重复发送上一帧信息,直到响应正确。在程序中,利用串口接收中断和定时器中断来实现信息帧的区分和阔步。设定Mega64的定时器T1每隔1个字符时间中断一次。定时器中断服务程序如下,其中eom_flag为通信标志,num_stop为信息帧结束标志,fail_flag为通信失败标志Send_Data为字符发送函数,SendDataProc为发送信息帧预处理函数,RevDataProc为接收数据处理函数。在发送状态下.每次定时器中断时发送一个字符。保证相邻字符的时间间隔小于1.5个字符,一帧信息发送结束后,复位发送标志并等待从机响应。在接收状态下,每次串口接收中断都将置位接收标志同时将信息帧结束标志清0。一帧信息接收完时,结束标志从0开始累加,当结束标志增到4时,表明一帧信息结束.主机进行接收数据处理。由于使用了同一通信标志来判断主机是接收还是发送状态,因此只能实现半双工通信。

void TICISR(void)
{
unsigned char flag;
CLl();//禁止中断嵌套
if(com_flag==SEND)//如果通信标志为发送,则发送数据SendData0;
num_stop++;
fail_flag++;
if(num_stop>3)//判断一帧信息是否结束
{
num_stop=0:
if(corn_flag==RECEIVE)//如果主机已接收数据
{
flag=CrcCheck(revP)://CRC校验
if(flag)//如果接收正确,则进行处理,否则重复发送上一指令
RevDataProc();
SendDataProc();//下一次发送数据预处理
}
}
if(fail_flag>200)  //如果在0.5秒内,从机无响应,则重复发送上一指令
SendDataProc();
SEl();
}

3.2 MODBUS协议从机程序设计

F2812作为通信方的从机,首先对接收列的信息帧进行解释。在网送应答报文给主机。其程序基本设计思想与主机类似,仍利用定时器中断和串口接收中断来实现信息帧的区分和同步。但在从机中,定时器和串口接收中断部必须允许中断嵌套。即在通信过程中.若逆变部分发生了捕获中断、功牢保护中断等,F2812应立即执行,否则会引起并网电流失真。若由此引起某一帧信息通信失败,则需要主机重复发送该信息帧。

<strong>4 结论</strong>

本文的创新点在于:将原来单核的光伏并网系统设计为双核的主从式系统,保证了实时性:同时利用MODBUS协议来实现F2812DSP与单片机的通信.并且利用MODBUS协议中保留的扩展功能码,用户可以方便的实现特定的功能。而不需要自己去制定串口通信协议。两个模块可独立研发,最后在联机进行通信调试.极大的节省了,研发时间。通过样机实验表明,此方案切实可行,整个样机运行稳定。通信数据准确,适时性好。


作者:罗力,沈玉粱,何金伟,孙韵琳  来源:《微计算机信息》(嵌入式与SOC)2009年第4-2期
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

公告:服务器刚移机,
大家请不要下载东西。
会下载失败


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表