PLC/지멘스

지멘스 SCL 사용해보기 2

감튀러버 2024. 12. 31. 12:13
반응형

안녕하세요 오늘은 SCL을 이용한 여러가지 프로그램 방식을 알아보겠습니다.

 

2024.12.30 - [PLC/지멘스] - 지멘스 SCL 사용해보기 1

 

지멘스 SCL 사용해보기 1

안녕하세요 오늘은 지멘스 SCL에 대해 알아보겠습니다. 지멘스에는 총 6가지 프로그램 방식이 있습니다.LAD(Ladder)FBD(Function Block Diagram)CEM(Causes and Effects Matrix)STL(Statement List)SCL(Structured Control Language

yongyong22.tistory.com

 

오늘 알아볼 SCL 프로그램 방식은 총 4가지 입니다.

  1. FOR (반복문)
  2. REPEAT (반복문)
  3. WHILE (반복문)
  4. CASE

1. FOR

For문 입니다. 다른 PLC에서도 FOR-NEXT문은 자주 사용되기에 익숙하실 텐데요.

1에서 10까지 반복하고 각 배열에 3을 곱해주는 FOR문을 만들어 보겠습니다.

먼저 Tag를 추가합니다.

 

아래와 같이 프로그램도 작성해 줍니다.

#index는 1부터 10까지 반복되고 #index의 값에 맞춰 서로 다른 배열에 값을 저장합니다.

모니터링을 했을때 인덱스 값에 맞춰 동일하게 3이 곱해진 것을 확인 할 수 있습니다.


2. REPEAT

Repeat문 입니다. For문과 마찬가지로 반복문입니다.

태그는 FOR문과 동일하게 합니다. 

프로그램도 FOR문과 동일하게 인덱스 값에 3을 곱하는 프로그램을 만들어 보겠습니다.

Repeat은 For문과 다르게 [UNTIL] 뒤에 있는 조건이 True가 될때 종료됩니다.

다시말해 [UNTIL]의 조건이 성립하지 않으면(False) 동작됩니다.

따라서 맨 윗줄에 시작번호를 설정해 준 후 (#index := 1;)

반복할 프로그램을 만들어줍니다. (#array[#index] := #index * 3;)

그 후 index의 증가숫자를 설정합니다(여기서는 1씩 증가하므로 #index := #index + 1;를 적어줌)

마지막으로 종료조건을 설정합니다(여기서는 1~10까지 반복하므로 #index > 10를 적어줌)

이것도 역시 모니터링을 해보면 인덱스번호가 증가함에 따라 결과값에 3이 곱해진 것을 볼 수 있습니다.


3. WHILE

While문 입니다.

Repeat과 비슷한데요. While은 [WHILE]뒤에 있는 조건이 충족될때(True) 동작됩니다.

마찬가지로 맨 윗줄에 시작번호를 설정해 준 후 (#index := 1;)

반복조건을 설정해 주고(WHILE #index <= 10 DO)

반복할 프로그램을 만들어줍니다. (#array[#index] := #index * 3;)

그 후 index의 증가숫자를 설정합니다(#index := #index + 1;)

 

이렇게 3가지 반복문을 알아봤는데요

지멘스 프로그래밍 매뉴얼에서는 반복횟수가 정해져 있는 경우 FOR를 사용, 

아니라면 WHILE이나 REPEAT을 사용하는 것을 추천합니다.


4. CASE

마지막으로 CASE문 입니다.

위 3개의 반복문과는 다르게 CASE문은 여러가지 조건에 따라 프로그램을 동작시킬 수 있습니다.

#index의 값에 따라 서로 다른 프로그램을 동작시킬 수 있습니다.

위의 예시를 살펴보면

#index = 1 일때 #array[1] := #index * 3; 동작

#index = 5 일때 #array[5] := #index * 5; 동작

#index = 10 일때 #array[10] := #index * 10; 동작됩니다.

 

보통 설비에 여러가지 모드 중 하나를 선택할 때 CASE문을 사용합니다.

 

아래와 같이 응용도 가능합니다(범위지정, 특정조건지정)

 

반응형