《单片机与plc之间的串行通信实现.pdf》由会员分享,可在线阅读,更多相关《单片机与plc之间的串行通信实现.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、研究与应用化工自动化及仪表,2 0 1 0,3 7(2):7 8 8 0C o n t r o la n dI n s t r u m e n t si nC h e m i c a lI n d u s t r y单片机与P L C 之间的串行通信实现李生军1,李少蒙2(1 天华化工机械及自动化研究设计院,兰州7 3 0 0 6 0;2 中国科技大学信息工程学院,合肥2 3 0 0 2 7)摘要:在工业自动控制中,单片机与P L C 的远距离通信是一个难点与热点问题。本文设计了$7-2 0 0 P L C与P I C l 6 F 8 7 7 单片机实现远距离串行通信的硬件连接和软件实现方法。
2、本文采用了M A X 4 8 5 E 芯片进行,I T r L 电平与差分信号之间的转换,使用R S-4 8 5 端口和半双工模式进行通信。最后通过异或校验码对接收到的数据进行核对,以进一步提高数据传输的可靠性。实验证明,该方法成功实现了单片机与P L C 的远距离通信,并且具有开发简单,抗干扰能力强的特,最,具有一定实用价值。关键词:单片机;P L C;串行通信中图分类号:T P 3 9 3 文献标识码:A 文章编号:1 0 0 0-3 9 3 2(2 0 1 0)0 2-0 0 7 8-0 31引言随着微处理器、计算机和数字通信技术的飞速发展,计算机控制已经扩展到了几乎所有的工业领域。其中
3、,P L C 和单片机在小规模控制系统中获得了广泛的应用。P I E 和单片机各有所长,P L C 使用简单、运行可靠、抗干扰能力强,并具有较强的负载驱动能力,适用于环境条件较差的工业现场,用作机械设备的主控器件;单片机体积小、价格低、使用灵活,适用于家用电器、办公设备、仪器仪表及传感器内部的核心器件。在实际应用中,往往需要把二者结合起来,发挥各自的长处,P L C 和单片机通过通信交换信息,共同组成控制系统。以前也有文章介绍过类似的应用,选用8 0 5 2 单片机和F X 系列P L C。由于采用了R S-2 3 2接口标准,其电平与T T L 电平不兼容,需要电平转换旧1;而且抗干扰能力差
4、,最大传输距离为1 5m。笔者在塑料挤出机温度自动控制中,选用S 7 2 0 0 系列P L C 作为主控器件,P I C l 6 F 8 7 7 单片机作为温度数据采集和模数转换芯片,单片机通过通信端口将数据传输给P L C,由于采用了R S-4 8 5 接口标准,传输距离可达10 0 0m。P L C 经过P I D 运算后控制加热圈以保持温度恒定。下面结合实例就P L C和单片机的通信实现做一下介绍。2 硬件构成2 1P I C l 6 聃7 7 单片机M i c r o c h i p 公司的P I C l 6 F 8 7 7 单片机采用哈佛总线结构和精简指令集技术,具有功耗低、运行速
5、度高、驱动能力强和外接电路简洁的特点。P I C l 6 F 8 7 7 单片机内部集成了串行通信模块即通用同步异步收发器U S A R T 模块,主要应用目标是系统之间的远距离串行通信。U S A R T 模块所需的两条引脚是R C 6 和R C 7,如图1 所示,当发送允许位T X E N 被置1,就可以把发送数据写入T X R E G 寄存器来完成发送旧1。2 28 7-2 0 0 系列P L C西门子公司的S I M A T I CS 7-2 0 0 系列P L C 属于小型整体式P L C,由于其指令丰富,操作简便,运行可靠和极强的通信功能而广泛应用于各种机械设备和生产过程的自动控制
6、中。s 7 2 0 0 系列P L C 通信端口采用异步串行通信方式,通信端口标准采用平衡驱动、差分接受的R S-4 8 5 接口标准,可以组成半双工串行通信网络,构成分布式系统,系统中最多可以有3 2 个站。$7-2 0 0 支持多种串行通信协议,利用自由端口模式,可以通过语句表或梯形图编程,实现用户定义的通信协议,很方便地连接不同厂家的智能设备。在自由端口模式下,可以连续地发送或接收2 5 5 个字节以内的数据,这在大块数据通信时是很方便的。也可以用字符接收中断而不是用接受指令来控制接收数据,这样比较灵活但编程比较麻烦H。2 3M A X 4 8 5 E 芯片M A X 4 8 5 E 芯
7、片是R S-4 8 5 接口标准专用通信芯片,如图1 所示,R O 脚为数据输出脚,它接收R S-4 8 5的差模信号V A B,并转换为T T L 电平由R O 输出,R E脚为R O 的使能端,低电平时选通R O,输出有效。D I脚为数据输入端,它将1 1 1。电平的数据转换为差模信号V A B,并由A、B 两脚输送出去,D E 是D I 使能端,高电平选通D I,输入有效。故A、B 两脚既是R S-4 8 5信号输入端,同时也是该信号的输出端,关键是由使能端R E、D E 的电平来决定。为了控制上的方便,通常将R E、D E 两端连在一起,高电平时D I 脚输入的数收稿日期:2 0 0
8、9-1 0-2 2(修改稿)万方数据第2 期李生军等单片机与P L C 之间的串行通信实现7 9 据有效;低电平时R O 脚输出的数据有效。2 4 硬件连接图S 7-2 0 0 P L C 采用R S-4 8 5 接口标准,接收差模信号,而P I C l 6 F 8 7 7 单片机的输出为T I L 电平,所以二者在通信时必须先进行转换,本系统采用M A X 4 8 5 E芯片作为转换芯片,硬件连接如图1 所示。由P I C l 6 F 8 7 7 单片机的R C 4 选择数据的输入或输出。+5VS 7 2 0 0P O R T OM A X 4 8 5 E图1 硬件连接图3 通信协议本项目中
9、由于P I C l 6 F 8 7 7 单片机只是发送数据,P L C 单纯接收数据,所以采用单工串行通信。P L C 采用自由端口模式协议,协议由语句表编程实现;单片机使用U S A R T 模块的异步发送模式,协议用汇编语言编程实现。由P I C l 6 F 8 7 7 单片机的发送缓冲结构可知,一次只能连续发送两个字节的数据,故P L C 采用字符接收完成中断比较方便。接口标准采用与P L C 侧一致的R S-4 8 5,接头采用9 针D 形连接器,传输线采用屏蔽双绞线,单片机侧的发送数据需经转换后再发送。字符信息格式为:1 位起始位,8 位数据位,无校验位,1 位停止位。异步通信的字符
10、信息格式如图2 所示。停止位停止位 压)口X D 互匹珏酊匝起始位起始化图2 字符信息格式数据位的发送顺序为低位在前,高位在后。异步通信的传输速率即波特率选择为3 84 0 0b i t s。为提高数据传输的可靠性,采用异或校验,报文采用定长发送,前四个字节参加异或校验,报文的最后一个字节为校验码。P I C l 6 F 8 7 7 单片机的模数转换精度为1 0 位,故温度值采用双字节保存。报文帧格式如表l 所示。表1 报文帧格式墅壁!兰!兰!功能荤薯娑釜骤嚣曩囊4 初始设置4 1P I C l 6 F 8 7 7 单片机发送数据初始设置P I C l 6 F 8 7 7 单片机内部集成的U
11、S A R T 模块使用的波特率应该和S 7-2 0 0 P L C 相同,当采用高速波特率时,波特率寄存器S P B R G 由下式计算:S P B R G=(1 6 波特率)一1式中:卜单片机时钟频率。S P B R G 的值要取整数,这样单片机的实际波特率和P L C 会有微小的误差。异步通信时通过检测字符起始位的下降沿来实现同步,由于一个字符包含的位数不多,即使发送方和接收方的收发频率略有不同,一般也不会因累积误差而导致收发错位p 1。单片机的数据位、校验位、停止位要和P L C 统一。P I C l 6 F 8 7 7 单片机最多只能连续发送两个字节的数据。其初始设置汇编语言程序如下
12、:u S TP=1 6 F 8 7 7 A;伪指令I N C L U D E”P 1 6 F 8 7 7 A I N C“;伪指令-一一体1 设置子程序T 1B C FS T A T U S,R P I;B S FS T A T U S,R P O;体lM O V L WD 5;3 84 0 0b i t sM O V W FS P B R G;M O V L WB 0 0 1 0 0 1 0 0;异步,发送使能M O V W FT X S T A;高速,8 化数据M O V L WB 1 1 1 0 1 l l l;R C 6,R C 7,N O V W FT R I S C;R C A 通
13、信C L R FI N T C O N;禁止中断R E T U R N;子程序返同;一体0 设置子程序-T OB C FS T A T U S,肿;体0B S FP O R T C,4;R C 4=1 通信M O V L WB 1 0 0 0 0 0 0 0;使能串口R E T U R N;子程序返凹4 2s 7-2 0 0 P L C 接收数据初始设置C P U 处于S T O P 模式时,自由端口模式被禁止,使用其它模式的通信,例如与编程设备的通信。只有C P U 处于R U N 模式时,才能使用自由端口模式。如果使用通信端口O 通信,将通过特殊存储器S M B 3 0 进行初始设置。使用
14、字符接收中断来接收数据时,初始设置比较简单,只需将中断事件8 与接收数据的中断程序相连接,并设置波特率、数据位、校验位、停止位即可”1。用语句表编程的初始设置程序如下:N e t w o r k lL DS M 0 7若为R U N 模式E U上升沿OS M 0 1t 或首次扫描M O V B1 6 轷,0 1,S M B 3 0 3 84 0 0b i t s,8,N,1A T C HI N TO,8 中断与i n tO 连接E N I允许中断N e t w o r k 2L D NS M O 7若非R U N 模式E U上升沿RS M 3 0 0,1设置为P P I 协议D T C H8禁
15、止中断O EKRDRD目万方数据8 0 化工自动化及仪表第3 7 卷5 通信程序5 1P I C l 6 F 8 7 7 单片机发送数据通信程序报文采用定长发送,每一帧报文由五个字节组成,每一温度值都经数字滤波后再发送。由于温度值变化缓慢,对通信的实时性要求较低,在发送数据通信程序中加入了较多的延时程序。由于波特率时钟依赖于系统时基振荡器,所以单片机进入睡眠状态时不能进行异步通信。单片机发送个测温点温度数据通信程序流程图如图3 所示。宁符接收完成中断连接1 N r l符计数器清零异域校-聆码清J 零指针指向接收缓冲K 酋地址5 2s 7-2 0 0 P L C 接收数据通信程序P L C 采用
16、字符接收完成中断接收数据,通过起始字节判断接收数据帧的开始,由数据长度决定接收数据帧的结束,采用异或校验提高接收数据的可靠性,S T-2 0 0 P L C 在接收完一帧数据后计算出接收到数据的异或校验码,并与单片机传送过来的校验码比较,如果不同就舍弃,不要求重发。本应用中传送数据为温度值,舍弃后接收下一个数据即可。P L C 接收数据通信程序流程图如图4 一图6 所示。(!型!:!堑堕)j I:一数掘存人接收缓冲二二】=二字符计数器+1二二】二指针+1T 一!凋J t S B R 一0二二 二字符接收完成中断连接I N r 一0Fr 瓢赢覆n图3 单片机程序流程图网4I N T 一0 程序流
17、程图图5I N T _ l 程序流程图网6S B R 一0 程序流程网6 结论由P I C l 6 F 8 7 7 单片机和S 7-2 0 0 P L C 组成的串行通信系统,采用平衡驱动、差分接收的R S-4 8 5 接口标准,与T T L 电平兼容,具有开发简单、成本低的优点,经过试用证明性能稳定、运行可靠、抗干扰能力强。如果需要,也可以进行半双工通信或略作改动组成多机通信网络。参考文献:1 李晓辉单片机与P L C 通信的研究与应用 J 水力采煤与管道运输,2 0 0 6,(2):2 8 2 9 2 张红涛,王三五,鲁力,等5 l 单片机和P C 机串行通信系统设计 J 化工自动化及仪表
18、,2 0 0 5,3 2(4):3 9 4 1 3 李学海P I C 单片机实用教程一提高篇 M 北京:北京航空航天大学出版社,2 0 0 2 4 廖常初P I E 编程及应用 M 第2 版北京:机械工业出版社,2 晒R e a l i z a t i o no fS e r i a lC o m m u n i c a t i o nb e t w e e nS C Ma n dP L CL IS h e n g-j u n l,L 1S h a o-m e n g(1 m n h u aI n s t i t u t eo fC h e m i c a lM a c h i n e r y
19、&A u t o m a t i o n,L a n z h o u7 3 0 0 6 0,吼i n a;2 D e p a r t m e t no fC o m p u t e rS c i e n c ea n dT e c h n o l o g y,U n i v e 巧i t yo fS c i e n c e&T e c h n o l o g yo fC h i n a,H e f e i2 3 0 0 2 7 C h i n a)A b s t r a c t:I ni n d u s t f i a la u t o m a t i o n 1 0 n g d i s t
20、a n c ec o m m u n i c a t i o nb e t w e e nt h eS C Ma n dP L Ci sad i f f i c u l ti s s u e T h eh a r d w a r ea n ds o f t w a r ei m p l e m e n t a t i o n so fl o n g d i s t a n c es e r i a lc o m m u n i c a t i o nb e t w e e nt h eS 7-2 0 0P L Ca n dt h eP I C l 6 F 8 7 7M C Uw e r ef
21、o c u s e d M A X 4 8 5 Ew a gu s e dt or e a l i z ec o n v e r s i o nb e t w e e nr I f r Ll e v e la n dd i f i e r e n t i a ls i g n a la n dR S 4 8 5p o r tw i t hh a l f-d u p l e xm o d eW a gu s e di nc o m m u n i c a t i o n X O Rp a r i t、,c h e c kc o d eo ft h er e c e i v e dd a t aW
22、 a Su s e dt of u r t h e ri m p r o v et h er e l i a b i l i t yo fd a t at r a n s m i s s i o n E x p e r i m e n t ss h o wt h a tt h i sm e t h o ds u c c e s s f u l l yi m p l e m e r i t sS C Ma n dP L Cl o n g-d i s t a n c ec o m m u n i c a t i o n w i t hf e a t u r e so fe a s y-d e v
23、e l o p i n ga n ds t r o n ga n t i-i n t e r f e r e n c e K e yw o r d s:S C M;P L C;s e r i a lc o m m u n i c a t i o n万方数据单片机与PLC之间的串行通信实现单片机与PLC之间的串行通信实现作者:李生军,李少蒙作者单位:李生军(天华化工机械及自动化研究设计院,兰州,730060),李少蒙(中国科技大学,信息工程学院,合肥,230027)刊名:化工自动化及仪表英文刊名:CONTROL AND INSTRUMENTS IN CHEMICAL INDUSTRY年,卷(期)
24、:2010,37(2)引用次数:0次 参考文献(4条)参考文献(4条)1.李晓辉.单片机与PLC通信的研究与应用J.水力采煤与管道运输,2006,(2):28-29.2.张红涛,王三五,鲁力,等.51单片机和PC机串行通信系统设计J.化工自动化及仪表,2005,32(4):39-41.3.李学海.PIC单片机实用教程-提高篇M.北京:北京航空航天大学出版社,2002.4.廖常初.PLC编程及应用M.第2版.北京:机械工业出版社,2005.相似文献(10条)相似文献(10条)1.期刊论文 高春侠.张磊.Gao Chunxia.Zhang Lei 基于C8051F单片机的嵌入式PLC系统的研究-电
25、气自动化2009,31(3)主要介绍基于C8051F1D20单片机嵌入式PLC的开发,它以C8051F020为中央处理单元,与数字输入、输出,模拟输入、输出,串行通讯等外围电路共同构成嵌入式PLC的硬件系统,通过对通用PLC的工作原理进行分析,编写系统程序,最终能够解释、执行梯形图程序,实现PLC的循环扫描、数字输入输出、模拟输入输出、定时器等功能.通过介绍这个开发过程,向读者提供一种嵌入式PLC的设计思路.2.学位论文 吴晓渊 基于单片机的PLC编译程序设计研究 2007 自动化装置和机电一体化产品的设计和开发中有时需要采用一种成本极低的逻辑控制器。为了满足这种需要,作者开展了用单片机直接实
26、现梯形图逻辑控制的硬件和软件研究。其中最为关键的一项技术是如何设计出基于单片机的PLC编译程序,将符合梯形图逻辑的PLC指令源程序翻译成单片机目标程序。本文论述了基于单片机的PLC编译程序设计的理论和方法,研究了基于单片机的PLC的单片机程序模块和目标程序框架,对编译程序结构进行了分析,阐述了查错模块设计方法以及目标代码装配方法,对基于单片机的PLC的编译程序的调试实验系统组成和实验结果进行了分析。首先,进行了基于单片机的PLC的单片机程序模块研究,构建了独具特点的目标程序框架结构。然后,定义了基于单片机的PLC的源程序语句标准集合,提出了源程序语句标准集合的数组表示方法;定义了目标代码集合,
27、提出了用映射来建立源程序语句标准集合和目标代码集合之间的关系,为编译程序结构的实现提供了条件和方法;提出了盲码预填和盲码修正的思想。提出了依据M数组对源程序查错的思路,通过列表文件名和列表文件的建立、整句识别、语句语法检查中的M数组逐行搜索、核对3.期刊论文 罗培.马茜.黄辉先 基于单片机和组态软件的PLC控制系统仿真实现-计算机系统应用2007,(11)以基于PLC的液气联调试验台为背景,针对PLC控制系统存在现场调试难度大、组织投入大量人力物力、风险大等问题,采用单片机和组态软件开发了用于PLC程序调试的仿真系统.系统由PLC、单片机接口板和PC机组成,PLC的I/O信号通过单片机接口板与
28、PC机相连,在PC机中,用组态软件模拟试验台测试工况,实现试验台控制程序的仿真调试.实践表明,该系统减少了现场调试工作量,提高了开发效率.4.会议论文 袁晓光 用于彩显系统匹配台的单片机智能控制器 1998 介绍了一种采用单片机和构成对彩显系统匹配台实现智能控制的方案。其目的是试图尽可能多地利用单片机的资源来实现一个性价比优良的方案,在保证系统功能和可靠性的前提下,大幅度降低设备的造价,从而为彩显系统匹配生产线设备的智能提供一种新的实用技术途径。5.期刊论文 邴春秋.郑萍.宋耀华.王敏 基于PLC和单片机实现的数据采集控制系统设计-西华大学学报(自然科学版)2007,26(6)本文介绍了一种由
29、LabVIEW、PLC和单片机构成的综合实验系统.通过RS232实现了PLC与单片机以及PLC与上位机LabVIEW之间的通讯,实现了底层数据的采集与控制.所设计的系统集成了多种技术,性价比高,为综合实验提供了良好的平台,也可以运用到工业现场的数据采集及控制中.6.学位论文 刘宇芳 PLC综合实验系统的开发与实现 2008 PLC实验教学由于受到场所、设备、资金等诸多客观条件的限制,难以在实验室配备真实控制对象,导致实验结果不够直观。针对这种情况,本文开发了一套适用教学、功能齐全的PLC实验装置,可以动态显示PLC控制系统的工作情况,有效提高了PLC综合系统设计的实验效果。PLC综合实验系统由
30、计算机上的被控对象模拟软件和I/O接口电路组成。本文首先介绍了PLC综合实验系统的基本结构和工作原理,然后分析了系统软件和硬件实现的相关技术与开发方法,并对具体设计中采用的单片机接口技术、USB通信技术及计算机仿真技术等进行阐述。其次,设计了以USB型单片机C8051F340为核心的I/O接口电路,完成PLC与模拟被控对象之间的信息传递,并对PLC开关量/模拟量信号进行调理。针对PLC实验系统的具体功能要求,采用C语言完成单片机固件程序开发,实现单片机与PC机之间的数据传输和USB总线协议处理。再次,在Visual C+环境下,利用Windows操作系统的I/O设备驱动原理与动态链接库技术开发
31、了USB通信程序;在Labview平台,采用外部代码接口机制调用该DLL与单片机通信,实现了PLC开关量/模拟量输入信号的设置、输出信号的定时读取。然后,系统采用Labview软件建立被控对象仿真模型,实现了被控对象实际运行过程的动态显示。最后,开发了五个顺序控制系统实验,运行结果表明PLC综合实验系统界面形象友好,能够满足教学要求,提高了PLC实验效率,改善了实验效果。7.期刊论文 龚志广.孙维连.李新领.高中彭.Gong.Zhiguang.Sun.Weilian.Li.Xinling.Gao.Zhongpeng OMRONCPM2A PLC与AT89C52单片机的串行通信及应用-微计算机信
32、息2006,22(29)本文分析了AT89C52单片机和OMRON CPM2A PLC串行通信接口的工作特性,介绍了PLC与单片机进行串行通信的实现方法,设计出一种简单实用、安全可靠、成本低廉的PLC人机交互界面.8.期刊论文 江小霞.李叶妮 PLC可编程控制器与PIC单片机的远程通信-集美大学学报(自然科学版)2009,14(4)设计了以单片机作为仪表,以PLC为控制器的网络系统的通信接口硬件及软件,其中:单片机采用PIC16F877,PLC采用西门子公司的226CPU.系统所采用的通信协议,可以实现点对多的通信,所设计的通信协议的附加信息较少,有利于减少系统的响应时间.9.期刊论文 董艺.
33、DONG Yi 单片机与PLC的区别及其对控制系统设计方案选择的影响-巢湖学院学报2007,9(3)随着工业自动化水平的不断提升,在自动控制技术中扮演重要角色的两个器件-单片机与PLC也越来越被更多的设计人员所重视.本文从多个方面对单片机与PLC的联系与区别以及各自的优缺点进行了详细的剖析,相信对于从事控制系统设计与研发的人员有一定的参考价值.10.期刊论文 李辉.郑宁 PLC与单片机之间的串行通信及应用-电工技术杂志2003,(8)提出了可编程序控制器(PLC)与单片机之间实现串行通信的新概念,以松下电工FP1系列PLC和AT89C51单片机的通信为例,重点阐述了串行通信硬件接口电路的实现方法,介绍一种实用的操作、显示单元,实践证明,该应用具有很好的推广价值.本文链接:http:/