RS-485의 A·B 두 선만으로 여러 장비를 연결하는 방법

RS-485의 A·B 두 선만으로 여러 장비를 연결하는 방법#

1장 두 선으로 여러 장비를 연결할 수 있을까#

RS-422에서는 흔히 다음과 같이 송신과 수신 Pair를 따로 사용합니다.

TX+
TX-

RX+
RX-

반면 산업 현장에서 자주 만나는 2-Wire RS-485는 다음처럼 한 Pair만 사용합니다.

A
B

그런데 이 두 선에:

Controller

Sensor 1

Sensor 2

Sensor 3

Sensor 4

같은 여러 장비를 연결할 수 있습니다.

개념적으로:

        ┌─ Device 1
        │
A/B ────┼─ Device 2
        │
        ├─ Device 3
        │
        └─ Device 4

형태입니다.

RS-485가 산업 현장에서 오랫동안 사용되는 가장 큰 이유 중 하나가 바로 이 Multi-point Bus 구성입니다.


2장 2-Wire RS-485의 핵심은 하나의 Pair를 공유하는 것이다#

2-Wire RS-485에서는 송신과 수신에 같은 Differential Pair를 사용합니다.

A ===============================

B ===============================

장비 A가 송신할 때도 이 Pair를 사용하고:

Device A
→ A/B
→ Device B

장비 B가 응답할 때도 같은 Pair를 사용합니다.

Device A
← A/B
← Device B

따라서 양쪽이 동시에 자유롭게 송신할 수 없습니다.

이 구조가 Half Duplex입니다.


3장 Half Duplex란 무엇인가#

Half Duplex는 양방향 통신은 가능하지만 동시에 양쪽이 송신하지 않는 방식입니다.

무전기를 생각하면 쉽습니다.

A 송신
→ B 수신

A 송신 종료

B 송신
→ A 수신

RS-485 2선식에서는 일반적으로 이런 방식으로 운용합니다.

Master
"Device 3, 상태를 알려줘."
↓
Bus

Device 3
"정상이다."
↓
Bus

한 장비가 말하는 동안 나머지는 Bus를 듣습니다.


4장 RS-485라고 무조건 Half Duplex는 아니다#

중요한 부분입니다.

RS-485는 흔히:

2-Wire
=
Half Duplex

형태로 사용됩니다.

하지만 4-Wire RS-485 구성도 가능합니다.

TX+
TX-

RX+
RX-

처럼 송신 Pair와 수신 Pair를 분리하면 Full Duplex 형태로 운용할 수 있습니다.

따라서:

RS-485
=
무조건 Half Duplex

라고 이해하면 안 됩니다.

정확히는 2-Wire RS-485가 Half Duplex로 널리 사용된다고 보는 것이 좋습니다.


5장 2-Wire와 4-Wire RS-485 비교#

항목 2-Wire RS-485 4-Wire RS-485
Differential Pair 1개 2개
대표 동작 Half Duplex Full Duplex 가능
송수신 같은 Pair 공유 송신·수신 분리
Cable 상대적으로 적음 상대적으로 많음
Bus 구성 매우 흔함 특정 시스템에서 사용
송신 방향 제어 중요 구조에 따라 단순해질 수 있음
산업 장비 매우 흔함 장비 지원 여부 확인 필요

6장 여러 장비가 같은 선을 공유하면 누가 먼저 말할까#

RS-485 자체는 다음을 결정하지 않습니다.

누가 먼저 송신하는가?

어느 장비가 응답하는가?

장비 Address는 몇 번인가?

응답은 몇 ms 안에 해야 하는가?

이것들은 상위 Protocol에서 정합니다.

대표적인 구조가 Request/Response 방식입니다.

Master
↓
Device 5에 요청

Device 1
무시

Device 2
무시

Device 5
응답

이렇게 Bus 사용 순서를 관리합니다.


7장 RS-485는 Protocol이 아니다#

매우 중요합니다.

RS-485는:

Electrical Interface

입니다.

반면 다음과 같은 것은 상위 Protocol입니다.

Modbus RTU

BACnet MS/TP

DMX512

Profibus 일부 물리 구현

제조사 전용 Protocol

따라서:

RS-485 장비

라고 해서 두 장비가 자동으로 서로 통신하는 것은 아닙니다.

다음이 모두 맞아야 합니다.

Electrical Interface
↓
Baud Rate
↓
Data Bits
↓
Parity
↓
Stop Bits
↓
Protocol
↓
Address
↓
Command Format

8장 Device Address는 왜 필요한가#

Bus에 여러 장비가 연결되어 있다고 하겠습니다.

Device 1

Device 2

Device 3

Device 4

Master가:

STATUS

라는 명령을 보냈는데 Address가 없다면 어느 장비가 응답해야 할지 알기 어렵습니다.

그래서 상위 Protocol에서는 일반적으로 Address를 사용합니다.

예:

Address
0x03

Command
0x10

Data
...

CRC
...

Bus에 연결된 모든 장비가 Frame을 볼 수 있지만:

Address 0x03

인 장비만 응답하도록 설계할 수 있습니다.


9장 Address는 RS-485가 만들어주는 것이 아니다#

흔히:

RS-485 Address

라는 표현을 쓰지만 엄밀히 말하면 Address는 RS-485 Electrical Standard의 기능이 아닙니다.

예를 들어:

Modbus RTU

라면 Modbus가 Slave Address를 정의합니다.

제조사 전용 Protocol이라면 제조사가 Address 형식을 정의합니다.

따라서 같은 RS-485 Cable에서도 전혀 다른 Protocol을 사용할 수 있습니다.


10장 여러 장비가 동시에 송신하면 어떻게 될까#

2-Wire RS-485의 같은 Bus에서 두 Driver가 동시에 활성화됐다고 하겠습니다.

Device A
TX ON
      \
       > 같은 Bus
      /
Device B
TX ON

서로 다른 논리 상태를 Drive하면 Signal 충돌이 발생할 수 있습니다.

결과는:

깨진 Byte

Framing Error

CRC Error

응답 없음

불규칙한 Packet

등으로 나타날 수 있습니다.

따라서 한 순간에 Bus를 Drive하는 장비를 하나로 제한하는 것이 중요합니다.


11장 Master/Slave 구조가 많이 사용되는 이유#

Half Duplex Bus에서는 누가 언제 송신할지 제어하기 쉬운 구조가 필요합니다.

대표적인 방식은:

Master
질문
↓
Slave
응답

입니다.

Master가 먼저 요청하고 지정된 Slave만 답하게 합니다.

Master
→ Device 1 요청
← Device 1 응답

Master
→ Device 2 요청
← Device 2 응답

Master
→ Device 3 요청
← Device 3 응답

이런 구조를 사용하면 Bus 충돌을 크게 줄일 수 있습니다.


12장 모든 RS-485가 Master/Slave인 것은 아니다#

이 역시 중요한 구분입니다.

RS-485 자체는 Master와 Slave를 정의하지 않습니다.

상위 Protocol에 따라:

Master / Slave

Client / Server

Token Passing

Peer-to-Peer

Custom Polling

같은 다양한 구조를 사용할 수 있습니다.

따라서:

RS-485
=
Master/Slave

라고 단정하면 안 됩니다.


13장 Driver Enable은 무엇인가#

2-Wire RS-485에서는 같은 Pair를 송신과 수신에 함께 사용합니다.

따라서 Transceiver에는 보통:

Driver Enable

개념이 있습니다.

수신 대기 상태:

Driver Disabled
↓
Bus를 듣는다

송신 상태:

Driver Enabled
↓
A/B를 Drive한다

송신 완료:

Driver Disabled
↓
다시 수신

와 같은 흐름입니다.


14장 송신이 끝났는데 Driver를 계속 켜두면#

Device A가 Message 전송을 마쳤는데도 Bus Drive를 해제하지 않는다고 하겠습니다.

Device A
Driver ON

이 상태에서 Device B가 응답을 시작하면:

Device B
Driver ON

두 Driver가 동시에 Bus에 연결될 수 있습니다.

결과적으로:

Bus Collision

응답 손상

CRC Error

Timeout

등이 발생할 수 있습니다.

Half Duplex RS-485에서는 송신 종료 후 얼마나 빨리 Bus를 놓는가도 중요합니다.


15장 너무 빨리 Driver를 끄면 어떻게 될까#

반대 문제도 있습니다.

마지막 Byte가 실제 Wire로 완전히 전송되기 전에 Driver를 Disable하면 마지막 Bit 또는 Stop Bit 일부가 잘릴 수 있습니다.

예:

Application write 완료
↓
Driver OFF

라고 바로 처리했는데 UART 내부에는 아직 Data가 남아 있을 수 있습니다.

중요한 것은:

Application Buffer Empty

와:

실제 UART 송신 완료

가 같은 의미가 아닐 수 있다는 점입니다.

RS-485 Direction Control을 직접 구현한다면 실제 송신 완료 시점을 확인해야 합니다.


16장 Converter가 방향을 자동으로 바꾸기도 한다#

최근 USB-to-RS485 Adapter나 Serial Converter 중에는:

Auto Direction

Auto TX Enable

기능을 제공하는 제품이 있습니다.

Data가 나가기 시작하면 자동으로 Driver를 활성화하고:

Data 송신 종료
↓
자동으로 Receive 상태 전환

을 수행합니다.

이런 장비에서는 Application이 Driver Enable을 직접 제어하지 않아도 되는 경우가 많습니다.


17장 RTS로 방향을 제어하기도 한다#

일부 Converter에서는 RTS를 이용해 RS-485 송수신 방향을 제어합니다.

예:

RTS ON
→ TX Mode

RTS OFF
→ RX Mode

하지만 이것은 RS-232에서 사용하는:

RTS/CTS Hardware Flow Control

과 다른 용도입니다.

같은 RTS Signal 이름을 사용하더라도 역할이 다를 수 있으므로 구분해야 합니다.


18장 A와 B는 무엇인가#

RS-485 장비에서는 다음과 같은 Terminal을 많이 봅니다.

A
B

또는:

D+
D-
485+
485-

처럼 표시될 수 있습니다.

문제는 제조사마다 A와 B Naming Convention이 다르게 사용되는 사례가 있다는 것입니다.

그래서:

A = +
B = -

또는 그 반대로 무조건 외우면 안 됩니다.


19장 A끼리 연결했는데도 통신이 안 될 수 있다#

장비 A:

A
B

장비 B:

A
B

라고 표시되어 있다고 해서 무조건:

A ↔ A

B ↔ B

가 맞다고 단정하기 어렵습니다.

서로 다른 제조사가 A/B Naming을 반대 의미로 사용했을 가능성이 있기 때문입니다.

가장 안전한 방법은 데이터시트의:

Non-inverting

Inverting

+

-

D+

D-

표기를 함께 확인하는 것입니다.


20장 A/B 반전이 의심되면 어떻게 할까#

우선 Manual과 Wiring Diagram을 확인합니다.

그 다음 필요하다면:

전원 차단
↓
배선 확인
↓
제조사 극성 확인
↓
시험 환경에서 검증

순서로 진행합니다.

무작정 현장에서 A/B를 반복해서 뒤집기보다는 먼저 장비 Pinout과 Signal Definition을 확인하는 것이 우선입니다.


21장 Daisy Chain이 왜 중요한가#

RS-485 Bus는 일반적으로 다음과 같은 형태가 유리합니다.

Master ─ Device 1 ─ Device 2 ─ Device 3 ─ Device 4

즉 Main Bus를 따라 장비가 이어지는 구조입니다.

이를 흔히 Daisy Chain 형태라고 부릅니다.

전송선의 구조가 비교적 일정하게 유지되어 Signal Reflection을 관리하기 쉽습니다.


22장 Star 배선은 왜 주의해야 할까#

다음처럼 한 지점에서 여러 방향으로 긴 Cable이 갈라진다고 하겠습니다.

             Device 1
                │
                │
Device 2 ─── Junction ─── Device 3
                │
                │
             Device 4

각 Branch가 Transmission Line처럼 동작하면서 Reflection이 복잡해질 수 있습니다.

따라서 일반적인 RS-485 Bus에서는 긴 Star Branch를 피하는 것이 좋습니다.

다만:

Active Hub

Repeater

특수한 Network Topology

를 사용하는 시스템은 별도의 설계가 가능합니다.


23장 Stub란 무엇인가#

Main Bus에서 장비로 짧게 빠지는 Branch를 Stub라고 합니다.

Main Bus =========================

                   |
                   |
                 Device

Stub가 지나치게 길면 Signal Reflection과 Waveform 왜곡을 증가시킬 수 있습니다.

따라서 일반적으로 Stub는 짧게 유지합니다.

정확한 허용 길이는:

Baud Rate

Cable

Transceiver

Edge Rate

Topology

에 따라 달라집니다.


24장 종단저항은 왜 필요한가#

긴 Cable에서는 Signal이 끝에 도달했을 때 반사될 수 있습니다.

Signal
──────────────→

Cable End
          ↓

Reflection
←──────────────

이를 줄이기 위해 Bus의 Characteristic Impedance에 맞는 Termination Resistor를 사용합니다.

RS-485 Cable에서는:

120Ω

이 흔히 등장합니다.

하지만 실제 값은 Cable과 장비 설계를 확인해야 합니다.


25장 종단저항은 어디에 설치할까#

일반적인 RS-485 Bus에서는 물리적인 전송선 양 끝에 종단을 두는 구성이 흔합니다.

120Ω                                    120Ω
 │                                        │
Master ─ Device ─ Device ─ Device ─ Device

중간 장비마다 120Ω을 넣는 것이 아닙니다.


26장 종단저항을 너무 많이 넣으면 어떻게 될까#

각 장비마다 종단을 활성화했다고 하겠습니다.

Device 1
120Ω

Device 2
120Ω

Device 3
120Ω

Device 4
120Ω

여러 저항이 병렬로 연결되면서 Bus 전체 부하가 크게 증가할 수 있습니다.

Driver가 충분한 Differential Voltage를 만들지 못하게 되어 오히려 통신이 불안정해질 수 있습니다.

따라서 장비 추가 시:

내장 Termination이 켜져 있는가?

를 반드시 확인해야 합니다.


27장 Bias 저항은 왜 필요한가#

아무 장비도 송신하지 않는 상태를 생각해보겠습니다.

Device 1
Driver OFF

Device 2
Driver OFF

Device 3
Driver OFF

이 상태에서 Bus가 불확정 상태로 남으면 Noise 때문에 Receiver가 잘못된 상태 변화를 감지할 수 있습니다.

이를 방지하기 위해 Bus의 Idle 상태를 정의하는 Bias Network를 사용할 수 있습니다.


28장 Bias는 어디에나 넣는 것이 아니다#

흔히 Pull-up과 Pull-down 저항을 이용합니다.

하지만 모든 장비에 Bias를 설치하면 안 됩니다.

예:

Master
Bias ON

Device 1
Bias ON

Device 2
Bias ON

Device 3
Bias ON

이처럼 여러 Bias Network가 병렬로 동작하면 Bus 전기적 특성이 달라질 수 있습니다.

따라서:

누가 Bias를 제공하는가?

를 시스템 단위로 확인해야 합니다.


29장 최신 Transceiver는 Fail-safe 기능을 가질 수 있다#

일부 현대 RS-485 Receiver는 Open Bus나 Idle 상태에서 안정적인 Logic 상태를 만들기 위한 Fail-safe 기능을 내부적으로 제공합니다.

따라서:

RS-485
=
무조건 외부 Bias 필요

라고 볼 수는 없습니다.

장비 내부 회로와 Transceiver 데이터시트를 확인해야 합니다.


30장 Ground 선은 필요 없을까#

RS-485는 Differential 방식이기 때문에 흔히:

A
B

두 선만 연결하면 된다고 생각하기 쉽습니다.

하지만 실제 Receiver에는 허용할 수 있는 Common-Mode Voltage 범위가 있습니다.

장비 사이의 기준 전위 차이가 지나치게 크면:

A-B Differential Voltage

가 정상이어도 입력 허용 범위를 벗어날 수 있습니다.

따라서 Ground와 Signal Reference 전략도 시스템 설계의 일부입니다.


31장 별도의 Ground를 무조건 연결하라는 뜻도 아니다#

반대로:

RS-485에는 Ground가 필요하다.
↓
모든 장비 GND를 강제로 연결한다.

도 위험할 수 있습니다.

현장에서는:

Signal Ground

Protective Earth

Chassis Ground

Shield

Equipotential Bonding

을 구분해야 합니다.

잘못된 연결은 Ground Loop나 과도한 전류를 만들 수 있습니다.

따라서 장비 제조사의 Grounding 지침과 현장 전기 설계를 따릅니다.


32장 Shielded Cable은 무조건 필요한가#

Noise가 많은 산업 환경에서는 Shielded Twisted Pair가 도움이 될 수 있습니다.

하지만 모든 환경에서 무조건 Shield가 필요한 것은 아닙니다.

Cable 선택은:

거리

Baud Rate

EMI 환경

전력 Cable과의 거리

설비 Grounding

장비 요구사항

을 함께 고려해야 합니다.


33장 Shield는 무조건 한쪽만 접지하는가#

그렇지 않습니다.

한쪽 Ground가 적합한 시스템도 있고, 적절한 Equipotential Bonding이 된 환경에서 양단 처리하는 방식이 적합한 경우도 있습니다.

중요한 것은:

한쪽 접지
=
절대 규칙

으로 생각하지 않는 것입니다.

Cable 제조사, 장비 제조사, EMC 설계 지침을 기준으로 결정합니다.


34장 RS-485에는 몇 대까지 연결할 수 있을까#

고전적인 RS-485 설명에서는 흔히:

32 Unit Loads

라는 기준이 등장합니다.

하지만 이것을:

RS-485는 최대 32대

라고 단순히 외우면 안 됩니다.


35장 Unit Load란 무엇인가#

Unit Load는 Receiver가 Bus에 주는 전기적 부하를 나타내는 개념입니다.

전통적인 Receiver:

1 Unit Load

기준에서는 32 Unit Loads가 대표적인 기준으로 사용되었습니다.

하지만 현대 Transceiver에는:

1/2 Unit Load

1/4 Unit Load

1/8 Unit Load

같이 더 작은 부하를 갖는 제품도 있습니다.

따라서 더 많은 Receiver 연결을 지원할 수 있습니다.

실제 최대 장비 수는 Transceiver 사양과 전체 Bus 설계를 봐야 합니다.


36장 장비 수만으로 최대 Node를 결정할 수 없다#

예를 들어 1/8 Unit Load Receiver라고 해서 무조건 수백 장비를 안정적으로 연결할 수 있다는 뜻도 아닙니다.

실제 시스템은 다음 조건의 영향을 받습니다.

Cable 길이

Baud Rate

Topology

Stub

Termination

Bias

Connector

Transceiver

Protocol Polling 시간

전원

Noise

따라서 Electrical Limit와 실용적인 System Limit은 다를 수 있습니다.


37장 여러 장비를 연결하면 처리량은 어떻게 될까#

RS-485 Bus에 장비가 많아지면 하나의 Communication Channel을 여러 장비가 공유합니다.

예:

Master → Device 1
응답

Master → Device 2
응답

Master → Device 3
응답

Master → Device 4
응답

장비 수가 증가하면 모든 장비를 한 번씩 Polling하는 시간도 증가합니다.


38장 Polling Cycle을 계산해보자#

장비가 20대 있고 각 요청과 응답 처리에 평균 20ms가 필요하다고 단순 가정해보겠습니다.

20 devices
×
20 ms
=
400 ms

여기에:

Inter-frame Delay

Timeout

Retry

Application 처리 시간

이 추가됩니다.

실제 전체 Polling Cycle은 더 길어질 수 있습니다.

따라서 많은 Node를 연결할 수 있다는 사실과 빠르게 모든 장비를 조회할 수 있다는 것은 다른 문제입니다.


39장 Timeout을 너무 짧게 설정하면#

Master가 요청합니다.

Master
→ Device 5

Device 5가 20ms 후 응답하도록 설계됐는데 Master Timeout이:

10ms

라면 Master는 응답 전에:

Timeout

으로 판단할 수 있습니다.

그 뒤 Retry가 시작되면 기존 응답과 새로운 요청이 섞이면서 장애가 더 복잡해질 수도 있습니다.


40장 Timeout을 너무 길게 설정하면#

반대로 Device가 고장났는데 Timeout이:

5 seconds

라면 한 장비가 응답하지 않을 때마다 전체 Bus Polling이 오래 멈출 수 있습니다.

예:

Device 1 정상
Device 2 정상
Device 3 장애
↓
5초 대기
↓
Device 4

장비 수가 많으면 시스템 전체 상태 갱신이 매우 느려질 수 있습니다.

따라서 Timeout은 실제 장비 응답 특성을 측정해서 정해야 합니다.


41장 Address 중복은 매우 위험하다#

Device 3과 Device 7이 모두:

Address = 5

로 설정되어 있다고 하겠습니다.

Master가:

Address 5

에 요청하면 두 장비가 동시에 응답할 수 있습니다.

Device 3 ─┐
          ├── 동시에 TX
Device 7 ─┘

결과:

Collision

CRC Error

깨진 Frame

응답 불안정

이 발생할 수 있습니다.


42장 장비를 추가한 뒤 전체 Bus가 이상해졌다면#

기존:

Device 1
Device 2
Device 3

은 정상인데 Device 4를 추가한 뒤 Bus 전체가 불안정하다고 하겠습니다.

다음 항목을 확인합니다.

A/B 극성

Address 중복

내장 Termination

내장 Bias

Stub 길이

Cable 연결

Ground Difference

Baud 설정

새 장비 하나가 전체 Bus의 전기적 조건을 바꿀 수 있습니다.


43장 가까운 장비는 되고 먼 장비만 안 된다#

이 경우 다음을 우선 확인합니다.

Cable 길이

Termination

Cable 종류

Baud Rate

Noise

Stub

Ground Potential Difference

예를 들어:

Device 1
20m
정상

Device 2
50m
정상

Device 3
300m
오류

라면 단순 Address 문제보다는 Physical Layer 문제일 가능성을 먼저 살펴볼 수 있습니다.


44장 모든 장비가 동시에 안 된다#

Master도 송신하는 것 같고 모든 Device가 무응답이라면 다음을 확인합니다.

Master Transceiver

A/B 공통 배선

Termination

Power

Ground

USB-to-RS485 Adapter

Driver Enable

Baud Rate

특정 Device가 아니라 Bus 전체 문제인지 구분하는 것이 중요합니다.


45장 특정 장비 한 대만 안 된다#

반대로 다른 장비는 정상이고 한 장비만 무응답이면:

Device Address

Device Power

Local Cable

A/B 배선

Serial 설정

Transceiver

Protocol 설정

을 우선 확인합니다.

Bus 전체 설정을 무작정 변경하지 않는 것이 중요합니다.


46장 Modbus RTU는 RS-485와 어떤 관계인가#

Modbus RTU는 RS-485 위에서 자주 사용되는 Protocol입니다.

구조를 단순화하면:

Modbus RTU
↓
UART Byte Stream
↓
RS-485 Electrical Interface

입니다.

Modbus RTU Frame의 대표적인 구조는:

Address

Function Code

Data

CRC

입니다.


47장 Modbus 요청 예시#

예를 들어 Slave Address 0x05에 Coil을 읽는 요청을 보낸다고 가정하면 교육용 개념은 다음과 같습니다.

05 01 00 00 00 08 CRC_LO CRC_HI

의미:

05
Slave Address

01
Read Coils

0000
Start Address

0008
Quantity

CRC
Frame Error Check

실제 CRC 값은 Frame 내용에 따라 계산해야 합니다.

고정된 예시 CRC를 임의로 복사해서 사용하면 안 됩니다.


48장 RS-485 위에서 꼭 Modbus를 사용해야 하나#

아닙니다.

다음과 같은 자체 Protocol을 만들 수도 있습니다.

STX
Address
Command
Length
Data
Checksum
ETX

예:

02 03 10 02 01 00 CRC 03

같은 형식입니다.

중요한 것은 Bus를 공유하는 모든 장비가 동일한 Protocol 규칙을 이해해야 한다는 점입니다.


49장 Python Code가 RS-485를 직접 구현하는 것은 아니다#

USB-to-RS485 Adapter가 Serial Port로 제공된다고 하겠습니다.

Python에서는 일반 Serial API로 접근할 수 있습니다.

import serial

ser = serial.Serial(
    port="/dev/ttyUSB0",
    baudrate=19200,
    bytesize=8,
    parity="N",
    stopbits=1,
    timeout=1
)

ser.write(b"TEST")

response = ser.read(64)

print(response)

ser.close()

하지만 Python이 A/B Differential Signal을 직접 만드는 것은 아닙니다.

실제 구조는:

Python
↓
OS Serial Driver
↓
USB/UART
↓
RS-485 Transceiver
↓
A/B

입니다.


50장 RS-485 Direction Control은 Adapter에 따라 다르다#

어떤 Adapter는 자동으로 송수신 방향을 제어합니다.

다른 Hardware에서는 Application이나 Driver가:

RTS

Driver Enable

등을 제어해야 할 수 있습니다.

따라서 Code를 작성하기 전에:

Adapter가 Auto Direction을 지원하는가?

를 확인해야 합니다.


51장 Wireshark만으로 RS-485를 볼 수 있을까#

일반적인 Wireshark는 Ethernet·IP 같은 Network Packet 분석에 주로 사용합니다.

RS-485 Serial Line을 그대로 Ethernet Packet처럼 Capture하는 도구는 아닙니다.

RS-485 분석에는 상황에 따라:

Serial Analyzer

Logic Analyzer

Oscilloscope

USB-to-RS485 Sniffer

Protocol Analyzer

등을 사용합니다.

상위 Protocol Data를 PC로 Capture한 뒤 Wireshark용 Dissector 등으로 분석하는 별도의 환경도 만들 수 있습니다.


52장 Multimeter로 확인할 수 있는 것#

Multimeter는 다음 점검에 유용합니다.

Cable 연속성

Short

일부 DC Bias

Ground Potential Difference

전원 상태

하지만 빠른 Differential Waveform과 Reflection을 정확하게 보기에는 한계가 있습니다.


53장 Oscilloscope로 확인할 수 있는 것#

Oscilloscope를 사용하면:

A Signal

B Signal

Differential Voltage

Common-Mode Voltage

Noise

Reflection

Driver Enable Timing

등을 확인할 수 있습니다.

특히 송신 종료 이후 Driver가 언제 Bus를 Release하는지 관찰하면 Half Duplex Timing 문제를 진단하는 데 도움이 됩니다.


54장 RS-485 Bus 장애 진단 순서#

현장에서 Bus가 통신하지 않는다면 다음 순서로 확인합니다.

1. 장비 전원
↓
2. RS-485 Interface 확인
↓
3. 2-Wire / 4-Wire 확인
↓
4. A/B 정의 확인
↓
5. Cable 연속성
↓
6. Topology 확인
↓
7. Termination 확인
↓
8. Bias 확인
↓
9. Ground·Common-Mode 확인
↓
10. Baud·Parity·Stop Bit 확인
↓
11. Device Address 확인
↓
12. Driver Enable 확인
↓
13. 실제 Frame 확인
↓
14. Timeout·Retry 확인

55장 증상별 점검 기준#

증상 우선 확인
모든 장비 무응답 Master·A/B·Baud·Driver Enable
한 장비만 무응답 Address·Local Wiring·Power
장비 추가 후 전체 불안정 Termination·Bias·Address·Stub
가까운 장비만 정상 Cable·Termination·Noise
간헐적 CRC Error Noise·Reflection·Collision
특정 Address에서 오류 Address 중복
요청 후 응답 일부 손실 Direction Timing·Buffer
송신은 되지만 응답 못 받음 Driver Release·Timeout
특정 시간대에 장애 EMI·Ground·전원 환경

56장 RS-485 보안도 별도로 생각해야 한다#

RS-485 자체에는:

Authentication

Encryption

Authorization

기능이 없습니다.

누군가 물리적으로 Bus에 접근할 수 있고 Protocol을 알고 있다면 Frame을 관찰하거나 전송할 가능성이 있습니다.

따라서 중요한 제어 시스템에서는:

제어반 접근 통제

Cable 접근 통제

Gateway 인증

상위 Protocol 인증

Command 권한 관리

Audit Log

등을 함께 고려해야 합니다.


57장 Serial-over-IP Gateway를 사용하면 더 주의해야 한다#

RS-485 Bus를 Ethernet Gateway에 연결하면:

RS-485 Device
↓
Gateway
↓
Ethernet
↓
Server

구조가 됩니다.

운영은 편리해지지만 기존에 현장 Cable에 물리적으로 접근해야 했던 Interface가 Network를 통해 접근 가능해질 수 있습니다.

따라서 Gateway의:

Authentication

TLS

ACL

VPN

Firmware Update

Management Port

등을 확인해야 합니다.


58장 현장 사례 — 여러 주차 장비를 하나의 Bus에 연결한다면#

예를 들어 다음 장비를 연결한다고 하겠습니다.

Controller

Gate Device 1

Gate Device 2

Sensor 1

Sensor 2

2-Wire RS-485를 사용한다면:

Controller
    │
    ├── Device 1
    ├── Device 2
    ├── Sensor 1
    └── Sensor 2

를 논리적으로 구성할 수 있습니다.

실제 Physical Wiring은 가능한 한 Bus 형태로 설계합니다.

각 장비에는:

Address 1
Address 2
Address 3
Address 4

처럼 중복되지 않는 Address를 지정합니다.


59장 장비 수가 많으면 Bus를 나누는 것도 방법이다#

RS-485 하나에 무조건 최대한 많은 장비를 연결하는 것이 좋은 것은 아닙니다.

장비 수가 많아지면:

Polling Cycle 증가

장애 영향 범위 증가

Cable 길이 증가

Stub 증가 가능성

Troubleshooting 복잡도 증가

등의 문제가 생깁니다.

상황에 따라:

Bus A

Bus B

Bus C

로 Segment를 나누거나 Repeater·Gateway를 사용하는 것이 더 나을 수 있습니다.


60장 Repeater는 언제 사용할까#

다음과 같은 상황에서는 RS-485 Repeater를 검토할 수 있습니다.

Cable 구간이 너무 김

Node 수 증가

Branch 분리 필요

Electrical Segment 분리

Noise 구간 분리

Repeater는 Signal을 다시 생성하고 Bus Segment를 분리하는 데 활용할 수 있습니다.

하지만 Repeater를 추가하면:

Delay

설정

전원

새로운 장애 지점

도 증가하므로 무조건 사용하는 것은 아닙니다.


61장 흔히 하는 잘못된 판단#

61.1 RS-485는 A/B 두 선이면 무조건 통신한다#

아닙니다.

Baud·Parity·Address·Protocol·Termination 등도 맞아야 합니다.

61.2 RS-485는 무조건 Half Duplex다#

아닙니다.

2-Wire Half Duplex가 흔하지만 4-Wire 구성이 가능합니다.

61.3 A는 항상 +이고 B는 항상 -다#

제조사 Naming이 다를 수 있습니다.

61.4 최대 장비 수는 무조건 32대다#

아닙니다.

Unit Load와 Transceiver 특성에 따라 달라집니다.

61.5 모든 장비에 종단저항을 넣으면 좋다#

아닙니다.

일반적인 Bus에서는 물리적 양 끝단의 Termination을 중심으로 설계합니다.

61.6 Bias는 장비마다 넣는다#

아닙니다.

전체 Bus의 Bias 구조를 확인해야 합니다.

61.7 RS-485에는 Ground가 필요 없다#

Common-Mode Voltage와 Ground Potential Difference를 무시해서는 안 됩니다.

61.8 장비가 많으면 RS-485 하나에 모두 넣으면 된다#

Node 수뿐 아니라 Polling Time, 장애 범위, Cable 구조까지 고려해야 합니다.


62장 자기 점검#

62.1 2-Wire RS-485가 Half Duplex인 이유는 무엇인가#

송신과 수신이 하나의 Differential Pair를 공유하기 때문입니다.

62.2 Device Address는 누가 정의하는가#

RS-485가 아니라 Modbus RTU나 제조사 전용 Protocol 같은 상위 Protocol이 정의합니다.

62.3 여러 장비가 동시에 송신하면 어떻게 되는가#

동일 Bus에서 Driver 충돌이 발생해 Data가 손상될 수 있습니다.

62.4 종단저항은 어디에 배치하는가#

일반적인 Bus에서는 물리적 전송선의 양 끝단에 배치합니다.

62.5 RS-485의 최대 장비 수가 고정되지 않은 이유는 무엇인가#

Transceiver의 Unit Load와 Cable·Topology·Protocol 등 시스템 조건에 따라 달라지기 때문입니다.


63장 이 글을 마치며#

2-Wire RS-485의 핵심은 단순합니다.

A
B

라는 하나의 Differential Pair를 여러 장비가 함께 사용합니다.

그래서:

한 장비 송신
↓
다른 장비 수신
↓
송신 종료
↓
다른 장비 응답

이라는 Half Duplex 방식이 일반적으로 사용됩니다.

하지만 실제 산업 시스템을 만들려면 두 선보다 훨씬 많은 것을 생각해야 합니다.

A/B
↓
Topology
↓
Termination
↓
Bias
↓
Ground
↓
Driver Enable
↓
Baud Rate
↓
Address
↓
Protocol
↓
Timeout
↓
Retry

가 모두 하나의 통신 시스템을 구성합니다.

특히 다음 다섯 가지를 기억하면 됩니다.

2-Wire RS-485는 하나의 Differential Pair를 송신과 수신에 공유하는 Half Duplex 구성이 일반적입니다.

RS-485는 여러 Transceiver가 하나의 Bus를 공유할 수 있지만 어느 장비가 언제 송신하는지는 상위 Protocol이 관리해야 합니다.

Device Address, Master/Slave, CRC 같은 개념은 RS-485 자체가 아니라 상위 Protocol에서 정의합니다.

Termination과 Bias는 많을수록 좋은 것이 아니라 Bus 전체 구조에 맞춰 설계해야 합니다.

RS-485에서 통신이 안 될 때는 A/B만 보지 말고 Physical Layer부터 Address·Protocol·Timing까지 순서대로 확인해야 합니다.

RS-485를 이해한다는 것은 단순히:

A와 B 두 선으로
여러 장비를 연결한다.

고 외우는 것이 아닙니다.

같은 두 선을 여러 장비가 어떻게 공유하고, 누가 언제 송신하며, Bus가 아무도 말하지 않을 때 어떤 상태를 유지하는지를 이해하는 것이 핵심입니다.

이 페이지의 목차