新闻中心

EEPW首页>嵌入式系统>设计应用> RS485总线在智能供电系统中的应用

RS485总线在智能供电系统中的应用

作者: 时间:2012-06-19 来源:网络 收藏

  (3)各台下位机不相互通信,且不主动发送命令和数据,同一时刻只有一个下位机发送信息给上位机。为了识别每个下位机,系统通过拨码开关等硬件电路为其分配一个特定地址。进行通讯前,上位机首先通过RS485总线广播地址信息,所有下位机都侦听广播,并中断接收。下位机接收到地址信息后,进行地址比对,若地址相同,则该下位机把本机地址作为应答信号发送回上位机,然后开始准备接收上位机发来的操作数据信息,而其它的下位机因地址不符,从中断返回。上位机接收下位机发回的应答地址信息后,比较地址信息,如果相符,正式发送数据信息,如果不符则重新发送地址信息。下位机收到上位机发送的操作数据包后,根据数据包格式把有效数据做累加,然后与接收到的累加和(即校验码)比较,若相同,则执行相应的操作,并发送成功回馈信息给上位机;若不相同,则说明发送的数据中有错误,将接收数据缓存区清零,并要求上位机重新发送。

  3.2PC上位机软件设计

  系统上位机程序采用DELPHI语言编写,它具有功能强大、简便易用和代码执行速度快的特点,是新一代可视化快速应用开发工具。利用DELPHI实现串口通信常用的方法有3种:(1)利用控件,如SPCOMM控件、MSCOMM控件及APRO控件等;(2)使用API函数;(3)调用其他串口通信程序。本系统选用较简单的SPCOMM控件来完成串口选择、波特率设置、帧格式设置、发送和接收缓冲区控制、打开串口等任务,用Timer控件控制发送地址码信息。上位机PC流程图如图2所示,其串口通信部分相关程序如下:

  procedureTform1.Timer1Timer(Sender:TObject);

  begin

  comm1.BaudRate:=9600;comm1.parity:=None;

  comm1.StopBits:=_1;comm1.ByteSize:=_8;

  oper_comm:=true;//串口接受数据流控制变量

  comm1.WriteCommData(@sendbuf,1);

  end;

  接收程序代码:

  procedureTform1.Comm1ReceiveData(Buffer:Pointer;BufferLength:Word);

  Begin

  move(buffer︿,(@rbuf)︿,bufferlength);//将缓冲区数据转移到rbuf变量

  ifoper_comm=truethen

  begin

  判断接受到下位机发送的应答信息,若是则继续执行

  sendbuf:=操作命令字符;//发送操作命令

  comm1.writecommdata(@sendbuf,1);

  oper_comm.:=false;

  end;

  elsebegin

双绞线传输器相关文章:双绞线传输器原理


关键词:DSPMAX485串行通讯

评论


相关推荐

技术专区

关闭