浅谈51内核单片机与FX系列PLC的通信设想

时间:2022-09-24 02:05:04

浅谈51内核单片机与FX系列PLC的通信设想

摘 要:文章介绍了FX系列PLC的通信协议、串行通信接口工作特性,提出了其与单片机通讯的设计思想,拟在两者之间实现串行通信的新概念,重点阐述了串行通信硬件接口电路的实现方法,设计力求结构简单,成本低,具有良好的可靠性,有望在将来推广应用于实际工程项目中。

关键词:51内核单片机;FX系列PLC;串行通信接口电路

中图分类号:TP368

可编程程序控制器(简称PLC)是一种较为普及的、适应多种应用环境的工业控制器),优点为可靠性高、抗干扰能力强、开发周期短,日本MITSUBISHI公司推出的超小型可编程控制器(FX系列PLC)采用模块化结构,配有丰富的功能模块,已广泛应用于我国的工业控制领域。AT89C51系列单片机是ATMEL公司推出的一种八位的高性能CMOS单片机,具有丰富的I/O功能,带有RAM、FPEROM和可编程串行通道等,也具有控制方式灵活,可靠性高等特点,适合于在工业环境中使用。本文主要介绍AT89C51系列单片机与FX系列PLC之间的通信设计思想,阐述其通信接口的实现方法,介绍一种实用的操作、显示单元。

在PLC组成的工业控制设备中,因为有键盘、显示这些外部的接口,因此必然要占用大量的I/O点资源,但如果能通过高性能的串行接口单元(SIU)来专门负责高速的串行通信任务,那么就可以把CPU解放出来集中解决数据处理或实时控制问题。三菱公司的FX系列PLC目前采用的RS—422A通信口就是采用的典型的全双工串行通信方式,它不仅可以与计算机实现1:1的通信,还可连接条码判读器、串行打印机等设备,通过单片机与PLC通信接口进行通信设置,对PLC各寄存器进行读写,就可充分利用单片机成本低、扩展方便的特点,使PLC应用更具灵活性。

1 接口电路设计

三菱公司的FX系列PLC利用RS-422异步全双工串行通讯口的双重功能,一类功能是采用简易编程器、MEDOC软件包等编程软件对PLC的软件进行下载、对PLC的内部状态和数据进行监控;另一类功能是与上位机进行数据通讯为了兼容单片机的SCI口电平,在其与PLC的串行口连接时就需要增加一个电平转换电路来实现RS-232C与RS-422之间的相互转换,如图1所示:

图1 接口电路设计图

上图所示常用的RS-422总线驱动芯片为SN75174、SN75175。SN75174是发送器,SN75175是接收器,亦可用SN75176,它是集接收器和发送器于一身的。给RS422A通信接口加装光电隔离电路(即光耦),可进一步提高PLC的抗干扰水平。

2 通信机制分析

在三菱FX系列PLC的内部有一个特殊功能寄存器D8120,我们通过对该寄存器的写入编程,按照一定的协议,就能实现与单片机之间的通信,由于接口采用的是422电气接口,因此在与单片机通信时,需满足:

(1)异步全双工串行通信模式,波特率9600bps;

(2)累加方式(和校验)的帧校验,且为偶校验;

(3)采用ASCII码字符形式。

在被发送的一个字节中,只有7位用于表示实际发送的数据,最高位用于奇偶校验。

进行通讯时,单片机可向PLC发通讯请求信号ENQ,在收到PLC发回的响应信号后,就开始数据通讯.通讯时字符信息帧格式如图2所示:

图2 信息帧格式

其中CMD是用来确定二者之间传送数据的命令字,有以下四种形式:

“0”(30H)读PLC目标元件状态或数据(X,Y,M,S,T,C,D)命令

“1”(31H)写PLC修改目标元件状态或数据(X,Y,M,S,T,C,D)命令

“7”(37H)强制单个目标元件状态(Y,M,S,T,C)为ON

“8”(38H)强制单个目标元件状态(Y,M,S,T,C)为OFF清零命令

若无校验错误时,PLC对ENQ的应答信号为ACK,对应ASCII码为06H;若检测到错误时,PLC对ENQ的应答信号为NAK,对应ASCII码为15H。

开始通信时,发送帧中的每个字符都要进行偶校验,从CMD开始到ETX结束的所有ASCII码字符值累加在一起构成一个校验和,如果校验和超过两位,取低两位,然后分别将低两位数值转换成对应的ASCII码值,在ETX后发送,高位在前,低位在后。

3 通信代码应答过程

AT89C51单片机作为通信主站,FX系列PLC作为从站,其通讯代码应答过程如下:

(1)指令码30H-读取PLC元件X、Y、M、S、T、C状态和T、C、D数据

通信格式为:

其中元件首址表示PLC内部各元件类型及起始元件号。例如:Y0的首址为00A0H,M200的首址为0319H等。

例:若现需读取PLC的Y0-Y7,Y10-Y17状态,2字节,则

其中:发送时30H+30H+30H+41H+30H+30H+32H+03H=166H

取低两位,校验码为66H,转换成ASCII码,即为36H,36H

接收时31H+41H+43H+39H+03H=0F1H

校验码为F1H,转换成ASCII码,即为46H,31H

接收到数据1为1AH,对应状态Y7-Y0;数据2为C9H,对应Y17-Y10

因此可知PLC中的Y1、Y3、Y4、Y10、Y13、Y16、Y17状态为ON,其余为OFF。

例:若现需读取PLC的D124、D125数据,4字节,则

4 AT89C51单片机的通信设置

在清楚两者之间的通信原理后,还必须设定正确的通信方式,即采用统一的波特率、起始位、数据位、停止位和偶校验位建立双方通信的应答信号。

AT89C51系列单片机的SC串行工作方式由串行口控制寄存器(SCON)、波特率控制寄存器(PCON)设置决定,波特率由定时器T1或T2的溢出率和SMOD1的状态决定并可变,在CPU的晶振为11.0592MHz时波特率采用9600bps。

因此可以设置寄存器T2CON为34H(定时器T2工作于波特率发生器方式),寄存器TH2和RCAP2H为FFH,TL2和RCAP2L为D9H(波特率9600b/s);寄存器SCON为50H(串口工作方式1,允许接收)。

波特率控制寄存器一般只在复位后初始化时写入一次,以建立SCI通信波特率。

串行口控制寄存器SCON用于设置串行口的工作方式、监视串行口工作状态、控制发送与接收的状态等。它是一个既可字节寻址又可位寻址的特殊功能寄存器,地址为98H。

串行口的中断,无论是接收中断还是发送中断,当CPU响应中断后都进入0023H程序地址,执行串行口的中断服务子程序,这时由软件来判别是接收中断还是发送中断。而中断标志必须在中断服务子程序中加以清除,以防出现一次中断多次响应的现象。

在系统复位时,SCON的所有位均被清零。

PCON为电源控制寄存器,是特殊功能寄存器,地址为87H,PCON中的最高位与串行口有关,SMOD为波特率选择位。在方式1、方式2和方式3时,串行通信波特率与成正比。即:当(SMOD)=1时,通信波特率可以提高一倍。

方式2和方式3两者的差异仅在于通信波特率有所不同:方式2的波特率是固定的,由主频fosc经32或64分频后提供。

5 AT89C51单片机的通信流程

由于PLC处于被动通信,无需编制通信程序,而单片机具有优先传送权,因此需要编制上位机通信程序。通过编程实现发送命令帧和接收PLC发出的应答帧。主程序主要包括发送命令子程序、接收子程序、码制转换子程序(十六进制到ASCII码)及FCS帧校验子程序。

AT89C51单片机SCI系统是工作在查询方式还是中断方式下可根据实际情况灵活选择,但,当主站任务繁忙时,则不宜采用查询方式,避免影响主站工作效率。在中断方式下引发中断时,主站通过查询接收和发送标志位进行相应的接收和发送控制。单片机在发送写通道命令前必须置PLC为监视模式或编程模式,命令结束后重置PLC为运行模式。通信软件框图如图4所示:

6 结束语

上述三菱公司的FX系列 PLC与AT89C51单片机之间的串行通信方法既发挥了PLC控制稳定可靠、抗干扰能力强的优势,又发挥了单片机扩展灵活、适应性强的优点,两者优势互补,并通过有协议的串行通讯成功地解决了单片机与PLC的数据交换问题。本文的创新点在于该设计简易实用、安全可靠、成本低廉,解决了PLC与单片机的数据交换问题。

参考文献:

[1]田书峰,李欣.单片机与三菱PLC无协议串行通讯的实现[J].微计算机信息,2005,7-2:1.

[2]钟肇新,彭侃.可编程控制器原理及应用[M].广州:华南理工大学出社,1991.

[3]常斗南.可编程序控制器原理、应用、实验[M].北京:机械工业出版社,1998.

[4]李华.MCS—51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993.

[5]http:\\.中华工控网.

作者简介:揭吁菡,女,江西人,硕士,讲师,研究方向:计算机应用技术。

作者单位:南昌工学院民族教育学院二分院,南昌 330000

上一篇:浅析企业人事管理系统的开发 下一篇:嵌入式Linux下的GPIO字符设备驱动程序的开发及...