在PLC编程使用结构文本ST语言编程中使用CASE语句实现移位功能
在PLC进行编程中常常会用到移位指令,大家也都是很熟悉,今天要跟大家聊聊的就是如何使用case语句来实现移位指令的功能。
一、首先条件语句CASE的语法结构和功能
CASE语句 :用来选择几个分支程序部分之一。选择是基于选择表达式当前值的。
语法:
CASE语句按下列规则执行:
选择表达式必须返回一个整数类型的值。当CASE语句被处理时,程序检查是否选择表达式的值包含在指定的值表之中。如果找到匹配项,列表指定的语句部分将被执行。如果没有发现匹配项,程序选择ELSE后面的语句,或者如果ELSE分支不存在则无语句可执行。下表列出了case语句的参数:
值表 :包含允许的选择表达式的值。如下面的语句表达:
二、通过一个示例来看看如何通过CASE语句来实现移位的功能
功能要求,当按下启动按钮,六盏灯每隔2s,从左到右依次点亮;当按下停止按钮,灯全部熄灭。
看到本例,相信大家首先想到的就是移位指令,可以很容易实现此功能,今天我们主要要练习的就是CASE语句的使用,所以,看看如何通过CASE语句来实现本例的功能。
编程过程:
1、使用条件语句IF,当按下启动按钮来对灯赋值1(点亮第一盏灯),当按下停止按钮,则对灯赋值0(熄灭所有灯)
IF #START THEN
#LIGHT_TEMP := 1;
ELSIF #STOP THEN
#LIGHT_TEMP := 0;
END_IF;
2、设定时间,间隔2s
#TIME.TON(IN := (#LIGHT_TEMP = 1),
PT := T#2S);
#TIME_1.TON(IN := (#LIGHT_TEMP = 2),
PT := T#2S);
#TIME_2.TON(IN := (#LIGHT_TEMP =4),
PT := T#2S);
#TIME_3.TON(IN := (#LIGHT_TEMP = 8),
PT := T#2S);
#TIME_4.TON(IN := (#LIGHT_TEMP = 16),
PT := T#2S);
#TIME_5.TON(IN := (#LIGHT_TEMP = 32),
PT := T#2S);
3、使用CASE语句来进行选择赋值
CASE #LIGHT_TEMP OF
1:IF #TIME.Q AND #LIGHT_TEMP=1 THEN
#LIGHT_TEMP := 2;
END_IF;
2:IF #TIME_1.Q AND #LIGHT_TEMP=2 THEN
#LIGHT_TEMP := 4;
END_IF;
4:IF #TIME_2.Q AND #LIGHT_TEMP=4 THEN
#LIGHT_TEMP := 8;
END_IF;
8:IF #TIME_3.Q AND #LIGHT_TEMP=8 THEN
#LIGHT_TEMP := 16;
END_IF;
16:IF #TIME_4.Q AND #LIGHT_TEMP=16 THEN
#LIGHT_TEMP := 32;
END_IF;
32:IF #TIME_5.Q AND #LIGHT_TEMP = 32 THEN
#LIGHT_TEMP := 1;
END_IF;
END_CASE;
4、赋值输出
#LIGHT := #LIGHT_TEMP;
5、完整程序如下图所示:
6、仿真运行:
注:通过本示例,主要是跟大家看看case语句的使用,同时,也是通过本示例来看看使用结构文本ST编程的多种方法。
西门子S7-200系列PLC高阶课程-12 有偏移量编程 )
大家好,上节课我们学习了在工程量方面,如果上下限不是标准量程的情况下,该如何通过子程序进行计算。而这节课我们先来了解一下偏移量:
图中可以看到,X的取值并非是从0开始的,所以在公式的安排上,要考虑到这个情况。如图所示,我们可以根据此前的几何公式,推导出如下公式内容:
其中,1式=Y-下限;2式=上限-下限;3式=X-6400;4式=32000-6400=25600.带入上述公式后,简化结果为:
有了公式,我们就开始准备标称。与上节课同理,我们先来分析一下变量类型:
先来定义一下上下限,输入、输出以及中间变量等数据类型。
在子程序中,我们按照公式的描述,并注意数据类型的一致,编写程序如下:
主程序中,跟此前无偏移量的基本一致。如下图:
本节课程结束,重点是理解计算公式的内容。并能结合传感器以及变送器和PLC设备进行编程后,通过实操验证结果,加深印象。
相关问答
plc的偏移量怎么调出来?
在PLC程序设计中,偏移量是指数据或地址较原始段数据或地址的偏移距离,也就是需要在内存中向后或向前移动多少字节才能访问到需要的数据或地址。当我们需要使用...
plc数据偏移量怎么设置?
PLC数据偏移量可以设置。因为PLC的内存地址分配是按字为单位的,而有些数据类型的长度不是字的整数倍,所以会导致数据间的偏移量与实际长度不一致。这时就需要...
plc的偏移地址什么意思?
您好,PLC的偏移地址指的是在PLC程序中的数据地址相对于某一参考点的偏移量。这个参考点可以是一个固定的地址、一个寄存器或一个变量。偏移地址可以用来访问PL...
PLCA/D偏移量,增益量有什么作用?-sya的回答-懂得
偏移量是调整零位,增益量是调整放大倍数,也就是调整满度位的。实际上,二者合起来就相当于调整一条直线的两端,使之接近于理想直线。AD偏移量一般做...
1200plc偏移量是干什么的?
1200PLC偏移量是指在PLC程序中,用来定位和访问特定数据的地址。它是一个重要的概念,能够指示PLC内存中的特定位置,以便读取或写入数据。通过使用偏移量,我们...
发那科机器人码垛偏移程序怎么写?
发那科机器人码垛偏移程序写法把数据寄存到r(i),在通过位置寄存器把数据给机器人就好例如:plc数据当Data.data=R(i)Pr[i]=R(i)再用个偏移指令就是在指令里那...
西门子plc-1200V13怎么激活地址偏移量?
三菱PLC和西门子PLC都有一定的占有率,但是西门子PLC是国家所支持的,因为中国与日本还是有少少仇恨,大学课程通常都教西门子PLC。三菱PLC和西门子PLC都有一定...
西门子偏移量是什么?
西门子偏移量是指在编程过程中,由于机床控制器和工件坐标系之间存在一定的误差,需要通过调整偏移量来保证加工精度。偏移量是一组数值,代表着机床控制器和工...
PLC是如何处理模拟量的?
可编程序控制器PLC是以微处理器为基础的通用工业控制装置。早期的PLC是以开关量控制而设计的,而现在的PLC已经具备模拟量处理功能,相比开关量而言模拟量处理确...
五轴焊接机械手原点复位偏离什么原因?-懂得
五轴焊接机械手原点复位偏离什么原因?是想做一个停止回原点的程式,你用的是三菱PLC吧,可以用SFC编程方法,先写主程式S0到S9,然后用(S21)编写正常况...