일상에 꼭 필요한 정보, 늘 함께하는 나침반 일상에 꼭 필요한 정보, 늘 함께하는 나침반

Symbolic Address란? PLC 절대주소와 차이

읽는 시간 약 8분

Symbolic Address란 PLC의 실제 메모리 주소 대신 의미 있는 변수명으로 데이터를 참조하는 방식입니다. Absolute Address와 Symbolic Address의 차이와 장단점을 알아봅니다.

Symbolic Address란 무엇이며 왜 사용할까?

Symbolic Address는 PLC Program에서 실제 Memory나 I/O의 숫자·Device Address를 직접 사용하는 대신 기능을 쉽게 이해할 수 있는 Symbol 또는 Variable Name으로 Data를 참조하는 방식입니다. 예를 들어 특정 Digital Input을 X0, %I0.0 등의 Absolute Address로 사용할 수도 있지만 동일한 Signal에 Start_Button이라는 Symbolic Address를 지정하여 Logic을 작성할 수 있습니다. 마찬가지로 Motor Output은 Y10이나 %Q0.0 대신 Conveyor_Run과 같은 이름으로 표현할 수 있습니다. PLC 제조사마다 Absolute Address 표기방식은 다르지만 Symbolic Programming의 목적은 공통적입니다. 사람이 Memory Address를 기억하기보다 Data가 의미하는 기능을 중심으로 Program을 작성하도록 만드는 것입니다. 설비규모가 커지면 수백 개 이상의 I/O와 Internal Variable을 사용하게 되므로 주소만으로 Logic을 관리하기 어렵습니다. Symbolic Address를 사용하면 Program의 가독성이 높아지고 설계자뿐 아니라 유지보수 담당자도 Logic의 의미를 빠르게 이해할 수 있습니다.

Absolute Address와 Symbolic Address는 무엇이 다를까?

Absolute Address는 PLC의 특정 I/O Point나 Memory Location을 직접 지정하는 주소입니다. 제조사에 따라 X·Y·M·D 같은 Device Address를 사용하거나 %I, %Q, %M 등의 형식으로 표현할 수 있습니다. 예를 들어 %I0.0과 같은 표기는 특정 Input 영역의 Bit를 직접 참조하는 방식의 한 예입니다. 반면 Symbolic Address는 Start_PB, Motor_Run, Tank_Level처럼 Data의 의미를 나타내는 이름을 사용합니다. 중요한 점은 Symbolic Address가 항상 하나의 Absolute Address에 단순히 별명으로 연결되는 것은 아니라는 것입니다. Physical I/O에 연결된 Symbol은 Hardware Address와 Mapping될 수 있지만 Function 내부의 Local Variable이나 Function Block Instance Data처럼 Compiler가 Memory를 관리하는 Symbolic Variable도 존재합니다. 즉 Absolute Address는 ‘Data가 어디에 있는가’를 중심으로 접근하고 Symbolic Address는 ‘Data가 무엇을 의미하는가’를 중심으로 접근한다고 이해하면 쉽습니다. 실제 구현방법은 PLC Platform의 Memory Model에 따라 달라질 수 있습니다.

Symbolic Address를 사용하면 어떤 장점이 있을까?

가장 큰 장점은 Program의 가독성과 유지보수성이 높아진다는 것입니다. X15 AND M30 → Y22와 같은 Logic은 Address Comment를 확인하지 않으면 기능을 바로 알기 어렵습니다. 반면 Start_Cmd AND Safety_OK → Pump_Run과 같이 작성하면 제어조건과 결과를 쉽게 이해할 수 있습니다. Hardware를 변경하여 Input Module의 Channel이 바뀌더라도 Symbol과 I/O를 Mapping하는 부분만 수정하면 Main Control Logic의 이름을 그대로 유지할 수 있는 구조도 만들 수 있습니다. Function, Function Block과 Structure를 사용하는 Modular Programming에서도 Symbolic Address가 유용합니다. Motor마다 의미 있는 Tag와 Structure를 사용하면 Device Address에 종속되지 않는 재사용 가능한 Logic을 설계하기 쉬워집니다. HMI와 SCADA에서도 Symbolic Tag를 공유하거나 연동할 수 있는 System에서는 PLC와 상위 Monitoring System 사이의 Data 관리가 단순해질 수 있습니다. 결과적으로 Symbolic Address는 Hardware 중심의 Program을 기능과 Data 중심의 Software Structure로 전환하는 데 중요한 역할을 합니다.

절대주소를 사용하는 것이 유리한 경우도 있을까?

Symbolic Programming의 장점이 많지만 Absolute Address 자체가 불필요해지는 것은 아닙니다. Physical Input·Output의 실제 배선위치를 확인하거나 Hardware Troubleshooting을 수행할 때는 I/O Module의 Channel과 Address를 알아야 합니다. 현장에서 Sensor Signal이 PLC에 들어오지 않는 경우 Sensor_OK라는 Symbol만 확인하는 것보다 해당 Tag가 어느 Input Module과 Terminal에 연결되어 있는지 확인해야 문제를 추적할 수 있습니다. 또한 일부 기존 PLC나 Legacy Program에서는 Device Address를 중심으로 Program이 작성되어 있어 X, Y, M과 D Address를 직접 사용하는 것이 일반적입니다. Communication에서도 상대 Device가 특정 Register Address를 요구하면 Modbus Register나 Memory Address Mapping을 정확히 설정해야 합니다. 따라서 Symbolic Address와 Absolute Address 중 하나만 선택하는 개념보다는 Program Logic에서는 의미 있는 Symbol을 활용하고 Hardware·Communication Interface에서는 필요한 Physical 또는 Absolute Mapping을 명확하게 관리하는 방식이 효과적입니다.

Symbolic Address를 설계할 때 무엇을 주의해야 할까?

Symbolic Address의 효과를 높이려면 일관된 Naming Convention이 필요합니다. Motor1, MTR01, ConveyorMotor처럼 동일한 종류의 장치를 서로 다른 규칙으로 작성하면 Symbol을 사용하더라도 Program을 검색하고 이해하기 어려워집니다. 예를 들어 CV01_RunCmd, CV01_Running, CV01_Fault처럼 Equipment ID와 Signal Function을 일정한 형식으로 조합하면 관련 Data를 쉽게 찾을 수 있습니다. Command, Status, Setpoint, Process Value와 Alarm을 구분하는 Naming Rule도 유용합니다. 또한 이름이 같아 보여도 Scope가 다른 Local·Global Variable이 존재할 수 있으므로 어떤 Program이나 Function Block에서 접근 가능한지 확인해야 합니다. Symbol을 변경했을 때 HMI, SCADA 또는 다른 Controller의 External Reference에 어떤 영향이 있는지도 검토해야 합니다. 결국 Symbolic Address는 단순히 Absolute Address를 보기 좋은 이름으로 바꾸는 기능을 넘어 PLC Data에 명확한 의미와 구조를 부여하는 Programming 방식이며, Absolute Address와 적절하게 Mapping하여 사용할 때 대규모 자동화 Program의 유지보수성과 확장성을 크게 높일 수 있습니다.

jssj2627

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.