PLC编程基础区域复位及数学计算指令的使用
在PLC编程的过程中,做初始化或者复位程序的时候,常需要对控制区域的元件进行复位处理。逐个复位会使程序变得非常的冗长,不利于阅读。在这种情况下,使用成批复位指令,可以极大的减少复位程序量,简化程序。
在使用PLC完成一些算法处理的时候,常会遇到需要对数据进行算数运算。如去平均值、开方、整数到浮点数转换等。这里就其中的部分指令的使用分享如下:
1、成批复位指令
用于实现2个指定的软元件之间执行成批复位操作。
指令使用方法
将同一种类的D1~D2直接的区域全部复位,写为False。
D1:成批复位的最前端的位/字软元件编号;
D2:成批复位的末尾的位/字软元件编号。
指令执行过程
成批复位指令执行前后的变量状态如下所示:
相似功能指令
实现D变量区域的数据复位。
2、平均值指令
求数据的平均值的指令。
指令使用方法
将S开始的n个16位数据的平均值保存到D中。
S:保存想要的平均值数据的起始字软元件编号;
D:保存取得的平均值数据的字软元件编号;
n:平均数据数(n=1~64)。
使用示例
将D0、D1、D2的数据相加,除以3后求得的值保存到D10中。
3、BIN开方运算指令
求平方根(开根号)的指令。
指令使用方法
计算出S的数据的平方根后,保存到D中。
S:保存要被开平方根运算数据的字软元件编号;
D:保存被执行了开平方根运算数据的数据寄存器编号。
使用示例
D10的平方根保存到D12中。D10的值为100。
4、BIN整数→2进制浮点数转换
将BIN整数值转换成2进制浮点数(实数)的指令。
指令使用方法
将S的BIN整数值数据转换成2进制浮点数(实数)值后,保存在[ D+1,D ]中。
S:保存BIN整数值的数据寄存器编号
D:保存2进制浮点数(实数)的数据寄存器编号
(转载请注明来源函控自动化工程师头条号)
第2章 PLC程序中的置复位精讲
一名优秀的PLC编程工程师从用好置复位开始!
2.1 置复位指令
2.1.1 置位和复位
如图2.1所示,a为复位输出表示方法,b为置位输出表示方法。通常将a叫做复位,b叫做复位。
图2.1 置复位
如图2.1所示程序段3编写了一个置位指令,当按下(系统开启I0.0)按钮时,置位(正转继电器Q0.0)的线圈。松开(系统开启I0.0)按钮时,(正转继电器Q0.0)的线圈依然接通。置位的作用就是,当置位条件接通时,置位一个线圈或者信号,当置位条件断开时,已经被置位的线圈或者信号不会断开,保持接通状态。如何解除这种保持状态,一般情况下需要对应的复位信号来解除。如图2.1中程序段4,当按下(停止按钮I0.3)时,复位(正转继电器Q0.0)的线圈。对比第1章讲到的起保停程序,采用置复位来做,程序会显得简洁易懂些。
图2.2 置复位程序1
2.1.2 置复位一体指令
如图2.3所示,有2种置复位一体的指令。程序段5中的指令为复位优先的指令,程序段6中的指令为置位优先的指令。怎么就出现优先级别了呢?就是当复位条件和置位条件同时接通时,哪个优先执行,谁优先执行谁说了算。相当于碰到了千古遗留难题:你妈和你媳妇同时掉河里,你先救谁的问题?编程的时候必须给出答案了。
程序段5和程序段6都实现了启动和停止的功能。一个优先停止,一个优先启动。按照正常的需求来讲,当一个产线和设备启动条件和停止条件都同时发生时,应该是停止优先。保证设备或者人员安全。那么程序段5是正常应该做的程序。但是问题又来了,图2.2中没有明显的置复位标志,同时发生的时候哪个优先呢?大家可以亲自测试一下,结果会发现是复位优先,因此图2.2中的程序跟图2.3中的程序段5实现的效果和功能是一模一样的。程序段5的编程方式更为简洁和方便一些。
图2.3 置复位一体指令
实战总结
如图2.3所示,程序段5中的指令适合于一些条件的编写,比如启动条件,电机运转条件,电磁阀开启条件等一些启动优先的程序的制作。
如图2.3所示,程序段6中的指令适合于停止条件或者安全条件的编写,比如急停故障,限位故障,安全联锁等一些停止优先的程序的制作。
如图2.4所示,程序段7表达的意思是当按下(系统开启I0.0)按钮时,置位从Q0.0开始的连续的n个数量的线圈,本程序中n为1。程序段8表达的意思是当按下(停止按钮I0.3)按钮时,复位从Q0.0开始的连续的n个数量的线圈,本程序中n为1。通过前边的程序可见只有n>=2才有必要使用这两个指令。
实战总结
一般情况下置位多个位的指令不常用,复位多个位的指令用于复位连续的一些点位。在实际操作过程中,偶尔碰到了会用。大多是情况下都是用上边的4个置复位指令多一些,因为实际编程中区分的较为细化,同时编程时不会规划的那么详细。只有在优化程序之后,感觉需要用到同时置位多个位或者同时复位多个位的时候才会用到。这种多个位的置复位操作指令不易解读。比如你连续置位了5个位,那5个位最后都干啥用了,还得返回去找,还不如一个个来。
图2.4置复位域
2.2 编程实战
2.2.1 多个置位线圈
在编程过程中,我们会遇到多个事件都能导致一个事件的发生,就需要多个条件给同一个线圈置位。如图2.5所示,通过在不同的程序段给同一个线圈多次置位(为了方便看程序,做到了一个程序段)。这种编程方式是不合理的,很容易导致线圈多次置位,引起程序混乱。一般都是采用图2.6所示的编程方式来解决这个问题。通过三个不同的条件来给同一个线圈置位。
图2.5 多次置位同一线圈
图2.6 多个条件置位同一线圈
2.2.1 多个复位线圈
在编程过程中,我们会遇到多个事件都需要停止一个事件的发生,就需要多个条件给同一个线圈复位。相信大家也猜出来了,应该按照图2.7所示的编写。
但是咱们编程人员又不是神仙,往往不知道需要复位多少次,也不知道啥时候就又要复位某一个线圈了。所以大家都会按照图2.8中所示的那样编写,碰到需要复位的就来一次。这样写也没啥大的问题,只要自己能分清就行。本人建议,等程序编写完了,将所有的复位线圈的条件再集合起来按照图2.7那样编写,等调试的时候出现了不该复位的时候复位了,容易查看程序,节约调试时间。如果非要按照图2.8那样编写也无可厚非,其实我偶尔也会按照图8那样编写程序。
图2.7 多个条件复位同一线圈
图2.8 多个条件多次复位同一线圈
2.3 置复位的问题思考
2.3.1 程序中为什么使用置复位
通过咱们上边的讲解大家也看到了置复位做程序,很简洁方便,如同一把快刀可以斩乱麻。置位信号可以保持一个很长的时间,只要没有复位,线圈就会保持。这是置复位的优点,但是一旦置复位多了,很多人就蒙圈了!原因是为啥?因为很多保持的条件或者是保持的线圈,在庞大的程序中,不知道何时该复位,何时又该置位。复位早了,设备不转了,复位晚了,给其他设备干仗了。所以说锻炼自己使用置复位的能力,掌控一个置复位到逐渐增多做起,就像韩信带兵一样,多多益善。
有的人做程序通篇都是置复位,如果你不练习,根本无法解读别人的程序。熟练掌握大篇幅的置复位对以后做数字量逻辑编程会大有帮助。
2.3.2 如何做好置复位程序
原则1:做到及时的卸磨杀驴,就是置位条件保持到使用完毕就及时复位。
原则2:调试中出现问题时,细化分析现场工艺需求,调整置复位的时间点,或者变更置复位条件。
原则3:掌握常用的置复位技巧,与现场工艺相匹配的做法。
原则4:不要因为害怕而不用,很多东西都是越用越熟练,不能一口吃个胖子,但是你得练。
千里之行始于足下!目标再好,需要先走起来再说!
相关问答
plc如何复位存储区?
PLC复位存储区的方法取决于具体的PLC型号和编程软件,但一般可以通过在程序中添加复位指令或者手动操作PLC进行复位。复位存储区可以清除之前的程序、数据和状...
PLC如何随时复位?
我想题主的大概意思是当设备动作了一半突发停电时,有些设备因为没有自复位功能(比如没有自复位功能的执行机构),导致再次来电时这些设备没有恢复到初始状态。...
plc按钮复位程序的编写?
就是写一段程序,把所有的辅助继电器,计数器,和输出点全部复位,如果有电机的话,也要让电机回原点。一般是分步复位,在保证下一步动作是安全的情况下,才可...
什么是PLC置位与复位指令?
产实际中,许多情况需要自锁控制。在PLC控制系统中,自锁控制可以用置位指令实现。1SET指令SET指令称为置位指令。其功能是:驱动线圈,使其具有自锁功能,维...
plc寄存器怎么复位?
在PLC中,寄存器的复位通常是通过写入特定的值来实现的。具体的复位方法取决于PLC的型号和编程软件。一种常见的方法是将寄存器的值设置为0或者一个特定的复位...
plc快捷键复位方法?
它的作用是当电子产品或电脑死机的时候按下此键,能够在不断电的情况下,使其重新启动。某些功能软件中,当用户使用时会有清空数据等的需要,此时复位键可以使其...
三菱PLC中置位和复位怎么用?
在三菱PLC中,置位和复位是用于控制逻辑的指令,具体方法如下:1.置位:将指定的位设为1。指令格式:SETXXXX示例:SETY0说明:将Y0这个输出位设为1。2.复...
怎样理解西门子PLC置位和复位指令?
说一点我个人的看法吧:置位和复位指令是PLC中最常见也最常用的PLC指令,基本的含义就是置位为1,复位为0。通常置位指令和复位指令是成对出现的,这样一个布尔...
三菱plcc200怎么复位?
要复位三菱PLC,首先需要查找PLC的手册或者技术规范,了解具体的复位步骤。通常情况下,可以通过按下特定的复位按钮或者输入复位指令来实现PLC的复位。在进行...
plc上哪个是复位键?
SET(置位指令),使操作保持ON的指令。RST(复位指令)使被操作的目标元件复位并保持清零状态。执行S(Set,置位或置1)或R(Reset,复位或置0)指令,执行S...SET(...