라즈베리파이 PLC 개발 환경 Senbrix 로고

2편은 라즈베리파이 쪽이다. OS를 굽고 런타임을 설치한 뒤 Pi-SD16R 보드를 에디터에 등록한다.

준비물

구분내용
보드Raspberry Pi 5, Pi-SD16R 캐리어 보드
저장 장치microSD 카드(16GB 이상)와 카드 리더
전원DC 12~24V 어댑터
PC1편에서 에디터를 설치한 Windows PC. 파이와 같은 네트워크
소프트웨어Raspberry Pi Imager, PuTTY

Pi-SD16R 보드

라즈베리파이 40핀 헤더에 얹는 캐리어 보드. 파이에 전원을 주고 절연 입력 4점, 릴레이 출력 4점, RS-485 1채널을 제공한다.

Pi-SD16R 보드의 단자 배치와 부품 구성

항목사양
전원 입력POWER +/-, DC 12~24V. 내부 5V 레귤레이터로 파이에 급전
디지털 입력4점(IN1IN4, 공통 IN_COM). 포토커플러 절연(2,500Vrms), 무극성, DC 1224V
릴레이 출력4점(OUT1~OUT4, 공통 OUT_COM). a접점, 5A 250VAC / 5A 30VDC
RS-4851채널 반이중, 자동 방향 제어, 최대 500kbps. 단자 485+, 485-, GND
표시POWER, 입력 4, 출력 4, RS-485 TX/RX LED
기타VDD 단자로 입력 전원 출력(센서 전원용). POWER_SW로 파이 급전 on/off

GPIO 핀맵

Pi-SD16R 회로도의 라즈베리파이 40핀 헤더 연결

슬롯GPIO(BCM)헤더 핀슬롯GPIO(BCM)헤더 핀
IN1GPIO2038OUT1GPIO529
IN2GPIO2140OUT2GPIO631
IN3GPIO2215OUT3GPIO1232
IN4GPIO2316OUT4GPIO1333

RS-485는 UART0(GPIO14/15). 입력·출력 모두 정논리라 XML에 invert는 필요 없다.

1. Raspberry Pi OS 굽기

Raspberry Pi Imager에서 장치 Raspberry Pi 5, 운영 체제 Raspberry Pi OS Lite (64-bit), 저장소는 microSD 카드.

Raspberry Pi Imager에서 Raspberry Pi OS Lite 64-bit를 선택한 화면

사용자 지정 입력 항목:

항목입력
호스트 이름senbrix
사용자pi / raspberry. 실제 설비에서는 다른 비밀번호
Wi-FiSSID와 비밀번호. 유선이면 건너뛴다
원격 접근SSH 사용 켜기, 비밀번호 인증

쓰기가 끝나면 완료 화면에서 적용된 설정을 확인한다.

쓰기 완료 화면에서 적용된 설정 다섯 개를 확인

2. 부팅과 SSH 접속

microSD를 꽂고 Pi-SD16R을 40핀 헤더에 얹은 뒤 POWER 단자에 전원을 넣는다. 첫 부팅은 2~3분 걸린다.

PuTTY로 senbrix.local에 접속한다. 안 잡히면 공유기에서 IP를 확인한다.

ping senbrix.local

로그인 pi, 비밀번호는 Imager에서 정한 값.

3. 런타임 설치

curl -sSL https://raw.githubusercontent.com/going-kr/Release.Senbrix/master/install-runtime.sh | sudo bash

런타임 설치 원라이너를 실행해 서비스가 기동되기까지의 과정

CAN 확장 보드 질문에는 그냥 엔터. 마지막에 Active: active (running)이 찍히면 끝이다. 부팅 시 자동으로 올라온다.

systemctl status senbrix-runtime
journalctl -u senbrix-runtime -f
  • 업데이트: 같은 명령을 다시 실행
  • 방화벽: 5557/tcp, 5555/tcp, 5353/udp 열기

4. 새 프로젝트와 장치 확인

에디터 시작 화면에서 새 프로젝트를 누른다. 이름 Test, 저장 경로는 기본값, 프로젝트 유형은 Ladder Diagram + C#. 생성을 누르면 프로젝트 화면이 열린다. 3편까지 이 프로젝트를 쓴다.

새 프로젝트 창의 프로젝트명, 저장 경로, 프로젝트 유형 선택

에디터 하단 연결 아이콘을 누르면 장치 목록에 senbrix가 뜬다. 안 뜨면 IP를 직접 입력한다.

장치 연결 창의 장치 목록에 senbrix 192.168.0.34가 표시된 화면

연결을 누르면 상태 표시줄에 IP와 상태가 표시된다.

상태 표시줄에 표시된 192.168.0.34 (IDLE)

5. Pi-SD16R 메인 보드 XML 등록

메인 보드 정의 폴더를 연다.

explorer %LocalAppData%\Going\Senbrix\MainBoards

Pi-SD16R.xml을 만든다.

<MainBoard name="Pi-SD16R" version="1">
  <Pin gpio="20" slot="IN1"  direction="In"/>
  <Pin gpio="21" slot="IN2"  direction="In"/>
  <Pin gpio="22" slot="IN3"  direction="In"/>
  <Pin gpio="23" slot="IN4"  direction="In"/>
  <Pin gpio="5"  slot="OUT1" direction="Out"/>
  <Pin gpio="6"  slot="OUT2" direction="Out"/>
  <Pin gpio="12" slot="OUT3" direction="Out"/>
  <Pin gpio="13" slot="OUT4" direction="Out"/>
</MainBoard>
속성의미
gpioBCM 번호. 중복 불가
slotIN<n> / OUT<n>
directionIn / Out
pull, invert입력 풀업/풀다운, 액티브 로우 반전. Pi-SD16R은 생략

프로젝트 화면 오른쪽 보드 → 메인 보드 지정에서 Pi-SD16R을 고른다. 폴더에 넣지 않고 찾아보기로 XML 파일을 직접 골라도 된다.

확인을 누르면 보드 패널에 메인 보드 · Pi-SD16R이 표시되고 입력은 P1P4, 출력은 P5P8에 바인딩된다. 바꾸려면 I/O 매핑.

보드 패널에 표시된 메인 보드 Pi-SD16R과 입력 P1-P4, 출력 P5-P8

다음 편

3편에서 AI로 간단한 제어를 만들고 파이에 배포해 릴레이를 움직인다.