单片机与PLC串行通信数据传输模式实现_第1页
单片机与PLC串行通信数据传输模式实现_第2页
单片机与PLC串行通信数据传输模式实现_第3页
单片机与PLC串行通信数据传输模式实现_第4页
单片机与PLC串行通信数据传输模式实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 民营科技2010年第9期34MYKJ 信息科学单片机与PLC串行通信数据传输模式实现武德庆(江苏省盐城生物工程高等职业技术学校电子工程系,江苏盐城2240511单片机与PLC技术简介PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。通过执行各种运算指令,最终起到控制机械或生产过程的作用。广泛应用于工业、交通运输、环保及文化娱乐等行业。PLC使用简单,性价比也较高。PLC和单片机各有所长,在实际应用中,往往需要把二者结合起来,发挥各自的长处,PLC和单片机通过通信交换信息,共同组成控制系统。下面结合实例就PLC和单片机的通信实现做一下介绍。1.1本次试验中硬件简介PIC1677

2、单片机、西门子公司的SIMATICs7-200系列PLC、接口标准专用通信MAX485E芯片,RO脚为数据输出脚,它接收RS-485的差模信号VAB,并转换为TrL电平由RO输出,RE脚为RO的使能端,低电平时选通RO,输出有效。DI脚为数据输入端,它将rITL电平的数据转换为差模信号VAB,并由A、B两脚输送出去,DE是DI使能端,高电平选通DI,输入有效。故A、B两脚既是RS-485信号输入端,同时也是该信号的输出端,关键是由使能端RE、DE的电平来决定。1.2硬件连接S7-200PLC采用RS-485接口标准,接收差模信号,而HC16F877单片机的输出为ITL电平,所以二者在通信时必须

3、先进行转换,本系统采用MAX485E芯片作为转换芯片。由PIC16F877的RC4选择数据的输入或输出。1.3本次试验中所使用的通信协议简介本项目中由于PIC16F877单片机只是发送数据,PLC单纯接收数据,所以采用单工串行通信。PLC采用自由端口模式协议,协议由语句表编程实现;单片机使用USART模块的异步发送模式,协议用汇编语言编程实现。由PIC16F877单片机的发送缓冲结构可知,一次只能连续发送两个字节的数据,故PLC采用字符接收完成中断比较方便。接口标准采用与PLC侧一致的RS-485,接头采用9针D形连接器,传输线采用屏蔽双绞线,单片机侧的发送数据需经转换后再发送。字符信息格式为

4、:1位起始位,8位数据位,无校验位,1位停止位。数据位的发送顺序为低位在前,高位在后。异步通信的传输速率即波特率选择为38400bit/s。为提高数据传输的可靠性,采用异或校验,报文采用定长发送,前四个字节参加异或校验,报文的最后一个字节为校验码。PIC16F877单片机的模数转换精度为10位,故温度值采用双字节保存。2单片机与PLC初始设置2.1PIC16F877单片机发送数据初始设置PIC16F877单片机内部集成的USART模块使用的波特率应该和S7-200PLC相同,当采用高速波特率时,波特率寄存器SPBRG由下式计算: SPBRG=F/(16×波特率式中:单片机时钟频率。S

5、PBRG的值要取整数,这样单片机的实际波特率和PLC会有微小的误差。异步通信时通过检测字符起始位的下降沿来实现同步,由于一个字符包含的位数不多,即使发送方和接收方的收发频率略有不同,一般也不会因累积误差而导致收发错位。单片机的数据位、校验位、停止位要和PLC统一。PIC16F877单片机最多只能连续发送两个字节的数据。其初始设置汇编语言程序如下:LIST P=16F877A;伪指令INCLUDE"PI6F877A.INC"伪指令;体1设置子程序T1BCF STATUS,RP1;BSF STATUS,RP0;体1MOVLW D'5'38400bit/s MOV

6、WF SPBRG;MOVLW B'00100100'异步,发送使能MOVWF TXSTA;高速,8位数据M0VLW B'11101111'RC6,RC7,MOVwF TRISC;RCA通信CLRF INTCON;禁止中断RETURN;子程序返回;体0设置子程序T0BCF STATUS,Rpo;体0BSF PORTc,4;RC4=1通信MOVLW B'10000000'使能串口RETURN;子程序返回2.2S7-200PLC接收数据初始设置CPU处于STOP模式时,自由端口模式被禁止,使用其它模式的通信,例如与编程设备的通信。只有CPU处于RUN模

7、式时,才能使用自由端口模式。如果使用通信端口O通信,将通过特殊存储器SMB30进行初始设置。使用字符接收中断来接收数据时,初始设置比较简单,只需将中断事件8与接收数据的中断程序相连接,并设置波特率、数据位、校验位、停止位即可。用语句表编程的初始设置程序如下:Network1LD SMO.7/若为RUN模式EU/上升沿O SM0.1/或首次扫描MOVB16#01,SMB30/38400bit/s,8,N,1ATCH INT0.8/中断与int_0连接ENI/允许中断Network2LDN SM0.7/若非RUN模式EU/上升沿R SM30.0,l/设置为PPI协议DTCH8/禁止中断3这里所使用

8、的通信程序3.1PIC1677单片机发送数据通信程序报文采用定长发送,每一帧报文由五个字节组成,每一温度值都经数字滤波后再发送。由于温度值变化缓慢,对通信的实时性要求较低,在发送数据通信程序中加入了较多的延时程序。单片机进入睡眠状态时不能进行异步通信。3.2S7-200PLC接收数据通信程序PLC采用字符接收完成中断接收数据,通过起始字节判断接收数据帧的开始,由数据长度决定接收数据帧的结束,采用异或校验提高接收数据的可靠性,S7-200PLC在接收完一帧数据后计算出接收到数据的异或校验码,并与单片机传送过来的校验码比较,如果不同就舍弃,不要求重发。本应用中传送数据为温度值,舍弃后接收下一个数据

9、即可。4结论由PIC16F877单片机和S7-200PLC组成的串行通信系统,采用平衡驱动、差分接收的RS-485接口标准,与TrL电平兼容,具有开发简单、成本低的优点,经过试用证明性能稳定、运行可靠、抗干扰能力强。如果需要,也可以进行半双工通信或略作改动组成多机通信网络。参考文献1李晓辉.单片机与PLC通信的研究与应用J.水力采煤与管道运输,2006(2:28-292张红涛,王三五,鲁力,等.5l单片机和PC机串行通信系统设计J.化工自动化及仪表,2005,32(4:39-41.摘要:在工业自动控制中,单片机与PLC的远距离通信是一个难点与热点问题。这里设计了S7-200PLC与PIC16F877单片机实现远距离串行通信的硬件连接和软件实现方法。采用了MAX485E芯片

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论