【正文】
。139。 ELSE next_state=S0。 ca_time:=00000000000。 END IF。 WHEN others = NULL。 END CASE。 ELSIF (button_var(1) OR button_var(2) or button_var(3) or floor_var(2) or floor_var(1))=39。139。 THEN next_state = S1U。 ca_time:=00000000000。 up = 39。139。 ELSE next_state = S0。 ca_time:=00000000000。 END IF。 WHEN S1U = 二樓上狀態(tài)處理; position = 0010。 led = 11011010。 cat:=39。039。 IF floor_var(1)=39。139。 THEN 二樓內(nèi)上升請求; CASE ca_time IS WHEN 00110000000 = dor=39。139。 WHEN11111111111= dor=39。039。 11 floor_var(1):=39。039。 IF (button_var(1) or button_var(3) or floor_var(2))=39。139。 THEN next_state=S2。 ca_time:=00000000000。 button_var(1):=39。039。 ELSIF ( button_var(0) or button_var(2) or floor_var(0))=39。139。 THEN next_state=s0。 ca_time:=00000000000。 button_var(2):=39。039。 ELSE next_state=S1U。 ca_time:=00000000000。 END IF。 WHEN others = NULL。 END CASE。 ELSE IF button_var(1)=39。139。 THEN 二樓外上升請求; CASE ca_time IS WHEN 00110000000 = dor=39。139。 WHEN 11111111111 = dor=39。039。 button_var(1):=39。039。 IF (floor_var(2) or button_var(3))=39。139。 THEN next_state=S2。 ca_time:=00000000000。 ELSIF ( button_var(0) or floor_var(0) or button_var(2))=39。139。 THEN next_state=s0。 ca_time:=00000000000。 up=39。039。 ELSE next_state=S1U。 button_var(1):=39。039。 END IF。 WHEN others = NULL。 END CASE。 ELSE IF (button_var(3) or floor_var(2))=39。139。 THEN 二樓無上樓,開門請求,但三層有下樓或開門請求; next_state=S2。 ca_time:=00000000000。 ELSIF button_var(2)=39。139。 THEN 二樓無上樓,開門請求,三層也無下樓或開門請求,此 時二樓有下樓請求; CASE ca_time IS WHEN 00110000000 = dor=39。139。 WHEN 11111111111 = dor=39。039。 12 button_var(2):=39。039。 IF(floor_var(0) or button_var(0))=39。139。 THEN next_state=s0。 ca_time:=00000000000。 up=39。039。 ELSE next_state=S1U。 ca_time:=00000000000。 END IF。 WHEN others = NULL。 END CASE。 ELSIF (button_var(0) or floor_var(0))=39。139。 THEN 電梯處于二樓上狀態(tài),僅有一樓信號要處理 next_state=s0。 ca_time:=00000000000。 up=39。039。 ELSE next_state=S1U。 無任何信號,保持當(dāng)前狀態(tài)不變; ca_time:=00000000000。 END IF。 END IF。 END IF。 WHEN S1D = up=39。039。 時的情況; position = 0010。 led = 11011010。 cat:=39。039。 IF floor_var(1)=39。139。 THEN CASE ca_time IS WHEN 00110000000 = dor=39。139。 WHEN 11111111111 = dor=39。039。 floor_var(1):=39。039。 IF (button_var(2) or button_var(0) or floor_var(0))=39。139。 THEN next_state=s0。 ca_time:=00000000000。 button_var(2):=39。039。 ELSIF ( button_var(1) or button_var(3) or floor_var(2))=39。139。 THEN next_state=S2。 ca_time:=00000000000。 button_var(1):=39。039。 ELSE next_state=S1D。 ca_time:=00000000000。 END IF。 WHEN others = NULL。 END CASE。 13 ELSE IF button_var(2)=39。139。 THEN CASE ca_time IS WHEN 00110000000 = dor=39。139。 WHEN 11111111111 = dor=39。039。 button_var(2):=39。039。 IF (floor_var(0) or button_var(0))=39。139。