单片机与PLC之间的串行通信实现

发布者:闪耀的星空最新更新时间:2017-12-31 来源: 互联网关键字:串行通信  PIC16F877  plc 手机看文章 扫描二维码
随时随地手机看文章

随着微处理器、计算机和数字通信技术的飞速发展,计算机控制已经扩展到了几乎所有的工业领域。其中,PLC和单片机在小规模控制系统中获得了广泛的应用。

在塑料挤出机温度自动控制中,选用S7-200系列PLC作为主控器件,PIC16F877单片机作为温度数据采集和模数转换芯片,单片机通过通信端口将数据传输给PLC,由于采用了RS-485接口标准,传输距离可达1000m。PLC经过PID运算后控制加热圈以保持温度恒定。下面结合实例就PLC和单片机的通信实现做一下介绍。

2、硬件构成

2.1、PIC16F877单片机

Microchip公司的PIC16F877单片机采用哈佛总线结构和精简指令集技术,具有功耗低、运行速度高、驱动能力强和外接电路简洁的特点。PIC16F877单片机内部集成了串行通信模块即通用同步/异步收发器USART模块,主要应用目标是系统之间的远距离串行通信。USART模块所需的两条引脚是RC6和RC7,如图1所示,当发送允许位TXEN被置1,就可以把发送数据写入TXREG寄存器来完成发送。

2.2、S7-200系列PLC

S7-200系列PLC通信端口采用异步串行通信方式,通信端口标准采用平衡驱动、差分接受的RS485接口标准,可以组成半双工串行通信网络,构成分布式系统,系统中最多可以有32个站。S7-200支持多种串行通信协议,利用自由端口模式,可以通过语句表或梯形图编程,实现用户定义的通信协议,很方便地连接不同厂家的智能设备。在自由端口模式下,可以连续地发送或接收255个字节以内的数据,这在大块数据通信时是很方便的。

2.3、MAX485E芯片

MAX485E芯片是RS-485接口标准专用通信芯片,如图1所示,RO脚为数据输出脚,它接收RS-485的差模信号VAB,并转换为TTL电平由RO输出,RE脚为RO的使能端,低电平时选通RO,输出有效。DI脚为数据输入端,它将TTL电平的数据转换为差模信号VAB,并由A、B两脚输送出去,DE是DI使能端,高电平选通DI,输入有效。故A、B两脚既是RS-485信号输入端,同时也是该信号的输出端,关键是由使能端RE、DE的电平来决定。

2.4、硬件连接图

S7-200PLC采用RS-485接口标准,接收差模信号,而PIC16F877单片机的输出为TTL电平,所以二者在通信时必须先进行转换,本系统采用MAX485E芯片作为转换芯片,硬件连接如图1所示。由PIC16F877单片机的RC4选择数据的输入或输出。

3、通信协议

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

字符信息格式为:1位起始位,8位数据位,无校验位,1位停止位。

数据位的发送顺序为低位在前,高位在后。

异步通信的传输速率即波特率选择为38400bit/s。为提高数据传输的可靠性,采用异或校验,报文采用定长发送,前四个字节参加异或校验,报文的最后一个字节为校验码。PIC16F877单片机的模数转换精度为10位,故温度值采用双字节保存。

4、初始设置

4.1、PIC16F877单片机发送数据初始设置

PIC16F877单片机内部集成的USART模块使用的波特率应该和S7-200PLC相同,当采用高速波特率时,波特率寄存器SPBRG由下式计算:

SPBRG=F/(16&TImes;波特率)-1

式中:F———单片机时钟频率。

单片机的数据位、校验位、停止位要和PLC统一。

PIC16F877单片机最多只能连续发送两个字节的数据。其初始设置汇编语言程序如下:

LISTP=16F877A;伪指令

INCLUDE“P16F877A.INC”;伪指令

;-------------------体1设置子程序-------------------

T1BCFSTATUS,RP1;

BSFSTATUS,RP0;体1

MOVLWD′5′;38400bit/s

MOVWFSPBRG;

MOVLWB′00100100′;异步,发送使能

MOVWFTXSTA;高速,8位数据

MOVLWB′11101111′;RC6,RC7,

MOVWFTRISC;RC4通信

CLRFINTCON;禁止中断

RETURN;子程序返回

;-------------------体0设置子程序-------------------

T0BCFSTATUS,RP0;体0

BSFPORTC,4;RC4=1通信

MOVLWB′10000000′;使能串口

RETURN;子程序返回

4.2S7-200PLC接收数据初始设置

CPU处于STOP模式时,自由端口模式被禁止,使用其它模式的通信,例如与编程设备的通信。只有CPU处于RUN模式时,才能使用自由端口模式。如果使用通信端口0通信,将通过特殊存储器SMB30进行初始设置。

Network1

LDSM0.7//若为RUN模式

EU//上升沿

OSM0.1//或首次扫描

MOVB16#01,SMB30//38400bit/s,8,N,1

ATCHINT0,8//中断与int0连接

ENI//允许中断

Network2

LDNSM0.7//若非RUN模式

EU//上升沿

RSM30.0,1//设置为PPI协议

DTCH8//禁止中断

5、通信程序

5.1、PIC16F877单片机发送数据通信程序

报文采用定长发送,每一帧报文由五个字节组成,每一温度值都经数字滤波后再发送。由于温度值变化缓慢,对通信的实时性要求较低,在发送数据通信程序中加入了较多的延时程序。由于波特率时钟依赖于系统时基振荡器,所以单片机进入睡眠状态时不能进行异步通信。单片机发送N个测温点温度数据通信程序流程图如图3所示。


图3  单片机程序流程图

5.2、S7-200PLC接收数据通信程序

PLC采用字符接收完成中断接收数据,通过起始字节判断接收数据帧的开始,由数据长度决定接收数据帧的结束,采用异或校验提高接收数据的可靠性,S7-200PLC在接收完一帧数据后计算出接收到数据的异或校验码,并与单片机传送过来的校验码比较,如果不同就舍弃,不要求重发。本应用中传送数据为温度值,舍弃后接收下一个数据即可。PLC接收数据通信程序流程图如图4~图6所示。

6、结论

由PIC16F877单片机和S7-200PLC组成的串行通信系统,采用平衡驱动、差分接收的RS-485接口标准,与TTL电平兼容,具有开发简单、成本低的优点,经过试用证明性能稳定、运行可靠、抗干扰能力强。如果需要,也可以进行半双工通信或略作改动组成多机通信网络。

关键字:串行通信  PIC16F877  plc 引用地址:单片机与PLC之间的串行通信实现

上一篇:云计算平台有什么功能_云计算平台分类功能介绍
下一篇:2G退网倒计时 GSM退网会有什么影响

推荐阅读最新更新时间:2024-05-07 17:48

西门子plc编程9个经典实例
一、小车往返运动 用S7-200实现小车往返的自动控制 ,控制过程为按下启动按钮 ,小车从左边往右边(右边往左边运动) 当运动到右边(左边)碰到右边(左边)的行程开关后 小车自动做返回运动,当碰到另一边的行程开关后又做返回运动 。如此的往返运动,直到当按下停车按钮后小车停止运动。 ▲电气接线图 I/O分配表 梯形图程序 PLC接线图 程序调试及结果分析 ▲控制平台操作面板 当按下SB2即i0.0(鼠标点击i0.0f)接通后,Q0.0接通,小车右行(即指示 灯 Q0.0 亮)。当小车运行碰到右限位开关SQ2即i0.4(用鼠标点击i0.4f,模拟SQ2被压下)接通,此时小车左行(指示灯Q0.0灭,指示灯Q0.1亮)
[嵌入式]
西门子<font color='red'>plc</font>编程9个经典实例
plc控制器怎么用 plc控制器怎么修复
  plc控制器怎么用   PLC(Programmable Logic Controller)控制器的使用通常需要以下步骤:   了解控制器的结构和工作原理:了解控制器的硬件结构和软件编程方式,以及其输入和输出信号的作用。   编写程序:编写控制程序,包括输入和输出信号的逻辑关系和运算方法。   连接设备:将需要控制的设备连接到PLC控制器的输入和输出端口上。   载入程序:将编写好的控制程序载入到PLC控制器中。   运行程序:将PLC控制器的电源开启,启动控制程序,控制器会根据程序中的逻辑关系和信号输入,控制输出信号,以达到控制设备的目的。   监控运行状态:通过PLC控制器的人机界面或外部监控设备,可以随时监控控制器的运行
[嵌入式]
上电后PLC显示stop处理步骤
今天一条生产线(plc柜据说已经有十几年了,CPU是去年换的,模块一直没换过)的PLC停机了,生产线不经常开,所以一般是断电状态,这里说的停机指的是上电后PLC一直是stop,拨成run也没用。 处理步骤: 1、上电脑那检查硬件组态,看诊断区2,发现CPU后面的所有模块都离线了。第一判断是CPU和CP341的背板连接器有问题。 2、断电换背板连接器,再上电,仍旧是这样。 3、怀疑是CPU后面的CP341坏了,但工厂没有341的备件,只有340的,于是把341换成340,硬件组态改一下,下进去。但是还不行。 4、然后就一直没有头绪。这时我经理过来,他把CPU后面所有模块都拆下来,然后一个一个装上去。前三个CP装上去后都没问题,在
[嵌入式]
上电后<font color='red'>PLC</font>显示stop处理步骤
和利时PLC开放式系统解决方案
  和利时的LM系列PLC产品充分考虑了大型控制系统中遇到的机器设备、子系统集成困难问题,提供了多种开放式的通讯协议和接口CONTROL ENGINEERING China版权所有,包括Modbus RTU主从站接口、Profibus-DP、自由协议、Modbus Tcp以太网接口、CAN、GPRS通讯以及短信。   和利时科技集团LM系列PLC自2004年面世以来,经受住了现场恶劣环境的考验、满足了复杂的用户需求。为满足在各行业控制系统互联、通讯与共享的要求,LM系列PLC产品通过开放式系统设计、丰富的通讯方式受到业界的爱戴。   LM系列PLC产品充分考虑了大型控制系统中遇到的机器设备、子系统集成困难问题,提供了多种开放式的通讯
[嵌入式]
PLC一键启停不同方式的程序编写
相信很多PLC初学者都有这样的疑惑,“PLC一键启停程序”为什么有那么多方式?怎样才能开始掌握PLC一键启停不同方式的程序编写呢?下面咱们一起来看看: 采用位逻辑指令结合PLC工作原理实现一键启停的程序编写 采用位逻辑指令结合PLC工作原理实现一键启停的程序编写 采用逻辑运算取反指令实现一键启停的程序编写 采用逻辑运算异或指令实现一键启停的程序编写 复位优先双稳态指令 利用扫描关系原理 计数器 除此以外还有其他各种各样的编写方式,但前面两种方式适用于任何品牌系列的PLC 。所谓PLC学习,那必须的20%的理论+70%的实践,只有将理论实践化,才能真正的掌握这门技能!
[嵌入式]
<font color='red'>PLC</font>一键启停不同方式的程序编写
IT和OT融合之下,PLC控制器将如何发展?
今天我将从一个用户的地角度,来看待现在自动化行业PLC的未来在哪里。作为一个从业自动化十几年的老司机来说。不得不说现在的自动化行业已经是“百家争鸣,花开千朵”的情况了。为什么这么说呢?就在中国迈向制造强国提出来中国制造2025愿景之下,就在德国倡导的工业4.0发起之际,就在美国举起工业互联网大旗之时。所有的自动化的厂商和行业资深人士全部提出来,一个共同的目标,就是IT和OT融合,IT就是信息技术,OT就是运营技术(自动化技术)。这些雨后春笋般的先进的技术理念,超前的解决方案,犹如梨花带雨般毫无顾忌的滋润着国人的对自动化和信息化融合那饥渴的求知欲望。 我希望自动化用户们,理性对待这个知识膨胀的时代。冷静的坐下来思考一下,你到底需
[工业控制]
步进电机的PLC控制方法
步进电机的PLC控制方法  一、引言    随着微电子技术和计算机技术的发展,可编程序控制器有了突飞猛进的发展,其功能已远远超出了逻辑控制、顺序控制的范围,它与计算机有效结合,可进行模拟量控制,具有远程通信功能等。有人将其称为现代工业控制的三大支柱(即PLC,机器人,CAD/CAM)之一。目前可编程序控制器(Programmable Controller)简称PLC已广泛应用于冶金、矿业、机械、轻工等领域,为工业自动化提供了有力的工具。   二、PLC的基本结构    PLC采用了典型的计算机结构,主要包括CPU、RAM、ROM和输入/输出接口电路等。如果把PLC看作一个系统,该系统由输入变量-PLC-输出变量组成,外部的各
[模拟电子]
步进电机的<font color='red'>PLC</font>控制方法
PLC怎么控制伺服电机
在回答这个问题之前,首先要清楚伺服电机的用途,相对于普通的电机来说,伺服电机主要用于精确定位,因此大家通常所说的控制伺服,其实就是对伺服电机的位置控制。其实,伺服电机还用另外两种工作模式,那就是速度控制和转矩控制,不过应用比较少而已。 速度控制一般都是有变频器实现,用伺服电机做速度控制,一般是用于快速加减速或是速度精准控制的场合,因为相对于变频器,伺服电机可以在几毫米内达到几千转,由于伺服都是闭环的,速度非常稳定。转矩控制主要是 控制伺服电机的输出转矩,同样是因为伺服电机的响应快。应用以上两种控制,可以把伺服驱动器当成变频器,一般都是用模拟量控制。 伺服电机最主要的应用还是定位控制,位置控制有两个物理量需要控制,那就是速度
[嵌入式]
小广播
最新网络通信文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved