[카테고리:] PLC/Automation

PLC/자동제어 카테고리는 산업 자동화 현장에서 사용하는 PLC 제어, 전장 설계, 산업용 통신, 서보·모션, 제어반 제작과 관련된 실무 내용과 자동화 산업 현장 인사이트를 정리합니다. 현장 시운전과 유지보수 과정에서 자주 발생하는 문제, 전시회와 설비 트렌드에서 확인한 내용을 기준으로 작성합니다.

  • [실무] “포트 열어주세요” 들었을 때 바로 확인할 것들

    PLC 앞에서 이더넷 통신을 준비하다 보면 상대 PC나 상위 시스템 담당자로부터 “포트 열어주세요”라는 말을 듣는 경우가 있습니다. 처음에는 PLC 설정 문제인지, PC 방화벽 문제인지, 공유기 설정 문제인지 혼동하기 쉽습니다. 하지만 이 말의 핵심은 통신을 시작하기 전에 접속 방식, 포트 번호, 프로토콜, IP 주소를 서로 맞추자는 의미에 가깝습니다.

    포트를 연다는 말의 의미

    “포트를 열어주세요”라는 말은 상황에 따라 의미가 조금 다를 수 있습니다. PLC가 상대방 접속을 기다리는 구조일 수도 있고, PC 방화벽에서 특정 포트를 허용해야 하는 상황일 수도 있으며, 공유기나 네트워크 장비에서 포트 포워딩이 필요한 경우도 있습니다.

    PLC 현장에서 자주 만나는 의미는 다음과 같습니다.

    상대 프로그램이 PLC로 접속할 예정이므로, PLC 쪽에서 특정 포트 번호를 열어두고 대기해야 한다는 의미입니다.

    즉, PLC가 먼저 상대방 PC로 접속하는 것이 아니라, 상대방이 PLC로 들어올 수 있도록 PLC가 통신 대기 상태를 만들어 두는 구조입니다.

    이 구조를 이해하면 통신 설정 방향이 명확해집니다. PLC가 먼저 접속하는지, 상대방이 PLC로 접속하는지에 따라 Open Setting, 상대 IP 설정, 재접속 조건, 프로그램 처리 방식이 달라지기 때문입니다.

    먼저 접속 주체를 확인해야 한다

    이더넷 통신에서 가장 먼저 확인할 것은 누가 먼저 접속하는지입니다.

    PLC가 먼저 상대 PC나 서버로 접속하면 Active 방식에 가깝고, PLC가 포트를 열고 기다리면 Passive 방식에 가깝습니다. 미쓰비시 GX Works 설정에서는 Unpassive, Active, UDP, TCP 같은 표현이 함께 나오기 때문에 처음 보면 혼동하기 쉽습니다.

    구분의미
    PLC가 대기상대방이 PLC IP와 포트로 접속
    PLC가 접속PLC가 상대 IP와 포트로 먼저 접속
    TCP연결을 맺고 데이터 송수신
    UDP연결 절차 없이 데이터 송수신
    MC Protocol미쓰비시 표준 프로토콜 사용
    Socket사용자 정의 데이터 송수신 구조

    “포트 열어주세요”라는 요청을 받으면 바로 설정창을 열기보다 먼저 접속 주체를 확인해야 합니다.

    TCP인지 UDP인지 확인한다

    포트 번호를 정하기 전에 TCP인지 UDP인지 확인해야 합니다. 같은 포트 번호를 사용하더라도 TCP와 UDP는 통신 방식이 다릅니다.

    TCP는 연결을 맺은 뒤 데이터를 주고받는 방식입니다. 데이터 도착 여부와 연결 상태를 관리할 수 있어 상위 PC, 서버, 검사 장비, HMI 연동에서 많이 사용됩니다.

    UDP는 연결 절차 없이 데이터를 보내는 방식입니다. 구조는 단순하지만 상대가 받았는지 확인하는 절차가 약하므로, 장비 특성과 프로토콜 구조에 따라 사용 여부를 판단해야 합니다.

    구분TCPUDP
    연결 방식접속 후 송수신접속 절차 없이 송수신
    안정성상대적으로 높음구조가 단순함
    상태 관리연결 상태 확인 가능별도 상태 관리 필요
    사용 예PC 서버, HMI, 검사 장비단순 송수신, 일부 장비 전용 통신

    현장에서 별도 설명이 없다면 TCP를 사용하는 경우가 많지만, 반드시 상대 장비 또는 PC 프로그램 담당자에게 확인해야 합니다.

    Active와 Passive를 구분한다

    통신에서 Active와 Passive는 누가 먼저 접속하느냐의 문제입니다.

    PLC가 Active라면 PLC가 상대방 IP와 포트로 먼저 접속합니다. 이 경우 PLC 설정에는 상대 IP 주소와 상대 포트 번호가 정확히 들어가야 합니다.

    PLC가 Passive라면 PLC는 자기 포트를 열어두고 기다립니다. 상대방 PC나 장비가 PLC IP와 포트 번호로 접속합니다. 이 경우 PLC는 대기 포트 번호를 열어두는 설정이 중요합니다.

    구분PLC 역할확인할 항목
    ActivePLC가 먼저 접속상대 IP, 상대 포트, 재접속 조건
    PassivePLC가 접속 대기PLC IP, PLC 포트, 상대 접속 방식
    UDP연결 개념이 약함송신 대상 IP, 포트, 수신 포트
    TCP연결 상태 중요접속 주체, 포트 오픈, 연결 유지

    상대방이 “포트 열어주세요”라고 말했다면 보통 PLC가 Passive로 대기하는 구조일 가능성이 있습니다. 다만 현장마다 표현이 다를 수 있으므로 반드시 확인해야 합니다.

    프로토콜을 확인한다

    포트가 열려 있어도 프로토콜이 다르면 통신은 정상 처리되지 않습니다. 포트는 통신이 들어오는 문이고, 프로토콜은 그 문으로 들어온 데이터를 어떻게 해석할지 정하는 규칙입니다.

    미쓰비시 PLC 이더넷 통신에서는 다음과 같은 방식을 자주 봅니다.

    구분설명
    MC Protocol미쓰비시 PLC 디바이스를 읽고 쓰는 표준 방식
    Socket 통신사용자 정의 문자열 또는 바이너리 데이터 송수신
    전용 프로토콜장비 제조사에서 정한 형식 사용
    Modbus TCP일부 장비와 연동 시 사용
    ASCII 통신문자열 기반 장비와 연동 시 사용

    예를 들어 상대 PC가 MC Protocol로 D 영역을 읽으려는 것인지, 아니면 PLC가 Socket으로 특정 문자열을 주고받아야 하는지에 따라 설정과 로직이 완전히 달라집니다.

    따라서 포트 번호만 맞추면 끝난다고 보면 안 됩니다. 포트, 접속 방식, 프로토콜, 데이터 형식을 함께 맞춰야 합니다.

    IP 주소를 먼저 고정한다

    이더넷 통신에서는 PLC IP와 상대 장비 IP를 명확히 정해야 합니다.

    PLC가 서버처럼 대기하는 구조라면 상대방은 PLC IP로 접속합니다. 이때 PLC IP가 DHCP처럼 변할 수 있는 구조라면 통신이 불안정해질 수 있습니다. 현장 설비에서는 일반적으로 PLC IP를 고정으로 사용하는 것이 관리에 유리합니다.

    확인할 항목은 다음과 같습니다.

    항목확인 내용
    PLC IPPLC에 설정된 고정 IP 확인
    상대 IPPC, 서버, 검사 장비 IP 확인
    서브넷 마스크같은 네트워크 대역인지 확인
    게이트웨이다른 네트워크 대역 통신 시 필요 여부 확인
    중복 IP같은 IP를 쓰는 장비가 없는지 확인

    통신이 안 될 때는 포트보다 먼저 ping이나 네트워크 연결 상태를 확인해야 하는 경우도 있습니다. 같은 대역에 있는지, IP 충돌이 없는지, 물리 링크가 살아 있는지 먼저 봐야 합니다.

    포트 번호는 10진수와 16진수를 구분한다

    PLC 설정에서 포트 번호를 입력할 때 10진수와 16진수 표기 때문에 문제가 생기는 경우가 있습니다.

    상대방이 “5000번 포트”라고 말했는데, PLC 설정창에서는 16진수 입력을 요구하는 경우가 있습니다. 이때 5000을 그대로 넣는지, 16진수로 변환해 넣어야 하는지 확인하지 않으면 포트가 맞지 않습니다.

    예를 들어 10진수 5000은 16진수로 1388입니다. 설정창 기준을 확인하지 않으면 상대는 5000번으로 접속하는데 PLC는 다른 포트를 열고 기다리는 상황이 될 수 있습니다.

    확인 항목설명
    상대가 준 포트 번호10진수 기준인지 확인
    PLC 설정창 입력 방식10진수 입력인지 16진수 입력인지 확인
    실제 오픈 포트PLC가 어떤 포트를 대기 중인지 확인
    방화벽 허용 포트PC 또는 네트워크 장비 설정과 일치하는지 확인

    포트 번호는 숫자 하나만 틀려도 통신이 되지 않습니다. 특히 10진수와 16진수 변환 여부는 반드시 확인해야 합니다.

    데이터 주소를 확인한다

    상대방이 PLC로 접속해서 데이터를 읽거나 쓰려면 어느 디바이스를 사용할지 정해야 합니다.

    예를 들어 D100부터 10워드를 읽을 것인지, M100부터 비트 상태를 볼 것인지, W 영역을 통신용으로 사용할 것인지 미리 합의해야 합니다.

    확인할 항목은 다음과 같습니다.

    항목예시
    읽기 영역D100~D199, M100~M199
    쓰기 영역D200~D299, M200~M299
    데이터 단위비트, 워드, 더블워드
    바이트 순서상위·하위 바이트 또는 워드 순서
    문자열 여부ASCII, 길이, 종료 문자
    쓰기 권한상대 장비가 PLC에 값을 써도 되는지

    읽기는 되는데 쓰기가 안 되는 경우에는 PLC 설정에서 온라인 변경, 쓰기 허용, 프로토콜 권한, 방화벽, 프로그램 인터락 조건을 함께 확인해야 합니다.

    GX Works에서 확인할 항목

    미쓰비시 PLC 기준으로 이더넷 통신을 준비할 때는 네트워크 파라미터와 Open Setting을 확인해야 합니다.

    프로젝트와 CPU 종류에 따라 메뉴명은 다를 수 있지만, 일반적으로 다음 항목을 확인합니다.

    항목확인 내용
    PLC IP 설정PLC 고정 IP와 서브넷 확인
    Open SettingTCP/UDP, Active/Passive 방식 확인
    ProtocolMC Protocol, Socket 등 확인
    Port No.포트 번호와 입력 진수 확인
    상대 IPActive 방식일 때 상대 IP 확인
    송수신 방식Send/Receive, Unpassive 등 의미 확인
    Write 허용상대 장비가 PLC에 쓰기 가능한지 확인
    설정 반영PLC Write 후 재기동 필요 여부 확인

    Open Setting 표는 처음 보면 어렵지만, 결국 어떤 방식으로 열고, 누가 접속하고, 어떤 프로토콜로 데이터를 주고받을지를 정리하는 화면입니다.

    상대방에게 먼저 물어볼 항목

    현장에서 통신 담당자와 말이 어긋나면 설정 시간이 길어집니다. 포트를 열어달라는 말을 들었을 때는 다음 항목을 먼저 확인하는 것이 좋습니다.

    질문이유
    TCP인가요, UDP인가요?통신 방식이 다르기 때문
    누가 먼저 접속하나요?Active/Passive 설정 결정
    사용할 프로토콜은 무엇인가요?MC Protocol인지 Socket인지 결정
    PLC가 대기하면 되나요?포트 오픈 구조 확인
    사용할 포트 번호는 몇 번인가요?Open Setting 입력값 결정
    포트 번호는 10진수 기준인가요?16진수 입력 실수 방지
    상대방 IP는 무엇인가요?Active 또는 방화벽 설정 확인
    어떤 PLC 주소를 읽고 쓰나요?데이터 맵 정리 필요

    이 질문을 먼저 던지면 설정창을 반복해서 수정하는 시간을 줄일 수 있습니다.

    PLC에서 준비할 항목

    상대방과 조건을 맞췄다면 PLC 쪽에서는 다음 항목을 준비합니다.

    준비 항목설명
    PLC IP고정 IP 설정
    포트 번호상대방과 합의한 포트로 설정
    Open SettingTCP/UDP, Active/Passive, Protocol 설정
    데이터 영역읽기·쓰기용 D, M, W 영역 정리
    쓰기 인터락외부에서 쓰는 값이 바로 출력으로 이어지지 않도록 관리
    상태 확인접속 상태, 수신 완료, 에러 상태 모니터링
    설정 반영PLC Write 및 필요 시 재기동

    특히 외부 장비가 PLC 값을 쓰는 구조라면, 그 값이 출력 조건에 바로 연결되지 않도록 중간 검증 로직을 두는 것이 좋습니다. 상위 PC에서 잘못된 값이 들어와도 설비가 바로 동작하지 않도록 제한값과 인터락을 두어야 합니다.

    방화벽과 네트워크 장비도 확인한다

    PLC 설정이 맞아도 PC 방화벽이나 네트워크 장비에서 포트가 막혀 있으면 통신이 되지 않을 수 있습니다.

    PLC가 Passive로 대기하고 PC가 접속하는 구조라면 PC 쪽 방화벽보다 PLC까지의 네트워크 경로가 중요합니다. 반대로 PLC가 PC 프로그램으로 접속해야 하는 구조라면 PC 방화벽에서 해당 포트를 허용해야 할 수 있습니다.

    확인할 항목은 다음과 같습니다.

    항목설명
    PC 방화벽PC가 서버 역할을 할 때 포트 허용 필요
    공유기·라우터다른 네트워크 대역이면 포트 포워딩 필요 여부 확인
    스위치 허브물리 링크와 VLAN 구성 확인
    보안 장비산업용 방화벽 또는 차단 정책 확인
    테스트 도구ping, telnet, 포트 스캐너 등으로 연결성 확인

    설비 내부망에서는 단순한 경우가 많지만, 공장 네트워크나 사무망과 연결될 때는 네트워크 보안 정책을 함께 확인해야 합니다.

    포트 오픈 요청을 받았을 때 점검 순서

    현장에서 바로 확인할 순서는 다음과 같습니다.

    순서확인 항목
    1PLC와 상대 장비 IP 확인
    2TCP인지 UDP인지 확인
    3누가 먼저 접속하는지 확인
    4MC Protocol인지 Socket인지 확인
    5사용할 포트 번호와 진수 확인
    6Open Setting에 조건 입력
    7읽기·쓰기 데이터 주소 확정
    8PLC Write 후 설정 반영
    9상대방 접속 시도 확인
    10접속 상태와 송수신 데이터 확인

    이 순서대로 확인하면 “포트를 열어달라”는 요청을 받았을 때 어디부터 봐야 할지 명확해집니다.

    포트 설정 정리

    “포트 열어주세요”라는 말은 단순히 설정창에서 숫자 하나를 넣으라는 뜻이 아닙니다. 통신 방식, 접속 주체, 프로토콜, IP 주소, 포트 번호, 데이터 주소를 서로 맞추자는 의미입니다.

    PLC가 대기하는 구조인지, PLC가 먼저 접속하는 구조인지에 따라 설정은 달라집니다. TCP와 UDP도 다르고, MC Protocol과 Socket 통신도 처리 방식이 다릅니다. 포트 번호는 10진수와 16진수 입력 방식까지 확인해야 합니다.

    현장에서 통신을 빠르게 붙이려면 설정부터 만지기보다 상대방에게 필요한 정보를 먼저 받아야 합니다. TCP/UDP, Active/Passive, 프로토콜, IP, 포트 번호, 데이터 주소가 정리되면 GX Works의 Open Setting에서 무엇을 넣어야 하는지 훨씬 명확해집니다.

    통신은 장비 성능보다 약속을 맞추는 과정이 먼저입니다. 포트와 접속 방식만 정확히 맞춰도 이더넷 통신 문제의 상당 부분은 빠르게 좁힐 수 있습니다.

  • [실무] PLC 통신 배선, 설정 이상없으면 이제 데이터 처리 단계입니다 버퍼 메모리부터 봅니다

    PLC 시리얼 통신에서 배선과 파라미터를 모두 맞췄는데도 데이터가 정상적으로 들어오지 않는 경우가 있습니다. 이때부터는 통신 모듈 안에 들어온 데이터를 PLC CPU가 어떻게 읽고, 어디에 저장하고, 언제 처리하는지를 확인해야 합니다. 통신 LED가 깜빡이는 것과 PLC 로직에서 데이터를 정상적으로 사용하는 것은 별개의 문제입니다.

    배선과 설정 다음은 데이터 처리다

    시리얼 통신 문제는 보통 배선, 파라미터, 데이터 처리 순서로 확인합니다.

    배선이 틀리면 신호가 오가지 않습니다. 파라미터가 틀리면 신호가 있어도 서로 해석하지 못합니다. 배선과 파라미터가 맞는데도 데이터가 이상하다면, 그다음은 수신 완료 조건, 버퍼 메모리, 데이터 이동 명령, 초기화 타이밍을 확인해야 합니다.

    통신 점검 순서를 간단히 정리하면 다음과 같습니다.

    구분핵심 확인주요 증상
    배선Tx/Rx, A/B, SG, 종단저항LED 무반응, 응답 없음
    파라미터Baud Rate, Parity, Data Bit, Stop BitLED는 움직이나 값 깨짐
    프로토콜MC, Modbus, Non-procedure, 국번응답 없음, 의미 없는 데이터
    데이터 처리수신 완료, 버퍼 읽기, 초기화일부 데이터만 수신, 이전 데이터 잔류
    로직 타이밍송신 후 수신 대기, 완료 후 리셋간헐적 통신, 데이터 누락

    본 글은 미쓰비시 PLC와 GX Works 환경에서 시리얼 통신 데이터를 처리할 때 자주 확인하는 항목을 실무 기준으로 정리한 내용입니다. 실제 명령어 이름, 버퍼 메모리 주소, 완료 비트, 에러 비트는 사용하는 CPU와 통신 모듈에 따라 달라질 수 있으므로 적용 전 해당 모듈 매뉴얼을 확인해야 합니다.

    버퍼 메모리는 통신 데이터가 머무는 영역이다

    통신 모듈은 외부 장비와 데이터를 주고받습니다. 하지만 외부에서 들어온 데이터가 곧바로 PLC의 D 영역에 자동으로 들어오는 것은 아닙니다.

    통신 모듈 내부에는 수신 데이터, 송신 데이터, 상태 정보, 에러 코드 등을 저장하는 영역이 있습니다. 이를 버퍼 메모리로 볼 수 있습니다.

    PLC CPU는 이 버퍼 메모리에 접근해 필요한 데이터를 가져오거나, 보낼 데이터를 넣어 통신 모듈이 송신하도록 만들어야 합니다.

    개념은 다음과 같습니다.

    구분의미
    수신 버퍼외부 장비에서 들어온 데이터가 임시로 저장되는 영역
    송신 버퍼외부 장비로 보낼 데이터가 준비되는 영역
    상태 버퍼수신 완료, 송신 완료, 에러 상태 등을 확인하는 영역
    CPU D 영역PLC 로직에서 실제로 사용하는 데이터 영역

    통신이 붙었다는 것은 신호가 오간다는 뜻이고, 데이터를 제대로 쓴다는 것은 버퍼와 D 영역 사이의 이동이 정확하다는 뜻입니다.

    FROM과 TO의 기본 개념

    미쓰비시 PLC에서 지능형 기능 모듈이나 통신 모듈의 버퍼 메모리에 접근할 때는 FROM, TO 계열 명령을 사용하는 경우가 있습니다.

    FROM은 모듈의 버퍼 메모리에서 데이터를 읽어 PLC CPU 쪽 디바이스로 가져오는 역할을 합니다. TO는 PLC CPU 쪽 데이터를 모듈의 버퍼 메모리로 쓰는 역할을 합니다.

    명령 개념역할
    FROM통신 모듈 버퍼에서 PLC D 영역으로 데이터 읽기
    TOPLC D 영역에서 통신 모듈 버퍼로 데이터 쓰기
    읽기 대상수신 데이터, 상태 정보, 에러 코드
    쓰기 대상송신 데이터, 명령 데이터, 제어 정보

    다만 모든 프로젝트에서 FROM/TO를 직접 다루는 것은 아닙니다. 사용하는 모듈, 라이브러리, 프로그램 방식에 따라 전용 명령어나 전용 펑션을 사용할 수도 있습니다.

    G.INPUT과 G.OUTPUT을 사용하는 경우

    프로젝트나 모듈 구성에 따라 G.INPUT, G.OUTPUT 같은 전용 명령어 또는 전용 펑션을 사용해 데이터를 처리하는 경우가 있습니다.

    일반적으로 G.OUTPUT은 송신 데이터를 외부 장비로 보내는 동작에 사용하고, G.INPUT은 수신된 데이터를 PLC 내부 디바이스로 가져오는 동작에 사용합니다.

    예를 들어 G.OUTPUT U0 D100 M10은 U0 모듈을 대상으로 D100부터 준비된 데이터를 송신하는 형태로 볼 수 있습니다. G.INPUT U0 D200 M20은 U0 모듈에서 수신된 데이터를 D200부터 저장하는 형태로 볼 수 있습니다.

    이 표현은 프로젝트 구성과 명령어 형식에 따라 달라질 수 있으므로, 실제 사용 시에는 해당 모듈의 명령어 형식과 인수 의미를 확인해야 합니다.

    송신과 수신은 조건을 나누어야 한다

    통신 로직에서 자주 발생하는 문제는 송신과 수신을 무조건 상시 실행하는 구조입니다.

    상대 장비에 요청을 보내고, 상대 장비가 응답할 시간을 기다린 뒤, 수신 완료 신호가 들어왔을 때 데이터를 읽어야 합니다. 송신과 수신의 타이밍이 정리되지 않으면 아직 데이터가 다 들어오기 전에 읽거나, 이전 데이터를 다시 읽는 문제가 생길 수 있습니다.

    기본 흐름은 다음과 같습니다.

    단계처리 내용
    1송신 조건 발생
    2송신 데이터 준비
    3G.OUTPUT 또는 송신 명령 실행
    4송신 완료 확인
    5상대 장비 응답 대기
    6수신 완료 신호 확인
    7G.INPUT 또는 수신 명령 실행
    8수신 데이터 처리
    9완료 비트와 임시 데이터 정리

    이 흐름이 없으면 통신은 되는 것처럼 보여도 데이터가 깨지거나 누락될 수 있습니다.

    수신 완료 신호 기준으로 데이터를 읽어야 한다

    시리얼 통신은 데이터가 순차적으로 들어옵니다. 문자열 장비나 바코드 리더기처럼 여러 문자로 구성된 데이터를 받는 경우, 데이터가 한 번에 완성되어 들어오는 것이 아니라 문자 단위로 차례대로 들어옵니다.

    따라서 수신 도중에 데이터를 읽으면 절반만 들어온 문자열이나 이전 데이터가 섞인 값을 읽을 수 있습니다.

    수신 데이터는 반드시 수신 완료 신호를 기준으로 읽어야 합니다.

    상태처리 기준
    수신 대기수신 완료 비트가 ON될 때까지 대기
    수신 완료완료 비트 ON 시 데이터 읽기 실행
    데이터 처리D 영역으로 이동된 데이터 검사 또는 변환
    처리 완료완료 플래그 정리, 다음 수신 준비
    초기화필요 시 수신 버퍼 또는 임시 영역 정리

    수신 완료 조건 없이 SM400 같은 상시 ON 조건으로 계속 데이터를 읽으면, 아직 완성되지 않은 데이터를 가져올 가능성이 있습니다.

    데이터가 깨지는 원인

    통신 데이터가 깨지는 원인은 배선이나 파라미터만이 아닙니다. 데이터 처리 타이밍이 맞지 않아도 값이 깨질 수 있습니다.

    대표적인 원인은 다음과 같습니다.

    원인설명
    수신 중간에 읽음전체 데이터가 들어오기 전에 D 영역으로 이동
    수신 완료 비트 미확인완료 조건 없이 상시 읽기 실행
    이전 데이터 미초기화새 데이터와 이전 데이터가 섞임
    수신 길이 계산 오류실제 데이터 길이보다 짧거나 길게 읽음
    종료 문자 처리 오류CR, LF 등 종료 조건을 잘못 해석
    송수신 중복 실행응답 대기 중 다시 송신이 발생
    버퍼 오버런수신 데이터를 처리하기 전에 다음 데이터가 들어옴

    데이터가 깨질 때는 통신선이나 파라미터만 보지 말고, 수신 완료 비트와 데이터 읽기 타이밍을 반드시 확인해야 합니다.

    바코드 수신 로직의 기본 흐름

    바코드 리더기나 문자열 장비와 통신할 때는 수신 완료 기준의 흐름이 중요합니다.

    기본적인 수신 처리 흐름은 다음과 같이 구성할 수 있습니다.

    단계내용
    대기바코드 리딩 완료 또는 수신 완료 비트 대기
    수신완료 신호가 들어왔을 때 수신 데이터를 D 영역으로 이동
    검사수신 길이, 시작 문자, 종료 문자, 데이터 형식 확인
    변환ASCII 문자열을 숫자 또는 내부 코드로 변환
    판정기준 데이터와 비교해 OK/NG 판단
    초기화수신 완료 비트, 임시 버퍼, 요청 플래그 정리
    재대기다음 바코드 수신 준비

    이 구조에서 가장 중요한 것은 완료 신호가 들어온 한 번의 타이밍에 데이터를 읽고, 처리 후 다음 수신을 위해 상태를 정리하는 것입니다.

    상시 읽기보다 이벤트 기준 읽기가 안전하다

    수신 데이터를 상시로 읽는 구조는 단순해 보이지만, 실제로는 데이터 깨짐과 이전 값 잔류 문제를 만들 수 있습니다.

    반대로 수신 완료 신호, 송신 완료 신호, 에러 신호 같은 이벤트를 기준으로 처리하면 로직 흐름이 명확해집니다.

    방식특징
    상시 읽기구현은 단순하지만 수신 중간 데이터까지 읽을 수 있음
    완료 신호 기준 읽기데이터 완성 후 처리하므로 안정적
    타이머 지연 읽기보조적으로 사용할 수 있으나 완료 신호보다 불확실
    고정 길이 읽기데이터 길이가 항상 일정할 때 사용 가능
    종료 문자 기준 읽기CR, LF 등 종료 문자가 있는 문자열 통신에 적합

    시리얼 통신에서는 상대 장비가 데이터를 다 보냈다는 기준을 어떻게 잡을지가 중요합니다. 완료 비트, 수신 바이트 수, 종료 문자 조건 중 어떤 방식을 사용할지 정해야 합니다.

    수신 데이터 저장 영역을 분리한다

    통신 데이터를 처리할 때는 수신 원본 영역, 변환 영역, 판정 영역을 분리하는 것이 좋습니다.

    예를 들어 D200부터는 수신 원본 데이터, D300부터는 변환 후 숫자 데이터, D400부터는 판정 결과나 상위 전송 데이터처럼 나누어 관리할 수 있습니다.

    영역사용 목적
    수신 원본 영역통신 모듈에서 가져온 원본 데이터 저장
    임시 처리 영역문자 변환, 길이 계산, 비교 작업
    결과 영역OK/NG, 품번, 수량, 판정 코드 저장
    송신 영역상대 장비 또는 상위 장비로 보낼 데이터
    상태 영역수신 완료, 송신 완료, 에러 코드 관리

    한 D 영역을 수신, 변환, 표시, 송신에 모두 섞어 사용하면 데이터가 언제 바뀌었는지 추적하기 어렵습니다.

    송신 데이터도 완료 조건을 봐야 한다

    수신만 중요한 것이 아닙니다. 송신도 완료 조건을 확인해야 합니다.

    송신 명령을 실행한 뒤에는 송신 완료 비트나 에러 비트를 확인하고 다음 단계로 넘어가야 합니다. 송신 완료를 확인하지 않고 계속 송신 명령을 반복하면 상대 장비가 중복 명령을 받거나 통신 버퍼가 꼬일 수 있습니다.

    송신 로직에서 확인할 항목은 다음과 같습니다.

    확인 항목설명
    송신 요청어떤 조건에서 송신을 시작하는지 확인
    송신 데이터 준비보내기 전 데이터 영역이 완성되었는지 확인
    송신 실행상승엣지 또는 1회성 조건으로 실행되는지 확인
    송신 완료완료 비트가 들어왔는지 확인
    송신 에러타임아웃, 프레임 오류 등 확인
    다음 단계완료 후 수신 대기로 넘어가는지 확인

    통신 명령은 매 스캔 반복 실행하는 구조보다 요청, 실행, 완료, 정리 순서가 있는 상태 흐름으로 만드는 것이 안정적입니다.

    통신 로직에서 자주 발생하는 실수

    통신 데이터 처리 단계에서 자주 발생하는 실수는 다음과 같습니다.

    실수결과
    완료 신호 없이 G.INPUT 실행데이터 일부만 읽거나 이전 데이터와 섞임
    송신 명령을 매 스캔 실행중복 송신 또는 상대 장비 응답 혼선
    수신 버퍼 초기화 누락이전 데이터가 남아 새 데이터와 혼동
    수신 길이 확인 누락짧은 데이터나 비정상 데이터도 정상 처리
    에러 비트 확인 안 함통신 실패 상태를 정상으로 판단
    채널 또는 모듈 번호 착오다른 포트의 데이터만 확인
    D 영역 중복 사용수신값이 다른 로직에서 덮어써짐

    통신은 신호가 보이는 것만으로 정상이라고 판단하면 안 됩니다. 요청과 응답, 완료와 초기화가 순서대로 맞아야 합니다.

    통신 데이터 처리 체크리스트

    배선과 파라미터가 맞는데도 데이터가 정상적으로 처리되지 않을 때는 다음 항목을 확인합니다.

    점검 항목확인 내용
    모듈 번호G.INPUT/G.OUTPUT 또는 FROM/TO 대상 모듈이 맞는지
    채널실제 통신 채널과 로직에서 사용하는 채널이 일치하는지
    수신 완료완료 비트를 기준으로 데이터를 읽는지
    송신 완료송신 완료 후 다음 단계로 넘어가는지
    수신 길이실제 데이터 길이와 읽는 길이가 맞는지
    종료 조건CR, LF 또는 고정 길이 조건이 맞는지
    초기화처리 후 완료 비트와 임시 영역을 정리하는지
    에러 코드통신 에러 상태를 확인하고 분기하는지
    D 영역수신, 변환, 결과, 송신 영역이 분리되어 있는지
    실행 조건통신 명령이 매 스캔 중복 실행되지 않는지

    이 항목을 확인하면 통신이 붙었는데 데이터가 이상한 경우의 원인을 좁힐 수 있습니다.

    통신 데이터 처리 단계 정리

    RS232/RS485 통신은 배선과 파라미터를 맞추는 것에서 끝나지 않습니다. 통신 모듈 안에 들어온 데이터를 PLC CPU가 언제 읽고, 어디에 저장하고, 어떤 조건에서 처리하는지가 중요합니다.

    통신 모듈의 버퍼 메모리는 외부 장비와 CPU 사이에서 데이터를 임시로 보관하는 영역입니다. PLC는 FROM/TO 또는 G.INPUT/G.OUTPUT 같은 명령을 이용해 데이터를 읽고 써야 합니다. 실제 명령어와 버퍼 주소는 사용하는 모듈과 프로젝트 구성에 따라 달라질 수 있으므로 매뉴얼 기준으로 확인해야 합니다.

    데이터가 깨지는 가장 흔한 원인 중 하나는 수신 완료 전에 데이터를 읽는 것입니다. 시리얼 통신은 데이터가 순차적으로 들어오기 때문에 완료 비트, 수신 길이, 종료 문자 조건을 기준으로 데이터를 읽어야 합니다.

    송신 역시 요청, 실행, 완료, 에러 확인, 정리 순서로 구성해야 합니다. 통신 명령을 상시 실행하거나 수신 버퍼를 정리하지 않으면 중복 송신, 이전 데이터 잔류, 부분 수신 문제가 생길 수 있습니다.

    통신 LED가 깜빡인다면 이제부터는 로직 안에서 데이터가 어떻게 이동하는지를 봐야 합니다. 배선, 파라미터, 프로토콜을 확인한 뒤에는 버퍼 메모리와 수신 완료 신호 기준의 데이터 처리 구조를 점검하는 것이 다음 단계입니다.

  • [실무] PLC 통신 안 붙을 때 마지막 확인 GX Works 파라미터 설정 순서

    RS232/RS485 통신에서 배선과 상대 장비 설정을 확인했는데도 통신이 붙지 않는 경우가 있습니다. 이때는 GX Works의 PLC 파라미터와 통신 모듈 설정을 순서대로 확인해야 합니다. 특히 QJ71C24N 같은 시리얼 통신 모듈은 I/O 할당, 채널 설정, 통신 속도, 데이터 포맷, 프로토콜, 국번, 설정 반영 절차가 모두 맞아야 정상적으로 동작합니다.

    파라미터 설정 전에 먼저 확인할 항목

    통신 파라미터를 수정하기 전에 먼저 PLC가 통신 모듈을 정상적으로 인식하고 있는지 확인해야 합니다.

    GX Works2 기준으로는 Project 창에서 Parameter 항목을 열고 PLC Parameter로 들어간 뒤 I/O Assignment를 확인합니다. 여기서 장착된 통신 모듈이 실제 슬롯과 맞게 등록되어 있어야 합니다.

    I/O Assignment에서 확인할 항목은 다음과 같습니다.

    확인 항목설명
    모듈 장착 슬롯실제 베이스 슬롯 위치와 설정이 일치하는지 확인
    모듈 형식QJ71C24N 등 사용 중인 모듈 형식이 맞는지 확인
    X/Y 주소통신 모듈의 입출력 주소가 정상 할당되었는지 확인
    중복 주소다른 모듈과 주소가 겹치지 않는지 확인
    PLC Write 여부변경된 파라미터가 PLC에 전송되었는지 확인

    이 단계에서 모듈이 보이지 않거나 형식이 맞지 않으면 통신 설정을 아무리 맞춰도 정상 동작하기 어렵습니다. 먼저 하드웨어 장착 상태, 베이스 구성, I/O 할당부터 확인해야 합니다.

    실제 결선된 채널을 확인한다

    시리얼 통신 모듈은 CH1, CH2처럼 여러 채널을 가진 경우가 있습니다. 현장에서는 실제 배선은 CH2에 해놓고 설정은 CH1을 수정하는 실수가 자주 발생합니다.

    따라서 파라미터 설정 전에 실제 사용 채널을 먼저 확인해야 합니다.

    확인 항목설명
    실제 배선 포트RS232 포트인지, RS422/485 포트인지 확인
    설정 채널GX Works에서 수정하는 채널이 실제 결선 채널과 맞는지 확인
    상대 장비 연결상대 장비가 해당 채널에 연결되어 있는지 확인
    LED 상태SD/RD LED가 해당 채널에서 반응하는지 확인

    채널이 틀리면 설정값이 맞아도 통신은 되지 않습니다. 통신이 안 붙을 때는 파라미터 값보다 먼저 “내가 지금 맞는 채널을 설정하고 있는가”를 확인해야 합니다.

    Switch Setting에서 통신 조건을 맞춘다

    QJ71C24N 같은 통신 모듈에서는 Switch Setting 또는 통신 상세 설정에서 Baud Rate, Data Bit, Parity, Stop Bit, 통신 프로토콜 등을 설정합니다.

    이 값들은 PLC가 임의로 정하는 값이 아니라 상대 장비 매뉴얼에 있는 통신 조건과 동일하게 맞춰야 합니다.

    주요 설정 항목은 다음과 같습니다.

    설정 항목확인 내용
    Baud Rate9600, 19200, 38400 등 상대 장비 속도와 일치
    Data Bit7bit 또는 8bit 설정 확인
    ParityNone, Even, Odd 중 상대 장비와 일치
    Stop Bit1bit 또는 2bit 설정 확인
    통신 방식RS232, RS422, RS485 조건 확인
    프로토콜MC, Modbus RTU, Non-procedure 등 확인
    수신 종료 조건CR, LF, 고정 길이, 타임아웃 조건 확인

    시리얼 통신은 이 중 하나만 달라도 정상 응답을 받기 어렵습니다. 특히 Baud Rate와 Parity는 현장에서 자주 틀리는 항목입니다.

    Baud Rate는 상대 장비와 동일하게 맞춘다

    Baud Rate는 통신 속도입니다. 흔히 9600, 19200, 38400, 57600 같은 값을 사용합니다.

    속도는 빠를수록 좋은 값이 아닙니다. PLC와 상대 장비가 같은 속도로 데이터를 읽고 써야 하기 때문에 반드시 같은 값으로 설정해야 합니다.

    예를 들어 상대 장비 매뉴얼에 9600bps로 되어 있다면 PLC도 9600bps로 설정해야 합니다. PLC를 19200bps로 설정하면 신호 타이밍이 맞지 않아 통신이 정상적으로 성립하지 않습니다.

    노이즈가 많은 환경이나 통신선이 긴 경우에는 무조건 고속으로 설정하기보다 상대 장비 권장값과 현장 안정성을 함께 고려해야 합니다.

    Data Bit, Parity, Stop Bit를 그대로 복사한다

    Data Bit, Parity, Stop Bit는 데이터 형식을 맞추는 설정입니다.

    현장에서 자주 보는 조합은 다음과 같습니다.

    표기의미
    9600, 8, N, 19600bps, 8 Data Bit, No Parity, 1 Stop Bit
    19200, 8, E, 119200bps, 8 Data Bit, Even Parity, 1 Stop Bit
    38400, 7, E, 238400bps, 7 Data Bit, Even Parity, 2 Stop Bit

    이 값은 상대 장비 매뉴얼의 통신 조건을 그대로 맞추는 것이 원칙입니다. PLC 쪽에서 일반적으로 많이 쓰는 값이라고 해서 임의로 적용하면 안 됩니다.

    LED가 깜빡이는데 데이터가 깨지거나 값이 들어오지 않는 경우에는 Baud Rate뿐 아니라 Parity, Data Bit, Stop Bit 불일치를 함께 확인해야 합니다.

    통신 프로토콜을 확인한다

    통신 속도와 비트 설정이 맞아도 프로토콜이 다르면 통신은 정상적으로 처리되지 않습니다.

    프로토콜은 장비끼리 어떤 형식으로 데이터를 주고받을지 정하는 규칙입니다.

    프로토콜주요 사용 예
    MC 프로토콜미쓰비시 PLC와 PC, HMI, 상위 장비 연동
    Modbus RTU인버터, 온도조절계, 서보드라이브, 계측기
    Non-procedure바코드 스캐너, 계측기, 문자열 송수신 장비
    전용 프로토콜제조사별 별도 명령 프레임 사용 장비

    상대 장비가 Modbus RTU를 사용하는데 PLC 쪽을 MC 프로토콜로 설정하면 통신 조건이 맞아도 서로 데이터를 해석하지 못합니다. 반대로 바코드 스캐너처럼 문자열만 보내는 장비는 Non-procedure 방식으로 처리해야 하는 경우가 많습니다.

    국번 설정은 RS485에서 특히 중요하다

    RS232는 일반적으로 1:1 통신이므로 국번의 영향이 작거나 장비에서 고정값처럼 사용하는 경우가 많습니다.

    반면 RS485나 Modbus RTU는 여러 장비가 같은 통신 라인에 연결될 수 있기 때문에 국번이 중요합니다. PLC가 1번 장비를 호출했는데 실제 상대 장비가 2번으로 설정되어 있으면 응답하지 않습니다.

    국번 설정 시에는 다음을 확인해야 합니다.

    항목설명
    PLC 모듈 국번네트워크 구성에서 PLC 측 번호 확인
    상대 장비 ID인버터, 온도조절계, 서보 등 Slave ID 확인
    중복 국번같은 라인에 동일 ID 장비가 없는지 확인
    명령 프레임PLC 프로그램에서 호출하는 국번과 실제 장비 ID 일치 확인

    Modbus RTU에서는 국번을 Slave ID로 보는 경우가 많습니다. 장비 여러 대를 묶을 때는 ID 중복이 없도록 관리해야 합니다.

    설정 후 PLC Write를 해야 한다

    GX Works에서 파라미터를 수정했다고 해서 PLC에 바로 반영되는 것은 아닙니다. 설정을 변경한 뒤에는 PLC Write를 통해 변경된 파라미터를 PLC로 전송해야 합니다.

    설정 변경 후 확인할 순서는 다음과 같습니다.

    순서작업
    1파라미터 설정값 수정
    2설정 창에서 변경 내용 저장
    3PLC Write로 파라미터 전송
    4전송 완료 여부 확인
    5필요 시 PLC 전원 재투입
    6통신 LED와 에러 상태 확인

    PLC Write를 하지 않으면 화면에서는 설정을 바꾼 것처럼 보여도 실제 PLC에는 이전 설정이 남아 있을 수 있습니다.

    전원 재투입 여부를 확인한다

    미쓰비시 PLC 통신 파라미터는 설정을 전송한 뒤 전원 재투입이나 CPU 리셋, 모듈 재시작이 필요할 수 있습니다. 특히 통신 모듈 설정은 전송만으로 바로 반영되지 않는 경우가 있으므로 적용 절차를 확인해야 합니다.

    현장에서는 설정이 맞는데도 통신이 안 붙는 경우가 있습니다. 이때 실제로는 설정이 모듈에 반영되지 않은 상태일 수 있습니다.

    전원 재투입이 필요한 경우에는 다음 흐름으로 확인합니다.

    단계설명
    PLC Write 완료파라미터가 PLC에 전송되었는지 확인
    전원 OFFPLC 및 관련 모듈 전원 차단
    일정 시간 대기전원이 완전히 내려갔는지 확인
    전원 ONPLC와 통신 모듈 재기동
    LED 확인통신 모듈 RUN, ERR, SD/RD 상태 확인
    통신 테스트상대 장비 응답 확인

    전원 재투입이 필요한지 여부는 사용하는 CPU와 모듈 매뉴얼을 기준으로 확인해야 합니다. 다만 현장에서는 설정 변경 후 재기동을 하지 않아 통신이 붙지 않는 사례가 많으므로 반드시 점검해야 합니다.

    통신 LED로 상태를 확인한다

    설정 후에는 통신 LED를 확인해야 합니다. LED는 원인을 좁히는 데 도움이 됩니다.

    LED 상태우선 확인 항목
    SD/RD 모두 반응 없음포트, 채널, Baud Rate, 배선, 설정 반영 여부
    SD만 깜빡임PLC는 보내지만 상대 응답 없음, 국번·프로토콜·배선 확인
    RD는 깜빡임상대 응답은 있으나 데이터 해석 문제 가능
    ERR 점등모듈 에러, 파라미터 오류, 통신 설정 불일치 확인
    간헐적 반응노이즈, 종단저항, 타임아웃, 접촉 불량 확인

    LED가 움직인다고 정상 통신이라고 단정하면 안 됩니다. SD/RD 반응과 실제 수신 데이터, 에러 코드를 함께 봐야 합니다.

    8002 에러가 남아 있을 때 확인할 것

    8002 타임아웃이 계속 발생한다면 PLC가 정해진 시간 안에 정상 응답을 받지 못한 상태로 볼 수 있습니다.

    배선과 파라미터를 맞췄는데도 8002가 발생한다면 다음을 확인합니다.

    확인 항목설명
    실제 채널프로그램에서 사용하는 채널과 결선 채널 일치 확인
    국번명령 프레임의 국번과 상대 장비 ID 일치 확인
    프로토콜MC, Modbus, Non-procedure 설정 일치 확인
    명령 주소읽기·쓰기 대상 주소가 상대 장비 기준과 맞는지 확인
    응답 시간상대 장비 처리 시간이 타임아웃보다 길지 않은지 확인
    송수신 조건명령이 한 번만 나가는지, 계속 중복 송신되는지 확인
    설정 반영PLC Write와 전원 재투입이 완료되었는지 확인

    8002는 배선 오류에서도 발생하지만, 설정값이 맞지 않거나 프로그램의 송수신 조건이 잘못되어도 발생할 수 있습니다. 증상에 따라 배선, 설정, 프로그램 순서로 나누어 확인해야 합니다.

    GX Works 파라미터 설정 순서

    현장에서 통신 설정을 할 때는 다음 순서로 진행하는 것이 좋습니다.

    순서작업
    1상대 장비 매뉴얼에서 통신 조건 확인
    2PLC I/O Assignment에서 모듈 인식 및 X/Y 주소 확인
    3실제 결선된 CH 번호 확인
    4Baud Rate 설정
    5Data Bit, Parity, Stop Bit 설정
    6통신 방식과 프로토콜 설정
    7RS485 또는 Modbus 사용 시 국번 설정
    8수신 종료 조건 또는 데이터 길이 확인
    9PLC Write로 파라미터 전송
    10필요 시 PLC 전원 재투입
    11SD/RD LED와 에러 코드 확인
    12실제 송수신 데이터 확인

    이 순서대로 확인하면 설정 누락이나 채널 착오를 줄일 수 있습니다.

    파라미터 설정 체크리스트

    통신이 안 붙을 때 마지막으로 다음 항목을 점검합니다.

    점검 항목확인 내용
    모듈 인식I/O Assignment에서 통신 모듈이 정상 등록되었는지
    X/Y 주소프로그램에서 사용하는 주소와 모듈 주소가 맞는지
    채널실제 결선 포트와 설정 채널이 일치하는지
    Baud Rate상대 장비와 동일한 속도인지
    Data Bit상대 장비와 동일한 데이터 비트인지
    ParityNone, Even, Odd 설정이 맞는지
    Stop Bit상대 장비와 동일한 정지 비트인지
    프로토콜MC, Modbus, Non-procedure 중 맞는 방식인지
    국번RS485 또는 Modbus에서 상대 ID와 일치하는지
    PLC Write변경된 파라미터를 PLC에 전송했는지
    전원 재투입설정 반영을 위해 재기동이 필요한지 확인했는지
    LED 상태SD/RD/ERR 상태를 확인했는지

    이 체크리스트는 배선과 상대 장비 설정이 맞다는 전제에서 마지막으로 확인해야 할 항목입니다.

    GX Works 파라미터 설정 정리

    RS232/RS485 통신에서 GX Works 파라미터 설정은 배선 다음으로 중요한 단계입니다. 먼저 I/O Assignment에서 통신 모듈이 정상 인식되었는지 확인하고, 실제 결선된 채널과 설정 채널이 일치하는지 확인해야 합니다.

    그다음 상대 장비 매뉴얼을 기준으로 Baud Rate, Data Bit, Parity, Stop Bit, 프로토콜, 국번을 그대로 맞춥니다. 설정을 완료한 뒤에는 PLC Write로 파라미터를 전송하고, 필요한 경우 PLC 전원 재투입을 통해 설정이 실제 모듈에 반영되도록 해야 합니다.

    설정은 맞게 보이는데 통신이 안 붙는 경우에는 실제로 PLC에 쓰였는지, 전원 재투입이 필요한지, 프로그램에서 사용하는 채널과 모듈 주소가 맞는지 다시 확인해야 합니다.

    시리얼 통신은 배선, 파라미터, 프로토콜, 프로그램이 모두 맞아야 정상 동작합니다. GX Works 설정 단계에서는 값을 많이 바꾸는 것보다 상대 장비 매뉴얼의 조건을 정확히 옮기고, 변경한 설정이 PLC와 통신 모듈에 실제 반영되었는지 확인하는 것이 가장 중요합니다.