保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

分布式发电机励磁监控系统的设计


6H”表示“调节器正忙”。可读取的励磁调节器寄存器内容如表1所示。
  
  表1可读取的寄存器的内容
  
  数据地址内容00H
  01H
  02H
  03H
  04H
  05H
  06H机端电压(Uc)
  变换电阻后的电压(Ut)
  励磁电流实际值(ILc)
  电压给定值(Ug)
  励磁电流给定值(ILg)
  可控硅触发角(a)
  励磁电流额定值(ILe)
  上位PC机要远方控制励磁系统时,需通过设置命令16H来实现,发送:地址码+功能码(16H)+起始寄存器地址+寄存器个数(01H)+数据(1字节)+CRC校验码低字节+CRC校验码高字节,设置时一次只能设置一种参数。正常情况下,励磁调节器回送:地址码+功能码(16H)+起始寄存器地址+寄存器个数(01H)+CRC校验码低字节+CRC校验码高字节。出错时,励磁调节器回送:地址码+功能码(96H)+错误代码(02H/03H)+CRC校验码低字节+CRC校验码高字节,其中,错误代码“02H”表示“非法数据位置”,“03H”表示“非法数据值”。可设置的励磁调节器寄存器内容如表2所示。
  
  表2可设置的寄存器的内容
  
  数据地址内容00H
  01H
  02H
  03H
  04H增励
  减励
  给定电压
  给定电流
  恒电压/电流控制
  若上位PC机发送除03H和16H外的其它命令,励磁调节器则将收到的功能码逻辑或“80H”作为回送帧的功能码,回送内容为:地址码+功能码+错误代码(01H)+CRC校验码低字节+CRC校验码高字节。
  
  4上位机的软件设计
  
  上位PC机完成人机交互、与励磁调节器内的通信控制微机进行通信等任务。其软件用Delphi6.0设计,其中数据库用Delphi6.0自带的Paradox数据库。人机交互功能主要有:对励磁系统各重要参数(如励磁电流、机端电压、可控硅触发角等)进行实时监测,并可进行图形化显示、报表打印、事件顺序记录、越限报警;向励磁调节器发送增励、减励等各种控制命令;操作人员可进行管理等。软件的另一模块为通信程序。利用Delphi设计串口通信程序一般有三种方法:一是利用Windows的通信API函数;二是利用第三方提供的通信用动态链接库;三是采用Microsoft或其它公司的通信OCX控件。本系统采用Microsoft公司的MSComm通信OCX控件来设计通信软件。MSComm是VB中的OCX控件,使用前要将其添加到Delphi中,添加方法如下:选择菜单“Component”下的子菜单“ImportActiveXControl”,在“ImportActiveX”页内选择“MicrosoftCommControl”,点击“Install”安装。编程时应注意其Input和Output属性的数据类型为OleVariant,这与VB和VC不同。
  
  Modbus通信协议的软件设计主要为CRC-16校验码生成的实现方法。CRC-16校验码生成编写程序有两种方法:一种为计算法;另一种为查表法。上位机采用计算法。下面为CRC-16的计算过程:
  
  (1)设置CRC寄存器,并给其赋初值FFFF?HEX?。
  
  (2)将全部数据的第一个8bit数据与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。
  
  (3)CRC寄存器整体向右移一位,MSB补零,移出并检查LSB。
  
  (4)如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。
  
  (5)重复第(3)与第(4)步?直到8次移位全部完成。此时一个8bit数据处理完毕。
  
  (6)重复第(2)至第(5)步?直到所有数据全部处理完毕。
  
  (7)最终CRC寄存器的内容即为CRC值。
  
  Delphi6.0环境下CRC-16实现的函数如下:
  
  functionCRC16?CRC_Data?arrayofByte?DATA_Len?integer??word?
  
  var
  
  CRC16Lo?CRC16Hi?byte?//CRC寄存器
  
  SaveLo?SaveHi?byte?//CRC中间寄存器
  
  GLo?GHi?byte?//生成多项式
  
  i?integer?//需校验数据的字节数
  
  Flag?integer?//移位的次数(8次)
  
  begin
  
  CRC16Lo?=byte?$ff??
  
  CRC16Hi?=byte?$ff??//给CRC寄存器赋初值
  
  $ffff(HEX)
  
  GLo?=byte?$01??
  
  GHi?=byte?$a0??//多项式码$a001(HEX)
  
  fori?=0toDATA_Len-1do//各字节数据
  
  begin
  
  CRC16Lo?=CRC16LoxorCRC_Data?i??//各字节数据
  
  与CRC寄存器进行异或
  
  forFlag?=0to7do
  
  begin
  
  SaveLo?=CRC16Lo?
  
  SaveHi?=CRC16Hi?
  
  CRC16Hi?=CRC16Hishr1?/

《分布式发电机励磁监控系统的设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/168928.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。