资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
-文章转载组态王与单片机多机串口通信的设计1 引言随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软 件设计的监控系统逐步普及。现在组态软件繁多,比如KingVieW(组态王)、MCGS、WinCC 等。KingView软件基于Microsoft Windows XP, NT / 2000操作系统.具有友好的人机操作 界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器 等实时通讯。由于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成 本。而单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本 低。2 组态王与单片机的串口通讯方法目前,组态王与单片机的通信多是通过动态数据交换(DDE)或通过自己开发通讯驱动程 序完成。DDE是Windows平台上的一个完整的通信协议,组态王通过该协议与其他应用程 序交换数据。但不可靠和非实时。而自己开发通讯驱动程序会带来设计困难,增加系统开发 周期,可行性不高。组态王专门提供一种与单片机多机串口通信方法,可满足大多数系统需 求。3 PC机与单片机的硬件接口电路图1为上位PC机与下位单片机80C51的连接电路。PC机与单片机本身都自带串行通 讯接口,但由于在分布式系统中PC机与各单片机的分布不集中,不能利用RS-232通讯传 输,只能改用RS-485。RS-485采用差分式传输信号,最大传输距离为1 219 m最大传输 速率为10 Mb/s .对同时出现的两条信号线A、B的干扰有较强的抑制能力。当两条线绞 在一起时,被通信各种分布参数耦合过来的干扰信号可平均地分配到这两条线上,因此对 RS-485的差分式传输线路而言,用双绞线可获得较强的抗干扰能力。RS-485采用二线与四 线平衡传输方式,二线制可实现真正的多点双向通信,但需要在传输线上接电阻(约120 Q)。上位兀机RS-232/485转换榭夬RS-485总线/?JBRS-4858051 1#RS-485805180512#图1 PC机与单片机采用RS-485总线的连接理路由于80C51系列单片机STC89C52串行接口的,TTL电气特性与RS-485电气特性不相 符, STC89C52不能与RS-485直接连接,需要电气转换。这里采用Maxim公司的MAX485,+5VSTC89C524020VCCRXDPL 710O0. IpFHHErVSS1823114RXD RE DETXDVCCnpMAX485图2为其接口电路。山汀M图 2 中, MAX485 的 RE 和 DE 南 STC89C52 单片机的 P1 7 控制。由于 MAX485 以 半双工的方式工作,因此由P1. 7控制其发送与接收。当P1. 7为高电平时,驱动器使能 而接收器为高阻态,此时可发送数据;而当 P17 为低电平时接收器使能而驱动器为高 阻态,此时接收数据。另外由于PC机的COM 口是基于RS-232的串行通讯口 .其电气特 性与 RS-485 不一致,因此也需电平转换。图3为单片机地址设置电路,单片机STC89C52的P1 口的低4位用于设定本机地址, 通过4位DIP开关的组合最多可设定16种地址。如当4位开关全部断开时,对应的本机地 址是 11 11。下位单片机在开始工作前需先设定自己的地址,这样,在开机自检时下位单机 片 就 能 获 取 本 机 地 址。4 系统通讯协议设计组态王提供了通过PC机与单片机串口进行十六进制数据通讯的驱动,而驱动中已经规 定好其通讯协议。41 通讯参数 通讯参数包括数据位、停止位、波特率、校验方式。其中,数据位、停止位、波特率由 单片机决定。组态王中的设定和单片机一致即可。校验方式参照“数据传输格式”部分。42 数据传输格式与协议说明格式 1 组态王发送地址请求格式(检验位为 1):格式4单片机应答读数据格式(正确)(检验位为O):ENQSlaEOTCRC格式2 单片机应答地址格式(检验位为0):ACKStaETXCRC格式3 组态王读数据请求格式(检验位为0):ENQRDatalypeData Ad di1DataNmn! EOTCRC格式6组态王写数据请求格式(检验位为O):格式 5 单片机应答读数据格式(错误)(检验位为 0):NAKErrorCodeETX 1CRC !ACKErrorCodeETXCRC- 格式7单片机应答写数据格式(正确)(检验位为 0):协议具体说明如下:ENQ(头):H05,询问,请求帧的开始代码;ACK(头):H06,确认,ACK应答帧的开始代码;NAK(头):H15,否认,NAK应答帧的开始代码;EOT(尾):H04,正文的结束,请求帧的结束ASCII代码;ETX(尾):H03,结束正文,应答帧的结束ASCII代码;数据传输:所有数据均为16 进制数;Sta:设备地址,1个字节,组态王设备地址范围为0255,此地址为单片机的地址, 由单片机中的程序决定;R:读标志,1个字节(0x52);W:写标志,1个字节(0x57);DataType:需要交换的数据类型,1字节。其中“1”代表字节,“2”代表字,“3”代 表浮点型;DataNu m:读取数据的个数,1字节;DataAddr:数据偏移地址,2字节,低字节在前,高字节在后;Data :实际传输的数据,低字节在前,高字节在后;DataLong:单片机返回Data的字节数,2字节,低字节在前,高字节在后:CRC:为从第1个字节至CRC前的所有字节的异或值,1字节;ErrorCode:错误代码,“0”代表正确应答,“1”代表数据类型错误,“2”代表数据范 围超限,“ 3”代表指令无法识别。5 单片机通讯程序流程设计图4为组态王程序流程,图5为单片机通讯程序流程。80C51系列单片机多机通讯可归 纳如下:图4组态王程序流程组态主读数据 请求(格式3)初始化获取本机地址SM2设为1.只接收地址发送应答地址(格式2) f SM-0发送 数据 格式发送数据(格式4)图5单机片程序流程上位机的SM2=0,所有下位机的SM2=1,以便只接收上位机发来的地址; 上位机给下位机发送地址时,第9 数据位应该为1,以指示下位机接收这个地址; 所有下位机在SM2=1, RB8=1和RI=0时,接收上位机发来的地址,进入相应中断服务 程序,并与本机地址相比较,以确认是否为被寻址的下位机;被寻址下位机通过指令清除SM2,以便正常接收上位机发送来的数据,并向上位机发 回接收到的地址以便核实。未被寻址的下位机保持SM2=1,并退出各自的中断服务程序;完成上位机和被寻址下位机之间的数据通信后,被寻址从机使SM2=1,并退出中断服 务程序,等待下次通信。6 结束语 该系统实现组态王软件与单片机多机的实时通信,已经在实际项目中得到应用。应用的 结果表明该设计方法简单有效,实时性好,成本低廉,可以在控制与监控系统中推广应用。关于我们 | 联系我们 | 购物流程 | 常见问题 | 付款方式 | 汇款确认 | 产品分类| 网站地 图 Copyright 2009-2015 保留所有权利。使用条款 | 客户私隐政策 地址:上海市浦东新 区郭守敬路498号14-15号楼3楼 邮编:201203联系邮箱:demoboardpd-sts.com沪ICP 备10010535号本文来源于:开发板在线商城 www.demo-board.com,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号