본문 바로가기

보물창고/IT 정보

베레미즈 FB, ST, wxGlade UI 코딩 내용(beremiz, function block )

반응형










IF myBoolF = 1 THEN 
  CASE flag OF
    0: count := 1; flag := 1;
    1: count := 0;
  END_CASE;
END_IF;

IF myBoolB = 1 THEN 
  CASE flag OF
    0: count := 2; flag := 1;
    1: count := 0;
  END_CASE;
END_IF;

IF myBoolL = 1 THEN 
  CASE flag OF
    0: count := 3; flag := 1;
    1: count := 0;
  END_CASE;
END_IF;

IF myBoolR = 1 THEN 
  CASE flag OF
    0: count := 4; flag := 1;
    1: count := 0;
  END_CASE;
END_IF;

IF myBoolSY = 1 THEN 
  CASE flag OF
    0: count := 5; flag := 1;
    1: count := 0;
  END_CASE;
END_IF;

IF myBoolST = 1 THEN 
  flag := 0;
  CASE flag OF
    0: count := 6; flag := 1;
    1: count := 0;
  END_CASE;
END_IF;

BoolSum := myBoolF + myBoolB + myBoolL + myBoolR + myBoolSY + myBoolST;

CASE BoolSum OF
  0: flag := 0;
END_CASE;



//wxGlade의 ui 버튼값을 가져오는 곳입니다
// 각 버튼마다 아이디 값들이 있고 이 아이디 값에 해당하는 IF문을 통해 count변수에 0부터 6값을 담게 됩니다
// 버튼이 토글 버튼인 관계로 한번 count에 값이 담긴후 바로 0으로 바꾸기 위한 코딩 내용 입니다
 




CASE inPut OF
  0: L_RPM := L_RPM; R_RPM := R_RPM;
  1: L_RPM := L_RPM + 15; R_RPM := R_RPM - 15;
  2: 
    IF L_RPM > 0 THEN
      L_RPM := L_RPM - 15;
    END_IF;
    IF R_RPM < 0 THEN
      R_RPM := R_RPM + 15;
    END_IF;

  3:
    IF L_RPM > 0 THEN
      L_RPM := L_RPM - 15;
    END_IF;
  4: 
    IF R_RPM < 0 THEN
      R_RPM := R_RPM + 15;
    END_IF;
  5:
    IF -R_RPM > L_RPM THEN
      L_RPM := -R_RPM;
    ELSE
      R_RPM := -L_RPM;
    END_IF;
  6: R_RPM := 0; L_RPM := 0;

END_CASE;

// 각 버튼 별로 15이 더해지거나 15이 줄어들고 정지일 경우에는 0으로 뀝니다
// 왼쪽 오른쪽인 경우에는 15씩 줄게 코딩 되어 있습니다
// 


 

 


반응형