通过实例玩转三菱PLC之程序流程控制指令
一、跳转指令
1、跳转指令的基本功能:
指针P用于跳转指令和子程序调用。在梯形图中,指针放在左侧垂直母线的左边。
跳转指令CJ,用于跳过顺序程序的某一部分,以控制程序的流程,使用调转指令可以缩短扫描周期。
在上图程序中,当X0=1时,执行跳转CJ指令,跳转P1处,即37步,不执行跳过的步。大家可以在仿真中做下,看下Y0、M0、S0是否能不置位。
如果跳转到END指令所在的步号,则应使用指针P63,在程序中不需要设置指针P63,如果生成了P63则会出错。
CALL(子程序调用指令)和CJ跳转指令不能共用一个指针。
2、跳转对位软元件的影响
上图的程序中,当X0=0,跳转条件不满足,X1~X3可以正常控制Y0、M0、S0。若当X0=1,跳转条件满足,则Y0、M0、S0保持跳转之前最后一个扫描周期的状态不变。
3、跳转对定时器的影响
当X0=1跳转P1,T0不会通电;
当X0=0,X4=1,T0线圈通电,若在计时期间X0=1,开始跳转,T0停止计时,并保持当前值,X0=0后,T0在当前值得基础上继续计时。
4、跳转对计数器的影响
跟定时器一样,当X0=0,未跳转,并X5=1开始计数,当X0=1后,停止计数,并保持当前值,若X0=0后,C0在原当前值的基础上继续计数。
高速计数器的处理独立于主程序,其工作不受跳转的影响,C235~C255如果在线圈驱动后跳转,则将会继续工作,条件满足时,它输出的触点也会动作
5、跳转对T192~T199的影响
在跳转区、子程序、中断程序内,应该使用子程序和中断程序专用的100ms定时器T192~T199,它们被启动定时后,在执行他们的线圈指令时或执行END指令时进行定时。
假设跳转开始时T192正在定时,跳转后,T192仍然继续定时,定时时间到后,它的触点也会动作。当停止跳转时,X13=0,则T192断电,当前值变为0.
6、跳转对应用指令的影响
上图程序:当X0=0,M8013通过INCP使D0每秒加1,当X0=1,跳转,D0的值保持不变,但如果脉冲指令PLSY和脉冲宽度调制指令PWM在开始被CJ跳过前正在执行,则跳转期间将继续工作。
二、子程序调用
1、什么时候需要调用子程序
当系统规模较大,控制要求复杂时,如果将全部控制任务放在主程序中,则主程序将会非常复杂,使用子程序可以将程序分成容易管理的小块,使程序的结构简单清晰,易于维护。
子程序也用于需要多次反复执行相同任务的地方,只需要编写一次子程序,别的程序在需要时调用它,无需重写该程序。
每隔扫描周期都要执行一次主程序,子程序的调用可以是有条件的,子程序没有调用,不会执行其中的指令。
2、与子程序有关的指令
子程序调用指令CALL 指针P,但不包括P63。
主程序结束指令FEND,表示主程序结束,执行到FEND指令时,PLC进行输入输出处理、监控定时器刷新,完成后返回第0步,主程序是从第0步开始到FEND指令的程序,子程序是从CALL指令指定的指针Pn到SRET指令的程序。
子程序要放到FEND后,若有多个FEND指令,则放到最后一个FEND和END之间。
举个例子来理解下指令的应用
两条运输带的顺序相连,Y0和Y1控制两台电机,当按下启动按钮X0,1号电机启动,8s后2号电机自动启动,按下停止按钮X1,2号电机先停,8s后1号电机停止。X2为自动/手动选择开关。这里需要编写三段子程序。即共用程序实现将在自动切换手动时,将输出清零,定时器清;手动程序和自动程序。程序如下:
下面我们仿真操作一下:
当选择开关X2=1,则为自动状态,主程序跳转子程序P1,执行自动程序,在P1自动程序执行过程中将X2置0,则跳入P0程序,将Y0和Y1复位。仿真如下:
对怎么调用子程序应该能有一些了解了吧,
写文不易,分享更难得,希望看到本文的朋友给个关注、点赞、评论和转发,你们的支持是小编持续努力的动力。
PLC的加、减、乘、除指令有什么用?其实功能十分强大!
大家好,欢迎关注电气技术微课堂!这里会每天更新关于电气自动化、PLC、工业机器人、电子技术的原创文章和微课,如果你感兴趣请关注我
今天我们要谈一谈西门子S7-1200PLC中常用的四则运算指令 !
什么是四则运算指令呢?
四则运算指令包括加法指令ADD、减法指令SUB、乘法指令MUL、除法指令DIV四种。
一、加法指令ADD
执行加法指令ADD将输入IN1的值与输入IN2的值相加,并将加得结果存储在OUT设定的寄存器中。
加法指令功能框各端口的定义如下
EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT指定数据类型的允许范围或浮点数为无效值时ENO为0。
IN1/IN2: 要相加的数值,可以是寄存器的地址或常数,单击ADD指令下的星标可以扩展输入的数目。
OUT: 加法计算结果输出,IN1+IN2=OUT,OUT端一般填写寄存器地址。
加法指令小提示: 可以从指令框的“<???>”下拉列表中选择该指令的数据类型,当地址长度与数据类型不匹配时,会将输入数值隐式转换为指定的数据类型,编译不会报错,但运行过程中可能会出错。
二、减法指令SUB
执行减法指令SUB,将由被减数IN1的值减去减数IN2的值,并将结果存入OUT设定的寄存器地址中。
减法指令功能框各端口的定义如下
EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT 指定数据类型的允许范围或浮点数为无效值时ENO为0。
IN1: 被减数,可以是寄存器地址或常数。
IN2: 减数,可以是寄存器地址或常数。
OUT: 减法计算结果输出,IN1-IN2=OUT,OUT端一般填写寄存器地址。
三、乘法指令MUL
乘法指令MUL将输入 IN1 的值与输入 IN2 的值相乘,并将乘积保存在输出 OUT指定的寄存器中。
乘法指令功能框各端口的定义如下
EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出端,指令正确执行期间ENO输出为1,
IN1: 乘数,可以是寄存器地址或常数。
IN2: 乘数,可以是寄存器地址或常数。
Inn: 可以添加多个相乘的数。
OUT: 输出乘积存入指定的寄存器中。
四、除法指令DIV
除法指令DIV将输入 IN1 的值除以输入 IN2 的值,并将除得的商保存在输出 OUT指定的寄存器中。DIV指令支持各种整型和实数型数据。
除法指令功能框各端口的定义如下
EN: 使能输入,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出 ,指令正确执行期间ENO状态为1。
IN1: 被除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。
IN2: 除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。
OUT: 商值,输出OUT为执行除法指令得到的商,数据类型为无符号整数,余数被省略不计。
除法指令小提示
在使用除法指令DIV时,OUT输出端为除得的商值,数据类型为无符号整型,余数被省略不显示,如果需要求余数需使用MOD指令。
四则运算指令的实际应用举例
例题:温度传感器将采集到的温度值转换为电压信号输入给PLC,测量范围是0~100Co,数值经过被CPU集成的模拟量通道0(地址为IW64)转换为0~27648的数字,假设转换后的数字为T,试求以为Co单位的温度值。
解:0~100Co的温度值经A/D转换后的数字为0~27648,设转换后得到的数字为T,转换公式为
在编辑指令时,为了保证运算精度,应先乘后除。
因为公式中IW64乘以100的运算结果可能会大于16位整数的最大值32767(IW64为16位存储器,模拟值为二进制的补码,最高位为符号位,0为负,1为正),因此应将IW64中的数值数据类型转换为实数再进行乘除运算。
相关问答
plc中,EN,ENO,IN,OUT是什么意思_作业帮
[最佳回答]EN就是使能ENO应该是输出的使能IN是输入OUT是输出
plc中in是什么意思?
Plc中in是指输入Plc中in是指输入
西门子V20参数设置in000什么意思?
西门子V20是一种PLC控制器,in000是其中的一个参数设置。in000表示输入端口的起始地址,即输入信号的读取地址。通过设置in000,可以确定PLC在读取输入信号时的起...
incpz是什么指令?
incpz是一种指令,用于对给定地址的数据进行递增操作。该指令能够将存储器中指定地址的数据值加一,并将结果存回原地址。这个指令在计算机程序中常用于实现...
设备运转速率如何在PLC中编程?
设备运转速度如何在PLC中编程,如果你采用的变频器控制电机调速的话,要求不高的话可以直接将变频器的实际输出频率经过计算转换成转速。现在的变频器矢量控制模...
intouch中如何建立plc变量?
首先要了解intouch的标记定义(intouch帮助或帮助文档都有标记字典相关资料)标记(相当于变量):标记的类型有IO型和内存型,访问PLC变量就要选择IO型标记。...
PLC如何写顺序启动指令?
1.按动一次按钮记一次数;如下程序,当按动按钮X1时,INCP会向D1里加1;D1初始值为0,按动一次按钮后则为1.再按一次时D1就会再加1,变为2了。2.第一次按下时第...1...
S7-200的PLC编程软件,micro/win肿么能完整显示注释?-ZOL问答
如果您要显示长符号名,请工具——选项——程序编辑器中增加网格宽度。有用(0)回复19mayinet不知道你的MICRO/WIN是哪个版本,安装更新的补丁,里面有硬件驱动...
plc中四则运算怎么实现?
plc中四则运算怎么现实,这个应该不是很难根据编程手册中的基本指令即可完成。这里面需要注意几个问题,对于使用三菱plc的编程者来说,有整型的还有浮点型的四则...
三菱plc编程指令?
展开全部以下是三菱plc常用的指令,还有不懂的可以问我一程序流程控制指令—FNC00~0900CJ条件转移01CALL子程序调用02SRET子程序返回03IRET中断...