Modbus通讯协议在阀门电动装置测试系统中的应用(3)

发布时间:2021-06-05

EDI技术在现代物流管理中的应用

 第4期

邵志学等:Modbus通讯协议在阀门电动装置测试系统中的应用

EndIfEndFunction

2.2.2 下位机ARM2200系列单片机通讯程序设计

39  

  下位机利用软件ADS1.2进行编程,此软件是专为ARM单片机开发的,类似于C语言,有很好的应用性。此软件中设计的对ARM单片机进行串口初始化、中断允许、发送数据和接收数据程序代码如下:i=发送开始字符(0x20)==0);

U0THR=cmdid;  //发送命令字符

while((U0LSR&0x20)==0);

 U0THR=datanum;  //发送的字节数目

while((U0LSR&0x20)==0);

 for(i=0;i<datanum;i++)  {U0THR=dataptr[i];

PublicFunctionfunCRC16Verify(mArrModBus()AsByte)AsBoolean

DimCRC16LoAsByte,CRC16HiAsByte ′CRC寄存器DimCLAsByte,CHAsByte,SaveHiAsByte,SaveLoAsByteDimI,JAsInteger

CRC16Lo=&HFF:CRC16Hi=&HFFCL=&H1:CH=&HA0

ForI=0ToUBound(mArrModBus)

CRC16Lo=CRC16LoXormArrModBus(I) ′每个数据与CRC寄存器进行异或ForJ=0To7

SaveHi=CRC16Hi:SaveLo=CRC16LoCRC16Hi=CRC16Hi\2 ′高位右移一位CRC16Lo=CRC16Lo\2 ′低位右移一位

If((SaveHiAnd&H1)=&H1)Then ′如果高位字节最后

  }  //发送数据

while((U0LSR&0x20)==0);

 U0THR=0x2a; /33结束3/

while((U0LSR&0x20)==0);  //等待数据发送

数据接收程序:

if(0x04==(U0IIR&0x0F))rcvnew=1;  //设置接收

到新的数据标志 for(i=0;i<5;i++)

 {rcvbuf[i]=U0RBR;  //读取FIFO的数据,并清除中断标志 }

VICVectAddr=0x00;  //中断处理结束

3 结束语

一位为1

CRC16Lo=CRC16LoOr&H80 ′则低位字节右移后前面补1

EndIf ′否则自动补0

If((SaveLoAnd&H1)=&H1)Then ′如果LSB为1,则与

该系统应用在对阀门电动装置进行质量检测的生产过程,应用表明:该通讯网络部分运行平稳,数据传输误码率低,传输速度符合要求,效率高,操作简单,组网方便,满足生产现场的数据检测和控制要求。该系统可广泛应用于高精度的工业测控、数据采集等领域中。参考文献:

[1] 陈柏金.通过串行口访问Modbus现场控制网络.微计算机信息,

2003,19(1):52-54.

[2] 阳宪惠.现场总线技术及其应用.北京:清华大学出版社,1999.[3] 潘洪跃.基于Modbus协议通讯的设计与实现.计量技术,2002,

(4):35-36.

[4] 卢文俊.基于Modbus协议的控制器远程监控系统.电力自动化设

多项式码进行异或

CRC16Hi=CRC16HiXorCHCRC16Lo=CRC16LoXorCLEndIfNextJNextI

If0=CRC16LoAnd0=CRC16HiThen

funCRC16Verify=False ′校验正确时候函数返回假值Else

funCRC16Verify=True ′校验不正确时候函数返回真值

备,2003(6):54-56.

[5] 赵作鹏.Delphi环境中Modbus通讯协议的开发和应用.煤矿机电,

2003(4):35-36;53.

),硕士研究生,从事电力系统及其自动化的研究。作者简介:邵志学(1983—

Modbus通讯协议在阀门电动装置测试系统中的应用(3).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219