基于PLC和CPLD的瞬时碰撞速度检测与应用研究

刘国跃 廖育武 应保胜
摘 要: 在汽车摆锤碰撞实验中,碰撞速度的检测与处理是影响实验结果准确性的关键因素。现有的一些速度采集装置利用单片机等微机系统实现计时,由于软件处理的延时往往导致计数精度不高、速度采集不准确。利用CPLD在处理高速信号上的优势,提出一种基于CPLD的硬件计时电路,其时间测量的分辨率达1 μs,提高了测量的精度。并探讨了与PLC之间实现串行通信的硬件连接和软件实现方法,将原始值发送至PLC进行处理,计算碰撞瞬时速度。实验结果证明,该方法成功地实现了CPLD与PLC的串行通信,可以准确测量瞬时速度,并且具有开发简单、抗干扰能力强等特点。
关键词: 瞬时速度测量; CPLD; PLC; 串行通信
中图分类号: TN710?34 文献标识码: A 文章编号: 1004?373X(2017)21?0145?04
Instantaneous collision speed detection based on PLC and CPLD and its application
LIU Guoyue1, 2, LIAO Yuwu2, 3, YING Baosheng1
(1. School of Automobile and Traffic Engineering, Wuhan University of Science and Technology, Wuhan 430081, China;
2. School of Mechanical and Automotive Engineering, Hubei University of Arts and Science, Xiangyang 441053, China;
3. The Co?innovation Center of Hubei Province of Auto Parts Manufacture Equipment Digitizing, Xiangyang 441053, China)
Abstract: In pendulum impact experiment of cars, the detection and processing of collision speed are the key factors influencing the accuracy of experimental results. Some existing speed acquisition devices have low computational accuracy and inaccurate speed acquisition due to the delay of software processing, in which the single?chip microcomputer system is used for timing. The advantage of CPLD for high?speed signal processing is adopted to propose a hardware timing circuit based on CPLD. Its resolution of time measurement can reach up to 1 μs, and the precision of time measurement is improved. The hardware connection of serial communication between CPLD and PLC and software implementation method are discussed, and the original value of CPLD is send to PLC for processing to compute the instantaneous collision speed. The experimental results show that the proposed method can implement the serial communication between CPLD and PLC successfully, and measure the instantaneous speed accurately, which has the characteristics of simple exploitation and strong anti?interference ability.
Keywords: instantaneous speed measurement; CPLD; PLC; serial communication
0 引 言
汽车保险杠系统是汽车车身重要的组成部件之一,它对车辆的安全性有着很大的影响。在低速碰撞过程中,要求装在车辆前、后端的诸元件在发生接触和轻度碰撞时,不会导致车辆的严重损伤。根据GB17354?1998《汽车前、后保护装置》的标准,在进行保险杠低速碰撞试验中,要求正碰和角碰的速度[1]分别为(4±0.25)km/h,(2.5±0.1) km/h。整个碰撞过程非常短暂,因此碰撞瞬时速度的采集与处理就显得尤为重要。
本文在汽车碰撞实验台架的自动控制中,选用S7?200系列PLC作为主控制器,CPLD作为碰撞瞬时时间采集单元的核心器件。CPLD采集单元通过通信端口将采集到的原始数据传输给PLC,PLC经过运算后将碰撞瞬时速度值实时显示在上位机监控软件WinCC中。下面结合实例就CPLD单元的数据采集以及和PLC的通信实现做相关介绍。
1 数据采集及发送原理
1.1 基于CPLD的高精度时间测量原理
高精度时间测量主要由光电检测电路、整形电路和20位计数器组成。在碰撞瞬间挡片经过光电二极管,由光电二极管产生的脉冲信号经整形电路整形后作为CPLD的输入,触发CPLD对脉冲宽度进行高精度计数,最终瞬时速度值为挡片宽度与计时值的比值。CPLD采集单元如图1所示。
1.2 计数器电路设计
时间测量的精度直接影响到瞬时速度的精度,提高计数精度对速度的测量有着决定性作用。采用CPLD的基准时钟50 MHz晶振作为时钟源,分频产生1 MHz的脉冲,并将其作为计数脉冲源输入,时间测量分辨率为1 μs。将光电信号经整形后作为闸门信号控制对高频脉冲进行计数。计数功能通过CPLD内部的20位计数器来实现,根据计数值[N]即可精确测量出挡片经过的时间[T。]计数原理如图2所示。
1.3 数据发送电路设计
根据串行通信原理,将计数值逐位发送。采用CPLD的基准时钟11.059 2 MHz晶振作为时钟源,分频产生9 600 Hz的脉冲(实现通信速率为9 600 b/s),并将其作为数据发送脉冲源输入,实现数据发送。
2 硬件构成
2.1 EPM240T100C5N芯片
Altera公司的EPM240T100C5N芯片为100脚TQFP封装,拥有192个宏单元,80个输入/输出线数,传播延迟时间为5.9 ns,整体时钟设定时间为2.7 ns,支持最高频率为201.1 MHz,工作温度范围为0~85 ℃,输入/输出接口标准为LVTTL,LVCOMS和PCI,采用3.3 V电源供电,符合本系统的环境需求及高速采集的需要。
2.2 ADM2582E芯片
ADM2582E包含一个集成式隔离DC/DC电源,不需要外部隔离电源模块,是带隔离的增强型RS 485收发器,具备+15 kV ESD保护功能的完全集成式隔离数据收发器,适用于多点传输线上的高速通信应用。采用ADI公司的isoPowerTM技术,在单个封装内集成了一个三通道隔离器、一个三态差分线路驱动器、一个差分输入接收机和一个isoPowerTM DC/DC转换器,该器件采用5 V或3.3 V单电源供电,从而实现完全隔离的RS 485解决方案。实现将CPLD发出的TTL电平转换为PLC能够接受的RS 485电平的功能。
2.3 S7?200系列PLC
西门子S7?200系列PLC属于小型整体式PLC,由于其指令丰富、操作简便、运行可靠和极强的通信功能而被广泛应用于各种机械设备和生产过程的自动控制中[2]。
S7?200 PLC支持多种通信模式,如点对点接口(PPI)、多点接口(MPI)、Profibus、以太网、自由口等[3]。通信端口采用平衡驱动、差分接收的RS 485接口标准,可以组成半双工串行通信网络,构成分布式系统。其中,在与第三方设备进行通信时,就需要使用自由口通信功能。自由口通信模式是通过用户程序控制CPU的通信操作方式,实现用户自定义通信协议,可以连续地发送或接收255个字节以内的数据。PLC利用自由口通信接收来自CPLD的数据。
3 硬件设计及软件实现
3.1 硬件设计
3.1.1 整形电路
为获得规则波形,提高计数精度,需对光电输出信号进行整形。整形电路由NE5532构成的比较器实现,将光电输出电压与负端电压进行比较整形。其中,J1为光电二极管,RESISTOR VAR为可调电阻,可以通过调节触发门槛电压实现计时精度的调整,同时也降低了干扰。整形电路如图3所示。
3.1.2 硬件连接图
S7?200 PLC采用RS 485接口标准,接收差分信号,而CPLD芯片输出的是TTL电平,二者电平逻辑不兼容,因此,在通信时必须先进行电平转换,采用ADM2582E芯片将CPLD的TTL电平转换为EIA电平,系统中CPLD只需向PLC发送数据,硬件连接如图4所示。
3.2 通信协议
本项目中由于CPLD系统只需将采集到的数据发送至PLC,PLC单纯地接收数据,所以采用单工串行通信。PLC采用自由口模式协议,由语句表编程实现。CPLD将挡片经过光电二极管的时间值存储在datau[19:0]的20 个位中,其中计数脉冲周期为1 μs,可计数时间范围为0~220 μs,计数结束后采用触发式逐位发送datau的每个数据的位,将数据发送至PLC,在PLC中编写相应的接收程序,并进行处理。
3.2.1 CPLD发送数据格式
计数值datau[19:0]有20 个位,需要发送3个字节的数据,为了接收到准确的数据,将第三个字节的高四位用于数据校验(2#1010),数据位的发送顺序为低位在前,高位在后。数据发送格式如图5所示。
3.2.2 PLC接收数据格式
PLC将接收到的数据存放在以VB100开始的连续4个字节中,VB100为接收的字节数,对应CPLD发送的数据,数据接收格式如图6所示。
PLC接收完成时触发接收完成中断,在中断程序中校验数据的正确性,若正确则进行数据處理,否则舍弃,不要求重发。
3.3 软件设计
3.3.1 CPLD发送数据通信程序
CPLD采集单元在检测到整形后的光电信号,计数器开始计数并置位发送标志位,为发送数据做准备。光电信号消失时,开始发送计数值,发送完成计数值清零并复位发送标志位,等待下一次计数。流程如图7所示。
3.3.2 PLC接收数据通信程序
PLC的CPU处于STOP模式时,自由口通信停止,只有当CPU处于RUN模式时才可用自由口通信。通过向SMB30或SMB130(前者用于设置端口0,后者用于设置端口1)相应的位写入1来设置自由口模式、通信速率以及数据位等。发送指令XMT启用自由口模式下数据缓冲区中的数据发送,如果有中断程序连接到发送结束事件上,在发送完成后,端口0会产生中断事件9;接收指令RCV可以初始化接收信息服务,通过指定的端口接收信息并存储在数据缓冲区,在接收完成最后一个字符时,端口0产生中断[4]23。
本项目使用端口0接收CPLD发来的数据,通过特殊寄存器SMB30进行初始设置,使用接收完成中断对数据进行校验以及处理。设置通信波特率为9 600 b/s,数据位8位,无校验位。
PLC接收数据通信程序流程图如图8~图10所示。
4 实验验证
利用示波器观察光电触发信号的波形以及经过整形的波形,如图11,图12所示,可以明显看出整形前后的巨大区别。通过波形的整形,大大提高了计时的精度和实验结果的准确性。计时数据的发送波形如图13所示。
将CPLD数据采集单元与PLC进行正确接线,并将编写好的程序下载至PLC,利用STEP 7 Micro/WIN在线监控,并设置挡片宽度为1.2 cm。结果如图14所示。
计数时间为11 827 μs,计算得瞬时速度为1.014 6 m/s。
由上可知,系统能够准确地接收并处理数据,满足要求。
5 结 论
为了提高碰撞瞬时速度测量的精度,本文提出基于CPLD的高精度时间测量系统的设计,采用1 MHz的脉冲频率作为计数脉冲源,时间测量的分辨率可达1 μs,保证了时间测量结果的可靠性及精度。将计数值通过S7?200自由口通信发送至PLC,由PLC处理,计算碰撞瞬时速度,显示在上位机监控软件中,简化了项目的开发难度,缩短了开发周期,实现碰撞系统的全自动化。经测试得出整个系统工作稳定可靠,且采集到的数据也较为准确,满足了碰撞實验中的要求,具有较好的工程应用和参考价值。
参考文献
[1] 全国汽车标准化技术委员会.GB17354?1998汽车前、后端保护装置[S].北京:全国汽车标准化技术委员会,1998.
[2] 李生军,李少蒙.单片机与PLC之间的串行通信实现[J].化工自动化及仪表,2010(2):78?80.
[3] 吴敏,孙志毅.西门子S7?200PLC与单片机AT89C2051的串行通信及应用[C]//中国计量协会冶金分会2009年年会论文集.郑州:国家质检总局计量司,2009:886?888.
[4] 窦小明,陈东升.锡焊机中PLC与单片机之间通信的设计[J].自动化技术与应用,2012(12):112?115.
[5] 王冶.基于CPLD的自适应高精度时统模块设计[J].计算机测量与控制,2014(9):2954?2956.
[6] 姬军,黄增跃,沙杭,等.基于CPLD高精度恒流源技术的呼吸体积描记系统的设计[J].计算机测量与控制,2014(10):3347?3349.
[7] 陈艳,李太平,朱江辉.基于CPLD的编码器数据采集装置研究[J].电子测试,2016(1):19?21.
[8] 郭亚飞,王高,梁海坚,等.高精度多段智能爆速仪的设计及应用[J].山西电子技术,2016(2):10?12.
[9] 周翟和,汪丽群,沈超,等.基于CPLD的磁致伸缩高精度时间测量系统设计[J].仪器仪表学报,2014(1):103?108.