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