안녕하세요 오늘은 SCL을 이용한 여러가지 프로그램 방식을 알아보겠습니다.
2024.12.30 - [PLC/지멘스] - 지멘스 SCL 사용해보기 1
오늘 알아볼 SCL 프로그램 방식은 총 4가지 입니다.
- FOR (반복문)
- REPEAT (반복문)
- WHILE (반복문)
- 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문을 사용합니다.
아래와 같이 응용도 가능합니다(범위지정, 특정조건지정)
'PLC > 지멘스' 카테고리의 다른 글
지멘스 Profinet(프로피넷) 사용해보기 (0) | 2025.01.02 |
---|---|
지멘스 Safety Programming 만들어보기 (0) | 2025.01.01 |
지멘스 SCL 사용해보기 1 (0) | 2024.12.30 |
지멘스 OB40 Hardware Interrupt(하드웨어 인터럽트) 사용해보기 (1) | 2024.12.25 |
지멘스 SIOS에서 배포하는 라이브러리 적용하기 (2) | 2024.12.24 |