
Senbrix는 라즈베리파이를 PLC처럼 쓰게 해주는 개발 환경입니다. 래더(LD)로 짠 로직과 손으로 쓴 C#이 한 프로그램 안에 들어가고, 빌드한 결과는 라즈베리파이에서 도는 Senbrix 런타임에 네트워크로 배포됩니다.
전용 PLC 하드웨어와 전용 개발 도구를 따로 갖추는 대신, 표준 보드와 .NET으로 같은 일을 합니다. 배포한 프로그램은 10ms 스캔 사이클로 돌고, 배포에 쓴 그 연결로 실시간 모니터링과 진단까지 합니다.
래더와 C#을 한 프로그램으로
순서 제어와 인터록은 래더가 편하고, 카드 셔플이나 점수 집계 같은 것은 C#이 편합니다.
Senbrix는 둘을 고르게 하지 않고 하나의 partial class App 안에 같이 넣습니다.
래더에서 만든 심볼이 C# 쪽 IntelliSense에 그대로 뜹니다.

심볼은 P0, M10, D127 같은 주소에 이름을 붙인 것입니다. 설명과 단위, 접근권한을 함께
관리하고, 유지(keep) 로 지정한 심볼은 런타임이 값을 저장했다가 재부팅 후 복원합니다.
래더 편집기는 접점과 코일, 펑션(TON·TOFF·CTU·CTD·MCS 등), 병렬 분기, 에지 검출을 다룹니다. 저장할 때마다 정적 린트가 돌면서 이중 코일, 끊긴 렁, 해제되지 않는 래치, 리셋 없는 카운터, 미정의 이름 같은 문제를 찾아냅니다.

C#은 Setup()과 Loop()에 씁니다. 래더와 같은 메모리(P·M·T·C·D·WP·WM)와 심볼을 그대로 쓰지만,
사용자 C#은 래더 스캔과 분리된 태스크에서 돕니다. 무거운 코드를 써도 10ms 사이클의
결정성이 흔들리지 않는 이유입니다.
PID와 오토튜너, 필터, 유량 계량, FFT 같은 제어·신호·계량 라이브러리는 기본 참조로 들어 있습니다.
에디터 · 런타임 · 시뮬레이터
에디터와 런타임, 시뮬레이터는 설치와 릴리스를 각각 따로 합니다.
| 구성 | 실행 위치 | 역할 |
|---|---|---|
| 에디터 | Windows PC | 래더·심볼·C# 편집, 린트, 빌드, 런타임 발견·배포, 모니터링·진단, MCP 서버 |
| 런타임 | Raspberry Pi | 배포된 앱을 10ms 스캔 사이클로 실행. systemd 서비스로 상주하며 유지 메모리 저장·복원, IO 확장 보드와 Modbus 구동 |
| 시뮬레이터 | Windows PC | 라즈베리파이 대신 배포를 받아 앱을 실행. 에디터에는 장치 하나로 보임 |

시뮬레이터는 런타임을 다시 만든 것이 아니라 그 버전의 런타임을 그대로 품고 있습니다. 스캔 사이클도 보드 드라이버도 실물과 같은 것이 돌고, 다른 점은 보드와 주고받는 통로뿐입니다.
배포하고 나면 그 프로그램이 쓰는 모듈이 화면의 레일에 붙고, 채널마다 스위치와 센서, 표시등이 놓이고 배선까지 이어집니다. 심볼에 적어 둔 이름이 그대로 기기 이름표가 되고 단위도 따라옵니다.
만들고, 배포하고, 지켜본다
빌드할 때마다 래더와 심볼에서 C# 소스를 다시 생성하고 dotnet build로 컴파일합니다.
결과물은 특별한 형식이 아니라 평범한 .NET 프로젝트입니다. 컴파일 에러가 나면
해당하는 래더 셀 위치를 되짚어서 알려줍니다.
배포는 mDNS로 발견한 런타임에 클릭 한 번입니다. 같은 네트워크에 있으면 IP를 몰라도 목록에 뜹니다.

모니터링은 접점·코일·타이머·워드 값을 래더 위에 그대로 얹어 보여줍니다. 어느 렁에서 멈췄는지 눈으로 따라갈 수 있습니다.
진단 모드에서는 값을 강제(force)하거나 쓸 수 있습니다.
하드웨어와 통신

캐리어 보드의 GPIO는 XML로 정의해서 IN/OUT 슬롯에 매핑하고, CAN 버스의 IO 확장 보드는 번호를 지정해서 붙입니다. ZPi-IO8R 캐리어 보드(Pi Zero 2 W, 포토커플러 입력 4점·릴레이 출력 4점) 정의는 기본으로 제공되어 선택 목록에서 바로 지정할 수 있습니다.
이렇게 만든 보드 구성은 프로젝트에 저장되고, 런타임이 그 구성을 그대로 읽어서 씁니다. 확장 보드 라인업과 DIN 레일 구성은 DIN 레일 모듈형 IO 글에 따로 정리했습니다.
통신은 Modbus RTU/TCP를 지원합니다. 슬레이브로 쓰면 PLC 메모리가 그대로 노출되고, 마스터로 쓰면 모니터(폴링 블록)와 바인드(원격↔로컬 매핑) 표로 상대 장비를 읽고 씁니다.
AI가 같이 만든다

Senbrix에는 MCP 서버가 내장되어 있습니다. Claude Code나 Codex 같은 AI 코딩 도구가 래더·심볼·통신·보드 구성을 도구 호출로 읽고 쓰고, 빌드와 배포까지 할 수 있습니다.
인터뷰, 설계, 계획, 구현, 검증으로 이어지는 진행 단계와 산출물은 에디터의 AI 페이지에서 봅니다. 진단 모드에서는 AI도 허가된 범위 안에서만 런타임 값을 읽고 실험합니다.
AI로 래더와 HMI 화면을 함께 만드는 방식은 AI로 PLC 래더와 HMI 화면 만들기에 적어뒀습니다.
시작하려면
| 구분 | 요구 사항 |
|---|---|
| 에디터 PC | Windows 10/11 x64. .NET 9 SDK를 직접 설치해야 합니다 |
| 런타임 장비 | Raspberry Pi + Raspberry Pi OS 64bit. 에디터와 같은 네트워크에 있어야 합니다 |
| 시뮬레이터 | Windows 10/11 x64. 별도 설치 없이 실행됩니다 |
에디터는 릴리스 페이지에서
Senbrix-win-Setup.exe를 받아 실행하면 됩니다. 설치 위치가 사용자 계정 아래라서
관리자 권한이 필요 없습니다.
릴리스 페이지에는 에디터 vX.Y.Z, 라즈베리파이 런타임 runtime-vX.Y.Z, 시뮬레이터
sim-vX.Y.Z 세 종류가 올라옵니다. 최신 릴리스(latest)는 항상 에디터입니다.
실제로 만들어서 검증한 사례는 라즈베리파이 PLC 센브릭스 글에 있습니다. 아케이드 게임기 한 대로 아날로그 입출력과 디지털 IO, 통신을 한 프로젝트에서 돌려본 기록입니다.
래더가 편한 것은 래더로 쓰고, 아닌 것은 C#으로 씁니다. 하드웨어가 오기 전에는 시뮬레이터로 먼저 돌려보고, 돌고 있는 설비에 값을 밀어 넣는 진단은 허가한 주소만 열어 둡니다. 표기법을 고르는 데 시간을 쓰지 않고 만들려는 것에 집중하게 하는 것이 Senbrix가 목표하는 자리입니다.
Senbrix에 대해 더 알고 싶거나 현장 적용을 검토 중이시면 편하게 문의해 주세요.
문의
- Email : [email protected]
- Insta : https://www.instagram.com/going.sen/
- Website : https://intosen.com/kr/consult/
댓글
닉네임만 입력하면 바로 댓글을 남길 수 있어요. Google/GitHub 로그인도 가능합니다.