Ambaflex 나선형 결함을 수정하기 위해 실시간 센서 대시 보드를 구축 한 방법
Ambaflex 나선형 컨베이어는 시설 전체에서 제품을 수직으로 수준으로 운송하는 데 사용됩니다. 그들은 고밀도 건물의 효율적인 재료 흐름에 작고 공간 절약 및 필수적입니다.
각 나선형은 두 개의 근접 센서를 사용하여 체인이 정상적으로 회전하는지 여부를 감지하는 데 도움이됩니다. 하나의 센서는 방전 지점 근처의 나선형 상단에 위치하고 있습니다. ‘반달’으로 알려진 반사 금속 조각을 감지합니다. 두 번째 센서는 하단에 장착되며 회전 샤프트에 부착 된 ‘체인 마커’라는 작은 기준 탭을 감지합니다.
나선형이 실행되면 두 센서는 각 마커가 지나갈 때마다 신호를 PLC에 보냅니다. 이 두 신호 사이의 타이밍을 비교함으로써 PLC는 체인이 올바르게 회전하는지 또는 무언가 꺼져 있는지 여부를 결정합니다. 두 센서가 너무 가깝거나 전혀 가깝지 않으면 시스템은 이것을 잠재적 인 체인 브레이크 또는 기계적 문제로 해석하고 안전을위한 나선을 중지합니다.
신호가 잘못되거나 동시에 화재가 발생하면 PLC는 “깨진 체인”오류를 표시하여 나선형을 멈추고 하류 중단을 만듭니다.
또 다른 나선형은 단지 결함이있었습니다 – 다시 체인이 깨졌습니다. 제어, 트렌드를 끌어 올릴 수 있습니까?
산업 유지 보수에 있다면 전에 들었습니다.
Ambaflex 나선형 컨베이어 현대 시설의 모든 곳에 있습니다. 그들은 신뢰할 수 있습니다 – 그렇지 않을 때까지. 그리고 그들이 깨지면 문제 해결은 추측 게임이됩니다.
왜? 기술자가 볼 수 없기 때문에 센서가 결함으로 이어지는 것 . 역사가 없습니다. 트렌드가 없습니다. 단지 가정.
그래서 나는 그것을 고치고 많은 시간을 절약하는 것을 만들었습니다.
문제 : 센서 기록 없음
나선형 컨베이어가 체인 결함을 던지면 첫 번째 질문은 항상 다음과 같습니다. 중지되기 몇 초 동안 정확히 무슨 일이 있었습니까?
불행히도, 근접 센서의 내장 LED는 몇 초 전에 일어난 일이 아니라 현재 상태 만 보여줍니다. PLC 액세스가있는 컨트롤 엔지니어에게도 라이브 트렌드 나 역사가없이 과거 행동을 재구성하기가 어렵습니다.
이 가시성 부족은 각 체인 결함을 추측으로 바꿉니다. 기술자가 그것을 해결할 수 없을 때, 컨트롤 팀은 종종 한 시간 이상 동안 전화를받습니다. 시각적 타임 라인이 없으면 사소한 센서 문제조차도 귀중한 엔지니어링 시간을 소비합니다.
솔루션 : 모든 침대에 대한 라이브 트렌드 대시 보드
파이썬 기반을 만들었습니다 Ambaflex 근접 대시 보드 두 센서의 실시간 및 역사적 행동을 보여줍니다. 살다.
직접 연결됩니다 스튜디오 5000 PLC ~을 통해 pycomm3
20ms마다 근접 센서 태그를 폴링하고 최대까지 저장합니다. 10 분 메모리의 데이터.
주요 기능 :
- 20ms마다 실시간 업데이트
- 일시 정지 버튼은 지난 10 초 동안 얼어 붙은 트렌드를 보여줍니다
- 스크롤 가능한 기록 (1- 슬라이더가있는 두 번째 창)
- 직접 PLC 연결 – 역사가 또는 HMI가 필요하지 않습니다
- 임베디드 readme 뷰어 (PDF 도움말 문서)
- 완전히 만들어졌습니다 tkinter + matplotlib + pycomm3
작동 방식
이 앱은 최대의 응답 성을 위해 백그라운드 스레드를 사용하여 근접 센서 태그를 지속적으로 폴링합니다. 메모리에서 타임 스탬프와 부울 값을 완충시키고 실시간으로 사용하여 사용합니다. matplotlib
.
사용자는 다음과 같습니다.
- 구조화 된 목록에서 침대를 선택하십시오 (PLC/캐비닛으로 그룹화)
- 추세와 센서 동작을 분석하기 위해 그래프를 일시 중지하십시오
- 수평 슬라이더를 사용하여 시간을 다시 스크롤하십시오
- UI에 포함 된 사이트 별 PDF 안내서를보십시오
전체 UI는 단일 내부에서 실행됩니다 .py
또는 .exe
파일. 가벼운 중량. 빠른. 라이센스가 없습니다.
내가 어떻게 만들었는지
PLC에 연결 – 왜 pycomm3
나는 질문으로 시작했다 : Python의 Studio 5000 PLC에서 데이터를 가져 오는 가장 빠른 방법은 무엇입니까?
나는 고려했다 pylogix
그러나 선택했습니다 pycomm3
한 세션에서 여러 읽기를 처리하고 깨끗한 스레딩을 지원하기 때문입니다.
코드 스 니펫 – 핵심 폴링 루프 :
from pycomm3 import LogixDriver import time def poll_tags(plc_ip, tags): with LogixDriver(plc_ip) as plc: while True: values = plc.read(*tags) queue.put((time.time(), values)) time.sleep(0.02) # 20ms polling
UI 반응을 유지합니다 – 구조에 실
Tkinter의 메인 루프 및 PLC 읽기가 제어를 위해 경쟁했기 때문에 초기 버전이 즉시 얼어 붙었습니다.
해결책: 배경 스레드에서 PLC 폴링을 실행하십시오 큐를 통해 데이터를 기본 UI 스레드로 푸시하십시오.
큐에서 가져 오기 스레드 스레드에서
queue = Queue()
def start_polling(): t = Thread(target=poll_tags, args=("10.153.249.123", ["U425200_Prox", "U425201_Prox"])) t.daemon = True t.start()
실시간 플로팅-matplotlib와의 레슬링
Matplotlib는 50fps 플로팅 용으로 제작되지 않았습니다. 처음에는 그래프가 실제 신호 뒤에 5 초가 지쳐졌습니다.
수정 사항 :
- 버퍼가 10 분으로 제한됩니다 (한 번에 수천 포인트를 표시하지 마십시오).
- 사용된
blit()
완전한 캔버스 새로 고침 대신 더 빠른로 그리기.
결과 : 매끄러운 스크롤, PLC 읽기와 화면 업데이트 사이.
일시 정지 및 스크롤 백 기능
기술이 필요했습니다 그래프를 얼립니다 문제 해결시 – 그래서 a를 추가했습니다 일시 정지 버튼 이는 업데이트를 중단하고 지난 10 초 동안 얼어 붙었습니다.
그런 다음 a 수평 슬라이더 60 초를 뒤로 스크롤합니다.
이것은 관리를 의미했습니다 두 버퍼:
- 활성 버퍼 (라이브 스트림)
- 아카이브 버퍼 (스크롤 가능한 역사)
def pause_graph () : Global PASERD PASED = PASERDENE (PANED : Print) ( “그래프 냉동 – 지난 10 초 표시”) else : print ( “그래프 재개”)
첫 번째 시도에서 얻은 교훈: 나는 첫 번째 시도에서 그것을 못 박지 않았다. 첫 번째 프로토 타입은 5ms 간격으로 폴링을 시도했으며 PLC는 즉시 타이밍을 시작했습니다. 그런 다음 Tkinter 메인 스레드에서 모든 것을 실행하려고 시도했습니다. 이러한 초기 실패로 인해 내 접근 방식을 다시 생각해 보았습니다. 가볍게 폴링을 유지하고 무거운 리프팅을 배경 스레드로 밀어 넣었습니다.
센서에서 그래프로 : 조정 작동 방식
대시 보드는 기술자를 돕습니다 미세 조정 센서 정렬. 임베디드 PDF 가이드를 기반으로 올바르게 정렬 된 센서는 녹색 마커 (하단 센서)를 보여줍니다. 두 개의 파란색 펄스를 중심으로합니다 (상위 반달). 이 시각적 큐는 센서 오정렬로 인한 체인 결함을 제거하는 데 도움이됩니다.
마커를 시계 방향으로 회전 시키면 녹색 펄스가 지연됩니다. 시계 반대 방향으로 발전합니다. 두 마커가 함께 트리거되는 동안 체인 경고가 깨진 경우, 그래프에 표시된대로 센서 위치를 조정하면 문제가 수정됩니다. 학위 계산이 필요하지 않습니다 – 트렌드를 사용한 시각적 참조 만 있습니다.
현대 자동화 권한을 부여하십시오 그것을 계속 달리는 사람들 – 압도적이지 않습니다. 이 도구는 정확히 수행합니다.
대시 보드 전에 나선형 체인 결함 문제를 해결하는 것은 시행 착오를 의미했습니다. 기술자는 센서를 맹목적으로 조정해야했으며 종종 지원을위한 제어로 확대됩니다. 특히 피크 작업 중에 스트레스, 불확실성 및 다운 타임이 발생했습니다.
이제 전선 팀은 무슨 일이 있었는지 즉시 볼 수 있습니다. 라이브 타임 라인은 명확성과 제어를 제공하여 엔지니어링에 대한 의존성을 줄이고 흐름을 더 빨리 복원합니다. 새로운 기술자는 시각적으로 정렬 로직을 배울 수 있습니다. 추측, 매뉴얼 없음, PLC 액세스가 필요하지 않습니다.
그리고 컨트롤 팀을 위해? 반복적 인 문제 해결에서 해방되어 시설 전체의 높은 수준의 개선에 집중할 수 있습니다.
이 도구 :
- 컨트롤 팀 시간을 저장합니다
- 기술자의 스트레스를 줄입니다
- 신입 사원을위한 훈련을 가속화합니다
- 간단한 센서 문제로부터 다운 타임을 방지하는 데 도움이됩니다
이것이 중요한 이유 – 그리고 진정한 ROI
3 개의 건물을 관리한다고 가정 해 봅시다. 각각 10 개의 Ambaflex 나선이 있습니다. 그리고 각 나선형은 한 달에 하나의 깨진 체인 결함 만 던져줍니다.
10 나선 × 12 개월 × 3 건물 = 360 결함/년
노동 비용 :
- 1 시간 컨트롤 = $ 40
- 1 시간 기술자 = $ 30
- 총 = $ 70/오류 → 360 × $ 70 = $ 25,200/년
다운 타임 비용 : 이벤트 당 2 분의 중단 만 가정하십시오 $ 8,000/분 = 결함 당 $ 16,000 × 360 결함 = $ 576 million/년
이 대시 보드가 방지하더라도 결함의 15%당신은보고 있습니다 매년 $ 867,000 – 개발 시간 외에는 비용이 드는 간단한 도구에서.
최종 생각
이 도구는 기술자와 엔지니어가 이전에 보이지 않는 문제에 대한 실시간 가시성을 제공합니다.
한 엔지니어가 수십 명의 다른 사람들을 돕기 위해 제작 한 큰 영향을 미치는 작은 도구입니다.
전체 코드와 메모는 Github에서 사용할 수 있습니다. 많은 댓글이 포함되어있어 다른 엔지니어가 자체 사이트에 따라 따라하거나 적응할 수 있습니다.
Post Comment