본문 바로가기
PLC 자동제어 학습/LS산전 PLC 수업

PLC를 이용해서 스탭모터의 제어실습-CiMon까지 연동해 보기

by 인터넷떠돌이 2018. 2. 27.
반응형

안녕하세요?


지난주 후반에는 공압 실린더로 프로젝트에 들어가서 포스팅 꺼리가 아직 나오지는 않았지만, 그래도 이번 주에 들어간 스탭모터의 제어에서는 이래저래 많은 부분을 신경써야만 했습니다. 아무튼 수업중에 있었던 내용 중에서 중요한 것을 이번 포스팅에서 이야기 하고자 합니다. 우선 PLC와 스탭모터 드라이버를 결선해야 하는데, 중간에 조그운전을 해서 제대로 작동을 하는 지를 알아보는 과정에서 PLC가 stop으로 되어 있어서 전혀 작동을 하지 못했는 휴먼에러가 있었습니다.



우선 IST라고 하는 간접기동 명령어에 대해서 소개를 하고자 합니다. 간단하게 스탭 번호를 입력하기만 하면, 해당하는 스탭부터 가동을 시작하는 것입니다.



그리고 이게 실질적으로 할 수 있는지를 알아보기 위한 래더 예시입니다. 일단 이렇게 예시로 나와 있는 래더 다이어그램도 있으니까, 실질적인 작업에 들어가도록 합니다.



일단 XG5000에서 위치결정 디바이스 설정에서 위 스크린샷처럼 스탭번호에 따라서 운전속도와 위치등을 설정해 주도록 합니다. 



그리고 위 스크린샷처럼 일련의 래더도 만들어 보았습니다.



그리고 실행중인 래더에서 D3에서 3이라는 값을 입력하도록 합니다.



그리고 K426이라는 현재 스탭모터의 스탭번호를 말해주는 메모리의 번지수에 4라는 숫자가 나와 있는 것을 확인하도록 합니다.


이번에는 D3에다가 1이라는 값을 입력하도록 합니다. 그러면 스탭모터는 1번 스탭의 위치로 간 다음에 에러가 났습니다.



그리고 왜인지 1번 스탭으로 갔을 터인데 이번에는 3이라는 숫자가 K426메모리 주소에 저장되어 있는 것을 볼 수 있었습니다.




그런데 K426에 있는 스탭번호는 직접 입력해도 절대 바꿀 수 없었습니다. 그래서 SNS라고 소셜네트워크 서비스가 아니라, 래더에서 스탭번호를 바꾸는 명령어가 따로 있습니다. 이 명령어를 사용해서, 스탭번호를 바꾼다음, K4290 비트 메모리 영역을 건드려서 가동을 시키면, 그 스탭번호의 위치로 갑니다.



그래서 이번에는 SNS라는 명령어를 입력한 다음, D2의 값을 2라고 두어서, 2번째 스탭으로 이동할 수 있도록 합니다. 그리고 나서 M3접점을 건드려서, 가동을 시켜, 실제로 2번째 스탭의 위치로 지정된 위치로 가는 것을 확인할 수 있었습니다.



실제로 K426의 값이 2로 바뀌는 것을 메모리 상에서는 확인을 할 수 있었으며, 실제로도 스탭모터가 움직이는 것을 확인할 수 있었습니다.



다음으로는 매뉴얼에 있는 내용입니다. 위에서 나와있는 IST를 이용하는 방법이 첫 번째, 그리고 SNS에 스탭번호를 바꾼 다음에 K4290접점을 건드리는 것으로 간접 기동을 하는 두번째 방법이 소개되어 있습니다.



이제 여기서 K4202라고 해서 위치결정이 완료되었다는 것을 알려주는 접점-한마디로 스탭모터가 움직이는 것이 완료가 되었다는 신호인데, 이게 오는 즉시, D0의 값을 증가하게 하고, IST로 간접기동을 하라는 래더를 작성하였는데, 문제는 이게 적용되어서 다음 스탭으로 가야 하는데, 제대로 적용이 되지 않는 상황이 벌어지는 것이였습니다.



일단 스탭을 만든 다음에, 여기다가 드웰 시간을 하나하나 지정을 하도록 합니다.



그리고 중요한 사실이 하나 있는데, 운전 패턴은 연속이나 계속이 아니라 종료로 해서 하나하나 작업이 되도록 해야 합니다.



일단 저는 스탭을 4개 작성했기 때문에 4를 초과하지 않도록 만들었고, 위 스크린샷과 같이 래더를 작성했습니다. 하지만 어디가 문제인지 잘 되지 않았다가.......




실제로는 INCP가 IST의 위에 있어야 했습니다. 왜냐하면 래더가 스캔을 하나 하면서 위에 있는 것부터 읽는데, 아랫쪽에 INCP가 있으면 이미 증가가 되고, 다음 스캔에서는 Rising edge인 K4202의 A접점은 이미 때려진 다음이니 아무런 반응도 하지 않는 다는 것입니다. 미묘하지만 아주 큰 차이로, 래더가 어디를 먼저 때리는 지를 항상 생각해야 했습니다.



이제 M코드에 대한 설명이 있습니다. 일단 이걸 설정해 두면, 드릴로 구멍을 뚫는 작업과 같이 작업이 하나 끝나고 나서 반드시 완료된 다음에 다음 스탭으로 넘어가야만 하는 작업의 경우에는 위 그림과 같이 M코드를 줘야 한다고 합니다. 이번 실습에는 after라는 것으로 주고서, M코드가 들어온 다음, 수작업으로 꺼주기 전까지는 절대로 다음 작업으로 넘어가지 않는다고 합니다.



일단 M코드를 사용하기 위해서 먼저 M코드 출력모드를 주어서, None이라고 되어 있는 것응ㄹ after로 바꾸어 줍니다. 여기서 With라는 것은 주로 용접과 같은 작업에서 사용이 된다고 합니다.



그리고 나서, 이번에는 M코드 항목에 이전에는 항상 0을 주었지만, 이번에는 각각 스탭별로 다른 M코드를 주도록 합니다.



이렇게 해서 M코드가 On이 되었음을 알려주는 K4203 접점이 On되면, P40번에 출력이 나오도록 래더를 짜서 직접 확인을 해 보았습니다. 실제로 불이 들어오는 것 까지는 확인을 할 수 있었습니다.



좀 더 구체적으로 대러르 작성해서 확인을 직접하였는데, 문제는 M코드는 off하라는 명령을 안 내려주면 계속해서 K4203이 ON되어 있습니다.



그래서 M코드를 해제시켜주는 명령어가 MOF인데, 이 명령어를 쓰면 현재 나와있는 M코드가 완전히 사라진다고 합니다. 그래서 래더를 작성해서 실제로 이러한지 확인에 들어가고자 합니다. 아 그리고 여기서 매뉴얼에 보시면 위 그림에서 Rising edge로 되어 있는데, 아무리 A접점을 준다고 해도 명령어 자체는 Rising edge로 작동을 한다고 합니다. 아무리 신호를 계속 주어서 딱 한번만 작동 한다고 합니다.



그래서 위 스크린샷에서 밑 줄친 부분과 같이 MOF부분을 추가해서 M코드를 강제로 OFF명령을 내리고자 합니다. 그리고 실제로 이 명령어가 내려져서 K428이 0이 되었는가 하면.....



실재로 초기화가 되어서 0이 되는 것을 볼 수 있었습니다. 그래서 이제 과제에 들어가는데, 첫번째 과제는 1,2,3 세게의 스탭이 있는데, 각각 M코드를 After로 둔 다음 1,2,3으로 둡니다. 그리고 1번 스탭의 위치로 움직인 다음에 P40은 3번 점등이 되고, 2번 스탭의 위치로 움직인 다음에는 P40은 5번 점등이 됩니다. 마지막으로 3번 스탭의 위치로 움직인 다음에는 7번 점등이 되도록 합니다.



이 경우에는 위 그림과 같이 K4203은 그저 M코드가 켜진 것 여부만 따졌지만, K428은 M코드의 내용까지 따지는 워드 디바이스 이기 때문에, K428을 지정해서, 현재의 M코드가 어떤지를 보고서 일일히 조건문을 제시하면 됩니다. 이렇게 각각의 스탭에 따라서 각각의 점등 조건이 걸리게 되는 것입니다.



그리고 마지막으로 중요한 것이, 바로 MOF입니다. 이게 왜 중요하냐 하면, M코드는 자동으로 해제가 되지 않으며, 이 M코드가 해제되지 않으면 다음 스탭으로 넘어갈 수 없습니다. 그래서 이런 식으로 강제로 M코드를 해제 시켜 주어야만 합니다. 이렇게 해서 첫번째 과제는 풀어 내는데 성공했습니다.




그리고 다음 과제를 부여받았는데, 다음 과제는 CiMon에서 수평 혹은 수직 끌기로 패널을 조작하면, 실제로 스탭모터가 움직이는 것으로 하는 것입니다. 내용은 간단한데, 실제로 이게 가능한가 하면..................



일단 위 스크린샷과 같이 간단하게 움직일 수 있도록 래더를 작성 하도록 합니다. 그리고 DST명령어도 Rising edge이기 때문에 부득이 하게 타이머를 주어서 언제나 깜빡 거리도록 만들어야만 했습니다.



일단 485로 연결을 했는데, 이게 잠시 시리얼 통신이라는 것을 잊어먹어서 잠깐 헤메기는 했습니다만, 그래도 이렇게 CiMon에서 I/O 디바이스 설정을 해 놓도록 했습니다.



그리고 아날로그 태그인 실태그를 하나 만드는데, 앞서 래더에서 설명한 D10의 값을 실제로 건드리는 실태그로 하도록 하며, 당연 이 실태그는........



CiMonX상에서 위 스크린샷에 보이는 것과 같은 조작 패널에 연동이 되도록 설계를 했습니다. 너무 값이 커지면 곤란하기에-스탭모터의 가동 허용 범위를 넘어가면 안되기에, 최대값을 주도록 하고, 초기값은 0으로 설정을 했습니다.



다소 시간차가 있기는 하지만, 그래도 CiMonX라는 PC상에서 조작을 하는 것만으로도 시리얼 통신으로 연결이 된 스탭모터가 제대로 동작을 하는 것을 볼 수 있습니다. 다만 시리얼 통신이 주고 받는 것이 많기 때문에 바로바로 실시간으로 처리는 되지 않지만, 그래도 이렇게 연동이 된다는 것이 신기합니다. 이제 다음 시간에는 이걸 스마트폰과도 연동시킬 것이라고 하는데, 그때는 어떻게 할지 모르겠습니다.



반응형