ST语言——例题2

根据表中功能设计出相应的程序;其中m0、m2表示按钮,Y0~Y7表示灯,有四种模式,启动后自动切换;

方式一

IF  M0=1 THEN
	D0 := 1;
END_IF;
IF M2=1 THEN
	D0 :=0;
END_IF;

OUT_T(D0=1,TC0,50);
IF TS0=1 THEN
	D0:=2;
END_IF;
OUT_T(D0=2,TC1,50);
IF  TS1 = 1 THEN
	D0:=3;
END_IF;
OUT_T(D0=3,TC2,50);
IF  TS2 = 1 THEN
	D0:=4;
END_IF;
OUT_T(D0=4,TC3,50);
IF  TS3 = 1 THEN
	D0:=1;
END_IF;

CASE D0 OF 
	0:
		Y0:=0;Y1:=0;Y2:=0;Y3:=0;Y4:=0;Y5:=0;Y6:=0;Y7:=0;
	1:
		Y0:=0;Y1:=0;Y2:=0;Y3:=0;Y4:=1;Y5:=1;Y6:=1;Y7:=1;
	2:
		Y0:=1;Y1:=1;Y2:=1;Y3:=1;Y4:=0;Y5:=0;Y6:=0;Y7:=0;
	3:
		Y0:=0;Y1:=1;Y2:=0;Y3:=1;Y4:=0;Y5:=1;Y6:=0;Y7:=1;
	ELSE
		IF M8013 = 1 THEN
			Y0:=0;Y1:=0;Y2:=0;Y3:=0;Y4:=0;Y5:=0;Y6:=0;Y7:=0;
		ELSE
			Y0:=1;Y1:=1;Y2:=1;Y3:=1;Y4:=1;Y5:=1;Y6:=1;Y7:=1;
		END_IF;
END_CASE;

IF  ?条件式?  THEN
     ?执行语句? ;
ELSE
     ?执行语句? ;
END_IF;
    

OUT_T( ?BOOL_EN? , ?BOOL_TCoil? , ?ANY16_TValue? );    //定时器使用

           使能位(D0=1)  定时器 (TS0)    定时时间(50)

CASE  ?ANY_INT?  OF                           //类似C语言中的switch函数
     ?值1? :
         ?执行语句? ;
     ?值2? :
         ?执行语句? ;
     ?值3? :
         ?执行语句? ;
    ELSE
         ?执行语句? ;
END_CASE;

M8013讲解见 ST语言——例题1

方式二

IF M0=1 THEN
	D0 :=1;
END_IF;
IF M2=1 THEN
	D0:=0;
END_IF;

OUT_T( D0>0 AND NOT TS0,TC0,50);
IF LDP(1,TS0) THEN
	D0 := D0+1;
END_IF;
IF D0=5 THEN
	D0:=1;
END_IF;

CASE D0 OF 
	0:
		Y0:=0;Y1:=0;Y2:=0;Y3:=0;Y4:=0;Y5:=0;Y6:=0;Y7:=0;
	1:
		Y0:=0;Y1:=0;Y2:=0;Y3:=0;Y4:=1;Y5:=1;Y6:=1;Y7:=1;
	2:
		Y0:=1;Y1:=1;Y2:=1;Y3:=1;Y4:=0;Y5:=0;Y6:=0;Y7:=0;
	3:
		Y0:=0;Y1:=1;Y2:=0;Y3:=1;Y4:=0;Y5:=1;Y6:=0;Y7:=1;
	ELSE
		IF M8013 = 1 THEN
			Y0:=0;Y1:=0;Y2:=0;Y3:=0;Y4:=0;Y5:=0;Y6:=0;Y7:=0;
		ELSE
			Y0:=1;Y1:=1;Y2:=1;Y3:=1;Y4:=1;Y5:=1;Y6:=1;Y7:=1;
		END_IF;
END_CASE;

LDP( ?BOOL_EN? , ?BOOL_s? );                 //上升沿检测

          使能位(1)    检测对象(TS0)

现象

模式一现象:

模式二现象:

模式三现象:

模式四现象:

2023.11.5

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值