안녕하세요.
공돌이 직딩입니다.
지난주에는 포스팅이 너무길어서 이번주는 좀 쉬어가려고 합니다.
이번주는 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 엔코더를 사용하여 위치를 인식하기도 합니다.
위는 한가지 예를 든것에 지나지 않아요.
그림이 잘안보여서 첨부파일을 넣을게요 참고해보세요~
Quest3.
보행자용 신호등이 있어요.
램프는 P20(초록불), P21(빨간불) 두 종류가 있습니다.
기본적으로 P20(초록불)은 20초동안 점등되며 P21(빨간불)은 30초동안 점등됩니다.
다만, P20(초록불)은 총 20초중 15초 동안은 완전 점등해있고 나머지 5초가 남았을때에는 1초 간격으로 점등합니다.
이 문제를 SET, RESET 개념으로 해결해보세요.
지난주보다는 내용이 쉽죠?(!)??
완성된 래더를 보여드릴게요.
시뮬레이션도 바로 돌려봅시다.
문제에 의한 시퀀스대로 동작하면 성공입니다.
이번주부터는 태풍이 올라온다고 합니다.
근무중 멘탈과 같이 날라가지 않도록 정신꼭 붙들어 맵시다.
독자여러분 이번주도 수고하셨습니다.
다음주에 다시돌아올게요
'PLC > PLC(XG-5000)' 카테고리의 다른 글
10. 비교연산문, 조건문, 데이터 이동 명령어의 응용 (0) | 2019.07.31 |
---|---|
9. 비교연산문, 조건문, 데이터 이동 명령어의 개념 (4) | 2019.07.24 |
7. Counter의 개념과 응용 (1) | 2019.07.10 |
6. 타이머의 개념과 응용 (5) | 2019.07.03 |
5. 인터록 회로의 개념과 응용 (4) | 2019.06.26 |