임베디드

임베디드/C#

WPF 실습

단계별 실습단계주제이유1DispatcherTimer로 주기적으로 UI 업데이트주기적 폴링 구조 (→ PLC 값 읽기 타이머 기반)2DTO 클래스 + 자동 속성 실습온도값, 시간, 상태 등 데이터 구조 익히기3간단한 ViewModel 구성 + Binding 연습MVVM 구조 준비, XAML과 데이터 연결 이해4PLC 통신 프로그램PLC와 MC Protocol 보내고 받기 구조 연습5LiveCharts2로 실시간 그래프 출력온도 추적 시각화 기반 구현 1단계: DispatcherTimer로 주기적으로 UI 업데이트목적: PLC 없이도 1초마다 무언가를 실행하는 구조 이해XAML 파일 C# 파일using System; // C# 표준 라이브러리using System.Windows;..

임베디드/PLC

Mitsubishi PLC - PC Python 이더넷 통신

프로젝트 개요 이전에 E5CC - 미쓰비시 PLC 연결하였다. 여기에 추가로 미쓰비시 PLC와 PC를 연결하여 온도센서 값을 PC에서 모니터링 및 제어하려고 한다. MELSEC 커뮤니케이션 프로토콜(MC 프로토콜)의 3E 프레임(ASCII 방식)을 사용한 TCP/IP 기반 통신의 과정을 순서대로 정리하였다.전체 구성PT100 온도센서를 3wire 방식으로 오므론 E5CC와 연결하고 E5CC 온도 조절기와 미쓰비시 Q시리즈 PLC와는 RS-485로 연결하였다. 이때 전용통신이나 모드버스를 사용한 것이 아닌 Programless 방식으로 연결하였다.(자세한 내용은 아래 글 참고) https://fortex66.tistory.com/56 MITSUBISHI QPLC - OMRON E5CC 온도계 세팅구성 순..

임베디드/PLC

Mitsubishi Q PLC - Omron E5CC 온도계 세팅

구성 순서 및 참고 매뉴얼https://www.ia.omron.co.kr/products/downloadpop/download.asp?pk=1887오므론 E5CC 온도계 통신매뉴얼 SGTD-741P-K6 미쓰비시의 Q시리즈 PLC와 오므론 E5CC 온도 조절기를 연결하고 PLC에서 E5CC 온도조절기의 값을 실시간 센싱, 제어 하는 것이 목표이다. 사용된 기기PLC : MELSEC-Q 시리즈시리얼 커뮤니케이션 유닛 : QJ71C24N온도계 : OMRON - E5CC오므론 세팅오므론 온도계의 통신은 CompoWay/F와 Modbus 방식으로 나누어진다. CompoWay/F는 오므론의 범용 시리얼 통신을 위한 통일된 통신 순서이며 오므론 FA 네트워크상의 컨트롤러끼리 메시지를 주고받기 위한 프로토콜이다...

임베디드/Linux

크로스 컴파일 심볼 링크 에러 대체

문제 상황빌드한 크로스 컴파일 바이너리를 실행할 때, _jmpbuf_sp, __pointer_chk_guard_local 같은 심볼 관련 에러가 발생하였다.이는 sysroot 내의 라이브러리들(예: glibc, libpthread 등)의 심볼릭 링크가 절대 경로로 되어 있어, 경로 변경 후 링크가 깨지거나 호스트 경로가 혼입되어 발생하는 문제였다. 해결 과정sysroot 완전 동기화라즈베리파이에서 sysroot에 필요한 디렉토리들(예: /usr/include, /usr/lib, /lib, /lib/aarch64-linux-gnu 등)을 rsync로 호스트 PC의 sysroot(예: rpi-sysroot)에 복사툴체인 및 CMake 설정 점검CMAKE_SYSROOT, CMAKE_FIND_ROOT_PATH_..

임베디드/Qt

Qt 성능 분석

성능 분석도구가 여러 가지가 있지만 Qt Creator에서도 제공하는 성능 분석 도구들이 있다. 그중에서 QML Profiler를 사용하여 분석하였다. QML ProfilerQML Profiler는 QML 기반 애플리케이션의 랜더링, JavaScript 실행, 시그널/슬롯 처리 등 QML 엔진이 수행하는 작업들의 성능을 분석해 주는 도구이다. 타임라인과 Flame Graph, 세부 분석 등을 통해 프레임별 렌더링 시간, 애니메이션, JavaScript 함수 실행 시간, 이벤트 처리, 바인딩 등 상세 데이터를 제공해 준다. Qt Creator에서 Analyze 탭에 QML Profiler를 클릭하면 분석이 시작된다. 1. Timeline시간 순으로 메모리 사용, 애니메이션, 컴파일, 생성, 바인딩, 시그널..

임베디드/Qt

Qt Linguist를 사용한 다국어 GUI

개요Qt GUI 프로그램을 만들 때 버튼 클릭으로 프로그램의 언어를 바꾸기 위해서 진행하였다.Qt에는 Linguist라는 툴을 제공하기 때문에 쉽게 다국어 기능을 구현할 수 있다. 사용 환경VMware - Ubuntu 22.04 64bit과정1. qttools 모듈 다운로드cd ~/qt6/srcwget https://download.qt.io/official_releases/qt/6.5/6.5.1/submodules/qttools-everywhere-src-6.5.1.tar.xztar xf qttools-everywhere-src-6.5.1.tar.xz 2. 빌드 디렉토리 생성 및 구성mkdir -p ~/qt6/host-build/qttoolscd ~/qt6/host-build/qttools$HOME/q..

임베디드/Qt

GUI 프로그램 자동 실행 및 종료

사용환경Raspberry Pi 4 Compute Module + 7인치 GUI에서 진행 라즈베리파이에서 자동 실행시키기GUI환경으로 부팅이 바로 되므로 LXDE의 autostart 기능을 이용해 애플리케이션을 자동 실행하였다. autostart 파일 편집sudo nano /etc/xdg/lxsession/LXDE-pi/autostart  위 2줄은 기본값이고 아래 3번째 줄에 실행파일을 등록해준다. 라즈베리파이를 재부팅하면 시작될 때 자동으로 프로그램도 실행된다. GUI 프로그램 안정적인 종료 및 라즈베리파이 종료프로그램 종료하기onClicked: Qt.quit() qml에서 간단하게 버튼의 onClicked에 Qt.quit()만 하면 프로그램이 꺼지게 된다. 하지만 리소스 정리(cleanUP)를 하고 ..

임베디드/Qt

Deploy to Remote Linux Host 에러 대처

qt.qpa.xcb: could not connect to display 에러 발생 시점라즈베리파이 IP를 변경하고 원격 실행을 했을 때 아래와 같은 에러가 발생했다. 에러 문구10:43:58: Starting /usr/local/bin/appPLC_Touch on RPI... qt.qpa.xcb: could not connect to display  qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the applica..

Frozen Prize
'임베디드' 카테고리의 글 목록