直播课堂
HOME
直播课堂
正文内容
plc编程中deco指令 西门子SCL编程实例——霓虹灯顺序控制(DECO指令)
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子SCL编程实例——霓虹灯顺序控制(DECO指令)

有如下控制任务:

舞台上有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:字节型变量,为输出的字节;还有一些用于上升沿检测的静态变量,模块变量的声明如下图所示:

代码如下图所示:

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

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

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

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

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } S7-200 SMART PLC应用技术 ¥84.5 购买

三菱PLC译码指令DECO的应用案例

项目需求: 假如某一自动换项目中,该项目是用PLC做的控制器,需要做一个循环流水灯,依次每隔1秒,点亮一个颜色的彩灯,依次点亮颜色为 橙色,绿色,蓝色,红色四种颜色。

循环流水灯示意图

三菱PLC梯形中利用译码指令编程方式如下:

流水灯在梯形图中的编程方式

程序解释说明: 通过三菱PLC内部1秒脉冲寄存器M8013实现定时功能,在秒脉冲产生的上升沿使D0寄存器加1;在秒脉冲的下降沿,接通译码指令DECO;Y0,Y1,Y2,Y3四个位控制着四种颜色彩灯,译码指令接通时,只会使得其中一个位置ON;

相关问答

三菱q系列plcdeco指令前加sm403,为什么不可以加sm400?

sm400是一直on,sm403每个扫描周期on一次属于脉冲。sm400是一直on,sm403每个扫描周期on一次属于脉冲。

三菱plc编程指令?

展开全部以下是三菱plc常用的指令,还有不懂的可以问我一程序流程控制指令—FNC00~0900CJ条件转移01CALL子程序调用02SRET子程序返回03IRET中断...

三菱解码指令的使用?

三菱Plc的解码指令(也叫译码指令)DECO与编码指令ENCO也是三菱PlC的常用功能指令。下面介绍这两个指令及简单应用。这两个指令听起来高大上,其实很好理解,很...

容易产生异常-OSCHINA-中文开源技术交流社区

2、使用LengthFieldBasedFrameDecoder解码,LengthFieldPrepender编码;3、单个客户端不停的发送消息没有任何问题,建立两个客户端不停发送消息时,总是...

 苹果酒  SZSIA 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部