데이터PC main.py 코드 구조입니다.
Class UI_MainWindow : 이 클래스는 제품 품질을 식별하여 사용자가 실시간으로 모니터링을 할수있도록 사용자 인터페이스를 제공하는 클래스입니다.
Plc_connect(QTread) : 이 클래스는 QThread를 상속받아 멀티스레딩 환경에서 동작하는 클래스입니다. 주요 목적은 생산 라인의 측정 데이터를 처리하고, PLC와 통신하며, 바코드 인쇄 및 스캔 작업을 관리하는 것입니다.
자동화설비의 흐름도입니다.
설비 동작에 따른 데이터PC의 역할은 다음과 같습니다.
측정기에서 제품 측정이 끝나면 아래 폴더로 SCV파일을 만듭니다.
PC는 새 파일이 생성되면 해당 파일을 읽고, 파일에 포함된 측정값을 기준 판단값과 비교하여 양품 및 불량품을 판별한 뒤, 그 결과를 데이터베이스에 저장하고 PLC에 전송합니다. 아래 코드에서는 측정값을 전송하는 메모리 주소로 측정기1, 측정기2, 측정기3에 각각 D8021, D8022, D8023을 설정했습니다.
데이터 저장 (메서드)
PLC에 전송된 후, 제품이 양품이거나 프린트 모드로 설정된 경우에는 인쇄기 위치로 제품을 이동시킵니다. 이후, PC에서 바코드 데이터와 함께 인쇄 명령을 인쇄기로 전송합니다.
인쇄기와 동일하게 바코드 리더기도 TCP/IP 프로토콜을 사용하며, PC에서 전송된 명령어를 수신하면 리더기가 바코드 데이터를 읽습니다. 이후, 리더기가 읽은 데이터를 PC로 전송하면, PC에서는 이전에 인쇄기에 전송한 바코드와 일치하는지 확인한 후, 그 결과를 바탕으로 PLC에 양품인지 불량품인지를 전송합니다. 동시에, 제품의 측정 데이터를 데이터베이스에 기록하고, 등록된 데이터는 MainWindow에 표시됩니다.