基于CPLD的自定义PLC模拟I/O模块的研究

   2023-10-05 互联网1940
核心提示:      0引言  PLC在过程控制领域应用广泛,在这些控制过程中,有许多连续变化的如温度、压力、流量、液位和速度模拟量需

  

  

  0引言

  PLC在过程控制领域应用广泛,在这些控制过程中,有许多连续变化的如温度、压力、流量、液位和速度模拟量需要测量和控制,PLC采用标准的A/D(如FX2N4A/D)及D/A(如FX2N2D/A)模块来进行模拟量的输入输出处理。但该类模块价格较贵,尤其在需要大量的模入模出信号的情况下,成本将大大增加?。该设计就是采用单片机、CPLD(复杂可编程逻辑器件)以及A/D、D/A模块等,实现一种高性价比的方案设计,不但解决PLC模拟量输入输出需求量大致使成本提高的矛盾,而且还具有一定的“柔性”,即可根据实际的情况自定义开关量和模拟量的I/O口的数量,以适应不同场合的需要,具有良好的实用价值。文中以FX2N PLC的模拟I/O模块设计为例进行讨论。

  1系统整体设计

  系统的整体设计如图1所示。单片机是数据采集和处理的中心;CPLD连接了单片机的输入输出数据通道,通过对CPLD的编程,实现单片机对外部通道数据的交互旧1;单片机提供了一个全双工标准接口,通过电平转换芯片MAX232及相关外围电路来实现rrrL信号和RS一232电平信号之间的转换,实现了RS一232串口通信,PLC的通信口为RS一422,其间通过RS一232/RS一422通信转换器实现单片机与PLC的通信。单片机一方面通过AJD采集现场模拟信号,并经过数据处理后将所采集的数据发送给PLC,同时单片机接收来自PLC的控制信号,将该控制信号通过D/A送出去控制现场的执行机构。为了清晰地显示数据的输入输出情况,设计了LED显示部分;为了进行相关设定,设计了键盘以便进行I/O口的定义和相关操作。

  2数据采集卡模块

  2.1数据采集模块的基本构成

  单片机是数据采集模块的处理器,主要完成数据的采集,对键盘输入、数据湿示、模拟输入、模拟输出子模块进行控制和数据的处理。单片机的外部逻辑电路由可编程逻辑控制器CPLD完成,CPLD配合单片机完成模拟量的输入输出功能。模拟输入模块完成将8路0—5 V的模拟输入信号转换为数字量,并将数字量通过数据总线传送给单片机;模拟输出模块将单片机送来的数字量转换为1—5 V的模拟量并输出;数据显示模块采用两组四位的LED,用于显示通道信息和采集的数据信息;键盘输入子模块为一个4×4的键盘,可以实现对I/O模块的基本模式选择操作和相关的设定。

  2.2 CPLD模块电路

  CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。根据数据采集模块的要求,可选择逻辑门数量适中的MAX7000系列CPLD.通过在Quash集成开发软件画原理图、写硬件描述语言(VHDL,Verilog HDL),编译后给出逻辑电路的输入激励信号,进行仿真,查看逻辑输出结果是否正确,最终将生成的代码通过下载电缆传送并存储在CPLD芯片中¨J。单片机的P0、P2数据El,读写信号和中断信号,以及模拟输出模块片选信号,模拟输入时钟信号,启动转换信号等直接连入CPLD芯片。其外围电路如图2所示。

  CPLD模块其内部逻辑主要包括锁存电路、地址译码电路和延时电路等。

  锁存电路由一个74LS373构成,主要完成对单片机P0口的地址信息进行锁存。单片机的P0口和地址锁存信号ALE接入到74LS373芯片中,实现对单片机Po口的地址信息的锁存,其8位输出端只利用低3位作为ADC0809芯片的A、B、C三端的地址信号。

  译码电路控制A/D启动转换信号和转换完成允许输出信号,D/A的片选信号,数码管的位选和段码信号的译码地址,单片机对外部数据进行一次读或写都将启动CPLD每部译码电路进行译码;单片机P2口的高4位接入74LSl38的A、B、c三端和G1端,74LSl38的第一输出端分别连接单片机的读、写控制线相或非,输出分别控制ADC0809的START、OE两端,这样可以用分别为读、写命令对ADC0809的START、OE两个端口进行控制;74LSl38的第二、三输出端连接单片机的读信号相或非,输出分别控制LED的位码和段码;74LSl38的第四、五输出端分别控制两片DAC0832的片选端。

  延时电路的主要功能是将键盘传到单片机的中断信号进行延时调理处理,避免按键在按下的过程中不稳定引起单片机不断的中断和退出中断。在CPLD内部还包括分频电路、中断处理电路等。CPLD内部译码电路如图3所示。

  2.3数据采集模块与PLC的通信

  单片机通过MAX232串行通信芯片实现RS一232串行通信口的物理层功能,而FX2N系列PLC的编程接口采用RS一422标准,因此,作为实现PLC与单片机通信的接口电路,必须将RS一422标准转换成RS一232标准。

  RS一232采用单端接收器和单端发送器,只用1根信号线传送信息,并且根据该信号线上电平相对于公共的信号地电平的大小来决定逻辑的“1”(一3一一15 V)和?0’(+3一+15 V)。

  RS一422标准是一种平衡方式传输的标准,即双端发送和双端接收,根据两条传输线之间的电位差值来决定逻辑状态。RS一422电路由发送器、平衡连接电缆、电缆终端负载和接收器组成。它通过平衡发送器和差动接收器将逻辑电平和电位差之问进行转换(+2 V表示?0’,一2 V表示“l”)H J。

  选用MAX202实现RS一232与TrL之间的电平转换。MAX202内部有电压倍增电路和转换电路,仅需+5 V电源就可工作,使用十分方便;选用MAX490实现RS一485与,l’rL之间的转换。每片MAX490有l对发送器/接收器,由于通信采用全双工方式,故需2片MAX490,另外只需外接4支电容即可。硬件电路图如图4所示。

将RS一232的RS、cs短接,这样对单片机发送数据来说,PLC总是处于就绪状态。也就是说,单片机在任何时候都可以将数据送到PLC内。又由于DR、ER交叉连接,因此,对单片机接收数据来说,必须等待至PLC处于准备就绪状态,实现单片机与PLC按主从方式进行通讯,单片机向PLC发通信请求信号,在收到PLC发回的响应信号后开始数据通讯。

  FX2N PLC与单片机之间的通信采用RS一232标准,PLC串行通信采用ASCII码传输模式,通信波特率9 600 bit/s,起始位l位、数据位7位、偶校验位l位、停止位l位,数据格式如图5(a)所示;数据是以帧为单位发送和接收的,一个多字符帧由图5(b)所示的5部分组成,其中和校验值是将命令码ETX之间的所有字符的ASCII码(十六进制数)相加,取得所得和的最低二位数。STX和ETX分别表示该字符帧的起始标志和结束标志。

  通信过程:单片机的串行端Lj有一个数据寄存器SBUF,该寄存器为发送和接收所共有,单片机向SBUF写人数据就启动了发送过程,读SBUF就启动了接收过程。当PLC通过RS一232C串行接口与单片机进行通信时,首先由单片机向PLC发送命令帧格式;发送过程结束后PLC立即做出响应,同时单片机接收由PLC发送的相应帧格式,以上所有的通信均由单片机来启动和接收,PLC方无需编制通信程序。

  3系统主程序设计

  主程序完成包括对单片机各特殊功能寄存器设置初值和开中断等任务的初始化。初始化后将首次启动ACD转换器。在执行主程序的循环中。一旦有键盘输入、数据显示、DAC转换和ADC转换的处理中断信号,程序将会跳转到中断子程序中,执行中断子程序。主程序流程图如图6所示。

  当ADC芯片完成1次转换后进入中断子程序,对ADC data标志位置1,此时单片机对ADC转换后的数字信号进行读操作,并将数据保存;为了使ADC转换芯片不停地进行模数转换,在程序的末尾加入ADC启动转换的代码,从而达到设计要求。

  DAC数据转换时,单片机对它进行1次写操作就可以完成1次模拟信号的输出,单片机将需要转换的数字量保存在1个全局变量中,只需把2块DAC芯片的物理地址送人锁存器就可以将需要转换的数据锁存到DAC芯片内部等待转换。显示子程序采用定时中断来处理,用2块74LS373对段码和位码锁存,单片机每隔10 m8将产生1个定时中断,采用这种方法可以大大提高系统的实时性。

  4 I/O模块的自定义功能

  CPLD具有静态可重复编程或在线动态重构特性。使硬件的功能可像软件一样通过编程来修改,不仅使设计修改和产品升级变得十分方便,而且极大地提高了电子系统的灵活性和通用能力拍J。可自定义的模拟I/O模块中,由于CPLD其内部逻辑主要完成地址锁存、地址译码和延时等功能。用户自己设计模拟I/O模块时,可以通过改变CPI。D内部逻辑,采用原理图输入和硬件描述语言VHDL/Verilog HDL输入相结合的方式,包括以下3种:

  改变地址锁存电路。该设计的锁存电路主要完成单片机地址的锁存,利用CPLD内部锁存电路8位数据输出端的低3位通道,用户可以从中任意选择3位通道或作为A/D芯片的A、B、C三端的地址信号来采集数据信息,并在软件设计时重新修改通道的地址信息;还可以增加通道以实现多个A/D芯片的地址信号来采集多路I/O模拟量数据。以便完成PLC对精度要求较高的工程控制模拟连续变化量,从而实现自定义模拟量I/O的功能;

  改变地址译码电路。当要加入外部芯片时,用户可以直接把要加入芯片的各控制端信号和74LSl38电路中的输出端相连接,并根据各控制信号之间逻辑父系加入逻辑门电路来实现信号的逻辑控制功能;用户还可以充分利用74LSl38输出端的其余通道来添加PLC控制的各种开关量,这种修改不仅自定义外围芯片的逻辑控制信号还增加需要控制的各种开关量的功能;当系统加入新的功能模块时,不用重新设计系统的电路板,只需在CPLD内部修改电路增加逻辑电路或是画原理图和硬件描述语言的二者结合,并把逻辑电路的各种控制信号引到新的功能模块电路中,利用Quartsll软件编译仿真后将代码通过下载电缆存储在CPLD内部即可实现系统扩展升级的功能。

  5结束语

  讨论了如何采用单片机、CPLD以及A/D、D/A模块等,实现一种高性价比的叮具有一定的“柔性”FX2N PLC的模拟I/O模块设计,实现了数据采集模块与PLC的双向数据交互,而且用户可以多次自定义I/O端口以实现硬件模块的多样化,解决了PLC进行现场模拟量数据采集所需费用昂贵的问题,具有良好的实际意义。


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅