《2022年组态王与单片机多机串口通信的设计方案 .pdf》由会员分享,可在线阅读,更多相关《2022年组态王与单片机多机串口通信的设计方案 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 / 8 组态王与单片机多机串口通信的设计1 引言随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。现在组态软件繁多,比如KingVieW( 组态王 、MCGS 、 WinCC 等。 KingView 软件基于Microsoft Windows XP,NT 2000 操作系统具有友好的人机操作界面、强大的IO 设备端口驱动能力,可与各种PLC 、智能仪表、智能模块、板卡、变频器等实时通讯。由于在检测大量模拟量的工业现场使用PLC 与组态软件通讯势必增加产品成本。而单片机接口丰富,与AD 转换模块组合可以完成相同的工作,并且系统可靠、成本低。
2、2 组态王与单片机的串口通讯方法目前,组态王与单片机的通信多是通过动态数据交换(DDE 或通过自己开发通讯驱动程序完成。 DDE 是 Windows 平台上的一个完整的通信协议,组态王通过该协议与其他应用程序交换数据。但不可靠和非实时。而自己开发通讯驱动程序会带来设计困难,增加系统开发周期,可行性不高。组态王专门提供一种与单片机多机串口通信方法,可满足大多数系统需求。3 PC 机与单片机的硬件接口电路图 1 为上位 PC 机与下位单片机80C51 的连接电路。 PC 机与单片机本身都自带串行通讯接口,但由于在分布式系统中PC 机与各单片机的分布不集中,不能利用RS-232 通讯传输,只能改用R
3、S-485 。RS-485 采用差分式传输信号,最大传输距离为1 219 m 最大传输速率为10 Mb s对同时出现的两条信号线A、B 的干扰有较强的抑制能力。当两条线绞在一起时,被通信各种分布参数耦合过来的干扰信号可平均地分配到这两条线上,因此对 RS-485 的差分式传输线路而言,用双绞线可获得较强的抗干扰能力。RS-485 采用二线与四线平衡传输方式,二线制可实现真正的多点双向通信,但需要在传输线上接电阻(约 120 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 8 页2 / 8 由于 80C51 系列单片机STC89C52串
4、行接口的, TTL 电气特性与RS-485 电气特性不相符, STC89C52不能与 RS-485 直接连接,需要电气转换。这里采用Maxim 公司的 MAX485 ,图 2 为其接口电路。图 2 中, MAX485 的 RE 和 DE 南 STC89C52单片机的P17 控制。由于MAX485以半双工的方式工作,因此由P1 7 控制其发送与接收。当 P1 7 为高电平时,驱动器使能而接收器为高阻态,此时可发送数据;而当P17 为低电平时接收器使能而驱动器为精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 8 页3 / 8 高阻态,此时接
5、收数据。另外由于PC 机的 COM 口是基于RS-232 的串行通讯口其电气特性与 RS-485 不一致,因此也需电平转换。图 3 为单片机地址设置电路,单片机STC89C52的 P1 口的低 4 位用于设定本机地址,通过4 位 DIP 开关的组合最多可设定16 种地址。如当4 位开关全部断开时,对应的本机地址是11 11 。下位单片机在开始工作前需先设定自己的地址,这样,在开机自检时下位单机片就能获取本机地址。4 系统通讯协议设计组态王提供了通过PC 机与单片机串口进行十六进制数据通讯的驱动,而驱动中已经规定好其通讯协议。41 通讯参数通讯参数包括数据位、停止位、波特率、校验方式。其中,数据
6、位、停止位、波特率由单片机决定。组态王中的设定和单片机一致即可。校验方式参照“ 数据传输格式” 部分。42 数据传输格式与协议说明格式 1 组态王发送地址请求格式(检验位为1:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 8 页4 / 8 格式 2 单片机应答地址格式(检验位为0:格式 3 组态王读数据请求格式(检验位为0:格式 4 单片机应答读数据格式(正确 (检验位为 O :格式 5 单片机应答读数据格式(错误 (检验位为 0:格式 6 组态王写数据请求格式(检验位为O:格式 7 单片机应答写数据格式(正确 (检验位为 0:协议具
7、体说明如下:ENQ( 头 :H05 ,询问,请求帧的开始代码;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 8 页5 / 8 ACK( 头:H06 ,确认, ACK 应答帧的开始代码;NAK( 头:H15 ,否认, NAK 应答帧的开始代码;EOT( 尾:H04 ,正文的结束,请求帧的结束ASCII 代码;ETX( 尾:H03 ,结束正文,应答帧的结束ASCII 代码;数据传输:所有数据均为16 进制数;Sta:设备地址, 1 个字节,组态王设备地址范围为0255,此地址为单片机的地址,由单片机中的程序决定;R:读标志, 1 个字节
8、(0 x52 ;W:写标志, 1 个字节 (0 x57 ;DataType :需要交换的数据类型,1 字节。其中 “1”代表字节, “ 2”代表字, “ 3”代表浮点型;DataNum :读取数据的个数,1 字节;DataAddr :数据偏移地址,2 字节,低字节在前,高字节在后;Data :实际传输的数据,低字节在前,高字节在后;DataLong :单片机返回Data 的字节数, 2 字节,低字节在前,高字节在后:CRC :为从第1 个字节至CRC 前的所有字节的异或值,1 字节;ErrorCode :错误代码, “ 0”代表正确应答,“1”代表数据类型错误,“ 2”代表数据范围超限, “3
9、”代表指令无法识别。5 单片机通讯程序流程设计图 4 为组态王程序流程,图5 为单片机通讯程序流程。80C51 系列单片机多机通讯可归纳如下:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 8 页6 / 8 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 8 页7 / 8 上位机的 SM2=0 ,所有下位机的SM2=1 ,以便只接收上位机发来的地址;上位机给下位机发送地址时,第9 数据位应该为1,以指示下位机接收这个地址;所有下位机在SM2=1 , RB8=1 和 RI=0 时,
10、接收上位机发来的地址,进入相应中断服务程序,并与本机地址相比较,以确认是否为被寻址的下位机;被寻址下位机通过指令清除SM2 ,以便正常接收上位机发送来的数据,并向上位机发回接收到的地址以便核实。未被寻址的下位机保持SM2=1 ,并退出各自的中断服务程序;完成上位机和被寻址下位机之间的数据通信后,被寻址从机使SM2=1 ,并退出中断服务程序,等待下次通信。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 8 页8 / 8 6 结束语该系统实现组态王软件与单片机多机的实时通信,已经在实际工程中得到应用。应用的结果表明该设计方法简单有效,实时性好,成本低廉,可以在控制与监控系统中推广应用。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 8 页