\ 전기 엔지니어의 꿈 :: 'PLC 응용' 태그의 글 목록
반응형

안녕하세요 공돌이 직딩이에요.

오랜만에 찾아뵙게 되었네요..

말씀드렸다시피 국가기술 자격증을 준비하고 업무에 치이고 하다보니 포스팅이

늦어져버렸어요.

그래도 꾸준히 찾아주신 독자 여러분들이 있어서 힘이 나네요

 

다시 힘차게 포스팅을 시작하려고 해요!

오늘은 지난시간에 이어 예제들을 알아보겠어요

이번시간에는 문제가 좀 길고 복잡할 수 있어요. 비교나 조건문 데이터들이 어떻게 응용되는지를 알아볼 것인데

산업에서는 제가 말씀드리는 이런 기초적인 부분보다 훨씬 더 복잡한 로직에 의하여 움직이는 것들이 많습니다.

아래 예제를 보면서 '아 이런식으로 응용될 수 있구나' 라는 마인드로 접근해주셨으면 좋겠습니다. 

모르시는 부분은 댓글 남겨주시면 해설드리겠습니다.

더불어 오류가 발견되는 부분에 대해서는 팍팍 피드백주시면 감사하겠습니다.

저도 배우고 있는 과정이고 여러분과 지식을 공유하는 과정을 통해 성장해나가고 있기에

미숙한 부분이 많습니다.

Quest

Quest 1
자동화 공장에 컨베이어를 움직이는 화물이 있습니다.

이 컨베이어는 물체의 크기에 따라서 총 4가지 경로(A, B, C, D)로 방향을 바꿔줍니다.

공정시작 버튼은 P10 공정 중지버튼은 P11입니다.

[시나리오]

a. 센서 P0만 감지되면 물체는 P20모터가 동작하여 물체를 A경로로 보내주고
b. 센서 P0, P1이 동시에 감지되면 물체는 P21 모터가 동작하여 물체를 B경로로 보내줍니다.
c. 센서 P0, P1, P2가 동시에 감지되면 물체는 P22 모터가 동작하여 물체를 C경로로 보내줍니다.
d. 마지막으로 P0, P1, P2에 모두 감지되지 않는 물체는 P23모터가 동작하여 물체를 D경로로 보내줍니다.

이를 기존에 배웠던 비교연산문을 이용하여 로직을 한번 짜보세요.

Quest 2
기차 예제를 보실까요.

움직이는 기차는 기관실과 객실로 나뉘죠.

기관실에서는 기차의 속력을 조정할 수 있고 객실에는 각각 모터가 달려있어서 기관실의 모터 속도지령을 받는다 가정해봅시다.

기관실은 1개가 존재하며 객실은 총 3개가 존재합니다.(2호칸, 3호칸, 4호칸)

기관사는 P0 스위치를 한번 누를때마다 30씩 속도를 증가시킬 수 있습니다.반대로 P1 스위치를 한번 누를때마다 30씩 속도를 감소시킬 수 있습니다.

속도지령치는 기관실 속력 저장 데이터레지스터 D0에 저장이 됩니다.
마찬가지로 객실의 속력지령치 역시 속력 저장데이터 레지스터 D1, D2 ,D3에 저장됩니다.
이 예제를 FMOV로 풀어보세요. 쉽습니다.

Quest3 (시나리오 부연설명 추가 및 문제수정 20.6.16)
차를 사보면 측방 위험감지 옵션들이나 스마트 크루즈기능(?)들이 있죠?
이 시나리오를 간략하게라도 구현해봅시다.

P10 전방 감지 센서
P11 우측 전방 감지 센서
P12 좌측 전방 감지 센서
P13 좌측 후방 감지 센서
P14 우측 후방 감지 센서

P15 후방 감지 센서


[시나리오]

a. 센서 P10은 세팅된 거리를 유지하면서 전진하고 세팅거리 이하가 되는경우 P20모터가 정지하여 차량이 정지합니다.
b. 후방감지 센서 P15은 세팅된 거리(30) 이하가 감지되는 경우 P23경보가 울립니다.
c. P0을 통해 거리를 10m씩 늘릴 수 있으며 해당거리는 D0 데이터레지스터에 보관되어 인버터에서 읽어줍니다.
d. P1을 통해 거리를 10m씩 줄일 수 있으며 해당거리는 D0 데이터레지스터에 보관되어 인버터에서 읽어줍니다.
e. 전방감지 센서 P10과 우측 전방 감지센서 P11이 동시에 감지되면 우측 전방 충돌을 알리는 P24 경보가 울립니다.
f.  전방감지 센서 P10과 좌측 전방 감지센서 P12가 동시에 감지되면 좌측 전방 충돌을 알리는 P25 경보가 울립니다.
g. 후방감지 센서 P15와 좌측 후방 감지센서 P13이 동시에 감지되면 좌측 후방 충돌을 알리는 P26이 점등됩니다.
h. 후방감지 센서 P15와 우측 후방 감지센서 P14가 동시에 감지되면 우측 후방 충돌을 알리는 P27이 점등됩니다.

 

엔코더로부터 받아들인 회전수는 D1 데이터레지스터에 저장되며 실제로는 일정 스케일 간격으로 피드백을 받겠으나

우리는 시뮬레이터를 돌리는 것이기 때문에 P1F로 강제로 10 이라는 수치를 D1 데이터레지스터에 입력할거에요.

이때 D1레지스터의 변화에 따라 모터의 구동상태 및 파일럿 램프의 동작을 확인해보는 것을 목적으로 합니다.


Quest4
소방설비가 있어요. 화재 감지기는 연기의 농도를 측정합니다. 해당 화재 감지기는 연기의 농도에 따라서

경보벨이나 화재를 알리는 방식이 다른데요.

예를들어 화재 감지기가 감지할 수 있는 연기의 농도가 0부터 1000이라고 가정하고 해당 화재감지기로부터 읽어들인

 

데이터가 데이터레지스터 D0에 저장된다고 가정해봅시다.

 

우리는 말씀드렸다시피 시뮬레이션 기반의 프로그램을 작성중이므로 실제로 데이타레지스터에 값이 입력될 수는 없을

 

겁니다.

 

그래서 강제로 아래 a, b, c에 해당하는 임의의 농도를 주입시킬것 입니다.

 

우리는 임의의 농도를 주입시키지만 실제로는 상시 On되어 있는 접점에 의하여 데이터레지스터는 늘 값(연기농도)을

 

바꾸고 있겠죠

 

[시나리오]
a. 0초과 200미만의 값이 검출되었다면 비상 경보등 P20을 울리며
b. 200이상 500미만 값이 검출되었다면 비상 경보등 P20과 함께 비상 방송설비 P21이 작동합니다.
c. 500이상 1000미만 값이 검출되었다면 비상 경보등 P20과 비상 방송설비 P21과 함께 방화셔터 P22가 작동합니다.
   다만 방화셔터가 내려오는 도중 사람이 끼어있는경우 적외선 센서 P1이 감지하여 5초간 P22가 정지하고 경보음 

   P25를 울립니다.
   그리고 사람이 빠진경우 비상경보등 P20과 함께 비상방송설비 P21이 작동하고 방화셔터 P22가 재작동합니다.

 
Quest5
게임을 하다가 감도를 조정하기 위해 감도를 조정하는 버튼을 눌러줄겁니다.

감도 조정하다 보시면 상승버튼을 계속 누르고 있으면 빠르게 수치가 증가하고 톡톡 건드리면 천천히 증가하는

 

그런 기능을 보신적 있으시죠?

 
반대로 하강버튼을 계속 누르고 있으면 빠르게 수치가 증가하고 톡톡건드리면 천천히 감소합니다.

이 로직을 짜볼거에요.

시나리오를 정리해보면 다음과 같습니다.

[시나리오]
a. P0 또는 P1을 빠르게 눌렀다가 때면 0.01씩 증가, 0.01씩 감소하고

b. P0 또는 P1을 누르는 도중 1초가 지나면 0.1씩 증가, 0.1씩 감소하고

c. P0 또는 P1을 누르는 도중 2초가 지나면 1씩 증가, 1씩 감소합니다.

위 로직을 증가 관련 레더와 감소 관련 레더로 나눠서 프로그램을 짜보세요.

Quest6
놀이동산에 다음의 로직과 같이 움직이는 놀이기구가 있어요. 해당로직을 한번 짜봅시다.

 

 *트랙은 설명을 위해서 그려놨을뿐 각각의 셀이 거리를 의미하는 것은 아님.*

 

해당 트렉을 따라 파란색 놀이기구가 움직이는데 각 센서들이 파란색 놀이기구를 감지합니다. 문제에 앞서 각 레지스터의 기능과 Push button에 대해서 정의하겠습니다.

 

놀이기구 기동버튼: P10

놀이기구 정지버튼: P11

 

 

D0: 속도값을 저장하는 데이터 레지스터

D1: 회전 방향을 저장하는 데이터 레지스터로 0이면 전진방향 1이면 후진방향을 의미.

 

각종 데이터 레지스터의 수치를 인버터가 실시간으로 스캐닝하여 모터를 동작시킨다고 봅시다.

 

실제로는 주파수나 전압값등을 가변하여 모터를 제어하지만

 

여기서는 단순히 수치 입력을 바탕으로 속도를 조정한다고 가정합니다.

 

속도는 데이터레지스터 D0에 입력되어 저장되고 예를들어, 인버터는 D0의  저장된 수치가 10일때 이를 10m/Sec로 인식

 

합니다,

 

일부의 인버터는 목표 속도지령치를 주면 알아서 시간속도 곡선을 그리기 때문에 우리는 목표 속도지령치만 넣어주고

 

시작과 정지 부분에 있어서는 인버터가 알아서 움직여준다고 가정하겠습니다. 

 

Jerk, Creep속도, S곡선들을 설명하기 위해서는 내용이 많이 복잡해지고 포스팅 취지에 맞지 않기에 고려치 않도록

 

하겠습니다.

 

[시나리오]

a. 놀이기구는 P6 위치에서 시작하여 P0센서가 인식될때까지 2의 속도로 정속주행 합니다.
b. P0센서가 감지되면 P1에 도착하기까지 1초에 10씩 계속 속도가 증가합니다.
c. 이렇게 카트가 P1에 도착하게 되면 3초간 정지하였다가 다시 P0를 향하여 1초에 10씩 증가하여 D0에 수치가

    저장됩니다.
d. P0에 다시 도착하게 되면, 정지한 직후 이번에는 P2 센서에 인식될때까지 1초에 5씩 속도를 증가하다가

   P2에 인식되는 순간 1초에 10씩 속도가 감소하여 P3에서 2초간 정지합니다.
e. P3에서 2초간 정지후 놀이기구는 P4에 도착할때까지 1초에 20씩 속도를 증가하며 P4에 도착하면 도착 속도값을 유지

   한 상태로 P5를 향해 전진합니다.

f. P5에 도착한 놀이기구는 5의 속도값을 유지한 상태로 P6에 도달하면 정지합니다.

 

쓰고나니 다소 문제가 길고 복잡해보이네요.

 

말씀드렸듯 실제 회로는 이보다 더복잡하고 정교한 로직으로 이루어질 거에요.

 

간단한 예시들만을 맛보기로 보여드린 것인데요.

 

하지만 꾸준히 하다보면 어느새 기초부터 실력이 쌓이게되어서

 

제가 티칭하지 않아도 스스로 래더링을 할 수 있는 단계에 오르게 될거에요.

 

여러분의 성장을 위해 기도하겠습니다. 

 

그럼 다음주에 문제에 대한 해설을 들고 찾아 뵙도록 할게요.

반응형
블로그 이미지

Lubly0104

전기설계 엔지니어가 알려주는 찐전기

,
반응형

안녕하세요.

 

공돌이 직딩입니다.

 

지난주에는 포스팅이 너무길어서 이번주는 좀 쉬어가려고 합니다.

 

이번주는 XG-5000내의 SET기능과 RESET 기능에 대해서 한번 알아볼건데요

 

기존에 배웠던 자기유지회로 개념과 비교하면서 어떤부분이 다른지 한번 살펴보도록 하겠습니다.

 

먼저 기존의 자기유지 회로를 XG-5000으로 한번 그려볼까요?

 

 

이전에 개념에 대해서 말씀드렸듯 방안의 형광등을 키기 위해서 우리는 스위치를 계속 누르고 있을 수 없다하였습니다.

 

그래서 추가된 것이 A접점을 병렬로 연결하여, 스위치에서 손을 떼어도 지속적으로 통전될 수 있도록 한다고 하였죠.

 

하지만 우리가 실제로 산업에 사용되는 레더를 코딩하다보면 가끔식 A접점을 추가하여 자기유지를 걸어주기가

 

귀찮은 경우들이 종종 있습니다.

 

그래서 SET, RESET코일이라는 개념이 등장하게 됩니다.

 

결론말 말하겠습니다. SET 코일은 스스로 자기유지가 가능합니다. RESET 코일이 통전되기전까지는요.

 

즉, SET코일에 통전이 되면 저절로 자기유지가 걸리고 RESET코일을 통전시키기 전까지 자기유지가 걸린다는 것이죠.

 

산업에서 사용되는 수천줄의 래더를 코딩하다 보면 한줄한줄 절약하는 것이 스캐닝 속도도 영향을 줄 것이고,

 

디버깅도 더 수월하겠죠(눈으로 쳐다봐야 하는 부분이 줄게되니까요).

 

아주 간단한 개념이죠?

 

실제로 이러한 기능은 우리가 아주 애기때(?물론 대학생) 디지털논리회로를 배우면서(아물론 전기과.)

 

플립플롭이라는 것을 배웠을때 배운것으로 지금은 당연히 까먹었겠죠.

 

래더를 코딩할때는 몰라도 전혀 상관은 없지만 우리는 그래도 엔지니어니까 배경지식을 넓혀봅시다.

 

플립플롭의 한 종류인 래치는 한 비트의 정보를 입력 데이터가 바뀌기까지 계속 유지하고 있는 소자를 말합니다.

 

확실히 위키피디아가 이런내용에 대한 설명은 빵빵하네요

 

SR 래치는 가장 간단한 순차회로이다. 여기서 S(set)는 출력 1을, R(reset)은 출력 0으로 되도록 한다는 의미이다. NOR 논리 게이트를 교차 되먹임 입력을 통해 만들어 진다. 저장된 현재 상태출력은 Q로 표시한다.

S과 R 입력이 모두 0이면, Q와 Q 출력 상태가 되먹임(feedback) 입력되어 이전상태가 유지된다. 만약 S (Set)가 H이고, R (Reset)이 L이면, 출력 Q는 H로 된다. 만약 R이 H이고 S가 L로 입력되면, 출력 Q는 L 상태가 된다.

SR 래치 동작[1]특성표여기표

S R Qnext 동작 Q Qnext S R
0 0 Q 상태유지 0 0 0 X
0 1 0 reset 0 1 1 0
1 0 1 set 1 0 0 1
1 1 X 사용제한 1 1 X 0

 

 

즉 Set, Reset 제어는 이런 복잡하고 알기도 싫은 귀찮은 논리회로를 코일 한방으로 해결할 수 있도록 해준

 

아주 고마운 회로인 것이죠.

 

여기까지 정리해볼게요

 

SET 코일은 통전이 되는경우 즉시 자기유지상태이며 RESET 코일에 통전이 되면 자기유지가 해제된다.

 

그럼 XG-5000에서는 SET 코일과 RESET 코일을 어떻게 표현할까요?

 

아래 그림을 참조해주세요

 

하단메뉴에 형광펜이 쳐져있는 부분입니다.

 

Set 코일의 단축키는 Shift + F3

Reset 코일의 단축키는 Shift + F4

 

입니다.

 

 

자기유지회로를 Set, Reset으로 바꿔주면 래더가 어떻게 변화하는지 간단한 예제를 봅시다.

 

위 회로에서 P0를 누르면 코일이 자기유지회로처럼 별도의 병렬 a접점없이 자기가 유지되는 것을

 

확인할 수 있어요.

 

이렇듯 SET이 편리하기도 하지만 자기유지를 해제하기 위해서 리셋코일 명령을 꼭 주어야 합니다.

 

이것에 익숙하지 않는 사람들은 프로그래밍이 꼬여버리게 됩니다.

 

 

두 가지 자기유지 방법중 편한것을 사용하시면 됩니다.

 

한 가지 참고사항을 말씀드리면

 

Set, Reset도 마찬가지로 펄스 접점을 사용하여 신호를 주는것을 추천드립니다.

 

 

간단한 프로그램에서는 펄스접점을 주지 않아도 동작에는 전혀 문제가 없을겁니다.

 

하지만 로직이 복잡해지고 래더간 연관성이 짙어지는 경우 1스캔 주기동안만 신호를 인가할 것이냐

(펄스로 신호를 주는경우 PLC가 회로를 1번 스캐닝 할때에 한해 ON)

 

혹은 여러스캔동안 신호를 살릴 것이냐가 아주 큰 관건입니다.

 

펄스로 신호를 주냐 단순 접점으로 신호를 주냐에 따라서 얘기치 못한 오류를 초래할 수 있습니다.

 

후한을 없애기 위해서 단순접점이 아닌 펄스로 신호를 주는것을 추천드립니다.

 

왜 그래야만 하냐고 물어보면 저도 사실은 딱집어서 설명은 못하겟습니다...

 

하지만 실제로 업무를 하면서 펄스 접점을 주었을때 확실히 디버깅 에러가 줄더군요.

 

참고바랍니다.

 

 

이번주 이론은 이게 끝입니다.

 

 

지난주는 빡시게 달렸으니까 이번주는 이개념만 꽉잡고 Quest로 실력을 쌓아봅시다.

 

Quest1.

 

 

P0은 시작버튼, P1은 중지버튼입니다.

 

위 시퀀스에 맞게 동작하는 회로를 Set, Reset 회로를 사용하여 구성해보세요.

 

완성된 레더는 다음과 같습니다.

 

 

바로 결과모습으로 넘어가요. 별거없네요.

 

궁금한거 있으시면 댓글 달아주세요.

 

다음은 시뮬레이션 결과창입니다.

 

P0를 누르면 계속 램프가 1초 단위로 꺼졌다 켜졌다하면서 반복되는 것을

 

확인할 수 있어요.

 

 

Quest2.

 

일끝나고 엘리베이터를 타고 퇴근중 입니다.

 

1층은 3m 높이이며 권상기(상승방향-P20, 하강방향-P21)은 초속 1.5m를 이동합니다 엘리베이터의 높이는 3m입니다.

 

 

호출버튼은 다음과 같습니다

 

1층 P1

2층 P2

3층 P3

4층 P4

5층 P5

 

엘리베이터는 스스로 층수를 기억하기 위해 각층마다 설치된 램프가 켜져있는 수를 인식합니다.

 

1층에는 P11

2층에는 P12

3층에는 P13 

4층에는 P14

5층에는 P15

 

현재 엘리베이터가 2층에 있다면 엘리베이터가 센서를 통해 도그를 감지하여 P12 램프가 점등되어 있겠죠

 

엘리베이터가 현재위치를 인식하여 호출버튼을 눌렀을때 각층으로 이동하는 로직을 짜보세요..

 

완성된 레더는 아래와 같습니다

 

위의 시뮬레이션을 상상실험을 하는데에는 다소 무리가 따릅니다.

 

그래도 한번 노력해보자구요. 머리속으로 상상해보는 겁니다.

 

각층수를 감지하는 램프는 시뮬레이션시 수동으로 우리가 눌러줄거에요.

 

램프가 눌리는 수만큼 엘리베이터는 해당위치에 존재하고 있다고 가정하고 말이죠. 

 

실제로 시뮬레이션을 돌려보죠

 

5층에 있는 사람A가 2층에 있는 엘리베이터를 호출하기 위해 P5를 눌렀다고 가정해봅시다.

 

그럼 권상기인 P20은 2층에서 5층으로 이동하기 위해 총 P20이 6초동안 회전해야 하는 것이네요?

 

즉 바꿔말하면 타이머 6초동안 권상기가 회전하다가 멈춰야 된다는 것이에요.

 

1초에 권상기가 1.5m를 가니까요.

 

먼저 엘리베이터의 현위치를 인식시켜주기 위하여 P12버튼을 눌러준 상태를 만들어봅시다.

 

, 이상태에서 P5가 눌리면 P20이 6초동안 회전해야하는 것입니다.

 

실제 엘리베이터는 이것보다 훨씬더 고급 로직에 의하여 움직이게 됩니다. 

 

위에서 예를들었던 Lamp대신 Dog라는 놈을 승강로 가이드 각층에 설치해놓고 말굽센서로 인식하여

 

위치를 제어하기도 하고

 

절대위치센서나 Absolute 엔코더를 사용하여 위치를 인식하기도 합니다.

 

위는 한가지 예를 든것에 지나지 않아요.

 

그림이 잘안보여서 첨부파일을 넣을게요 참고해보세요~

SET_RESET QUEST2.pdf
0.11MB

 

Quest3.

 

보행자용 신호등이 있어요.

 

램프는 P20(초록불), P21(빨간불) 두 종류가 있습니다.

 

기본적으로 P20(초록불)은 20초동안 점등되며 P21(빨간불)은 30초동안 점등됩니다.

 

다만, P20(초록불)은 총 20초중 15초 동안은 완전 점등해있고 나머지 5초가 남았을때에는 1초 간격으로 점등합니다. 

 

 

이 문제를 SET, RESET 개념으로 해결해보세요.

 

지난주보다는 내용이 쉽죠?(!)??

 

완성된 래더를 보여드릴게요.

 

 

시뮬레이션도 바로 돌려봅시다.

 

문제에 의한 시퀀스대로 동작하면 성공입니다.

 

 

이번주부터는 태풍이 올라온다고 합니다.

 

근무중 멘탈과 같이 날라가지 않도록 정신꼭 붙들어 맵시다.

 

독자여러분 이번주도 수고하셨습니다.

 

다음주에 다시돌아올게요

 

 

 

 

 

 

반응형
블로그 이미지

Lubly0104

전기설계 엔지니어가 알려주는 찐전기

,
반응형

안녕하세요 

 

공돌이 직딩입니다. 

 

이 한주간 날씨가 무더워 일하는데 너무 힘이 들었어요..

 

모쪼록 건강 유의하시기 바랍니다.

 

이번 시간에는 타이머라는 놈에 대해서 공부해보도록 할껀데요.

 

타이머(Timer)라는 이름에서도 이 소자가 어떤 역할을 하는지 감을 잡으실꺼에요.

 

한마디로 타이머는 스위치 접점이 열리거나 닫히는 시간을 딜레이 시켜줍니다.

 

요렇게 생겼어요.

 

태엽을 감는것처럼 해당 타임대로 원판을 돌려 세팅하면 시간이 지남에 따라서 시계의 초침이 흐르듯 움직이면서 

 

0이 되면 스위치가 붙거나 떨어져요.

 

더 자세히 이해하기 위해서 타이머의 내부 회로에 대해서 공부해볼까요

 

 

보시다시피 타이머의 2번 7번은 AC220[V] 전원이 들어갑니다.

 

8번은 Common(공통선), 5번은 b접, 6번은 a접이네요.

 

하지만 뭔가 특이한 것이 보입니다. 

 

우리가 기존에 알던 스위치 모양은 삼각형 표시가 없었는데 스위치 위에 갑자기 삼각형 모양이 추가가 됬어요.

 

간략히 설명드리면...

 

타이머에 전원이 인가되면(2, 7번 핀을 통전시키면) 전자기적인 힘을 발생시켜서

 

일정 시간이 흐른뒤에 b접(분홍, 파랑)을 떨구고 a접(분홍, 연두)를 붙인다 입니다.

 

좀 이상한것이 보이네요. 1, 3번을 보시면 a접점이 존재하네요.

 

a접점은 어디에다 써먹으라고 존재하는 것일까요??

 

아래와 같은 회로를 봅시다.

 

 

타이머에 a접점이 없는 상태라고 가정해볼게요.

 

위 회로를 우리가 실제로 회로를 구성하다 보면 자기유지 회로를 만들기 위해서 릴레이를 사용해야 할거에요.

 

왜냐? 일반적으로 타이머라는 놈은 전원이 끊기면 제 역할을 할 수 없거든요.

 

때문에 타이머 자체에 자기유지 기능이 필요합니다.

 

자기유지를 타이머 스스로 할 수 없다보니 릴레이를 사용해야만 합니다.

 

코딩을 하는 사람에게는 단순히 레더상으로 접점을 추가시키면 되는 문제이지만

 

하드웨어를 구성하는 사람에게는 타이머 뿐만 아니라 릴레이를 쌍으로 구매해야 하는 문제가 생겨버리는 거죠.

 

하지만 우리는 돈이 없어요.... 늘 언제나 그랬던것 처럼요

 

타이머 쓰겠다고 릴레이까지 사야하는건 너무 아깝다는거죠.

 

하지만 여러분... 타이머에 a접점이 있다면 어떨까요?

 

타이머 자체가 스스로 자기유지 기능을 할 수 있다면요?

 

자 이쯤되면 눈치 채셨을꺼죠.

 

타이머에 a접점은 별도로 릴레이를 구매하지 않고도 자기유지 역할을 가능토록 합니다.

 

그래서 타이머에 a접점이 있는거지요.

 

 

타이머의 종류를 알아볼까요.

 

1.모터식 타이머

값싼 가격 때문에 실제로 많이 사용되고 있는 타이머에요. 위에서 이미 언급했듯이 태엽처럼 시간을 돌려 제한시간을

 

세팅하고 0이 되면 접점이 붙거나 떨어지는 타이머에요.

 

2.전자식 타이머

간단히 말하죠. 비싸고 기능이 훨씬 더 고급적이에요. 끝.

 

3.제동식 타이머

 

[사진을 찾아봐도 사진이 없네요...]

 

타이머 내부에 접점이 붙는 것을 방해하는 매개체를 넣죠. 공기나 기름같은 것들이요.

 

방해하는 매개물로써 접점이 붙는 시간을 지연시키는 방식으로 타이머 기능을 하게 됩니다.

 

정밀도가 떨어지는 단점등이 있겠네요...

 

산업현장에서 실제로 본적은 없습니다.

 

 

타이머 출력접점 제어 방식에 따른 종류는 다음과 같은 것들이 존재합니다.

 

1.동작시에 시간지연이 있는 것(On Delay)

 

동작시에 지연이 있다는 것의 의미는 입력신호가 들어오고 설정시간이 지난 후 접점이 동작하게 되는 것이에요.

 

2.복귀시에 시간지연이 있는 것(Off Delay)

 

마찬가지로 복귀시 지연이 있다는 것은 입력신호가 차단된 뒤에 접점이 설정된 시간뒤 원상복귀 된다는 것이구요.

 

 

이런 특징을 이용한 3가지 타이머가 있는데 잠깐 소개해보도록 할게요.

 

(1) 한시동작 순시복귀형

 

입력 신호가 들어오고 설정시간이 지난 후 접점이 동작하게 됩니다.

 

다만 입력 신호 차단시에 접점이 바로 원상복귀 됩니다. (실제 PLC 래더 코딩에 가장 많이 쓰입니다.)

 

(2) 순시동작 한시복귀형

 

입력 신호가 인가되는 즉시 접점이 반응 합니다.

 

하지만 입력 신호 차단에도 불구하고 접점이 설정시간 셋팅 후 복귀되는 특징을 가지고 있어요.

 

(3) 한시동작 한시복귀형

 

위 2가지를 짬뽕시켜 놓은 거에요.

 

입력 신호가 인가되었을때도 느릿느릿... 입력 신호가 차단되었을때 복귀도 느릿느릿....

 

답답합니다. 다른분야에서 이것을 쓰는지 모르겠으나.. 저는 써본적 없습니다.

 

자... 이제 타이머에 대해서 어느정도 배경지식이 들어갔으니 실제로 래더를 짜봐야겠죠.

 

Quest 1에서는 XG-5000에서 타이머 회로를 어떻게 짤 수 있는지를 공부해봅시다.

 

Quest1

스위치 PB1을 누르면 L1은 점등되다가 3초 이후에 꺼지고 L2는 3초 이후에 점등되는 회로를

 

한번 구현해보도록 하겠습니다.

 

완성된 회로는 아래와 같아요.

 

 

위 회로를 아래 설명과 대조하여 몸으로 익혀보세요. 

 

제가 100을 설명하지 않을겁니다.

 

실제로 어떻게 래더로 구성되는지를 본인이 깨우치는 것이 더 빨라요.

 

저는 가이드를 잡아드릴게요.

 

Timer 회로는 어떻게 구현할까요?

 

먼저 좌측의 창을 봐보세요

 

 

XG-5000에서는 타이머와 관련된 릴레이 기호에 T+숫자를 부여하여 사용하고 있네요.

 

 

보시듯이 스케일이 나와있죠.

 

1Mili Second는 1/1000초를 나타내는 것 정도는 아시리라 봅니다.

(즉, 1000ms = 1초인 것이죠.)

 

타이머 경계치 붉은박스를 보니 종류 시작 끝이라는 말이 있죠!???

 

종류는 느낌상 타이머의 스케일을 이야기하는 것 같죠?

 

네... 맞습니다. 종류는 시간을 몇 초 단위로 셀 것인가를 이야기 하는 것이에요.

 

자 우리는 어떻게 스케일 단위를 사용할 것인지는 결정했어요.

 

이제 저장 공간에 대해서 이야기를 하려고 해요.

 

이해가 좀 어려울 수 있으나 최대한 쉽게 설명을 드려보도록 하겠습니다.

 

우측 붉은 박스를 보실까요

 

왼쪽 붉은 박스에서 정의했던 내용이 보다 상세하게 적혀있음을 확인할 수 있어요

 

결론부터 말씀드리면,

 

T0부터 T499라는 공간은 0.1초의 스케일을 사용한다.

T500부터 T999라는 공간은 0.01초의 스케일을 사용한다.

T1000부터 T1023이라는 공간은 0.001초의 스케일을 사용한다. 

 

정도로 이해하면 됩니다.

 

즉........

 

시작 주소와 끝 주소는 PLC를 만드는 회사에서

 

사용하는 레지스터 공간별로 의미를 부여한 것이라고 이해하시면 됩니다.

 

LS산전은 T0부터 T499라는 메모리를 사용했을때 0.1초의 스케일을 사용하여 시간을 측정한다고 정의해놨네요.

 

0.1초 스케일도 보이고, 0.01초 스케일도 보이네요.

 

0.01초 스케일을 쓴다면 0.1초 스케일보다는 정밀한 측정이 가능하겠지만 속도는 느려질 수 있겟네요.

 

이렇게 쪼개는 문제에 대해서 정의 하는 것을 분해능이라고 표현하기도 합니다.

 

얼마나 정밀하게 값을 쪼갤 수 있는가에 대한 지표인 것이죠.

 

자 우리는 3초를 만들겁니다.

 

어떻게 만들어야 할까요. 

 

0.1초 스케일에 해당하는 릴레이를 먼저 골라봅시다

 

T000~T501 총 500개의 공간은 0.1초 스케일을 가지고 있다고 하네요.

 

0.1초씩 숫자를 셀 수 있으니까 30번을 세면 3초가 되는 거네요

 

직관적으로 다음과 같은 결론을 얻을 수 있어요.

 

"T0는 0.1초 스케일이니까, 여기에 30을 곱하면 3초라는 의미가 될 수 있겠네"

 

(0.01초라면 300을 곱해주어야겠죠.)

 

이제 F10을 눌러보세요

 

 

F10은 명령어를 입력하는 창입니다

 

[TON T0 30] 를 입력해주세요

 

 

의미를 알아봅시다.

 

Ton -> On Delay 타이머, 

( 참고 Toff: Off Delay 타이머

        TMR: 적산타이머로서 전기를 차단하여도 시간을 저장하고 있는 특성을 가짐

        TMON: 전기시그널의 펄스에 의해 동작

        TRTG: TMON과 비슷하나 2번째 펄스 인가시 타이머 리셋기능 )

 

참고에서 펄스에 관련한 내용은 이후에 자세히 포스팅하겠습니다.

 

T0-> 0.1초 스케일 타이머 사용

 

30-> 0.1*30 = 총 3초

 

정리하면, '한시동작 타이머이며 0.1초 스케일을 30번 세겠다.' 입니다.

 

시뮬레이션을 돌려보죠

 

PB1을 눌렀을때 3초뒤애 L2가 점등되고 L1이 꺼지는걸 확인할 수 있나요?

 

Quest2

계단식 복도 아파트가 있어요. 어두운 저녁 집밖으로 문을 열고 나왔습니다.

 

천장에는 사람을 감지하는 센서 P0이 존재합니다.

 

사람이 접근하여 P0이 On되면 1초뒤 Lamp(P20)가 3초간 켜지고

 

사람이 센서의 범위에서 벗어나면(P0이 Off되면) 2초간 램프(P20)가 켜져 있다가 꺼지게 됩니다.

 

위 회로를 한번 고민해보세요.

 

( 별거 아닌것 같으시죠ㅎㅎㅎ 생각보다 까다로울 수 있습니다. 별거 아니네 하시는분은 이거 안보셔도 될듯합니다 ㅎㅎ)

 

결과 래더는 다음과 같습니다

 

 

바로 시뮬레이션을 돌려볼까요

 

 

P0을 눌렀을때 P20이 1초뒤 3초간 켜져있다가 꺼지나요?

 

 

 

또 P0를 뗏을때 2초간 P20이 켜져 있다가 꺼져있게 되나요?

 

만약 이렇게 된다면 성공입니다.

 

Quest3

 

컨베이어를 통하여 물건들이 움직이고 있습니다. P0 스위치에 의하여 공정은 시작되고 펀칭기(P20)은 10초마다 

 

컨베이어를 움직이는 물건을 분류하기 위해 모터를  구동하고 지시등 (P21)을 점멸합니다.

 

컨베이어는 P1에 의하여 공정 중지하고 근무시간이 지나고 다음날이 되었을때 다시

 

P0을 눌러 공정시작을 누르게 되는데 이때, 전날 작업량을 P20 기억하여 공정을 다시 재개합니다.

 

포인트는 전날 타이머가 6초에서 꺼졌다면, 다음날은 4초만 작업하고 P20이 작동해야 한다는 사실이에요.

 

고민해보세요.

 

저는 완성된 래더를 보여드릴게요.

 

 

시뮬레이션 바로 돌려볼까요.

 

P0을 누르고 P1을 눌렀다가 다시 P0를 10초가 되면 P21과 P20이 작동하고 있나요??

(포인트... P1을 누르면 타이머가 작동시간을 기억하고 있다는 것.)

 

 

P1을 눌러 공정을 중지해보죠

 

 

다시 P0을 눌러서 P20이 전에 했던 작업시간을 기억하여 이후에 작업을 진행하는지를 확인해보세요.

 

잘 동작하고 있나요?

 

좋습니다.

 

더 그럴듯한 회로를 그려보죠

 

10초만 동작하고 회로가 멈추는게 아니라 10초마다 계속 동작하는 회로를 그려보면 다음과 같아요.

 

처음보는 문구들이 생겼죠?

 

이거는 지금 당장 알필요는 없어요.

 

처음보는 문구에 대해서 다음에 설명할 겁니다.

 

위의 회로도 보완해야 할 점은 있어요.

 

시뮬레이션을 돌려보면 P20, P21이 켜져야 할것 같지만 실제로는  10초마다 켜지는 것을 확인할 수 없을겁니다.

 

이유는 간단해요. 워낙 XG-5000의 래더 리프레싱 동작이 빠르기 때문에 마치 안켜지는 것 처럼 보이는 것이죠.

 

실제로 공정에 사용하는 회로를 만들려면 또한 많은 부가 요소들을 생각하여 타이머 세팅시간을 결정해야 합니다.

 

기계류는 전기류와 같이 입력에 즉각 반응하는 것이 아니라 여러가지 요소로 딜레이 됩니다.

(관성에 의한 딜레이, 공기저항에 의한 딜레이, 마찰에 의한 딜레이 등등)

 

이런 딜레이 요소들을 계산하여 타이머 세팅값을 결정하는 것이 가장 이상적인 회로이겠죠.

 

하지만 우리는 아주 기초를 공부하고 있기 떄문에 이런 부분에 대해서는 언급을 지양하도록 하겠습니다

 

Quest4

오늘의 마지막 질문입니다!

 

자동문을 제어해볼겁니다.

 

P0 센서는 사람을 감지하는 센서입니다.

 

사람이 감지되면 모터A(P20)가 작동하여 문을 열어주고,

 

사람이 출입문을 지나가서 센서가 사람을 못 읽게 되면 모터B(P21)가 3초뒤 작동하여 문을 닫아줍니다.

 

자동문 최하단에는 Limit Swich가 존재하여 문이 한계점 위치를 벗어나지 않도록 한계를 정해줍니다.

(자동문이 모터에 의해 계속 동작하여 아예 밖으로 빠져버리면 안되니까)

 

모터A(P20) 방향의 끝단에는 리미트스위치A(P3)가

 

모터B(P21) 방향의 끝단에는 리미트스위치B(P2)가

 

서로 작동하여 모터가 더이상 구동하지 않도록 회로를 차단함과 동시에

 

3초간 문이 대기할 수 있도록 합니다.

 

사실 별거아닌데 말이 좀 어려울 수 있어요.

 

완성된 회로도는 다음과 같아요.

(20.6.4 회로 오류 수정 및 문제 수정)

 

 

 

 

 

시뮬레이션 돌려보죠.

 

자동문을 동작시키는데 다음 시나리오가 존재하겠죠.

 

   ->P0센서가 사람 감지후 P20이 동작하여 자동문을 정방향으로 움직여 줌.(사람을 계속 감지하고 있는상태) 

   ->P20이 동작하는 도중 리미트 스위치(P3)를 건드려서 P20 정지

   ->P3를 건드리게 되면 P20은 정지하고 타이머가 동작후 역방향 모터 P21이 작동 합니다.

      [단 사람이 감지되고 있는 경우 타이머는 동작하지 않고, 닫히고 있는 도중이라도 사람이

       감지되면 다시열려야 합니다.]

   ->3초후 P21방향으로 모터가 구동하게 되면 P3 리미트 스위치는 떨어지게 됨.

   ->P21 자동문을 닫는 방향으로 움직이다가 P2 리미트 스위치를 건드리고 자동문은 정지하게 됨

 

시뮬레이션 설명 추가(20.6.4)

 

P0센서 사람감지하여 자동문(P20 열리는방향)작동

 

사람이 여전히 감지되어있는 상태에서 리미트센서 P2를 건드리게 되면

자동문(P20 열리는 방향)정지하며 타이머는 동작하지 않음

 

그상태에서 사람이 빠지게 되면(P0가 떨어지면) 비로소 타이머가 동작하게됨

 

3초뒤 자동문(P21 역방향)이 작동됨과 동시에 리미트 스위치 P2는 떨어짐

그러다 P4를 만나면 정지.

 

 

모두 성공하셨나요.

 

시뮬레이션 그림을 일일히 열거하는것 보다 제가 써놓은 말대로 스위치를 눌러보면서 

 

어떻게 출력이 변화하는지를 꼼꼼히 살펴보시는게 의미가 있겠네요.

 

오늘은 퀘스트를 말로 설명하는게 다소 무리가 있었을 수 있을 것 같습니다.

 

 

 

너무 추상적으로 Quest가 나간것 아닌가 걱정이 드네요...

 

차차 필력도 늘리고... 백문의 불여일견이라죠...

 

시뮬레이션 말고 PLC도 구매? 해볼 마음만 가지고 있을게요...

 

그럼 오늘 포스팅은 이만 여기서 줄이도록 하고 다음시간에 찾아뵙도록 할게요.

 

즐거운 한주간 보내시기 바랍니다.

반응형

'PLC > PLC(XG-5000)' 카테고리의 다른 글

8. SET, RESET 제어의 개념과 응용  (0) 2019.07.17
7. Counter의 개념과 응용  (1) 2019.07.10
5. 인터록 회로의 개념과 응용  (4) 2019.06.26
4. On우선회로, Off 우선회로  (0) 2019.06.19
3. 자기유지회로  (2) 2019.06.12
블로그 이미지

Lubly0104

전기설계 엔지니어가 알려주는 찐전기

,