各位师兄:
附件中有截图,关于CASE的用法不太明白
以下是截图附件 我个人的理解 还请师兄指教!!
当M380.1 为1时
Db150.dbw304、M381.0M381.1、M381.2、M381.3、M381.4、M381.5 都为1
如果 当M380.1 为0时 MB381:=0;
是这个意思吗??
图片说明:
最佳答案
你的理解出现严重错误,主要是对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