안녕하세요?


이번 포스팅에서는 지난주 목요일에 있었던 미쯔비스PLC와 더불어서 양대 산맥이라고 해야 하려나요? LS산전의 PLC를 다루는 프로그램 중에 래더 프로그램을 짜는 XG5000과 터치의 인터페이스 디자인을 담당하는 XB builder를 가지고서 실습을 하였는 내용을 올리고자 합니다.



먼저 플립플롭(FilpFlop)회로를 이용해서 계단 전등을 소등/점등하는 회로를 만들었습니다. 여기서는 1층에서 불을 켜면, 계단등에 불이 들어오고, 2층에서 스위치를 누르면 계단등에 불이 꺼지는 회로입니다. 반대로 2층에서 누르면 다시 계단등에 불이 켜지고, 1층에서 누르면 계단등이 소등 되는 회로입니다.



다른건 다 괜찮은데 XB builder에서 작성한 디자인을 실제 XG5000의 시뮬레이터에 적용시키기 위해서는 위 스크린샷에 나와 있는 것처럼, 프로젝트 속성이라는 메뉴를 찾아서 XGT panel 설정이라는 것에 들어가 보도록 합니다. 여기서 PLC 시뮬레이터 이용이라는 하단의 체크박스를 눌러야 XG5000에서 실행중인 시뮬레이션과 XB builder에서는 시뮬레이션이 연동이 됩니다.



일단 래더프로그램 상에서는 제대로 완성이 되었다고 하기는 합니다. 그럼 이제 XB builder에서 작성한 내용을 가지고서 한번 연동해서 실험을 해 봐야만 합니다.



그런데 한가지 에러가 생겼습니다. 어디가 에러인가 했더니, 래더가 잘못된 것이 아니라 위 스크린샷에 나와 있는 것처럼 XB builder에서 작성된 스위치에 토글스위치 처럼 한 것이 잘못된 것이였습니다.



그래서 먼저 오류를 수정하도록 푸시 스위치처럼, 누를 때만 ON이 되도록 바꾸었습니다.



이제서야 제대로 작동이 되는 것을 확인할 수 있었습니다.




이번에는 2번째 과제를 수행하기 위한 래더를 작성하였습니다. 여기서는 P0라는 스위치 한개와 P20이라는 램프1개를 만들어서 P0스위치를 누르자 마자 램프가 켜지고, 램프가 켜진 상태에서 P0를 누르고 나서, 떼는 순간에 램프가 꺼지는 회로입니다. 여기서 중요한 것은 램프가 스위치를 눌르고 난 다음에 떼는 순간 꺼진다는 것입니다.



일차적으로 제가 의도한 대로 작동하는 것 까지는 확인할 수 있었습니다.



정답이 되는 회로에서는 Falling edge(하강엣지)에서 자기유지 회로의 요소를 빼서 사용을 했다는 것입니다. 즉, 그냥 falling edge만 만들어서 코일에 연결을 해 놓아도 제대로 작동을 한다는 것입니다.



앞으로 잘 기억해 두어야 하는 부분이며, 여기서 제 휴먼에러가 발생했다고 보면 됩니다.



3번째 과제가 나왔습니다. 여기서는 플립플롭회로를 이용해서 M1이 ON이면 자동, OFF일때 수동으로 들어가는데, 자동일 때는 P1 또는 P2를 누르면 P20이 켜지고, 둘다 누르면 P21이 켜지게 하는 것입니다. 그리고 수동일 때는 P1과 P2 둘다 ON이 될때 P20과 P21이 동시에 불이 켜지도록 회로를 만들면 됩니다. 그런데 래더를 만들다 보니, 어떻게 이중코일을만들고 말았습니다.



묘하게도 이 이중코일은 실제 출력인 P만이 아니라, M으로 시작하는 메모리 부분에서도 발생이 하였습니다. 그래서 메모리 영역의 코일은 아낌없이 사용을 해야 겠다는 생각이 들었습니다.



일단 이중코일은 벗어났는데, 문제는 자동일 때, P1과 P2가 둘다 켜지면, P20은 꺼져야 하기에 제 경우에는 저 위체이 M5에 의해서 작동을 하는 B접점을 집어 넣었습니다.




P0는 자동/수동을 조절할 수 있는 것이며, 나머지 스위치도 작성을 해 놓았습니다. 그리고 P20과 P21의 코일에 대응을 하는 램프도 설치를 하였습니다.



그런데 정답에서는 상당한 변화가 있었습니다. 이렇게 M5의 B접점같은 것을 쓰면 오류를 일으킬 확률이 높다면서, 서로의 B접점이 상대편을 끄는 식으로 디자인이 되어야 오작동을 일으킬 확률을 줄일 수 있다고 합니다.



다음은 타이머를 설치한 래더입니다. 여기서는 F10이라는 단축키로 응용 명령을 내려서 TON T0000 30이라고 입력을 하게 됩니다. 여기서 30이라는 숫자는 그 자체로 십진수로 인식이 되며, 3초 후에 ON이 되는 delay 타이머를 설치한다는 명령문이 되는 것입니다.



여기서 중요하니 다시 말하지만, 미쯔비시 PLC에서는 그냥 그대로 보여지는 시간이 1초 였다면, 여기서는 10당 1초로 취급하기 때문에, 30이라고 입력하면 3초 후에 타이머가 작동 하라는 의미가 됩니다.



실제로 XB builder에서 작성을 해서 시험을 해 보았더니, 3초 후에 램프에 불이 들어오는 것을 볼 수 있었습니다.



다음은 3번째 과제를 수행하기 위해서 만든 래더입니다. P0를 누르면 P20이 켜지고 나서 3초 뒤에 P21이 켜집니다. 다음에는 P22가 켜지도록 하는 래더를 작성한 것입니다.



그리고 나서 XB builder에서 제대로 작동하는 것까지 확인을 하였습니다. 그렇게 해서 타이머를 순차적으로 작동을 시키는 세번째 과제를 완성하는 데 성공하였으며, 다음으로는 플리커회로라는 것을 만들러 가 보도록 합니다. 이 회로는 다른 것 아니고, 일정 주기로 켜지고 꺼지는 것을 반복하는 회로입니다.




일단 래더 상에서 플리커 회로를 구성하는 데는 성공했습니다. 이 회로는 2초간 램프가 켜졌다가 1초간 램프가 꺼지기를 반복하는 회로입니다.



XB builder에서 제대로 작동하는 것을 볼 수 있었습니다.



또 다른 과제를 위해서 이번에는 2초간 램프가 켜지고, 1초간 꺼지기를 2번 반복했다가 5초간 꺼지고 다시 2초간 켜지고 1초간 꺼지기를 2번 반복하고 5초간 꺼지는 래더를 작성하였습니다. 작성하는 방법은 간단하게도 타이머를 4개 써서 작성을 하는 데 성공하였습니다. 먼저 2초간 켜지고 1초간 꺼지는 부분을 총 6초로 하는 부분으로 크게 하나 만들고, 다음에는 5초간 램프가 꺼지는 구간을 또 만들었습니다.



그래서 이제 재대로 작동하는 것을 볼 수 있었습니다.



목요일 수업의 마지막 과제입니다. 여기서는 6초 동안 2초간 램프가 켜지고, 1초간 꺼지는 구간, 그리고 5초 간 3초 램프가 켜지고, 2초간 램프가 꺼지는 구간으로 나뉘어 져 있습니다. 이렇게 해서 래더를 작성하는 데 성공했고, 실제로 XB builder에서 확인을 하고자 합니다.



제대로 작동하는 것을 확인할 수 있었습니다. 일단 미쯔비시 PLC인 래더를 다루는 GX works에 비해서 몇몇 단축키가 상당히 달라서 애를 먹었습니다. 대표적으로 시뮬레이션 중에 수정을 시작하기 위해서 Ctrl + Q를 누르고 쓰기 위해서는 Ctrl + W로 써줘야 하고 마지막에는 Ctrl + U로 종료해 주어야 한다는 것입니다.


이외에 사소하다면 사소하게 F3가 A접점이고 F4가 B접점이며, F6로 아랫쪽 회로 방향을 설정할 수 있고, F9번이 코일이며 F10이 펑션이라는 것이 차이가 있었습니다. 이 차이점은 두개의 프로그램을 번갈아 쓰면서 얼마나 익숙해 지느냐에 대한 일인것 같지만, 지금으로서는 많이 헷갈리기는 합니다.

+ Recent posts

티스토리 툴바