반응형

분류 전체보기 859

Python unittest를 이용한 단위 테스트 작성

Python unittest를 이용한 단위 테스트 작성소프트웨어 개발에서 단위 테스트(Unit Test)는 필수적인 과정입니다. 단위 테스트를 통해 코드의 개별 구성 요소가 의도한 대로 동작하는지 확인할 수 있습니다. Python은 표준 라이브러리로 unittest 모듈을 제공하며, 이를 사용하면 체계적이고 간단하게 단위 테스트를 작성할 수 있습니다. 이 포스팅에서는 unittest 모듈을 사용하여 단위 테스트를 작성하고 실행하는 방법을 예제와 함께 소개합니다.1. 단위 테스트란?단위 테스트는 프로그램의 가장 작은 단위(일반적으로 함수 또는 메서드)가 정확히 동작하는지 확인하는 테스트입니다. 단위 테스트는 다음과 같은 이점을 제공합니다:코드 품질 향상버그 조기 발견리팩토링 시 안전망 제공Python의 u..

CANOpen 활용 산업용 로봇 및 PLC

CANOpen 활용 산업용 로봇 및 PLC개요CANOpen은 산업 자동화에서 널리 사용되는 프로토콜로, 산업용 로봇과 프로그래머블 로직 컨트롤러(PLC)와 같은 장치 간의 효율적인 통신을 지원합니다. 이 장에서는 CANOpen이 산업용 로봇과 PLC 시스템에서 어떻게 활용되는지 설명하고, 이를 최적화하는 방법을 다룹니다.산업용 로봇에서의 CANOpen 활용산업용 로봇은 정밀한 동작을 수행하기 위해 다수의 서보 모터와 센서를 포함하며, 이들 간의 신뢰성 높은 실시간 통신이 필수적입니다. CANOpen은 이러한 요구사항을 충족하기 위해 다음과 같은 방식으로 활용됩니다.서보 모터 및 드라이브 제어CANOpen의 PDO(프로세스 데이터 객체)를 이용하여 실시간으로 모터 속도, 위치 및 토크를 제어할 수 있습니다..

CAN/CAN Open 2025.08.17

Python 작업 스케줄링

Python 작업 스케줄링정기적으로 반복되어야 하는 작업을 처리하는 스케줄링은 다양한 분야에서 유용하게 활용됩니다. 예를 들어, 로그 파일 정리, 데이터 백업, 주기적인 알림 전송 등이 있습니다. Python에서는 이러한 정기 작업 스케줄링을 구현할 수 있는 여러 가지 강력한 도구를 제공합니다. 이번 포스팅에서는 schedule 라이브러리와 Python의 표준 라이브러리인 threading 및 datetime을 활용하여 정기 작업을 스케줄링하는 방법을 다룹니다.1. Python에서의 작업 스케줄링Python은 작업 스케줄링을 위해 다양한 라이브러리를 제공합니다. 가장 많이 사용되는 라이브러리로는 다음과 같은 것들이 있습니다:schedule: 간단한 정기 작업 스케줄링 라이브러리로 사용법이 매우 직관적입니..

CANOpen의 PDO Mapping 설정 및 최적화

CANOpen의 PDO Mapping 설정 및 최적화PDO (Process Data Object) 개요PDO(Process Data Object)는 CANOpen 네트워크에서 실시간 데이터를 빠르게 전송하기 위한 메시지입니다. CANOpen에서 사용되는 주요 통신 방식 중 하나이며, 데이터를 효율적으로 전송할 수 있도록 설계되었습니다.PDO는 크게 두 가지 유형이 있습니다.TPDO (Transmit PDO): 데이터를 송신하는 PDORPDO (Receive PDO): 데이터를 수신하는 PDO각 PDO는 미리 정의된 데이터 매핑을 통해 특정 Object Dictionary(OD) 항목과 연결됩니다.PDO Mapping 개념PDO Mapping은 특정 OD 항목을 TPDO 또는 RPDO에 할당하는 과정입니다..

CAN/CAN 기초 2025.08.16

Python 이메일 전송 스크립트 작성하기

Python 이메일 전송 스크립트 작성하기이메일 전송은 Python으로 자동화할 수 있는 매우 실용적인 작업 중 하나입니다. 이번 포스팅에서는 Python의 smtplib과 email 모듈을 활용하여 이메일을 전송하는 스크립트를 작성하는 방법을 다룹니다. 기본적인 이메일 전송부터 첨부파일을 포함한 이메일까지 작성하는 방법을 예제로 설명하겠습니다.1. Python 이메일 전송 기본 이해Python으로 이메일을 전송하려면 SMTP(Simple Mail Transfer Protocol)를 사용합니다. Python 표준 라이브러리에는 이메일 전송을 위한 smtplib 모듈과 이메일 생성에 유용한 email 모듈이 포함되어 있습니다.주요 개념SMTP 서버: 이메일을 전송하기 위한 서버입니다. Gmail, Outl..

CANOpen NMT 명령을 통한 노드 제어

CANOpen NMT 명령을 통한 노드 제어NMT (Network Management) 개요NMT(Network Management)는 CANOpen 네트워크에서 노드를 관리하는 중요한 기능입니다. NMT 명령을 통해 노드의 상태를 변경하고, 네트워크의 정상적인 동작을 유지할 수 있습니다. CANOpen에서는 각 노드가 특정 상태를 가지며, 마스터 디바이스는 NMT 명령을 사용하여 슬레이브 노드의 상태를 전환할 수 있습니다. 기본적인 NMT 상태는 다음과 같습니다.Initialization: 노드가 초기화되는 상태Pre-Operational: 일부 CANOpen 서비스(SDO, NMT 등)를 사용할 수 있는 상태Operational: 모든 CANOpen 서비스(PDO 포함)를 사용할 수 있는 상태Stop..

CAN/CAN Open 2025.08.15

Python 파일 및 폴더 관리 자동화

Python 파일 및 폴더 관리 자동화Python은 강력한 파일 및 폴더 관리 기능을 제공하며, 이를 활용하면 반복적인 작업을 효율적으로 자동화할 수 있습니다. 이 글에서는 Python의 os 모듈과 shutil 모듈을 활용해 파일 및 폴더 관리 작업을 자동화하는 방법을 소개하겠습니다. 실제 예제를 통해 각 기능을 알아보고 실무에서 활용할 수 있는 방법도 제시합니다.파일 및 폴더 관리를 위한 주요 모듈Python에서 파일 및 폴더 관리를 위해 주로 사용되는 모듈은 다음과 같습니다:os 모듈: 운영 체제의 파일 시스템 작업을 수행합니다.shutil 모듈: 파일 및 폴더 복사, 이동 등 고수준의 작업을 지원합니다.기본 파일 및 폴더 작업1. 파일 및 폴더 존재 여부 확인파일이나 폴더가 존재하는지 확인하려면 ..

CANopen NMT 명령을 통한 노드 제어

CANopen NMT 명령을 통한 노드 제어NMT (Network Management) 개요NMT(Network Management)는 CANOpen 네트워크에서 노드를 관리하는 중요한 기능입니다. NMT 명령을 통해 노드의 상태를 변경하고, 네트워크의 정상적인 동작을 유지할 수 있습니다. CANOpen에서는 각 노드가 특정 상태를 가지며, 마스터 디바이스는 NMT 명령을 사용하여 슬레이브 노드의 상태를 전환할 수 있습니다. 기본적인 NMT 상태는 다음과 같습니다.Initialization: 노드가 초기화되는 상태Pre-Operational: 일부 CANOpen 서비스(SDO, NMT 등)를 사용할 수 있는 상태Operational: 모든 CANOpen 서비스(PDO 포함)를 사용할 수 있는 상태Stop..

CAN/CAN Open 2025.08.14

Python 브라우저 자동화를 위한 Selenium 사용

Python 브라우저 자동화를 위한 Selenium 사용안녕하세요! 오늘은 Python 고급 주제 중 하나인 Selenium을 활용한 브라우저 자동화에 대해 다뤄보겠습니다. Selenium은 웹 애플리케이션 테스트 및 브라우저 자동화를 위해 널리 사용되는 강력한 도구입니다. 이 글에서는 Selenium의 기본 개념, 설치 방법, 주요 기능, 그리고 간단한 예제를 통해 Selenium 사용법을 익혀보겠습니다.Selenium이란?Selenium은 웹 브라우저를 프로그래밍적으로 제어할 수 있는 오픈 소스 도구입니다. 원래 웹 애플리케이션을 테스트하기 위해 개발되었지만, 다양한 자동화 작업(예: 데이터 스크래핑, 웹 기반 작업 자동화)에도 유용합니다. Selenium은 Python을 포함한 여러 언어에서 사용할..

CANOpen Slave 개발 (STM32 MCU 활용)

CANOpen Slave 개발 (STM32 MCU 활용)개요CANOpen Slave 장치는 CANOpen 네트워크에서 마스터의 명령을 수신하고 응답하는 역할을 합니다. 본 장에서는 STM32F429 MCU와 STM32CubeIDE 및 HAL 라이브러리를 활용하여 CANOpen Slave 장치를 개발하는 방법을 설명합니다.CANOpen Slave 개념CANOpen Slave는 다음과 같은 주요 기능을 수행합니다.PDO(프로세스 데이터 객체) 전송 및 수신SDO(서비스 데이터 객체)를 통한 설정 변경NMT(네트워크 관리) 명령 처리Heartbeat 및 Node Guarding 기능 지원개발 환경 구축CANOpen Slave 개발을 위해 다음과 같은 환경이 필요합니다.하드웨어: STM32F429 개발 보드, ..

CAN/CAN Open 2025.08.13
728x90
반응형