0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于梯形图的VHDL设计方法进行CPLD的开发设计

电子设计 来源:郭婷 作者:电子设计 2019-05-23 08:06 次阅读

顺序控制逻辑电路广泛应用于机器人、全自动家用电器、工业自动化设备及其它自动化装置中,它常采用CPLD器件进行设计与实现。

如果直接采用原理图输入工具或VHDL语言描述的方法来设计顺序控制逻辑电路,则设计效率不高。这是因为顺序控制逻辑电路中包含大量的I/O信号,控制逻辑就是这些I/O信号的逻辑组合,这些I/O信号在整个控制逻辑中会被大量引用,而原理图输入工具中的元件如逻辑门和触发器等的输入引脚数是固定的,逻辑引用不够灵活,同时,I/O信号的大量引用又会使连线过于复杂。VHDL是一种文本设计工具,不是顺序控制逻辑电路设计的专用工具,直接用它编写的顺序控制逻辑程序结构零乱,不够直观,编程及调试效率都不高。

梯形图的原理与特性

梯形图是可编程逻辑控制器PLC)实现顺序控制逻辑的专用设计工具,用梯形图描述的控制逻辑非常直观易懂。梯形图工具使用简便,开发效率高,对电路设计者的要求很低,因此,电路设计者可以将更多精力用在顺序控制逻辑功能的实现与优化上。

基于梯形图的VHDL设计方法进行CPLD的开发设计

梯形图以两根平行的竖线分别表示电源线和地线,在这两根竖线之间,用横线表示电气连接线,将各种代表逻辑量(“ON”或“OFF”)的元件触点及输出执行元件的线圈用横线串接成一条电气回路。多条这样的回路并列在一起,形状如同阶梯,就构成了实现所需顺序控制逻辑的梯形图。

一个典型的顺序控制电路的梯形图如图1所示。在梯形图的每个回路中,当所有串联的触点全部都处于“ON”状态时,回路就处于导通状态,回路末端的输出执行元件线圈被接通。例如,当X0为“ON”,X1为“OFF”时,执行元件Y0就被接通,产生输出动作。执行元件不能多个串联,其触点所代表的逻辑量可以在梯形图中被多次反复引用。电路的各I/O信号也可以在梯形图中被多次反复引用。

梯形图-VHDL设计方法

如果将梯形图法应用于CPLD开发中,采用基于梯形图的VHDL设计方法,就可将两种设计工具的长处相结合,从而提高顺序逻辑电路设计开发的效率,简化设计难度。

梯形图-VHDL设计方法的总体思路是,将开发过程分为两个阶段:第一阶段先采用梯形图对顺序逻辑电路的逻辑进行描述和设计,第二阶段通过VHDL语言来实现梯形图的逻辑功能,并通过CPLD专用的开发软件对所设计的逻辑进行仿真调试。

在这里,梯形图的作用是作为顺序逻辑电路的逻辑原型,是VHDL语言编程的依据。用梯形图完成的是电路的逻辑功能设计,而VHDL语言程序用于实现其逻辑功能。二者分工协作,相得益彰。其中梯形图-VHDL设计方法的关键在于梯形图的VHDL语言描述。

梯形图的VHDL描述方法

梯形图由三种要素构成,即输入信号、输出执行元件和连接线。在VHDL程序中必须采用特殊方法对这三要素进行有效的描述。

(1)输入信号Xi(i=0,1,…,M)

M个输入信号必须在实体的端口说明语句(PORT语句)中予以说明。在PORT语句中,各输入信号可以单独说明,也可将一组或一类输入信号用一个标准位向量(STD_LOGIC_VECTOR)说明。

可以规定输入信号为逻辑“1”时,其状态为“ON”;而为逻辑“0”时,其状态为“OFF”。梯形图中对输入信号Xi的引用对应于VHDL程序中对Xi的直接引用,而梯形图中对的引用则对应于VHDL程序中对(NOT Xi)的引用。

(2)输出执行元件Yj(j=0,1,…,N)

N个输出执行元件(即输出信号)也必须在实体的端口说明语句(PORT语句)中予以说明。如果某输出信号在梯形图中的其它位置需要被引用,则在PORT语句中必须将其端口模式设置为“BUFFER(输出并向内部反馈)”。在PORT语句中,各输出信号可以单独说明,也可将一组或一类输出信号用一个标准位向量(STD_LOGIC_VECTOR)说明。

可以规定输出信号为逻辑“1”时,其状态为“ON”;而为逻辑“0”时,其状态为“OFF”。梯形图中对输出信号Yj的引用对应于VHDL程序中对Yj的直接引用,而梯形图中对的引用则对应于VHDL程序中对(NOT Yj)的引用。

(3)连接线

梯形图中的连接线有四种:回路最左侧的横线为回路起始线(母线);回路中部的横线为“与”逻辑连接线;回路中部的竖线为“或”逻辑连接线;回路右侧与输出执行元件相连的线为输出线。

在VHDL程序中,可用“与”逻辑运算符“AND”代替梯形图中的“与”逻辑连接线,用“或”逻辑运算符“OR” 替梯形图中的“或”逻辑连接线,用信号赋值运算符“《=” 代替梯形图中的输出线。

这样,梯形图中的每一个电气回路都可很方便地用一条对输出信号的赋值语句来描述。赋值语句的左边是输出信号,右边是一个由各输入/输出信号及与/或运算符构成的逻辑表达式。

虽然在VHDL程序中也可以用IF分支语句来描述梯形图各回路中信号的逻辑关系,但这样会使程序结构很杂乱,调试很困难,可读性也较差,因此不推荐用IF语句来描述梯形图回路中的逻辑,而建议采用逻辑表达式给输出信号赋值的描述方法。

对于梯形图中那些不向外输出信号的内部元件来说,如定时器、状态寄存器、移位寄存器等,可采用元件例化语句调用有关的库元件功能进行描述,并在结构体中为其输出声明一个中间信号。当这类元件有输出信号时,将其输出信号赋值给声明好的中间信号,电路中其它位置就可对该中间信号或者它的取反信号进行引用。 通过以上各描述方法,就可将用梯形图设计的电路逻辑原型方便地逐行转换为VHDL程序。在进行电路逻辑功能设计时,就不必为VHDL程序的语法和程序结构花费过多的时间,能更加专注于电路逻辑功能设计与优化,同时也使所编写的VHDL程序逻辑更加清晰,可读性更好。

应用实例

以下通过图1所示的典型的顺序控制电路的实例来说明梯形图的VHDL描述方法。

在图1中,X0、X2和X4分别是三个输出回路的启动信号,X1、X3和X5分别是三个输出回路的停止信号,Y0、Y1和Y2分别是三个输出回路的输出执行元件。只有当Y0启动输出后,才允许Y1启动;只有当Y1启动输出后,才允许Y2启动。reset为CPLD芯片的上电复位信号,低电平有效。

实现该电路控制的VHDL程序逻辑如下:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY sequence IS

PORT(X0, X1, X2, X3, X4, X5: IN STD_LOGIC;

RESET: IN STD_LOGIC;

Y0, Y1, Y2 : BUFFER STD_LOGIC);

END sequence;

ARCHITECTURE ladder OF sequence IS

BEGIN

PROCESS(RESET, X0,X1,X2,X3,X4,X5)

BEGIN

IF (RESET=‘0’) THEN

Y0《=‘0’; Y1《=‘0’; Y2《=‘0’;

ELSE

Y0《=(X0 OR Y0)AND (NOT X1);

Y1《=(X2 OR Y1)AND (NOT X3)AND Y0;

Y2《=(X4 OR Y2)AND (NOT X5)AND Y1;

END IF;

END PROCESS;

END ladder;

利用MAX+PLUS II的定时仿真工具对上面的程序进行仿真,结果如图2所示。从时序仿真的结果可以看到,电路的输出逻辑与梯形图原型的逻辑完全一致。

结语

本文通过对一个典型顺序控制电路梯形图的VHDL程序设计与时序仿真,表明梯形图-VHDL设计方法是正确可行的。梯形图法的引入使VHDL程序的设计得到简化,所设计出的程序结构简练,输出逻辑表达清楚。梯形图与VHDL程序分工明确,电路逻辑功能设计的工作由梯形图来承担,而VHDL程序只需负责对梯形图的逻辑功能进行描述并生成CPLD的下载文件。这样,对两种设计工具各取所长,就使得用CPLD开发顺序逻辑控制电路和系统的效率得到提高。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpld
    +关注

    关注

    32

    文章

    1248

    浏览量

    169285
  • plc
    plc
    +关注

    关注

    5010

    文章

    13242

    浏览量

    462723
  • vhdl
    +关注

    关注

    30

    文章

    816

    浏览量

    128100
收藏 人收藏

    评论

    相关推荐

    plc梯形图如何看对错

    梯形图的对错分好多种,一种是程序编译出现的错误,二就是控制功能异常或者逻辑错误。编译引起的如双线圈、指令使用错误、软元件使用有误等等,有些是能通过梯形图检查到的,输入线圈Y明显发现使用了多次,在程序
    发表于 11-09 07:37

    请问一下梯形图VHDL设计方法怎么进行CPLD开发设计?

    本文通过对一个典型顺序控制电路梯形图VHDL程序设计与时序仿真,表明梯形图-VHDL设计方法是正确可行的。
    发表于 04-30 06:36

    关于梯形图-VHDL设计方法的研究

    梯形图的原理与特性梯形图-VHDL设计方法梯形图VHDL描述
    发表于 04-30 07:28

    如何去实现一个基于梯形图的软PLC设计

    梯形图的原理是什么?梯形图是如何运行的?如何去实现一个基于梯形图的软PLC设计?
    发表于 09-23 09:04

    PLC梯形图是如何编程的呢?

      PLC被称为可编程逻辑控制器。1993年,IEC颁布了IEC61131-3标准,标准中规范了5种PLC的编程语言。梯形图、指令表、结构化文本、功能块和顺序功能图表。分别用字母LD、IL、ST
    发表于 03-02 18:08

    PLC梯形图编程有哪些规范_plc梯形图编程实例

    本文开始介绍了关于PLC梯形图编程的四个基本概念,其次详细介绍了PLC梯形图编程基本规则,最后介绍了PLC计数器程序梯形图编程实例。
    发表于 04-26 14:58 6991次阅读
    PLC<b class='flag-5'>梯形图</b>编程有哪些规范_plc<b class='flag-5'>梯形图</b>编程实例

    继电器控制电路与PLC梯形图详解及怎么转换为PLC梯形图

    今天给大家分享继电器控制电路与PLC梯形图详解及怎么转换为PLC梯形图
    的头像 发表于 07-26 08:58 1.3w次阅读
    继电器控制电路与PLC<b class='flag-5'>梯形图</b>详解及怎么转换为PLC<b class='flag-5'>梯形图</b>

    PLC梯形图如何绘制

    梯形图逻辑控制顺序的设计,可以从手工绘制梯形图开始。在绘制过程中,设计员可以在仔细分析机床工作原理或动作顺序的基础上,用流程,时序等描述,信号与机床运行间的逻辑顺序关系,然后再据此
    发表于 06-04 09:52 3965次阅读

    PLC梯形图的经验设计方法

    经验设计法用设计继电器电路方法来设计比较简单的开关量控制系统的梯形图,即在一些典型电路的基础上,根据被控对象对控制系统的具体要求,不断地修改和完善梯形图
    发表于 06-04 12:00 1227次阅读

    PLC梯形图编程的方法

    PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以三菱FX系列PLC为例,介绍一下PLC梯形图编程的方法,希望对大家有所帮助。
    的头像 发表于 09-24 10:57 6290次阅读
    PLC<b class='flag-5'>梯形图</b>编程的<b class='flag-5'>方法</b>

    plc编程中的梯形图是什么?

    梯形图的设计称为编程。    梯形图编程中,用到以下四个基本概念:     1.母线    梯形图两侧的垂直公共线称为母线(Bus bar),。在分析梯形图的逻辑关系时,为了借用继电
    发表于 12-08 17:56 6202次阅读

    PLC梯形图的特点 如何懂PLC梯形图

      PLC梯形图(Programmable Logic Control Ladder Diagram)是一种编程语言,通常用于控制工业自动化系统中的可编程逻辑控制器(PLC)。梯形图由电气工程师和编程人员使用,用于编写PLC程序,该程序在设备和机器上执行不同的逻辑流程控制
    发表于 03-16 14:32 5819次阅读

    PLC梯形图的设计方法

      PLC(可编程逻辑控制器)是一种常用于工业自动化领域的控制器设备,它能够对生产过程进行精细的控制和管理。在PLC的程序设计过程中,梯形图是一种常用的设计方法,以下是PLC梯形图的设
    发表于 03-16 16:46 2668次阅读

    PLC梯形图编程的方法和5大原则

      梯形图编程是基于逻辑组件(与门、或门、非门)以及控制元件(计数器、定时器、比较器等)来构建过程控制程序的方法。在PLC中,梯形图通常是在集成开发环境(IDE)中编写的,其中PLC程
    发表于 03-16 18:20 5132次阅读

    PLC梯形图编程的顺序和方法

      PLC梯形图编程是一种用于计算机控制系统中的图解语言,它采用梯形图的形式描述程序的逻辑关系,以实现实时控制和自动化控制。PLC梯形图编程的核心概念是梯形图
    发表于 03-17 15:07 4729次阅读