Innovate With Data

데이터로 더 큰 가치를 제공합니다.

공장 자동화/통신

PLC 데이터 읽고 쓰기 (2) - Rockwell A-B PLC (feat. pylogix)

데이터위자드 2022. 1. 19. 22:45
반응형

PLC 데이터 읽고 쓰기 (2) - Rockwell A-B PLC (feat. pylogix)

PLC를 PC와 연결하여 데이터 읽고 쓰기 2편 - Rockwell Automation ControlLogix PLC 연결

 

 안녕하세요? 데이터 위자드 시모입니다.

지난 시간에 알아본 PC와 미쯔비시 MELSEC PLC를 python 프로그램을 이용해 연결하고 데이터를 읽고 쓰는 방법에 이어서, 이번 포스팅에서는 Rockwell Automation ControlLogix PLC 혹은 MicroLogix PLC를 PC와 연결하여 데이터를 읽고 쓰는 방법에 대해서 알아보겠습니다. (CompactLogix는 확인해보진 못했으나 ControlLogix와 동일하게 적용될 것이라 예상됩니다.)

 

* MELSEC PLC 데이터 수집 관련 포스팅은 아래 링크를 참조하시기 바랍니다. 

PLC 데이터 읽고 쓰기 (1) - 미쓰비시 MELSEC PLC (Python pymcprotocol)

 

PLC 데이터 읽고 쓰기 (1) - 미쓰비시 MELSEC PLC (Python pymcprotocol)

PLC를 PC와 연결하여 데이터를 수집하는 방법  안녕하세요? 데이터 위자드 시모입니다. 이번 포스팅에서는 생산현장에서 사용하는 PLC에 PC를 연결하여 데이터를 읽고 쓰거나, 데이터 수집을 하는

datawizard.co.kr

 

 현업에서 자동화 설비의 유지보수나 개선 업무를 하고 있으신 분들이 라면

 

  1. OPC Server를 이용한 연결 (with 써드파티 프로그램)
  2. RS Linx와 FactoryTalk Historian 같은 PLC Maker에서 제공하는 전용 프로그램으로 연결
  3. Open source 프로그램이나 직접 개발한 프로그램으로 연결 

 

위 세 가지를 이용하실 텐데요.

 

오늘도 지난 1편과 마찬가지로 3번 Python Open Source 프로그램을 이용해서 직접 개발하여 데이터를 읽고 쓰는 방법을 알아보겠습니다.

 

* 본 포스팅에서 언급된 Python 패키지와 프로그램 예제는 본 포스팅 내용을 부연 설명하기 위해 예시로 든 것이며 연결하고자 하는 PLC나 디바이스와의 호환성 및 적합성 등은 사용자가 반드시 확인해야 합니다. 부적절하게 사용하여 발생되는 오류나 부주의로 발생되는 문제는 사용자 본인의 책임이며, 언급된 모듈이나 PLC 제조사는 필자와 무관함을 알립니다.

 

RSLinx에서 OPC Server를 지원하는데 굳이 직접 개발할 필요가 있을까?

 

이 질문에 대해서 저 역시 충분히 동의하는 부분이 있다고 생각되는데요.

 

 Rockwell Automation에서는 RSLinx라는 강력한 도구를 제공하여 주기 때문에 이것만 잘 활용한다면 충분히 엔지니어가 원하는 결과물을 얻을 수 있기 때문이죠. 따라서, 현업에서 더 익숙한 방법으로 PLC와 연결하여 사용자 입맛에 맞게 사용하면 되는 부분이라 사용자의 경험과 판단에 비추어 선택하시면 될 것으로 보입니다. 

 

그럼 본론으로 넘어가서 해당 파이썬 모듈의 설치와 그 PLC와 연결하는 예제를 설명하도록 하겠습니다.

 

Python pylogix 패키지를 다운로드하여 설치하고 PLC와 연결합니다.

 

준비사항으로 PLC와 PC를 연결할 LAN 케이블이나 무선공유기를 준비합니다. 그리고,

 

  1. 해당 PC와 A-B PLC를 적절하게 통신 케이블(ethernet)로 연결합니다.

  2. RSWho 프로그램을 이용한 PLC의 IP 주소와 Backplate 내 PLC Slot 번호를 확인합니다.

 

다음으로 PC에서 Python pylogix 모듈을 다운로드하여 설치합니다.


Python 모듈 설치 방법은 이전 포스팅은 참조하여 주십시오.

파이썬 (2) - PIP로 모듈 설치하기

 

파이썬 (2) - PIP로 모듈 설치하기

파이썬(Python) 모듈(라이브러리) 이야기 이전 포스팅에서 파이썬 설치에 대해서 정리하였습니다. (파이썬 설치에 대한 내용은 아래 링크를 참조하시기 바랍니다.) 파이썬 (1) - 파이썬 시작하기 파

datawizard.co.kr

 

 A-B PLC 연결 라이브러리 또한 많은 금손 프로그래머 분들이 미리 작성해 배포한 모듈이 많지만, 저는 pylogix 패키지로 연결하는 방법을 알아보겠습니다.

 

pylogix 패키지에 대한 자세한 내용은 아래 pypi 홈페이지에서 확인하시기 바랍니다.

 

https://pypi.org/project/pylogix/

 

pylogix

Read/Write Rockwell Automation Logix based PLC's

pypi.org

 

 마지막으로 사용자가 원하는 프로그램을 작성합니다.

 

 해당 패키지의 설치까지 완료되었다면, 사용자가 원하는 기능을 프로그래밍하시면 되겠습니다.

 관련하여, 공식 홈페이지의 예제를 아래에 공유드립니다. 프로그래밍 시 참조하여 주시기 바랍니다.

 

* PLC Tag 읽기 예제

from pylogix import PLC
with PLC() as comm:
    comm.IPAddress = '192.168.1.9'      # PLC 주소 입력
    ret = comm.Read('MyTagName')      #MyTagName 대신에 읽으려는 Tag 이름을 입력
    print(ret.TagName, ret.Value, ret.Status)

짧게 설명드리자면,

정상적으로 연결 밑 데이터 읽기에 성공하면, ret 변수에 TagName, Value, Status를 할당하게 됩니다.

그리고 할당된 데이터를 입맛에 맞게 잘 활용하면 되겠지요. 😀

 

* PLC Tag 쓰기 예제

from pylogix import PLC
comm = PLC()
comm.IPAddress = '192.168.1.9'
comm.Write('CurrentScreen', 10)
comm.Close()

 

마치며,

 

 이번 포스팅에서는 Python pylogix를 이용해서 Rockwell Automation PLC을 연결하고 데이터를 읽고 쓰는 파이썬 프로그램을 작성하는 방법에 대해서 알아보았습니다.

 

 제 경험상 sqlite나 CSV로 DB 화하여 머신러닝 분석에 활용하는 경우가 많다 보니 파이썬을 사용해서 하는 것이 오히려 편리하기 때문에 파이썬 모듈을 가져다 쓰는 경우가 많지만, 현업에서는 Rockwell에서 제공하는 RSLinx를 활용한 방법도 고려될 수 있으니, 원하는 목적을 달성하는데 더 나은 방법을 취사선택하시면 되겠습니다.

 

 글로만 설명하기에는 다소 난해한 부분이 있는바 메일이나 댓글로 문의하시면 도움드릴 수 있도록 하겠습니다.

 

생각보다 쉽진 않습니다. 하지만 활용은 무궁무진합니다.

 

* 본 포스팅에서 언급된 Python 패키지와 프로그램 예제는 본 포스팅 내용을 부연 설명하기 위해 예시로 든 것이며 연결하고자 하는 PLC나 디바이스와의 호환성 및 적합성 등은 사용자가 반드시 확인해야 합니다. 부적절하게 사용하여 발생되는 오류나 부주의로 발생되는 문제는 사용자 본인의 책임이며, 언급된 모듈이나 제조사와 필자는 무관함을 알립니다.

 

 

'💗' 도움이 되셨다면 공감 클릭 부탁드립니다. 감사합니다.

반응형