线下实训
HOME
线下实训
正文内容
PLC编程因果图 我的三菱FX PLC学习之数字电路基础
发布时间 : 2025-04-25
作者 : 小编
访问数量 : 23
扫码分享至微信

我的三菱FX PLC学习之数字电路基础

哈喽大家好呀,我是《电工基础》学习分享系列文章的作者小杨,在学过一遍《电工基础》这门课后,我要开始进军PLC界了,在这里我和大多数人一样都是PLC小白哦!所以,如果大家也是不懂PLC,但又想学的,就跟我一起,共同进步吧!当然,如果有哪位PLC大神有什么赐教、建议的,欢迎指出哟~

在有学习PLC的打算后,我就开始咨询身边的PLC大神们(其实只问了一位哈哈),该从何下手,才能更快捷地学好PLC呢?经过多方咨询,慎重考虑(并没有),我初步的PLC学习之旅是这样的:李金城老师的《三菱FX PLC编程与应用入门》——丁先群老师的《三菱GxWorks2编程调试软件应用》。先学习李老师的入门课,了解了解PLC是什么,然后在学到编程时再学习丁老师的课程。所以,我己经预先安装好了GxWorks2软件,真是迫不及待地想用上它呢。

我已经按捺不住蠢蠢欲动的心,赶紧点开了《三菱FX PLC编程与应用入门》这门课,学完第一章“数字电路基础”后,我感觉还不错。李老师这门课本来就是为零基础的学员而开设的,而我本就有一点基础在,但在学习的过程中还是有很大的收获。

李老师所讲述的数字电路基础内容包括了几种进制数的含义和转化、几种码制的特点及基本逻辑电路的知识。

一、数制

说到数制,我想很多人都和我一样,最先想到的就是十进制,即所谓的满十进一。在很小的时候,爸爸妈妈就开始教我们用手指进行算术,也许就是因为手指只有十个,所以在我们人类的生活中十进制的用法最为普遍。

然而,除了十进制外,比较常用的数制还有二进制、八进制以及十六进制。可以说这些数制是我们与计算机沟通的桥梁之一。信息化时代的到来大大方便了我们的工作与生活,为了能与更好地计算机进行交流,我们就要学会几种数制。就像是我们要出国,为了与当地的居民交流,就要学会当地的一些语言一样。

十进制是满十进一,该位归零,依此类推,显然二进制就是满二进一,该位归零;八进制是满八进一,该位归零;十六进制是满十六进一,该位归零。十进制中的数字(数码)有0~9,而二进制中的数码只有0和1,在计算机的眼里,它们只局限于二进制信息的处理,我们输入的任何代码,计算机都会把它们翻译成二进制数再处理。

数制有三要素: 基数、位权、复位和进位。复位和进位,我想不用我解释,大家也是知道的,这个用在数字运算上,例如1+9满十进一,十位上为1,个位上复位为0。多少进制,基数就是多少,例如十六进制的基数就是16。权,在数制里面它指的是位值。我们在学物理的时候,很多时候都会提到单位时间、单位面积等等的单位值,数制中的权我们也可以这样理解,权就是每一个数位上的单位值,例如十进制中个位、十位、百位、千位,千位的单位值是1000,即103,这个1000就是权,显然,一个数码,它的权越大,该数码就越大。

为了方便区分一个数是什么进制,有时候我们需要在前面加一个字母,例如1001这个数,我们可以说这是一千零一,也可以说是9,但是如果给一个数B1001,那么我们就不能说它是一千零一了,因为全面的字母B就代表了这个数是二进制数。

这些字母其实就是各个进制英文单词的首字母,例如D指十进制,H指的是十六进制。中英日韩文等可以互相翻译,同样的,几种不同进制数之间也是可以互相转换的。比较简单的是把其他数制转换为十进制,例如H36这个十六进制数转换为十进制,直接是3x161+6x160=54,即H36=D54。

有点难度的是把十进制数转换为其他进制,李老师在课程中就讲得比较详细,例如在下图中,把十进制数54转换为二进制数,如下图,分别除以2,从下到上取余数,得出相对应的二进制数B110110。当然,如果想把十进制转换为八进制,那就除以八,依次类推。

二进制转换为十六进制,也比较简单,直接把二进制数从低位按每4个数为一组,每组数转换为十进制数,然后把各组所转换的数组合起来,就是对应的十六进制数;反之,十六进制数转换为二进制,直接把各个数码转换为4个数组成的二进制数,例如H31,其中1变为0001,3变为0011,那么就可以得出H31=B00110001。八进制数作为中间数,可以先把它转换为二进制或十进制,再进行其他转换。

数制学起来比较有意思的是各种数制之间的转换,在自娱自乐的同时又可以让自己更为熟练,当然,你们觉不觉得有趣,我就不得而知了。

二、码制

在学习PLC之前,我以为编码只是应用于计算机系统中的,例如我以前就学过微机的相关知识,学了李老师的课才发现,其实PLC也是一种工业电脑,所以,要学习PLC,也就要了解一下编码的知识。

我又咨询了一些(一位)大神,在学习PLC时,其实对码制知识的要求没有很高,数制的知识比码制的知识更为重要一些,所以关于码制,我也就简单过一下。在PLC中比较常用的是8421BCD码、格雷码和ASCLL码。

编码是指用一组n位的二进制数码 来表示各种数据、字母符号、文字和控制信息等。这是因为计算机在处理数据时其本质就是处理二进制数码,为了和计算机交流,我们把各种数据信息用统一的编码方式表示为二进制数,然后给计算机识别。

1、8421BCD码

8421BCD码是十进制代码中最常用的一种,用四位二进制码表示十进制数的0~9。在这种编码方式中,四位二进制数中的每个1都代表一个固定的数值,从高位到低位分别是8、4、2、1,例如0101,指的是0x8+1x4+0x2+1x1=4+1=5,即0101 BCD=D5;又如D36=0011 0110 BCD。

那么,怎么快速地确定各个十进制数的对应BCD码是什么呢?例如D7,我们这样做,上图所示,7用8、4、2、1中的哪几个数可以相加得到,显然是4+2+1=7,对应BCD码就是后三个数要为1,即D7=0111 BCD。

2、格雷码

格雷码又称循环码,在格雷码中,每一位的状态都按一定的顺序循环。如下图所示,在格雷码中,从右到左,如果从0000开始,最右边一位的状态是按0110顺序循环变化,右边第二位按00111100顺序循环变化……依此类推,每左移一位,循环变化的0和1的数目就增加一倍。格雷码最大的优点就是,相邻两个代码之间只有一位发生变化,例如编号12的格雷码与编号11、13格雷码对应位,只有一个变化。

3、ASCLL码

ASCLL码也就是美国信息交换标准代码,广泛用于计算机和通信领域中。ASCLL码是一组7位二进制代码,共128个,包括表示0~9的十个代码、大小写字母的52个代码、32个表示各种符号的代码以及34个控制码,而什么字符对应什么ASCLL码,我们可以通过查它的编码表,在这里我就不列举啦,大家感兴趣的,可以自己上网查一下哦。

三、基本逻辑运算电路

在数字电路中,用1位二进制数码的0和1表示一个事物的两种不同逻辑状态。例如可以用1和0表示门的开和关、电灯的亮和灭、人民币的真和假等。所谓“逻辑”,是指事物间的因果关系,例如我花了两百块钱买了一门课,因就是我花了两百块,结果就是我得到了一门课。

逻辑运算就是按照某种因果关系进行推理运算,而逻辑运算的方法就是逻辑代数,其中逻辑代数中的三种基本运算有“ (AND)”、“ (OR)”、“ (NOT)”。

1、与逻辑运算

李老师在上课时举了一个很形象的例子来解释逻辑与。大概意思就是,某位员工要开报销单,财务要求必须要两位经理同时签名才予报销,在这里,两位经理同时签名就逻辑与的关系,少一个签名都不行。再如下图的电路,只有两个开关同时闭合,电灯才能亮,这种因果关系就称为逻辑与。逻辑与的图形符号和表达式如图所示。

若以A、B表示开关的状态,1表示闭合,0表示断开;Y表示灯的状态,1表示灯亮,0表示灯灭;显然只有A、B同为1时,Y才为1。

2、或逻辑运算

还是报销的例子,如果此时财务要求只要李经理和杨经理中的任一位经理签名,就可以报销,此时,这种因果关系就是或逻辑。

再如下图的电路中,同样是以A、B表示开关的状态,1表示闭合,0表示断开;Y表示灯的状态,1表示灯亮,0表示灯灭;显然,只要有一个开关闭合,灯就可以亮,只有两个开关同时断开时,灯才会灭,这种因果关系就称为逻辑或。

3、非逻辑运算

逻辑非就更为直接了,简单来说就是取反。我们直接以下图的电路图为例,依然是以A表示开关的状态,1表示闭合,0表示断开;Y表示灯的状态,1表示灯亮,0表示灯灭;在这个电路中,开关一旦闭合,电灯就被短路而熄灭,也就是说,当A=1时Y=0,A=0时Y=1。这种因果关系就是逻辑非,也称逻辑求反。

在《三菱FX PLC编程与应用入门》这门课的第一章中,李老师还讲到了复杂逻辑电路与逻辑位运算。复杂逻辑电路和逻辑位运算还是比较有意思的,但是,我不打算深入研究,所以,你们懂的,想学的自己去学吧,反正我就过目一遍哈哈。

我在学完《三菱FX PLC编程与应用入门》第一章后,感觉还可以,目前还没遇到什么难题,希望之后的学习之旅能一直这么顺利!

选自《三菱FX PLC编程与应用入门》第一章第1、2课时

(技成培训原创,作者:杨思慧,未经授权不得转载,违者必究!)

↓学习资料

电工学PLC编程的入门建议

十年前,我刚开始使用PLC时,也是一头雾水。仗着自己对硬件、工程知识的熟悉,和对组态软件的粗浅了解,硬着头皮接下了任务。当时已经来不及接受培训,相关资料极其缺乏,仅有的参考资料是一本英文的S7-200手册,以及西门子网站上找到的一些全西文的示例,总算在三个月内完成了系统的构建、软件的编写工作。期间走弯路、出故障是家常便饭,经常搞得我茶饭不思,而且还由于操作不慎烧毁过一台PLC。所以我非常理解那些刚入门的网友两手抓瞎的感觉。

在此,我想粗略的总结一下自己的学习之路,供网友们参考。

1、编程需要坚强的毅力和足够的耐心

人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。毕竟编程工作是对人的毅力和耐心的挑战。我所在实验室中,很多学生看到我编程序就会惊讶于我面对这一堆堆符号所表现出的专注。其实,这是兴趣使然。兴趣使我具备了足够的毅力和耐心。经过无数次失败后,当看到一个个符号按我的思路整齐的排列,PLC按我的要求有条不紊的运行时,兴趣得到了极大的满足,如同打通了一个游戏的关口。所以,我告诉这些学生:你们看到的是一堆枯燥怪异的符号,我看到的却是一群热情奔放的舞者,而我则是她们的导演。

2、编程需要敢于实践的信心

我曾经教过一个学生学AutoCAD,我对她的唯一要求就是实践。我告诉她:你随便怎么操作,大不了一张图重画;最坏的结果是系统崩溃,没关系,系统重做,再来;只要电脑没被砸了,怎么都行。两年后,我再看到她做的CAD图纸,也自叹不如。

同样道理,只有不断地在PLC上运行这些指令,观察运行的结果,才能弄清PLC指令的作用。很多初学者对PLC一脸的迷茫,往往是出于一种畏惧,担心损坏设备。而这些畏惧是没有任何道理的。仔细的阅读手册是非常重要的,但是仅靠读书是成不了一个工程师的。更何况手册上的内容并非面面俱到。我在接触到那些不熟悉的指令时,喜欢单独编一个小程序,让PLC运行。然后逐个修改条件,观察运行的结果(MicroWin为用户提供了非常好的监控手段),反过来再重新理解手册的描述,这样就可以非常直观的理解这些指令的作用和使用方法。不必担心自己写的程序会有什么问题,会影响PLC的正常工作。程序有没有问题,只有让PLC运行了才能发现。而发现问题并解决问题就是对自己能力的提高。撇开硬件操作不谈,单就软件来说,我还真没有遇到过由于软件问题而损坏PLC的事。在这里不必担心继电器电路接错线可能造成的后果。所以,大胆的实践是PLC编程的必由之路。

当然,大胆实践并不是野蛮操作,而是必须遵循必要的规范。还有一个要注意的,在程序未经可靠性证实之前,千万不要挂接负载,以免造成不必要的损失。数字量的输出有LED显示;而模拟量处理可以采用一些硬件或软件模拟手段来解决。

3、编程需要有缜密的逻辑思维

编程本身就是一种逻辑思维过程。在高级语言中,使用最多的是ifthenelse、select这些条件判别语句,这就是逻辑中的因果关系。PLC程序就是由这些因果关系组成的:判别条件是否成立,进而决定执行相应的指令。最初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。在PLC中,以虚拟触点代替了继电器的金属触点,而继电器电路所表达的逻辑关系还是被完整的保留下来。即使引入了继电器电路难以胜任的数值处理过程,PLC从根本上还是在执行一个个因果关系。所以,理顺对象的各个事件之间的逻辑关系,是编程之前必须精心做好的准备工作。我在接到一项任务后,第一件事就是整理出一份逻辑关系图,与用户反复商讨,取得用户的认可,然后才真正进入程序的编写过程。

4、不可或缺的相关知识

PLC的程序是直接作用于对象的具体工艺过程,那么对对象具体工艺过程的理解是非常重要的的。我在与用户的交流过程中,会用我所掌握的UnitOperation的知识分析用户的工艺过程,协助用户整理过程控制中的各个逻辑关系,甚至包括各种仪表、硬件的配置。这得益于我原本所学的专业。当然,不能要求所有搞PLC程序的工程师都有我这样的经历。但是有两门知识却是不可或缺的:一是过程仪表的硬件知识,包括传感器、变送器(二次仪表)和PLC本身,这是构建控制系统的基础;二是过程控制理论,包括各种控制模型的原理和应用,其中最重要的是二位调节和PID调节模型。PID调节是目前用得最广泛的过程控制手段,且变化多端。学习PID最好的方法就是读书。几乎所有讲解过程控制的书籍都有关于PID的内容,多读基本相关的书籍对理解PID是很有益处的。我发现不少网友在进入PLC领域时,缺乏这些相关知识。这并不可怕;可怕的是当事者不能静下心来弥补知识的缺陷。我们不要怪罪学校没有教授这些内容,而是要注重自己如何去学习这些知识。工作中遇到的许多问题是学校里没讲过的,这不能成为我们拒绝工作的理由,而应该以积极的态度去应对这些问题。我的体会是,为了解决工作中的问题而学习的知识,比课堂上学的东西更容易记住。

5、养成良好的编程习惯

每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。一是理顺逻辑关系、时序关系,编制程序框图;二是合理分配主程序、子程序和中断程序;三是合理分配寄存器,编制寄存器符号表。

PLC编程更接近于单片机,或者说PLC就是模块化的单片机。因此PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器地址重叠,一定会出现不可预想的后果。编制寄存器符号表不仅可以避免上述问题(MicroWin会有问题提示),而且可以使程序具备更好的可读性。这和VB中定义变量有异曲同工之处。

VB编程中关注的是事件,不强调主程序和子程序的观念,因为VB主程序的工作是由PC的操作系统完成的。PLC则不然。PLC程序是以主程序为主干的,CPU不断的循环执行主程序,只有触发条件成立时才会调用子程序或中断程序。即子程序和中断程序所执行的任务不是全时需要的。如果把这些任务都放在主程序中会无端增加主程序的工作量,降低程序的效率。这点和单片机的编程思路是一致的。子程序的使用可以使整个程序的逻辑更清晰。而且子程序可以分开编写、调试,最后“安装”到主程序上。这样你可以一个一个解决问题。

PLC编程,无论是LAD,抑或STL,都不如VB那么直观、有趣,更不如CAD那么形象。但比单片机的汇编语言的可视性强多了。对于初学者,LAD(梯形图)的编程相对直观,更容易上手。

最后,PLC提供了丰富的指令、模块,比单片机方便了很多。但是初学者编程时应尽量先使用简单的指令达到目的。尽管看上去有点土,却不失为一个入门的好途径,且对你理解那些较为复杂的指令会有帮助。具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。

来源: 工业帮PLC教育机构

看完文章后,您可以:

微信搜索关注服务号全球电气资源,学习更多电气专业知识及视频!

相关问答

plc程序设计语言?

1、梯形图(LadderDiagram)程序设计语言梯形图程序设计语言是用梯形图的图形符号来描述程序的一种程序设计语言。采用梯形图程序设计语言,程序采用梯形图的形...

有哪位朋友能给我介绍下plc和伺服控制系统之间的关系?

伺服强调的是(位置等)闭环控制,属随动控制,强调实时性PLC主要强调逻辑控制(顺序条件因果),实际工程中也涉及模拟量和闭环在满足实时和闭环两个前提下,PLC可...

plc与伺服控制系统有什么区别,自动控制里是否都需要两者?

不一定。其实,PLC从来不是伺服电机的直接控制者。伺服电机是通过伺服驱动器,或者叫做伺服放大器来驱动的。PLC通过PTO(脉冲串)或者通信(总线,串口等)的...

什么叫关联连锁?-盖德问答-化工人互助问答社区

力认为是pt-101,那么就有压力联锁值psll-101.如果压力低于psll-101,则联锁动作.其关联联锁对...简单的说:某点测量值大于设定值触发什么动作,还有...

请问各位:往复式压缩机卸荷阀开启后管线振动过大是什么...-...

卸荷阀试用情况汇报10:25,接中控通知,采气厂产量将要下降,将1#机载荷由100%降至70%。13:00试运压缩机的卸荷阀。13:55将载荷由70%升至100%,然后从...

 阮日生  德胜门地铁站 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部