基于PLC和单片机通讯系统的设计与实现.doc_第1页
基于PLC和单片机通讯系统的设计与实现.doc_第2页
基于PLC和单片机通讯系统的设计与实现.doc_第3页
基于PLC和单片机通讯系统的设计与实现.doc_第4页
基于PLC和单片机通讯系统的设计与实现.doc_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

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

文档简介

2014届本科生毕业设计 分类号: TP273 题目:基于PLC和单片机通讯系统的设计与实现作 者 姓 名: * 学 号: * 系 (院): 机械与电子工程学院 专 业: 自动化 指导教师姓名: * 指导教师职称: 助教(硕士) 工程师 2014 年5月 10 日摘 要和单片机各有所长,简单易用,控制程序可变,抗干扰性能强,并且具有较强的负载驱动能力,适用于各种恶劣的环境,可用作机械设备的主控制器件;单片机体积小,价格低,使用灵活,适用于家电、办公设备及传感器内部的核心器件,功能能强大。在实际应用中二者结合组成控制系统发挥各自的优势。要实现以上功能,关键要解决单片机与PLC之间的串行通信。本次设计主要介绍西门子S7-200系列PLC可编程控制器的自由口串行通信,以及利用单片机与PLC通信的方法。硬件以89C51单片机为核心,通过RS-485总线与PLC通信,并介绍通信协议,以及软件的实现。通过PLC和单片机的通信仿真测试表明该通信系统具有一定的可靠性。关键词:PLC;自由口串行通信;单片机ABSTRACTPLC and MCU Each one has his good points., PLC is simple to use, control program variable, strong anti-interference ability, and has a load driven ability strong, suitable for a variety of harsh environment, can be used as the main control device of mechanical equipment;SCM small size, low price, flexible use, the core device is applicable to household appliances, office equipment and sensor, function powerful. In the practical application of the combination of the two control system to play their respective advantages. To realize the above functions, the key to solve the serial communication between SCM and PLC. Freeport serial communication in this design, mainly introduces Siemens S7-200series programmable logic controller PLC, and a method of using SCM and PLC communication.The hardware with 89C51 single chip as the core, through the RS-485 bus and PLC communication, and the communication protocol, and software implementation. The communication simulation test show that the PLC and MCU communication system is reliability.Keywords: PLC; Freeport serial communication; single chip microcomputer目 录绪 论11 单片机和PLC的发展及其应用21.1 单片机和PLC的发展21.2 单片机和PLC的应用22 硬件连接42.1 AT89C51单片机简介42.2 单片机RS-485串行通信实现52.2.1 单片机RS-485串行通信52.2.2 232/485电平转换电路52.2.3 PLC与单片机通讯连接63 软件设计83.1 单片机与的通讯协议及其通信83.1.1 单片机与PLC的通讯协议83.1.2 单片机与PLC的自由口串行通信103.2 通讯协议的实现113.2.1 单片机部分程序113.2.2 PLC 的部分通信程序:134 PLC与单片机的硬件原理与仿真154.1 PLC与单片机硬件通信的原理154.2 PLC与单片机硬件的仿真16结 论17参考文献18致 谢19宿州学院 2014届本科毕业设计 基于PLC和单片机通讯系统的设计与实现绪 论对工业智能而言,PLC与单片机应用都比较广泛,但是两者都有各自的优缺点。单片机的驱动能力比较弱无法驱动大功率大电流设备的直接运行,因此在使用方面受到限制。相比而言PLC就运行可靠、使用相对简单、抗干扰性强,而且负载驱动能力也比较强,适合在一些环境较差的地方工作,所以在机械制造、化工、石油等生产机械和过程的自动控制中应用相当广泛。 单片机作为一款智能化程度较高的嵌入式系统的核心处理器。在系统设计和外设管理中起很重要的作用是弱电控制强电环境的最佳选择。PLC控制能力强,但是缺乏智能化,无法接键盘等外部设备。所以在使用PLC时就必须通过外部智能设备编程来实现控制的要求。把两者的优缺点相结合就能实现更为优化的设计意义重大。本次设计了PLC与单片机实现串行通信的软件编程与硬件连接的方法。通过MX232转RS485转换电路,将单片机开发板与PLC进行硬件连接,单片机为上位机向PLC发送数据,来实现以51 单片机为核心,输出信号通过RS485总线与S7-200PLC进行串口通信。1 单片机和PLC的发展及其应用1.1 单片机和PLC的发展按照计算机原始定义, 计算机系统由五大部分控制单元(CU)、算术运算单元(ALU)、存储器(Memory)、输入设备(Input)、输出设备(Output)组成。早期的计算机的(晶体管的或集成电路的, 不包括电子管的) 控制单元或算术运算单元由一块甚至多块电路板组成, 控制单元和算术运算单元是分离的。随着集成度的提高, 控制单元和算术运算单元合在一块就组成了中央处理单元(CPU)。接着将CPU集成到单块集成电路中就产生MPU或MCU, 此后,MPU的发展产生了两条分支, 一支往高性能、高速度、大容量方向发展,。另一支则往多功能方向发展, 将存储器(ROM、PROM、EPROM、EEPROM、FLASHROM、SRAM等)、输入/输出接口(Timer/Counter、PWM、ADC/DAC、UART、C、SPI、RTC、PCA、FPGA等)全部集成在一块集成电路中而成为SOC。这就是当今广泛应用的单片机。我们常用的就是有MCS-51系列的单片机。PLC的全称是Parallelogrammatical (可编程控制器),PLC是一种产品, 它在没有控制程序时候是不具备任何控制功能的。PLC实际上是专为工业环境使用的通用控制平台, 它必须进行二次开发才能完成最终控制目的,因此, 它需要程序编辑/调试的软件的配合。PLC是智能产品, 它的核心控制器采用板级的CPU是不够的, 而MPU也要好几块集成电路构成, 把这些集成电路安装在一块电路板上会造成体积太大, 不适合现代要求。由此可见,PLC的核心控制器采用单片机是最合适的1。1.2 单片机和PLC的应用PLC是建立在单片机之上的产品, 单片机是一种集成电路, 两者不具有可比性。单片机可以构成各种各样的应用系统, 从微型、小型到中型、大型都可以。PLC是单片机应用系统的一个特例。单片机是一种芯片, 在一定场合, 配合外围电路, 可以用来设计所需要的各种功能,大都采用汇编语言、C语言等开发嵌入式软件, 可应用于各种领域。大都采用梯形图编程, 也可以用组态软件, 其特点是非常可靠2。单片机的应用系统则是千差万别, 质量参差不齐, 学习、使用和维护都很困难。从PLC与单片机系统的选用上来讲, 对单项工程或重复数极少的项目, 采用PLC方案是明智、快捷的途径, 成功率高, 可靠性好, 但成本较高。对于量大的配套项目, 采用单片机系统具有成本低、效益高的优点, 但这要有相当的研发力量和行业经验才能使系统稳定、可靠的运行。最好的方法是单片机系统嵌入PLC的功能, 这样可大大简化单片机系统的研制时间, 性能得到保障, 效益也就有保证3。2 硬件连接2.1 AT89C51单片机简介51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是INTEL的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL 公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。硬件部分主要由STC89C51 单片机、 S7-200PLC、 RS485接口芯片组成, 如下图1所示。图1 硬件结构图其中STC89C51 单片机与MAX232 芯片被集成在单片机开发板上, 从单片机开发板上出来的电平已经转换成RS232 电平, 所以单片机开发板直接与RS485 总线相连, 然后再接PLC , 由PLC 上的输出信号控制继电器来实现控制,而单片机终端程序的实现如图2。 图2 单片机终端程序的实现2.2 单片机RS-485串行通信实现2.2.1 单片机RS-485串行通信系统采用AT89C51单片机为核心,由于单片机串行口输出的是TTL电平,而PLC自由口输出的是RS-485信号,所以可以通过AT89C51的串行口与MAX485芯片相连,然后与S7-200的RS-485口进行通信。单片机的串行通信线RXD和TXD通过电路转换为RS-485信号和PLC通信4。2.2.2 232/485电平转换电路PLC 上的PPI 电缆是一根RS232 转RS485 的匹配电缆,因为PLC 使用RS485, 而单片通信口采用RS232, 两者的电气规范并不相容, 需要用中间电路进行匹配。RS232 接口收RXD 和发TXD 线独立, 可以同时进行收发通讯, 同时RS232 设计成两个设备之间的单独通讯, 不支持多于两个设备的联接, 所以它的收发随时都可进行, 不会发生通讯碰撞。 而RS485 采用差分的两根A/B 线进行通讯, A 和 B 两根线的相对电平来表达0 和 1 , 同一时刻只能由一个设备驱动总线。 MAX485 接口芯片是Maxim 公司的一种RS485 芯片, 采用半双工通讯方式工作在+5V 单一电源的环境下。其中, RO 脚为数据输出引脚, DI 脚为数据输入引脚,RE 脚为RO 的使能端, 低电平时有效, DE 脚为DI 的使能端,高电平时选通。 A 、 B 两脚既是MAX485 的输入端也是输出端, 在选择作为输入还是输出时, 由使能端RE 、 DE 的电平来确定, 该芯片与PLC 的连接如图3 所示。图3 电平转换电路连接图2.2.3 PLC与单片机通讯连接西门子S7-200系列PLC拥有RS-485串行口,所以要使用51单片机与PLC进行通讯。可以通过MCS-51单片机的串行口与MAX485芯片相接,然后与S7-200PLC的RS-485口进行通讯5,其硬件接线图如图所示。图4 MCS51单片机与S7-200PLC硬件连接图在自由端口模式下,PLC的串行通信接口由用户来控制,通过梯形图程序以及单片机的汇编语言进行配合,来使用完成中断、字符接受中断、发送完成中断等,通讯协议由用户完全控制。这是单片机处于主机状态,由单片机主动完成发送握手信号,PLC接收到信号后被动反馈信息即可6。3 软件设计设计任务是实现单片机与PLC 的通信, 单片机作为主站, 通过COM 口发送控制指令到PLC 的PORT0 口, PLC 通过RCV 指令接收数据, 然后对指令进行译码, 译码后控制程序, 以实现指令要求的操作, 同时返回指令的状态信息7。3.1 单片机与的通讯协议及其通信3.1.1 单片机与PLC的通讯协议在单片机与PLC 的通信中, 主要是利用单片机向PLC发送命令和接收返回数据, 通信协议采用命令/ 响应模式,一次通信发送的一组数据作一帧, 每帧由33 个字符组成,单片机发送的命令具体格式如表1 所示。表1 单片机发送指令格式起始字符指令类型目标PLC站地址目标寄存器地址读/写字节数数据区BCC校验码结束字符(1) 起始字符占用一个字符, 用 “g ” 表示开始 ;(2) 指令类型占一个字符, 分为读/ 写两种, 本文用到了写指令, 用 “06H ” 表示 ;(3) 目标PLC 站地址用十六进制ASCII 码表示, 占用两个字符, 先在PLC 程序中设定好, 保持与单片机中一样, 占用指令两个字节。 如设定地址为03H, 用十六进制ASCII 码表示为两个字节为B2=30 , B3=33;(4) 目标寄存器地址用十六进制ASCII 码表示, 占八个字符, 寄存器在PLC 内部可以用4 个字节来表示, 其中, 前两个字节用来表示寄存器类型, 后两个字节用来表示寄存器号, 例如 : 0000H : I 寄存器区, 0100H : Q 寄存器区, 0200H :M 寄存器区, 0800H: V 寄存器区。 若将数据传输V 寄存器区162中, 如VB99 , 则地址表示为08000063H ;(5)读/ 写字节数M, 占一个字符, 它表示要写入PLC 的十六进制ASCII 码数据所占的字节数 ;(6)要写入的数据, 也用十六进制ASCII 码表示, 所以这部分数据共 16 个字节, 最多可以写入 8 个字节的数据,数据区要填满, 但PLC 只读前M 个字节的数据 ;(7)BCC 校验码, 占两个字符, 用来检验传输数据是否发生错误, 以提高传输的准确率;(8) 结束字符, 占一个字符, 用来辨认指令的结束, 这里设定为 “G ”。单片机接收数据格式如表 2 所示。表2 单片机接收数据格式起始字符状态信息数据区BCC校验码结束字符PLC 向单片机反馈相应信息, 如现在是执行开始命令或者结束命令等, 开始字符与结束字符还是为 “g ” 和 “G ”,而状态信息中则为电动机的状态信息。S7-200 PLC 支持多种通信协议, 如多点接口协议 (MPI协议)、 点对点接口协议 (PPI 协议) 和自由通信协议以及PROFIBUS 协议等。 其中自由口通信模式允许应用程序控制S7-200 的串行通讯口, S7-200 处于RUN 方式时, 当选择了自由口通信, 用户程序通过接受中断、 发送中断来收发指令, 用户程序通过使用发送指令、 接受指令、 发送接收中断指令来控制通信口的操作。PLC 通信参数的设置有控制寄存器SMB30 或者SMB130来设定, 包括波特率、 数据位、 校验方式等都要与单片机保持一致, 而PLC 内部运行过程如图所示。 图5 PLC内部流程图3.1.2 单片机与PLC的自由口串行通信西门子S7200是串行通信方式最为丰富的小型PL,支持多种通信协议模式,如点对点接口(P Pl)、多点接口(MPI)、PROFIBUS、自由口等。其中自由口通信模式是通过用户程序可以控制CPU的通信操作模式,可以实现用户自定义通信协议。在自由口通信模式下,用户利用梯形图的接受完成中断、发送中断、发送指令和接受指令的实现PLC与单片机的通信。PLC的CPU处于STOP模式时,自由口通信停止。单CPU处于RUN模式时,才能用自由口通信。可以用反应CPU作方式的特殊寄存器位SM0.7来控制自由口方式的进入,当SM0.7为1时,CPU处于RUN模式,可选择自由口通信。通过向SM B30或SM B130用于设置端的协议选择位置1,可以将通信端口设置为自由口通信。SM B30或SM B130还用于设置通信波特率、奇偶校验位、数据位。发送指令XMT启动自由口模式下数据缓冲区的数据发送,它可以发送1-255个字符,如果有中断程序连接到发送结束事件上,在发送完成后,端口0会产生中断事件9也可以监视发送完成状态位SM4 5的变化,接收指令RCV可以初始化接受服务信息,通过制定的端口接受信息并储存在数据缓冲区内,在接收完成最后一个字符时,端口0产生中断238。S7200的CPU上的通信口是符合欧洲标准EN50170中的PROFIBUS标准的Rs485兼容9针D型连接器。利用总线RS_485总线连接这个端口可以方便的实现S7-200系列PLC与单片机之间的硬件连接。3.2 通讯协议的实现通信协议设计主要包括单片机程序设计和PLC 程序设计3.2.1 单片机部分程序(1) 单片机初始化部分子程序void init_serial comm(void)SCON=0x50; /* 串口工作方式1, 允许接收*/TMOD=0x20; PCON=0x00; /*SMOD=0*/TH1=0xFD; /* 波特率为9.6K*/TL1=0xFD; IE=0x95; /* 开总中断, 开串口中断, 开外部中断0, 开外部中断1*/(2) 单片机发送数据子程序void send_data() interrupt 0 using 2EX0=0; delay1(4); if(KEY=0) for(j=0;j33;j+)SBUF=tabj; /* 将数据发送到串口*/while(!TI); /* 等待串口数据发送结束*/TI=0; /* 复位串口中断*/EX0=1;(3) 单片机接收数据子程序void comprint() interrupt 4 using 0 /* 输入中断*/EX0=0; EX1=0;for(i=0;i21;i+)if(RI) ; RI=0; RCi=SBUF;3.2.2 PLC 的部分通信程序:(1) 主程序部分LD SM0.1CALL SBR_0:SBR0 / 首次扫描调用初始化程序LDB=VB134, VB199 / 指令中的站地址与本站地址相符AB=VB102, 6 / 指令类型为写指令A M0.0 /BCC 校验码正确CALL write:SBR1 / 调用写子程序LD M0.1CALL verify:SBR3 / 调用BCC 校验码子程序LD SM0.0 / 当端口空闲时启动RCVRCV VB100, 0(2) PLC 初始化子程序LD SM0.0MOVB 9, SMB30 / 自由口协议, 9600bps, 8 个数据位, 无校验位LD SM0.0 /RCV 指令初始化MOVB 16#EC, SMB87MOVB 103, SMB88MOVB 71, SMB89MOVW +1000, SMW92MOVB 35, SMB94R SM87.2, 1LD SM0.0ATCH INT_0:INT0, 23 / 接收完成事件连接到中断程序 0LD SM0.0ATCH INT_1:INT1, 9 / 发送完成事件连接到中断程序 1LD SM0.0ENILD SM0.0MOVB 3, VB199 / 将本机站地址装入寄存器LD SM0.0MOVD &VB102, VD149 / 装入地址指针MOVB 0, VB179 /BCC 码寄存器清零MOVD &VB156, VD181 / 装入地址指针MOVB 0, VB180 /BCC 校验码寄存器4 PLC与单片机的硬件原理与仿真4.1 PLC与单片机硬件通信的原理(1)S7-200PLC与51单片机的通信要完成的功能,简单地说是在工作过程中,PLC与51单片机能相互发送或者反馈工作信息。PLC上发出的485电平信号A,B通过MAX485转换成单片机能够吸收的TTL电平信号,然后又TXD,RXD串口线输入带单片机内部的寄存器9。(2)由于RS-485采用的是半双工的工作方式,PLC与单片机不能够同时接受和发送,在同一时刻只能有一个发送端,一个接收端。所以相互发送信息是随机时,这就需要外部设备的配合,用来做硬件握手信号。在PLC端,我们选用了一个数字量的水口I0.0和一个数字量输出口Q0.0。在单片机端,我们采用了并口P1中的P1.0,P1.1,P1.2。(3)具体功能如下:当单片机有信息要反馈给PLC是,置位P1.2通过光耦PC817输出24V的高电平到PLC的输入口I0.0,是PLC能开中断,进行相应的接受信号设置。这样PLC就处于接收端状态,而单片机通过设置P1.0低电平,是MAX485发送允许端IE使能,信息便能通过TXD发送到MAX485,是PLC能正确的接受485电平信号。当PLC有信息要发给单片机时,PLC通过输出口Q0.0发出高电平给单片机的P1.1,这样单片机也将设置串口中断,并置P1.0为高电平,使MAX485接受允许端使能。使用外部信号配合串口通信,不但能使通信准确进行,另外它也提高了系统的稳定性。比如,当有些紧急的信息需要处理时,可以先通过I/O的连接作初步处理,再通过串口通信来完成后续的具体处理10。4.2 PLC与单片机硬件的仿真图6 MCS 51单片机与S7-200PLC的硬件接线图单片机与PLC通信中,主要是利用单片机向PLC发送命令或者接受返回数据,PLC向单片机反馈相应的信息,利用串口调试工具来实现PLC与单片机的串口通讯如图6。例如:单片机向PLC发送一组数据g 1 2 3 4 5 6 G通过串口调试工具能够接收

温馨提示

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

评论

0/150

提交评论