【Safety 기능안전】 OSSD란? Safety Scanner 출력과 일반 PNP 센서의 차이
AMR이나 산업용 로봇에 Safety Scanner, Light Curtain 같은 안전센서를 적용하다 보면 OSSD1, OSSD2라는 출력을 자주 보게 된다.실제로 측정해보면 일반 24V PNP Sensor 출력과 비슷하게 보이기 때문에 처음에는
terrypack.tistory.com
【통신 실무】 CAN 통신에서 120Ω 종단저항을 사용하는 이유 | 60Ω이 측정되는 이유
AMR이나 산업용 로봇을 개발하다 보면 Motor Driver, Battery BMS, Lift Controller, Sensor 등 여러 장치를 CAN 통신으로 연결하는 경우가 많다.CAN 배선을 처음 구성할 때 가장 많이 나오는 질문 중 하나가 있다.
terrypack.tistory.com

Read/Write 권한과 데이터 폭을 기준으로 이해해보자.
Modbus를 처음 접하면 0xxxx, 1xxxx, 3xxxx, 4xxxx 주소표 때문에 복잡해 보인다. 하지만 실제로는 1-bit 영역 두 개와 16-bit Register 영역 두 개로 나눠 생각하면 된다.
1. Modbus Data Model은 네 영역으로 나뉜다
| 영역 | 크기 | 일반적 권한 | 대표 FC |
|---|---|---|---|
| Coil | 1 bit | Read / Write | 01, 05, 15 |
| Discrete Input | 1 bit | Read Only | 02 |
| Input Register | 16 bit | Read Only | 04 |
| Holding Register | 16 bit | Read / Write | 03, 06, 16 |
2. Coil은 어떤 데이터를 넣을까?
Command, Enable, Reset Request처럼 ON/OFF 명령을 표현하기 좋다. 예를 들어 PC가 PLC에 AUTO_START를 요청하거나 PLC가 특정 Relay Output을 제어하는 경우 Coil을 사용할 수 있다.
3. Discrete Input은 상태표시에 적합하다
Sensor 상태나 Hardware Input 상태처럼 외부에서 직접 Write하면 안 되는 1-bit 데이터에 잘 맞는다. 다만 실제 PLC 구현에서는 제조사 Mapping 방식에 따라 내부 Memory와 연결된다.
4. Holding Register는 왜 가장 많이 쓰일까?
16-bit 값을 읽고 쓸 수 있어 속도, 위치, Parameter, Error Code, Counter 등을 표현하기 좋다. 32-bit 값은 Register 두 개를 묶어 표현한다.
같은 32-bit 값이라도 장치에 따라 High Word / Low Word 순서가 다를 수 있다.
5. Input Register는 측정값에 적합하다
센서 측정값, Actual Speed, Temperature처럼 Device가 생성하고 외부에서는 읽기만 하는 데이터에 사용할 수 있다.
6. 00001과 40001을 그대로 주소에 넣으면 안 되는 이유
00001, 40001은 사람이 보기 쉽게 표현한 Reference Number다. 실제 Request Frame은 보통 0-based Offset를 사용한다. Library와 PLC Software의 표시 방식이 다르면 한 칸씩 밀리는 Off-by-one Error가 발생한다.
40001 Protocol Offset: 0
Software 표시: 제조사마다 0 또는 1로 보일 수 있음
7. Address Map은 기능별로 묶자
0032~0063 : Mode / Control
0100~0199 : Status
0200~0299 : Alarm Register
100~149 : Setpoint Register
200~249 : Actual Value
위 숫자는 예시다. 중요한 것은 Signal Name, Direction, Data Type, Update Cycle, Default, Fault Behavior를 함께 문서화하는 것이다.
8. Bit Packing을 할까, Coil을 쓸까?
Status가 많으면 16-bit Register 하나에 여러 Bit를 Packing해 Network Traffic을 줄일 수 있다. 하지만 Debug와 Version 관리가 어려워질 수 있다.
읽기 쉽고 Debug가 편하다. Signal이 많으면 Request가 늘 수 있다.
전송 효율이 좋다. Bit Definition 문서화가 필수다.
9. Robot Interface에서 권장하는 구분
Command와 Status를 같은 Address에 양방향으로 쓰지 않는 것이 좋다. 누가 값을 소유하는지 Data Ownership을 명확히 하면 Race Condition을 줄일 수 있다.
마무리
Modbus 주소는 외우는 것보다 Data Model을 이해하는 것이 먼저다. 1-bit Command는 Coil, 1-bit Read-only State는 Discrete Input, 16-bit Parameter는 Holding Register, 측정값은 Input Register로 나누면 Interface가 깔끔해진다.
'【통신 실무】' 카테고리의 다른 글
| 【통신 실무】 Ethernet Switch와 Hub 차이 | 스위칭 허브는 무엇일까? (0) | 2026.09.20 |
|---|---|
| 【통신 실무】 산업용 Ethernet Switch와 일반 Switch 차이 | 왜 산업용이 비쌀까? (0) | 2026.09.19 |
| 【통신 실무】 AMR PLC-PC Interface 설계 가이드 | Device Map, Heartbeat, Data Ownership (0) | 2026.09.18 |
| 【통신 실무】 RS-485에 120Ω 종단저항을 사용하는 이유 | 종단저항 위치와 측정 방법 (0) | 2026.09.18 |
| 【통신 실무】 Managed Switch와 Unmanaged Switch 차이 | AMR에는 어떤 제품이 필요할까? (0) | 2026.09.18 |