SCADE Suite 状态机之变量隐式赋值
1、变量的隐式赋值
**目的:**简化模型设计
**Last:**只要没有显示赋值,便取上一周期的数值
**Default:**只要没有显示赋值,便取默认设置的数值(优先级更高)
设置方法
2、定义变量的Last值
(1)模型
(2)说明
设置Output1的Last属性为0
(3)仿真
第1周期:State1激活,Output1=0
第4周期置Input1为true,下一周期(第5周期)State2激活,Output1变为1
第6周期:State3激活,Output1没有显示定义,由于设置了Last属性,取上一周期的值,即Output=1(不变)
第7周期:State4激活,Output1显示赋值为-1
第8周期:State1激活,Output1没有显示定义,取上一周期值-1(不变)
Output1波形图:
3、定义变量的Default值
(1)模型
(2)说明
仅将Output1的Default属性修改
(3)仿真
第1周期:State1激活,没有显示赋值,但定义了Default,Output1=0
第2周期:设置Input1为true并保持
第3周期:State2激活,Output1显示赋值
第4周期:State3激活,由于没有显示赋值,且设置了Default属性,Output1=0
第5周期:State4激活,显示赋值-1
第6周期:State1激活,未显示赋值,Output1=0
4、同时定义变量Last和Default
(1)模型
(2)说明
Last和Default同时设置,Deault优先级更高
(3)仿真
第1周期:State1激活,Output1被显示定义为上一周期的值[last 'Output1],由于定义了Output1 的Last属性值为-7,因此Output1=-7
第2周期:设置Input1为true
第3周期:State2激活,显示赋值1
第4周期:State3激活,未显示赋值,取Default,Output1=0
第5周期:显示赋值-1
第6周期:取上一周期值,仍为-1(不变)
5、同时不定义变量Last和Default
(1)模型
(2)说明
Last和Default均没有设置时,则取上一周期的值
(3)仿真
第1周期:State2激活,显示赋值1
第2周期:设置Input1为true
第3周期:State3激活,未显示赋值,取上一周期值
第4周期:显示赋值-1
第5周期:未显示赋值,取上一周期