西门子上升沿指令 您所在的位置:网站首页 西门子解码指令deco 西门子上升沿指令

西门子上升沿指令

2023-08-26 02:38| 来源: 网络整理| 查看: 265

b8d8ee561b8e3b08fc06e184b2e7d84e.png

有如下控制任务:

舞台上有8根霓虹灯灯管,要求顺序点亮灯管。灯管编号1到8,从1号开始,每次只有一根灯管点亮,持续的时间为2秒钟。当8号灯管点亮结束后,再次从1号开始,如此循环。

今天这篇文章,我们使用西门子SCL编程语言来完成这个控制任务。

8根灯管分别连接到数字量输出的8个通道上,假设使用ET200MP的DQ 8x24VDC/2A HF,通道地址为QB0。

要完成该控制任务,可以顺序控制的方式一步一步来写代码。但是,这样写起来会比较繁琐。本文给大家介绍一个简单的方法,使用DECO指令。

DECO指令称为"解码"指令,它可以把双字/字/字节的指定位置1(set),并且将其它位置0(reset),它的基本语法为:

resultDoubleWord := DECO_DWORD(IN:=tmpBitNumber) ;//双字

或者:

resultWord := DECO_WORD(IN:=tmpBitNumber) ;//字

或者:

resultByte:= DECO_BYTE(IN:=tmpBitNumber) ;//字节

其中:

tmpBitNumber是要置1的位编号。编号从右往左开始,最右边的位编号为0;Result是DECO指令的输出值;

例如,要将某字节的第0位置1,可以使用下面的代码:

resultByte:= DECO_BYTE(IN:=0) ;//字节的第0位置1

这样,resultByte的值=2#00000001;

回到本文的控制任务,我们编写功能块FB52_NenoLights,它有一个输入信号start和输出值Q,其中:

start:布尔型变量,启动信号,上升沿有效;Q:字节型变量,为输出的字节;还有一些用用于上升沿检测的静态变量,模块变量的声明如下图所示:

38a3d6c805547fc4f15fddf42b4000d4.png

代码如下图所示:

a203a5c0e3560d0b1b768950bf19ead9.png

在主程序中,我们通过CPU的2s时钟脉冲来触发启动信号,输出地址为QB0,代码如下图所示:

17c714dc469216e36fb698f3ce04c40c.png

其实,DECO指令还可以实现用一个按钮控制多个电机的启停。比如,第1次按下按钮,电机1运行;第2次按下按钮,电机1停止,电机2运行。。。;它可以用简单的代码,实现复杂的功能。后续我会录个视频演示下这个代码;

好了,关于DECO指令就先介绍到这里。

我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》已经出版,欢迎点击下面的链接查看:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有