LS PLC로 Modbus 통신 프로그램을 만들다 보니까 한 가지 문제가 발생하였다. Modbus 통신을 사용하면 PLC에 모드버스 Bit영역과 Word영역을 설정해야 하고 PC에서 설정한 영역의 Bit영역에 Read, Write 요청을 보내야 하는데 문제는 PLC는 일반적인 16진수 체계와 다르다는 것이다. 10진수16진수PLC1599f9f160a0100161a1101 위 표처럼 주소가 있게 되는데 한마디로 PLC는 일의 자리 범위만 0~F이고 나머지 자릿수들은 0~9까지 사용한다. 예시로 M8206의 주소에 접근하고 싶다면 아래의 표처럼 변환을 해야한다.자릿수일반적인 16진수 변환PLC 주소 변환 코드66 * 1 = 66 * 1 = 600 * 16 = 00 * 16 = 022 * 256 = 5122 ..
개요 및 목표 이전에 PLC와 PC의 시리얼 통신과 이더넷 통신을 할 때 XGT전용 프로토콜을 사용하였다. 생각해 보니 XGT전용 프로토콜을 사용해서 프로그램을 만들게 되면 나중에 LS사의 PLC 말고 다른 PLC를 사용하게 되면 다시 통신 프로그램을 만들어야한다. 그래서 범용성이 높은 Modbus TCP/IP 통신을 하면 나중에 LS의 PLC말고 다른 PLC를 사용할 때 편리할 것 같아서 이번에는 Modbus TCP/IP 프로토콜을 사용하여 PLC와 PC의 통신을 해보려고 한다. 본문에는 파이썬으로 하는 간단한 통신 프로그램만 나와있지만 PLC - Web 방식으로 모니터링 프로그램을 만들 것이다. Modbus란? PLC와 통신에 사용할 목적으로 만들어졌으며 산업 자동화 분야에서 널리 사용되는 통신 프로..
안녕하세요. 저번시간에 이론으로 배운 이더넷 통신을 이번 시간에는 직접 코드를 통해 구현해 보고 LS산전 PLC의 프로토콜에 대해서 알아보는 시간을 가져보도록 하겠습니다. 이더넷 프로토콜 LS산전 홈페이지에 있는 이더넷 통신 설명서 중 일부를 발췌하여 작성하였습니다. 만약 직접 구현을 하거나 만드실때 제 코드를 따라서 해봐도 좋지만 PLC의 모델이 다르기 때문에 직접 설명서를 다운로드하여서 보시는 것을 추천드립니다. (무료입니다) 1. 프로토콜 개요 및 프레임 구조 여기서 눈여겨 봐야할 부분은 크게 4가지입니다. XGT 전용 통신은 TCP와 UDP 두 통신 방식으로 사용이 가능하다. XGT 전용 프로토콜의 개념과 기능 XGT 전용 프로토콜의 TCP/IP 통신방식은 2004번 포트를 사용한다. 프레임 ..
시리얼 통신의 다음 코스 이더넷 통신에 대해서 알아보고 직접 PLC와 PC통신을 잡아 보겠습니다. 물론 PLC와의 통신을 하는 원리를 이해하시면 PLC 뿐만 아니라 PC 간의 통신, 다른 장비들의 통신들도 하실 수 있습니다. 시리얼 통신에서 PLC가 무엇인지에 대해서 설명을 했기 때문에 다들 아실거라 생각하고 바로 이더넷 통신에 대해 알아보겠습니다. 미리 보기 위의 프로그램을 실행하면 제가 설정한 주기마다 자동으로 엑셀에 데이터가 차곡차곡 저장됩니다. 엑셀에 저장이 되므로 당연히 그래프로도 볼 수 있습니다. 미리 보기는 여기까지입니다. 그럼 이더넷 통신부터 차근차근 알아가 봅시다. 이더넷 통신 이더넷(Ethernet)은 컴퓨터 네트워크 기술의 하나로, 일반적으로 LAN, MAN 및 ..
저번 시간에 exe(실행파일)로 버튼을 누르면 PLC OUT 부분 led가 켜지는 것까지 알아봤습니다. 이번 시간에는 IN부분을 까지 만들어서 PLC IN, OUT 둘 다 exe 파일로 만들어 보겠습니다. 테스트용으로 만든 프로그램이라 실제 사용하려면 코드를 손보거나 추가해야하는 부분이 많습니다!! 참고용으로만 봐주시면 감사하겠습니다. 최종 결과물 구상하기 1. 저번 시간에 만든 코드에 IN 부분을 추가해야 합니다. 2. IN 부분의 작동원리 접속이라는 버튼을 누르면 PLC의 IN 부분의 LED가 켜져 있는 번호 그대로 화면에 나타내 주게 만들겠습니다. 한마디로 접속 버튼을 누르면 PLC의 상태를 미러링 하는 프로그램입니다. 3. IN 부분의 읽어오기 프로토콜을 알아야 합니다 IN 부분 ..
저번 시간에 만든 코드를 바탕으로 exe(실행파일)로 PC 프로그램에서 버튼을 누르면 PLC OUT 부분 LED가 켜지는 방식의 파일을 만들어 보겠습니다. 이번 시간 결과물 우선 파이썬에서 exe 파일을 만들어야 합니다. 간단하게 tkinter라는 Python 설치시 기본적으로 내장되어 있는 파이썬 표준 라이브러리를 이용해서 쉽고 간단한 GUI 프로그램을 만들어 보겠습니다. from tkinter import * root = Tk() # 코드 삽입 root.mainloop() 1. tkinter 모듈을 import 2. Tk 클래스 객체(root)를 생성 3. 이 객체의 mainloop() 메서드를 호출 mainloop()는 이벤트 메시지 루프로서 키보드나 마우스와 같은 다양한 이벤트로 부터 ..
PC에서 파이썬으로 PLC를 제어하여 하드웨어 기계제어를 하고 PLC로부터 데이터를 가져오고 보내는 프로그램을 만들어 보겠습니다. 우선 PLC와 시리얼 통신이 무엇인지 간단히 알아보겠습니다. (이미 알고 계신 분들은 넘어가셔도 좋습니다.) PLC란? Programmable Logic Controller의 줄임말로 주로 산업현장에서 기계를 제어할 때 많이 쓰이며, 산업 플랜트의 유지관리 및 자동 제어 및 모니터링에 사용하는 제어 장치입니다. PLC는 순차제어에 사용되는 대표적인 장치이며, 노이즈에 강하여 산업현장에서 신뢰할 수 있는 제어 장치 중 하나입니다. 주로 래더 다이어그램으로 프로그래밍되고 래더뿐만 아니라 ST, LI 등 을 사용해서 프로그래밍을 할 수 있습니다. 시리얼 통신이란? 다른 말로 직렬 ..