各位师兄:
附件中有截图,关于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文档里的官方用法
CASETWOF
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;
提问者对于答案的评价:
谢谢师兄帮忙