본문 바로가기

보물창고/IT 정보

베레미즈 PLC ST코드 [beremiz]

반응형

디폴트 0 (전달 데이터 없음)

중간 1 (두 바퀴 동기화)

전 2
후 3

좌 4
우 5

정지 6

Stop_Count  7

Stop_Count 카운트를 줄이는것까지 코딩 





CASE inPut OF
  1:
    IF -R_RPM > L_RPM THEN
      L_RPM := -R_RPM; 
    ELSE
      R_RPM := -L_RPM;
    END_IF;

    IF Stop_Count > 0 THEN
      Stop_Count := Stop_Count - 1;
    ELSE
      R_RPM := 0;
      L_RPM := 0;
    END_IF;

  2: 
     L_RPM := L_RPM + 1; R_RPM := R_RPM - 1;

    IF Stop_Count > 0 THEN
      Stop_Count := Stop_Count - 1;
    ELSE
      R_RPM := 0;
      L_RPM := 0;
    END_IF;

  3:
     IF L_RPM >= 0 THEN
     L_RPM := L_RPM - 1; R_RPM := R_RPM + 1;
     END_IF;

    IF Stop_Count > 0 THEN
      Stop_Count := Stop_Count - 1;
    ELSE
      R_RPM := 0;
      L_RPM := 0;
    END_IF;

  4:
    IF L_RPM > 0 THEN
      L_RPM := L_RPM - 1;
    END_IF;

    IF Stop_Count > 0 THEN
      Stop_Count := Stop_Count - 1;
    ELSE
      R_RPM := 0;
      L_RPM := 0;
    END_IF;

  5:
    IF R_RPM < 0 THEN
     R_RPM := R_RPM + 1;
    END_IF;

    IF Stop_Count > 0 THEN
      Stop_Count := Stop_Count - 1;
    ELSE
      R_RPM := 0;
      L_RPM := 0;
    END_IF;

  6: 
     R_RPM := 0; L_RPM := 0;

  7: Stop_Count := 100;

END_CASE;




CASE inPut OF
  1:
    IF -R_RPM > L_RPM THEN
      L_RPM := -R_RPM; 
    ELSE
      R_RPM := -L_RPM;
    END_IF;

    IF Stop_Count > 0 THEN
      Stop_Count := Stop_Count - 1;
    ELSE
      R_RPM := 0;
      L_RPM := 0;
    END_IF;

  2: 
     L_RPM := L_RPM + 1; R_RPM := R_RPM - 1;

    IF Stop_Count > 0 THEN
      Stop_Count := Stop_Count - 1;
    ELSE
      R_RPM := 0;
      L_RPM := 0;
    END_IF;

  3:
     IF L_RPM > 0 THEN
     L_RPM := L_RPM - 1; R_RPM := R_RPM + 1;
     END_IF;

    IF Stop_Count > 0 THEN
      Stop_Count := Stop_Count - 1;
    ELSE
      R_RPM := 0;
      L_RPM := 0;
    END_IF;

  4:
    IF L_RPM > 0 THEN
      L_RPM := L_RPM - 1;
    END_IF;

    IF Stop_Count > 0 THEN
      Stop_Count := Stop_Count - 1;
    ELSE
      R_RPM := 0;
      L_RPM := 0;
    END_IF;

  5:
    IF R_RPM < 0 THEN
     R_RPM := R_RPM + 1;
    END_IF;

    IF Stop_Count > 0 THEN
      Stop_Count := Stop_Count - 1;
    ELSE
      R_RPM := 0;
      L_RPM := 0;
    END_IF;

  6: 
     R_RPM := 0; L_RPM := 0;

  7: Stop_Count := 100;

END_CASE; 

Stop_Count 카운트를 줄이는것까지 코딩  후
 0이 되면 좌우 바퀴 0으로 설정


반응형