入门,从一个按钮和灯开始学PLC吧!(二)

#用一个基本的逻辑条件,探索PLC的编程技巧#

前言:

续上,在我们实际生活中,有些灯的亮暗程度是阶段式的,那么是如何使用一个按钮控制呢?以下我们用CODESYS的编程软件仿真模拟下。

按钮和灯2

案例2(阶段亮暗灯):

1.设计需求

用PLC写一个程序,一个自复位按钮,每次按下时,灯亮30%,直至全亮,再次按下时,灯暗30%,直至全灭,循环往复;

2.问题思考:

如果要实现灯的亮暗,在可视化界面上,有两种方式,一个是控制透明度,另一个是控制颜色变化,颜色的变量参数DWORD,其表现形式如16#FF000000(透明+黄+绿+红),黄绿红为三元色;在程序上,我们使用步序的方式,当连续按下时,颜色累加或递减。结合以上,我们选择控制透明度实现亮暗,那么对于一个DWORD类型的数据,我们怎么实现呢?参见以下代码吧。

3.程序代码

//数据类型
TYPE lightColor_ST :
UNION
	B:ARRAY[0..3] OF BYTE;
	D:DWORD;
END_UNION
END_TYPE
//全局变量
VAR_GLOBAL
	button: BOOL;
	light: BOOL;
	lightColor: lightcolor_st;
END_VAR
	 modeSeclectStr:='一个自复位按钮,每次按下时,灯亮30%,直至全亮,再次按下时,灯暗30%,直至全灭,循环往复';
     CASE modeNo[modeSeclect] OF
	      0://步序
		  modeNoStr:='使用方法-步序';	  
		  GVL.lightColor.B[0]:=16#00;//红色
		  GVL.lightColor.B[1]:=16#FF;//绿色
		  GVL.lightColor.B[2]:=16#00;//黄色
		  GVL.lightColor.B[3]:=TO_BYTE(ColorTP);//透明	       
		  color:=GVL.lightColor.D;//转整数          	  
		  IF buttonR.Q THEN
			 //初始化
             IF step=0 THEN
		        step:=10;
			 END_IF;
		  END_IF;
		  CASE step OF
			  10://变亮
			   IF buttonR.Q THEN
				   colorTP:=255*0.3+colorTP;//颜色累加
			   END_IF;
			   IF colorTP>=255 AND buttonR.Q=FALSE THEN
				  colorTP:=255;
				  step:=20;
			   END_IF;
			   20://变暗
			   IF buttonR.Q THEN
				   colorTP:=colorTP-255*0.3;//颜色递减
			   END_IF;
			   IF colorTP<=0 AND buttonR.Q=FALSE THEN
				  colorTP:=0;
				  step:=0;
			   END_IF;			   
		  END_CASE;		  	  
     END_CASE;

如上所示,本案例使用联合体形式,对DWORD型数据做了处理,将处理后的透明度的值赋值于DWORD的最高字节,即可实现灯的亮暗效果。

#写在最后#

本文章旨在通过最简单的按钮和灯,结合可视化,逐步实现控制逻辑和动态效果的结合。如果你感兴趣的话,可以通过其它方式实现这个效果,多动手尝试一下。如果你有任何疑问,都可以在评论区发表,我们一起交流学习,谢谢!

下载链接:

https://download.youkuaiyun.com/download/weixin_44166380/89886848icon-default.png?t=O83Ahttps://download.youkuaiyun.com/download/weixin_44166380/89886848

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值