2021.11.07
——

参考文献
[1]罗庚兴.浅谈用PLC改造继电器控制系统的方法.煤矿机械,2006,27(7):159-161.
[2]清华大学电子学教研组. 数字电子技术基础简明教程[M]. 第三版. 北京:高等教育出版社, 2006.

1逻辑代数

在提到一般教科书都会记载,但实际上较少使用的逻辑设计法之前,有必要先回顾一下贯穿整本数电课本的逻辑代数(Logic
Algebra)这一知识点。

逻辑代数,或称布尔代数(Bool Algebra),是按一定的逻辑关系进行运算的代数,其基本逻辑运算有与(AND)、或(OR)、非(NOT)

  1. 与运算: Y=A⋅BY=A·BY=A⋅B
  2. 或运算: Y=A+BY=A+BY=A+B
  3. 非运算: Y=A‾Y=\overline{A}Y=A

在逻辑代数中,使用英文字母表示变量,称为逻辑变量,其取值为0或1;上式1-3被称为逻辑表达式,式中A、B称为输入逻辑变量,Y称为输出逻辑变量;字母上面无反号的称为原变量,有反号的称为反变量
当Y=F(A,B,…)时,称Y是A、B、…的逻辑函数
逻辑函数在各个变量之间存在互相制约关系,则称之为约束,该逻辑函数称为有约束的逻辑函数,这些变量称为一组有约束的变量

2 PLC的逻辑设计法

2.1电路->逻辑代数

逻辑代数是分析和综合开关电路的重要数学工具,因此又称为开关代数

下图所示的三类电路,可用于反应与、或、非三种基本逻辑关系:

根据继电器电路图推导逻辑函数表达式,遵循原则见下:

  1. 电器开关的逻辑函数以线圈作为输出逻辑变量,以触点作为输入逻辑变量;
  2. 线圈得电为 “1”,线圈断电为“0“;
  3. 常开触点用原变量表示,常闭触点用反变量表示 ;触点动作为“1”,不动作为“0”;
  4. 时间继电器的线圈与其延时动作触点的逻辑状态不一致 ,并且时间继电器的触点有4种状态(延时断开、延时闭合、瞬动断开、瞬动闭合),需要作特殊处理 。

PLC梯形图(称作继电器梯形图)程序编程原理与开关电路设计原理相同,因此方法相同,可以参照前文方法来设计程序。

以使用继电器为核心的起保停电路为例:

扩展到一般对象,其逻辑代数表示为:
Fk=(X开+K)⋅X‾关F_k=(X_开+K)·\overline{X}_关Fk​=(X开​+K)⋅X关​

X开X_开X开​——控制对象开启信号
X关X_关X关​——控制对象关断信号
KKK——输出对象的常开触点

在实际应用中,X开X_开X开​和X关X_关X关​会带有约束条件,防止启停信号误动作的影响,保障系统可靠性:

其逻辑函数为:
Fk=(X开⋅X开约+K)⋅(X‾关+X‾关约F_k=(X_开·X_{开约}+K)·(\overline{X}_关+\overline{X}_{关约}Fk​=(X开​⋅X开约​+K)⋅(X关​+X关约​)

2.2逻辑代数->梯形图

对于PLC梯形图编程,在没有约束条件下,典型输出控制对象的基本逻辑函数可表示为:
Fk=(X开+K)⋅X‾关F_k=(X_开+K)·\overline{X}_关Fk​=(X开​+K)⋅X关​
X开X_开X开​——启动条件
X‾关\overline{X}_关X关​——关断条件
KKK——控制对象的当前状态
FKF_KFK​——控制对象的下一个状态值

其对应程序如下:

约束条件下,典型输出控制对象的基本逻辑函数可表示为:
Fk=(X开⋅X开约+K)⋅(X‾关+X‾关约)F_k=(X_开·X_{开约}+K)·(\overline{X}_关+\overline{X}_{关约})Fk​=(X开​⋅X开约​+K)⋅(X关​+X关约​)

其对应的PLC程序如下:

逻辑设计法的基本使用方法即为:把各种已知信号带入上式中,写出控制对象的逻辑函数,再根据逻辑函数,结合一般设计原则,编写PLC程序

3实例一则

现在尝试用逻辑设计法解一道题,这是我从网络上搜索到的,不过我学习PLC时也按经验法写过类似的题目。题目和原链接相比有改动,倒不是原题做不来,是我写完了以后发现题目和我写的有差别( ̄▽ ̄)"。

某企业承担了小车往返控制系统的设计任务。要求小车在A、B、C三点之间来回移动(A、B、C三点在一条路线上),一个周期的工作过程为:原位在A点,按下启动按钮后,小车从A点前进至B点,碰到行程开关SQ1后返回至A点,碰到行程开关SQ2后又前进,经过B点不停直接运行到C点,碰到行程开关SQ3返回至A点,完成一个周期后循环。按下停止按钮时,小车即刻停止。

因为牵扯到动作时序,用步进梯形图会容易很多,否则逻辑会比较复杂,但为了体现逻辑代数的优越性,现在我们反其道而行之,并使用逻辑设计法解这道题。

基本逻辑函数见下:
Y前进=(X开+Y前进+XA⋅Y后退下降沿)⋅(XB‾⋅XB约‾+XC‾⋅XC约)⋅X关‾Y_{前进}=(X_开+Y_{前进}+X_A·Y_{后退下降沿})·(\overline {X_B}·\overline {X_{B约}}+\overline {X_C}·X_{C约})·\overline {X_关}Y前进​=(X开​+Y前进​+XA​⋅Y后退下降沿​)⋅(XB​​⋅XB约​​+XC​​⋅XC约​)⋅X关​​
Y后退=(Y前进下降沿⋅(XB+XC)+Y后退)⋅XA‾⋅X关‾Y_{后退}=(Y_{前进下降沿}·(X_B+X_C)+Y_{后退})·\overline {X_A}·\overline {X_关}Y后退​=(Y前进下降沿​⋅(XB​+XC​)+Y后退​)⋅XA​​⋅X关​​

上述逻辑函数的格式为启动条件⋅完成条件⋅停止条件启动条件·完成条件·停止条件启动条件⋅完成条件⋅停止条件
为了防止同时输出前进和后退信号,加入了XB约束条件XB约X_{B约}XB约​和XC约束条件XC约X_{C约}XC约​,XB约X_{B约}XB约​为真的条件是本循环已抵达B点;XC约X_{C约}XC约​为真的条件是本循环已抵达A点和B点;循环结束后会对约束条件进行复位。

将逻辑函数改写为梯形图,见下:

4利用逻辑表达式实现梯形图程序对数字电路的模拟

4.1对1位数值比较器的模拟

实际上我们可以根据逻辑表达式来编写梯形图程序,模拟一类数字电路。
例如以1位数值比较器为例,其逻辑表达式为:
Li=AiB‾iL_i=A_i\overline B_iLi​=Ai​Bi​
Gi=A‾iB‾i+AiBiG_i=\overline A_i\overline B_i+A_iB_iGi​=Ai​Bi​+Ai​Bi​
Mi=A‾iBiM_i=\overline A_i B_iMi​=Ai​Bi​
根据上述逻辑表达式可编写如下梯形图程序:

其真值表如下:

AiA_iAi​ BiB_iBi​ LiL_iLi​ GiG_iGi​ MiM_iMi​
0 0 0 1 0
0 1 0 0 1
1 0 1 0 0
1 1 0 1 0

同1位数值比较器的真值表一致。

4.2从数字电路演化到功能块

实际上梯形图中的一些功能块即是数字电路的程序化体现,例如RS触发器(复位/置位触发器):

在数字电路中,触发器是用于接收、保存和输出二进制数字信号和两状态逻辑信号的单元单路,其重要概念有现态和次态。

  1. 现态:触发器接收输入信号之前的状态,用QnQ^nQn表示。
  2. 次态:触发器接收输入信号之后的状态,用Qn+1Q^{n+1}Qn+1表示。次态既取决于输入信号,也取决于现态(保持特性)。

或非门组成的基本RS触发器逻辑符号和逻辑电路图见下:

RRR、SSS是信号输入端,表示低电平有效
QQQ、Q‾\overline{Q}Q​是两个互补的信号输出端,表示触发器状态

当电路无输入信号(RRR=SSS=1)时,有两个状态:
0状态:QQQ=0、Q‾\overline{Q}Q​=1
1状态:QQQ=1、Q‾\overline{Q}Q​=0

当RRR=1、SSS=0时,触发器将变成1状态,因此习惯上把SSS端称为置位端
当RRR=0、SSS=1时,触发器将变成0状态,因此习惯上把RRR端称为复位端
不允许RRR=SSS=1,此即为约束条件

特性方程用于描述基本RS触发器次态输出Qn+1Q^{n+1}Qn+1与现态QnQ^{n}Qn和输入RRR、SSS之间的函数关系。
RS基本触发器的特性方程为:
{Qn+1=S+R‾⋅QnRS=0约束条件\begin{cases} Q^{n+1}=S+\overline{R}·Q^{n}\\ RS=0~~~~~~~约束条件 \end{cases}{Qn+1=S+R⋅QnRS=0       约束条件​

逻辑设计法:数字电路在PLC编程中的体现相关推荐

  1. PHP与西门子PLC,GE 与 西门子 PLC 编程 中 变量 区别

    plc-variables-deferences-between-ge-and-siemens-plc 由于工作的需要使用了GE的PAC Rx3i系列PLC,发现其梯形图编程方式与西门子有些许区别.最 ...

  2. PLC编程中网络通讯方式有几种?

    Plc网络由多个子网组成,每个子网的通信过程由通信协议决定,通信方式是通信协议的核心内容.通信模式包括访问控制模式和数据传输模式.所谓接入控制(也称接入控制)是指如何获得共享通信介质的使用权,而数据传 ...

  3. 西门子断开延时定时器_在PLC编程中定时器的一些针对现场不同情况的一些妙用...

    相信大家在PLC编程中常会用到定时器,定时器指令也是比较常用的指令,一般分为接通延时定时器.断开延时定时器.脉冲定时器等,相信大家对于指令也已经很熟悉,在本文中就不具体介绍定时器指令了. 本文重点介绍 ...

  4. 用计算机对PLC进行编程时,PLC编程中的五个常见问题

    PLC是一种新型的具有极高可靠性的通用工业自动化控制装置,它具有控制能力强.配置灵活.编程简单.易于扩展等优点,是当今及以后工业控制的主要手段和重要的自动化控制设备,在各行业中有着迅速发展和应用.而对 ...

  5. 设计原则:公理系统在编程中的运用

    背景 说来惭愧,高中是花钱买上的,高中虽然经过努力考试了大学,可惜小学和初中的知识学习的不扎实(当时也学不会),感觉到现在都没有开窍,前几天读<古今数学思想>,觉得数学和编程简直就是一回事 ...

  6. 研华数据采集卡如何采集压力信号转化为数字信号_涨知识啦!PLC编程中如何使用开关、模拟、脉冲量...

    在工业自动化控制中,经常会遇到开关量,数字量,模拟量,离散量,脉冲量等各种概念,而人们在实际应用中,对于这些概念又很容易混淆.作为电气工程及其自动化设计人员来说,弄清楚这些变量的关系,就能够很熟练的掌 ...

  7. 信捷plc c 语言全局变量,三菱PLC编程中,跳转指令CJ、子程序调用CALL和中断指令有什么区别?...

    满意答案 0519gao 2013.10.06 采纳率:46%    等级:12 已帮助:11303人 子程序帮助您对程序进行分块.主程序中使用的指令决定具体子程序的执行状况.当主程序调用子程序并执行 ...

  8. 西门子PLC|梯形逻辑PLC编程

    前言 梯形逻辑 PLC 编程是目前我们的过程自动化的最流行且易于学习的方法.梯形逻辑或简称 LD 是在可编程逻辑控制器的开放国际标准IEC61131下开发的. ​在这部分课程中,您将学习如何解释过程控 ...

  9. c语言中专业英文词汇,【收藏】PLC编程常用专业英文词汇

    原标题:[收藏]PLC编程常用专业英文词汇 在PLC编程中我们经常会遇到一些专业英文词汇,对于入门的学员来说过理解起来是非常困难的.本文总结了一些PLC常用专业英文词汇,并做已翻译. 一.a开头 ab ...

最新文章

  1. Spring Boot 实现多图片上传并回显,涨姿势了~
  2. 全国成人计算机考试题,成人计算机考试试题.docx
  3. Java设计模式—代理模式
  4. SAP几则常用的BASIS技巧整理
  5. mysql命令行查看表的触发器_Mysql事项,视图,函数,触发器命令(详解)
  6. 第一章:认识Redhat Linux
  7. linux服务器 远程桌面,Linux 远程桌面的两种方式
  8. 『设计模式』再谈Macdonald的汉堡口味--策略模式
  9. 京东股价创新高:市值首次突破千亿美元 !
  10. python变量的作用域及生命周期_Python——变量的作用域
  11. java关于注释的使用错误的是,java考试练习题
  12. Spring提供的iBatis的SqlMap配置
  13. 如何通过a/a中的href刷新当前界面
  14. python爬虫——使用selenium爬取qq群的成员信息(全自动实现自动登陆)
  15. 1047: 对数表 Java
  16. Python实用案例,Python脚本,Python实现每日更换“必应图片”为“桌面壁纸”
  17. 高级查询组件下拉框联动(三)
  18. 多版本谷歌chrome浏览器并存(谷歌浏览器从C盘移植)
  19. 【JAVA】网页版登录注册系统
  20. python基础训练—数字

热门文章

  1. 里氏替换原则——举例说明Java设计模式中的里氏替换原则
  2. java学习笔记 - 集合类综合案例 斗地主
  3. 安卓升级鸿蒙可行性,华为手机都可以升级鸿蒙系统么?_科技数码通
  4. 号外 ! 号外 ! V7包下的View都来此参加同学会 , 快来看,快来看...
  5. 卡在DSMOS has arrived的解决办法
  6. 在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数
  7. 建筑行业现行相关税收政策及优惠措施汇编
  8. 在用docker部署nginx时,出现curl: (6) Could not resolve host: localhsot; 未知的错误
  9. Vue项目区分开发环境问题
  10. linux提取fasta文件的id,从大的fasta文件中提取特定的fasta序列