胡 志
(湖南信息职业技术学院信息工程系,湖南长沙 410200)
浅谈单片机在PLC教学中的应用*
胡 志
(湖南信息职业技术学院信息工程系,湖南长沙 410200)
简单论述了PLC实验教学中的问题,提出了将单片机引入到PLC教学中的方法和过程。提高了学生的编程能力和开发能力,取得了良好的教学效果。
单片机;PLC;串行通信;教学
PLC课程是一门实践性很强的课程,其实践环节至关重要。如何利用现有条件,在PLC教学的实践环节中,不断提高教学质量,提高学生综合分析和解决工程实际问题的能力,是一个需要引起我们重视的问题。
PLC可编程控制器由于可靠性高,适合于各种恶劣的现场环境,同时控制程序可变,因此具有控制继电器或其它控制系统所没有的优点。单片机(MCU)是完整的单片计算机系统,可以完成几乎所有的电器控制要求,是较为理想的实验工具。如果能把单片机在PLC的实验教学中应用起来,会取得很好的效果。因此,实现单片机在PLC教学中的应用就显得很有实际意义。下面将介绍PLC实验教学中单片机和PLC串行通信的实验方法和实验过程。
(一)PIC16F877单片机
Microchip公司的PI C16F877单片机采用哈佛总线结构和精简指令集技术,具有功耗低、运行速度高、驱动能力强和外接电路简洁的特点。PI C16F877单片机内部集成了串行通信模块即通用同步/异步收发器USART模块,主要应用目标是系统之间的远距离串行通信。USART模块所需的两条引脚是RC6和RC7,当发送允许位TXEN被置1,就可以把发送数据写入TXREG寄存器来完成发送。
(二)S72200系列PLC
西门子公司的SI MATI C S72200系列PLC属于小型整体式PLC,由于其指令丰富,操作简便,运行可靠和极强的通信功能而广泛应用于各种机械设备和生产过程的自动控制中。
S72200系列PLC通信端口采用异步串行通信方式,通信端口标准采用平衡驱动、差分接受的RS2485接口标准,可以组成半双工串行通信网络,构成分布式系统,系统中最多可以有32个站。S72200支持多种串行通信协议,利用自由端口模式,可以通过语句表或梯形图编程,实现用户定义的通信协议,很方便地连接不同厂家的智能设备。在自由端口模式下,可以连续地发送或接收255个字节以内的数据,这在大块数据通信时是很方便的。也可以用字符接收中断而不是用接受指令来控制接收数据,这样比较灵活但编程比较麻烦。
(三)系统结构
图1是一种现场总线系统结构。该系统结构中PC机作为上位机,对整个系统进行集中监控,可实现可视化人机操作界面、图形显示、数据库、联网等功能。系统选用西门子S7-200系列PLC的226CPU作为下位机,它接收上位机发送的各种命令,循环地读入现场的各种信号,进行逻辑判断和控制量的计算,并对控制对象进行控制。下位机还负责将各种现场信号以及各控制量送上位机进行实时监控,智能仪表主要完成对现场信号的采集、处理、现场显示和通信等功能。PC通过PC/PP I电缆与226CPU的PORT0口连接,采用Visual Basic编程,用串行通信控件(MSComm)实现通信。PLC的PORT1通过RS-485总线与各智能仪表连接.PLC的PORT0和PORT1口在本系统中可以采用PPI(点对点的通信)方式,也可以采用自由口的通信方式,本设计均使用自由口的方式通行。RS-485接口芯片SN75176将单片机的TTL串行接口电平转换成RS-485总线的平衡信号。
图1 一种现场总线测控系统结构图
在单片机与PLC的通信中,主要是利用单片机向PLC发送命令和接受返回数据,实现读取数据或修改PLC程序中控制参数。通信协议采用命令/响应模式,一次通信发送的一组数据作桢,每桢由最多30个字符组成。
单片机发送的数据流结构的格式为起始符,指令码,元件首址,字节数,数据块,BBC校验码和结束符。起始符是数据流的第一个字符,表示单片机开始发送数据。指令码是指单片机对PLC进行的操作命令。其中两种有效命令:读取目标元件和修改目标元件。元件首址是表示PLC内部的原件类型以及寄存器的地址,占两个字符(十六进制00-FF)。字节数是从元件首地址起,读取或写入PLC元件的数据个数,准备读取或者写入PLC的数据或状态。数据块占0—20个字符。结束符标志着指令的结束,占一个字符。
(一)初始化设置
//设置PORT1参数
MOVB 16#9,S MB130//9600 bps,8个数据位,无校验位,1位停止位
MOVB 16#EC,S MB187//允许接受,检测起始字符和结束字符,超时检测
MOVB 0,S MB188//起始字符为0
MOVB 16#FF,S MB189//结束字符为十六进制数16#FF
MOVW+500,S MW192//接受超时015 s
MOVB 100,S MB194//接收最多符数为100
(二)PORT1的程序设计
PLC通过PORT1向某个仪表发送读取采集数据命令后,中断进入数据接受状态,该仪表接收到命令后将数据发送到PLC,当PLC接收中断产生时,判断接收正确否,如果正确取出数据,一方面将该数据用于控制,另一方面该数据通过PORT0口送PC机。如图2所示。
图2 PORT1程序流程图
(一)PIC16F877单片机发送数据通信程序
报文采用定长发送,每一帧报文由五个字节组成,每一温度值都经数字滤波后再发送。由于温度值变化缓慢,对通信的实时性要求较低,在发送数据通信程序中加入了较多的延时程序。由于波特率时钟依赖于系统时基振荡器,所以单片机进入睡眠状态时不能进行异步通信。
(二)S72200PLC接收数据通信程序
PLC采用字符接收完成中断接收数据,通过起始字节判断接收数据帧的开始,由数据长度决定接收数据帧的结束,采用异或校验提高接收数据的可靠性,S72200PLC在接收完一帧数据后计算出接收到数据的异或校验码,并与单片机传送过来的校验码比较,如果不同就舍弃,不要求重发。本应用中传送数据为温度值,舍弃后接收下一个数据即可。
教学实践证明,将单片机应用予PLC实践教学中是可行的,并且能取得良好的教学效果。
学生可以直观地看到执行程序结果,使得抽象的课程生动化,学生在每一台计算机上都能完成程序的调试和运行,很有成就感,促使学生的学习主动化。同时当学生学习了基本的指令之后,教师可以适当布置一些编程任务,让学生自己去查指令、遍程序,让他们进行实验,查看结果、寻找程序漏洞、进行修改、优化程序,直到达到实验效果。在做这些实验的过程中,对学生的编程能力是一个很好的提升。
[1]李晓辉.单片机与PLC通信的研究与应用[J].水力采煤与管道运输,2006.
[2]张红涛,王三五,鲁力.51单片机和PC机串行通信系统设计[J].化工自动化及仪表,2005,32(4):39-41.
[3]郭一楠,程健,谭得健.PLC通信技术及应用[J].工矿自动化,2002.
[4]杨志刚,钱俊磊.西门子S7-200系列PLC与单片机之间的自由口通信[J].河北理工学院学报,2005,(4):77-80.
[5]李辉,郑宁.PLC与单片机之间的串行通信及应用[J].电工技术杂志,2003,(8).
2010-04-29
胡志(1966-),男,湖南辰溪人,实验师。