西门子PLC编程基本字逻辑指令‘与、或、异或’(科普篇)
引言
字基本逻辑指令前世今生: 汇编作为较为底层的编程语言,其最直观的操作寄存器使得它的执行效率非常的高,因此,汇编中会大量设置到逻辑操作,与(AND),或(OR),非(NOT)和异或(XOR),这几个指令,除了NOT外,都是双目操作,而NOT操作属于单目操作,通常完成一些对指定位的数据的赋值或者置零操作。
PLC编程里面也常会用到这几个指令
一、指令简介
1.1 AND:“与”运算
可以使用“与”运算指令将输入 IN1 的值和输入 IN2 的值按位进行“与”运算,并在输出 OUT 中查询结果。执行该指令时,输入 IN1 的值的位 0 和输入 IN2 的值的位 0 进行“与”运算。结果存储在输出 OUT 的位 0 中。 对指定值的所有其它位都执行相同的逻辑运算。
只有该逻辑运算中的两个位的信号状态均为“1”时,结果位的信号状态才为“1”。 如果该逻辑运算的两个位中有一个位的信号状态为“0”,则对应的结果位将复位。
1.2 OR:“或”运算
可以使用“或”运算指令将输入 IN1 的值和输入 IN2 的值按位进行“或”运算,并在输出 OUT 中查询结果。执行该指令后,将 IN1 输入的值的位 0 和 IN2 输入的值的位 0 进行“或”运算。 结果存储在输出 OUT 的位 0 中。 对指定变量的所有位都执行相同的逻辑运算
只要该逻辑运算中的两个位中至少有一个位的信号状态为“1”,结果位的信号状态就为“1”。 如果该逻辑运算的两个位的信号状态均为“0”,则对应的结果位将复位。
1.3 XOR:“异或”运算
可以使用“异或”运算指令将输入 IN1 的值和输入 IN2 的值按位进行“异或”运算,并在输出 OUT 中查询结果。执行该指令后,将 IN1 输入的值的位 0 和 IN2 输入的值的位 0 进行“异或”运算。 结果存储在输出 OUT 的位 0 中。 对指定值的所有其它位都执行相同的逻辑运算。
当该逻辑运算中的两个位中有一个位的信号状态为“1”时,结果位的信号状态为“1”。 如果该逻辑运算的两个位的信号状态均为“1”或“0”,则对应的结果位将复位。
二、指令应用
2.1 AND:“与”运算
只有该逻辑运算中的两个位的信号状态均为“1”时,结果位的信号状态才为“1”。 如果该逻辑运算的两个位中有一个位的信号状态为“0”,则对应的结果位将复位。
2.2 OR:“或”运算
只要该逻辑运算中的两个位中至少有一个位的信号状态为“1”,结果位的信号状态就为“1”。 如果该逻辑运算的两个位的信号状态均为“0”,则对应的结果位将复位。
2.3 XOR:“异或”运算
当该逻辑运算中的两个位中有一个位的信号状态为“1”时,结果位的信号状态为“1”。 如果该逻辑运算的两个位的信号状态均为“1”或“0”,则对应的结果位将复位。
三、指令参数说明
引脚参数说明
声明: 本作品纯属个人娱乐学习交流,严禁使用其作为商业用途,图片均来至于西门子仿真软件及选型手册、网络,如有版权纠纷请及时告知,谢谢!
PLC编程知多少?有人用5种语言来编写一小段代码来比较
图片来源:宏德自动化
作者:Frank Lamb
“
梯形图逻辑通常是PLC使用最多的图形编程语言,但在某些特定的编程应用中其他语言可能更适合。
”
在美国,大多数参与可编程逻辑控制器 (PLC)编程和维护的人员都倾向于认为:梯形图逻辑是PLC唯一的编程语言。这种理念在很大程度上是由PLC的历史、以及美国的工业控制市场是被以梯形图逻辑为主要语言的品牌统治所造成的。
在计算机和便携式计算机广泛应用于PLC编程之前,经常使用手持式编程器将程序输入到 PLC中。在此之前,通常需要绘制用于不同指令的电气图。这就像在PLC出现之前,如何连接原始继电器逻辑一样。在手持设备上,有时会用符号表示不同指令,但是在图形设计的背后,是基于文本的语言。
1994年,国际电工委员会(IEC)制定了一个可用于定义和规范PLC编程系统的标准 IEC 61131-3。除了形式化定义诸如计时器和计数器之类的指令外, 该标准还定义了5种编程语言。
指令表(IL) 是基于文本的语言,梯形图逻辑经常被转换成相同的语言。有些厂商仅将其用作机器代码的过渡,最终会编译成在处理器中执行的语言。另外有一些厂商则使用指令列表作为主要语言,并添加了无法用梯形图逻辑表示的其它指令(例如语句列表)。
图 1 :指令列表通常用于复杂的数学任务和搜索
梯形图逻辑(LAD) ,是PLC使用得最多的图形编程语言。它是从继电器逻辑电路图演变而来。梯形图逻辑是在常用的继电器与接触器逻辑控制基础上简化了符号演变而来的,具有形象、直观、实用等特点。
图 2 :梯形图逻辑是最常用的PLC编程 , 与继电器电路图最为相似。
功能块图(FBD) 是另一种图形编程语言, 可用于包括PLC和分布式控制系统(DCS)在内的一些控制器。它使用不同类型的块(例如与、或、比较、数学计算、计时器和计数器), 来描述输入和输出变量之间的功能。输入从 设备或其它模块的输出馈入一个模块 ;输出将数据传送到下一个块或变量。
图 3 :功能框图非常适合安全电路 / 安全PLC
结构化文本(ST) 是一种类似于计算机语言(例如Pascal)的高级语言。ST语言中的表达式由运算符和操作数组成。操作数可以是常量、变量、函数调用或另一个表达式。表达式的计算通过执行具有不同优先级的运算符完成。有最高优先级的运算符先被执行, 然后依次执行下一个优先级的运算符,直到所有的运算符被处理完。有相同优先级的运算符按从左到右的顺序执行。
图 4 :结构化文本可以帮助完成复杂的数学任务和搜索。
顺序功能图(SFC) 语言是基于一种被称为Grafcet的古老逻辑语言,该语言基于二进制Petri网络。它可用于编制复杂的顺控程序,又称为状态转移图或功能表图,是描述控制系统的控制过程、功能和特性的一种图形,也是设计顺序控制程序的工具。它是一种被称为步的块语言,带有相关逻辑条件切换。语言中的步可以是活动或不活动的,并且逻辑可以并行运行。利用这种先进的编程方法, 初学者也很容易编出复杂的顺控程序,大大提高了工作效率,也为调试、试运行带来许多言传的方便。
图 5 :顺序功能图对于分段逻辑很有用。
几年前,我突发奇想 :如果用所有5种语言,来编写一小段代码进行比较,将会非常有趣。逻辑建立自动和手动模式,然后在3秒钟后激活“循环”位。它是通用的,但是基于我使用的PLC平台(图1至图5)。语法和代码显示方式会因软件品牌和平台而异。
指令和注释,通常使用带颜色的编码, 以便于阅读。通常,语言包会额外收费或包含在编程软件的“专业”版本中。
不同语言有不同的用途。梯形图仍然适用于直接的“位操作”逻辑。指令列表和结构化文本通常用于更复杂的数学任务和搜索。功能块图可以很好地用于安全电路/ 安全 PLC。顺序功能图对于分段逻辑很有用。
在下一次编写复杂程序时,请尝试考虑使用某些“其它”类型的 PLC语言,因为这可能会使工作变得更容易。
关键概念:
■ 在美国, 梯形图逻辑是最常用的 PLC编程语言。
■ 指令列表、功能块图、结构化文本和顺序功能图都是有用的编程语言,也可能比梯形图更合适,这都取决于具体的应用程序。
思考一下:
除了梯形图逻辑外, 您还使用过哪种其它编程语言,为什么会使用它?
- END -
本文来自于控制工程中文版(CONTROL ENGINEERING China)2020年01-02月刊《封面》栏目,原标题为:你使用什么语言编程 PLC ?
相关问答
PLC编程语言中的基本符号?
您好,在PLC(可编程逻辑控制器)编程语言中,有一些基本的符号用于表示不同的操作和逻辑。以下是一些常见的基本符号:1.圆括号:用于控制运算的优先级和改变...
西门子plc的常用指令?
关于这个问题,西门子PLC(可编程逻辑控制器)指令是一种可编程的电子设备,用于控制机器和工业过程。以下是一些常用的西门子PLC指令:1.LD指令:用于将数据装...
plc在线修改程序怎么写入?
PLC(可编程逻辑控制器)的在线修改程序的方式取决于所使用的PLC品牌和型号。以下是一般的步骤:1.连接至PLC:使用PLC编程软件将您的计算机与PLC连接。通常,...
三菱plc灯闪3次怎么编程?
三菱PLC灯闪3次通常表示出现了错误,需要进行故障排除。具体的排查方法和处理方式可能因不同型号的PLC而异。以下是一些常见的处理方法:1.检查程序:首先,需...
plc三种基本逻辑是什么?
PLC有六种基本逻辑关系,分别为“与门”,“与非门”,“或门”,“或非门”,“异或门”和“同或门”。在此逻辑关系上形成了28个基本逻辑指令,在实际工作中,...P...
plc变量和db块怎么关联?
在PLC编程中,变量和DB块之间的关联可以通过以下步骤进行:1创建变量:在PLC编程软件中,创建需要与DB块关联的变量。这些变量可以包括输入、输出或中间变量,...
plc与电脑串口通信怎样设置?
要将PLC与电脑通过串口通信,您需要完成以下步骤:1.确定PLC的串口号和波特率。这些信息通常可以在PLC的手册或设置菜单中找到。2.在电脑上安装串口驱...要...
笔记本电脑怎样通过以太网连接plc?
要通过以太网连接PLC,您需要按照以下步骤进行操作:1.确保您的笔记本电脑和PLC都已连接到同一个局域网中。2.在笔记本电脑上打开“控制面板”,选择“网络和...
三菱plc怎么发送程序?
三菱PLC可以通过编写程序并将其上传到PLC中来发送程序。首先,需要使用三菱PLC编程软件(如GXWorks2)编写程序。然后,将PLC与计算机连接,并使用编程软件将程...
plc中wor_b指令是什么指令?
wor_b指令是PLC中的写输出寄存器指令,用于将指定的位或字写入输出寄存器。这个指令可以用于控制输出信号,实现各种自动化控制的功能。同时,PLC中还有许多不同...