Codesys——小灯顺序点亮(case语句)

以下内容纯属个人理解,如有错误欢迎指正。

本篇主要是关于ST编程CASE语句的一个小案例,是顺序亮灯一个小程序。

控制要求:
按下启动按钮 (10.0),绿灯 (Q0.0)亮3S,然后红灯 (Q0.1)亮 2S,接着红绿灯同时 亮5S 后灭。

在这次程序编写的过程中使用到了一个MOVE指令,下面简单对该指令做个介绍。

MOVE指令

 上图中的指令使用案例: A2 := MOVE(A1);的功能就是将A1的值传送到A2.

完整程序如下:

/********************变量声明************************/
PROGRAM PLC_PRG
VAR
	BUTTON_ON: BOOL;
	BUTTON_OFF: BOOL;
	TEMP0: BOOL;
	STEP: INT;
	LED1: BOOL;
	LED2: BOOL;
	
	TON_0_PT: TIME:=T#3S;
	TON_1_PT: TIME:=T#2S;
	TON_2_PT: TIME:=T#5S;
	TON_0_ET: TIME;
	TON_1_ET: TIME;
	TON_2_ET: TIME;
	TON_0_Q: BOOL;
	TON_1_Q: BOOL;
	TON_2_Q: BOOL;
	
	TON_0: TON;
	TON_1: TON;
	TON_2: TON;
END_VAR
/********************程序编写************************/
TEMP0 := (BUTTON_ON OR TEMP0) AND (NOT BUTTON_OFF) AND (NOT TON_2_Q);
IF TEMP0 THEN
	STEP := MOVE(1);    //第一步:LED1亮3S
	TON_0(IN:=TEMP0 , PT:=TON_0_PT , 
		  Q=>TON_0_Q , ET=>TON_0_ET );
	IF TON_0_Q THEN
		STEP := MOVE(2);  //第二步:LED2亮2S
	END_IF
	TON_1(IN:=TON_0_Q , PT:=TON_1_PT , 
		  Q=>TON_1_Q , ET=>TON_1_ET );
	IF TON_1_Q THEN
		TON_0_Q := FALSE;
	    STEP := MOVE(3);  //第三步:LED1、LED2同时亮5S
	END_IF
	TON_2(IN:=TON_1_Q , PT:=TON_2_PT , 
		  Q=>TON_2_Q , ET=>TON_2_ET );
	IF TON_2_Q THEN
		    TON_1_Q := FALSE;
			STEP := MOVE(4);  //第四步:LED1、LED2同时熄灭
	END_IF
	CASE STEP OF
		1 : 
		LED1 := TRUE;
		LED2 := FALSE;
		2 :
		LED1 := FALSE;
		LED2 := TRUE;
		3 :
		LED1 := TRUE;
		LED2 := TRUE;
		4 :
		LED1 := FALSE;
		LED2 := FALSE;
	END_CASE

END_IF

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: CODESYS是一个广泛使用的工业自动化软件平台,提供了丰富的编程功能。其中的CASE语句是一种常见的编程结构,用于处理多个条件分支。 CASE语句与IF语句类似,可以根据不同条件执行不同的操作,但不同之处在于,CASE可以处理多个条件分支,增加代码的可读性和易于维护性。 其基本语法为: CASE [变量名] OF 条件1: 执行语句1; 条件2: 执行语句2; ... ELSE: 执行语句n; END_CASE; 其中,变量名代表待检测的变量;条件1、条件2等代表不同的条件分支,每个条件分支后面需要加“:”符号,然后紧跟着对应的执行语句。 当变量与某个条件分支匹配时,CASE会执行对应的执行语句,如果所有条件都不满足,则会执行ELSE分支中的语句。 举个例子,假设我们要判断一个数字变量的奇偶性,可以用如下代码实现: CASE num OF 0: WriteText("输入的数字为0"); 1,3,5,7,9: WriteText("输入的数字为奇数"); 2,4,6,8: WriteText("输入的数字为偶数"); ELSE: WriteText("输入的不是数字"); END_CASE; 以上代码表示当num为0、1、3、5、7、9时,输出“输入的数字为奇数”,当num为2、4、6、8时,输出“输入的数字为偶数”,如果num不是任何一个满足条件的数字,则输出“输入的不是数字”。 总之,在程序中使用CASE语句可以使代码逻辑更加清晰,易于理解和维护。 ### 回答2: CODESYSCoDeSys)是一种常见的工业自动化编程软件,可用于PLC(可编程逻辑控制器)编程。CASE语句CODESYS中的一种流程控制语句,常用于多分支判断。 CASE语句语法如下: CASE [expression] OF value1: statement1; value2: statement2; … valueN: statementN; ELSE statement0; END_CASE 其中,expression是需要进行判断的表达式,value1至valueN为可选值,用于判断expression的结果是否等于某个值。如果expression的结果与value1至valueN中的某个值相等,则执行对应的statement语句;如果与所有value均不相等,则执行ELSE语句中的statement0。 例如,以下代码对输入的数值进行判断,输出对应的文字: CASE n IN 0: s := '零'; 1: s := '一'; 2: s := '二'; 3: s := '三'; ELSE s := '其他'; END_CASE 若输入n为0至3中的某个值,则输出对应的汉字文字;否则输出“其他”。这就是CODESYS CASE语句的简单用法,能够方便快捷地处理多分支判断。 ### 回答3: CodeSys是一个广泛使用的工业自动化编程软件,在其编程语言中,Case语句是一种常用的分支控制语句。它的作用是根据不同的条件,从多种可选项中选择一个执行。 Case语句一般包括一个要被分支控制的变量,以及多个Case分支和1个default分支。格式如下: CASE 变量 OF 选项1:操作代码1; 选项2:操作代码2; ... 选项N:操作代码N; ELSE 默认操作代码; END_CASE; 当变量的值匹配某个选项时,对应的操作代码就会被执行。如果变量的值不匹配任何一个选项,那么就会执行默认的操作代码。不同的选项间用分号隔开,最后一项不需要再加分号。 Case语句简化了代码的编写,同时也增强了代码的可读性和维护性。在实际编程中,我们常将Case语句与其他控制流语句一起使用,如循环语句、函数语句等,以实现更为复杂的逻辑控制。 总之,Case语句CodeSys编程中常用的分支控制语句,它可以根据不同的条件执行不同的操作,使用灵活简便,有助于提高程序的可读性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值