scl中 CASE语句的用法!!

各位师兄:
 附件中有截图,关于CASE的用法不太明白
以下是截图附件 我个人的理解 还请师兄指教!!
 当M380.1  为1时

Db150.dbw304、M381.0M381.1、M381.2、M381.3、M381.4、M381.5 都为1

如果  当M380.1  为0时      MB381:=0;

是这个意思吗??

图片说明:

scl中 CASE语句的用法!!   

最佳答案

你的理解出现严重错误,主要是对CASE 语句的理解不对。
M380.1 =1时,执行CASE 语句,根据DB150.DW34 (注意不是DBW是DW)的值来设定MB381里面的
位,当DB150.DW304=1时,M381.0=1;
    当DB150.DW304=2时,M381.1=1;
       依次类推。。。。。。。。。。

M380.1 =0时,不执行CASE 语句,MB381整个字节清0
见下面SCL 文档里的 官方用法
CASE TW OF 
        1 :                      DISPLAY:= OVEN_TEMP; //TW=1时时执行
        2 :                      DISPLAY:= MOTOR_SPEED; //TW=2时执行
        3 :                      DISPLAY:= GROSS_TARE; //TW=3时执行
                                    QW4:= 16#0003; //TW=3时执行
        4..10:                DISPLAY:= INT_TO_DINT (TW); //TW=4到10之间的某个数
                                    QW4:= 16#0004; //TW=4到10之间的某个数
        11,13,19:          DISPLAY:= 99; //TW=11,13,19时执行
                                    QW4:= 16#0005; //TW=11,13,19时执行
ELSE:  //TW=其余数字时
        DISPLAY:= 0; 
        TW_ERROR:= 1; 
END_CASE ;

提问者对于答案的评价:
谢谢师兄帮忙

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc228062.html

(2)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐