[python] PySimpleGUI를 사용하여 팩토리 라인 모니터링 시스템 개발하기

이번 기술 블로그에서는 Python의 PySimpleGUI 라이브러리를 사용하여 팩토리 라인 모니터링 시스템을 개발하는 방법을 알아보겠습니다.

개요

팩토리 라인 모니터링 시스템은 대량 생산 라인에서 생산 상태, 장비 동작 등을 실시간으로 모니터링하는 시스템입니다. 이를 통해 생산 과정에서 발생하는 문제를 빠르게 감지하고 대응할 수 있습니다.

개발 환경 설정

PySimpleGUI를 사용하기 위해 먼저 해당 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 PySimpleGUI를 설치합니다.

pip install PySimpleGUI

UI 디자인

PySimpleGUI를 사용하면 간단하고 직관적인 UI를 쉽게 만들 수 있습니다. 팩토리 라인 모니터링 시스템을 위한 UI의 예를 살펴보겠습니다.

import PySimpleGUI as sg

layout = [
    [sg.Text('팩토리 라인 모니터링 시스템', font=('Helvetica', 20))],
    [sg.Text('생산 상태: '), sg.InputText(key='-STATUS-')],
    [sg.Text('장비 동작: '), sg.InputText(key='-EQUIPMENT-')],
    [sg.Button('갱신'), sg.Button('종료')]
]

window = sg.Window('팩토리 모니터링 시스템', layout)

while True:
    event, values = window.read()
    
    if event == sg.WINDOW_CLOSED or event == '종료':
        break
        
    # 상태 및 동작 정보 업데이트 로직 구현
    
window.close()

위 코드에서는 PySimpleGUI의 Text, InputText, Button을 사용하여 UI를 구성하고, WINDOW_CLOSED와 ‘종료’ 버튼 클릭 이벤트에 대한 처리를 구현합니다.

데이터 업데이트

실제로는 생산 상태와 장비 동작 정보를 실시간으로 업데이트해야 합니다. 이를 위해 데이터 업데이트 로직을 구현해야 합니다. 예를 들어, 생산 상태와 장비 동작 정보를 외부 시스템에서 가져오는 함수를 아래와 같이 정의할 수 있습니다.

def get_production_status():
    # 생산 상태 정보 가져오는 로직 구현
    production_status = ...
    
    return production_status

def get_equipment_status():
    # 장비 동작 정보 가져오는 로직 구현
    equipment_status = ...
    
    return equipment_status

UI 업데이트를 위해 데이터 업데이트 로직을 이용할 수 있습니다. 아래 코드에서는 ‘갱신’ 버튼 클릭 시 데이터를 업데이트하고 UI를 갱신합니다.

while True:
    event, values = window.read()
    
    if event == sg.WINDOW_CLOSED or event == '종료':
        break
        
    elif event == '갱신':
        status = get_production_status()
        window['-STATUS-'].update(status)
        
        equipment = get_equipment_status()
        window['-EQUIPMENT-'].update(equipment)

결론

이제 PySimpleGUI를 사용하여 간단하고 직관적인 UI를 가진 팩토리 라인 모니터링 시스템을 개발하는 방법을 알아보았습니다. 다양한 기능을 추가하여 실제 운영에 활용할 수 있는 모니터링 시스템을 구축해보세요.

참고 자료