엣지 IO 및 Node-RED를 통한 머신 상태 및 부품 수 관리
  • 21 Oct 2024
  • 6 읽을 분
  • 기여자

엣지 IO 및 Node-RED를 통한 머신 상태 및 부품 수 관리


기사 요약

Edge IO 및 Node-RED로 머신 상태 및 부품 수 관리하기

Edge IO와 함께 머신 가시성 Node-RED 플로우를 사용하는 방법 알아보기

이 문서에서는 Tulip에서 상태 및 부품 수를 관리하기 위해 브레이크 빔 센서와 전류 센서를 Edge IO에 연결하는 워크플로우를 다룹니다. 여기에서는 고객의 에지 디바이스로 가져올 수 있는 Tulip Node-RED 라이브러리 플로우를 활용합니다.

이 문서가 끝나면 연결된 센서의 데이터를 Tulip 내 머신으로 전송하기 위해 Node-RED 내에서 다음과 같은 플로우를 사용하게 됩니다.

다음 단계를 완료해야 합니다:

  1. 하드웨어 설정: 에지 IO 연결
  2. 머신 설정: Tulip에서 머신 생성
  3. Node-RED 설정: Tulip 라이브러리에서 Node-RED 플로우 가져오기, 편집 및 배포하기

필요한 것은 다음과 같습니다:

  • Tulip 계정에 등록된 Edge IO

  • 전류 센서: CR3111-3000 또는 유사한 다른 변류기

    • 변류기에 적합한 크기의 부하 저항기(CR3111-3000의 경우 100옴 권장)(크기 설정은 하드웨어 설정 참조)
    • 브레이크 빔
    • 3.5mm 일자 드라이버

1. 하드웨어 설정 - 엣지 IO 배선하기

이 워크플로에서는 변류기와 에지 IO에 연결된 브레이크 빔을 사용한다고 가정합니다.

부하 저항기 크기 계산하기: CR3111-3000을 사용하는 경우 100옴 저항을 권장합니다. 다른 전류 클램프를 사용하는 경우 유효 회전율(T_e)과 측정할 최대 전류(I_max)를 통해 다음과 같이 허용되는 최대 저항 크기(R_burden)를 계산할 수 있습니다: R_burden = 3.12 * T_e / I_max. 저항은 최대 허용 저항 크기보다 작을 수 있으며, 이렇게 하면 센서 분해능이 감소합니다.

전류 클램프(CR3111-3000)와 브레이크 빔을 다음과 같이 에지 IO에 배선합니다:

  • 전류 클램프

    • 전원 케이블을 통해 기계로 유입되는 AC 전류 측정
    • 그림과 같이 두 전류 클램프 전선 사이에 저항을 부착합니다.
    • 한 와이어를 차동 ADC [+] 터미널에 연결하고 한 와이어를 차동 ADC [-] 터미널에 연결합니다.
    • 브레이크 빔
    • 캡처 파트 생성
    • 갈색 와이어(+24V)를 SAR ADC의 +24V 단자에 연결합니다.
    • 파란색 와이어(gnd)를 디지털 입력 뱅크의 접지 단자에 연결합니다.
    • 검은색 와이어(출력)를 디지털 입력 뱅크의 핀 1에 연결합니다.

또한 장치에 전원을 공급하고 이더넷 케이블을 WAN 포트에 연결하여 장치를 네트워크에 연결했는지 확인합니다.

2. 머신 설정 - 튤립에서 머신 만들기

브레이크 빔과 전류 센서의 데이터를 Tulip으로 전송하려면 먼저 Tulip API를 데이터 소스로 사용하여 머신을 설정합니다. 자세한 개요는 머신 속성 API 사용 방법 문서의 새 머신 설정하기 섹션을 참조하세요.

이 예에서는 두 가지 속성이 있는 머신을 만들었습니다:

  1. 전류(float) - 센서에서 반환된 전류를 나타냅니다.
  2. 파트 수(int) - 파트의 완료를 나타내는 브레이크 빔의 신호입니다.

Node-RED 흐름에 전달할 attributeId 및 machineId 값을 기록해 두는 것이 좋습니다.

현재 센서를 사용하여 기계의 상태와 같은 측면을 변경하거나 센서 출력을 기반으로 카운트를 수행하려는 경우 기계에 할당할 기계 유형을 설정할 수도 있습니다. 관심이 있는 경우 기계 유형 설정 방법을 참조하세요.

3. Node-RED 설정

브레이크 빔 및 전류 센서에 연결된 에지 IO에서 에지 장치 포털을 엽니다. 다음 자격 증명을 사용하여 Node-RED 에디터를 시작합니다:

  • 사용자 이름: admin
  • 비밀번호: Edge IO 비밀번호

자세한 내용은 여기를 참조하여 Edge IO에서 Node-RED를 시작하세요.

3a. 라이브러리 흐름 가져오기

라이브러리 플로우를 가져오려면 Tulip Node-RED 플로우 가져오기 문서의 단계를 따르세요. 임포트할 플로우는 machine_visibility.json이며, 임포트하면 에디터에 현재 클램프 및 브레이크빔이 있는 머신 가시성 탭이 생성됩니다.

3b. 흐름 개요

이 흐름은 두 개의 개별 워크스트림으로 구성됩니다:

파트 카운터

첫 번째 경로는 브레이크 빔 센서를 통해 파트 수를 모니터링하는 것입니다. 이 흐름은 4개의 기능 노드로 구성됩니다:

  1. 모니터 핀

    • 목적: 활성화된 핀 속성을 통해 모니터링할 에지 IO의 GPIO 핀을 정의합니다.
    • 핀업 필터
    • 목적: 메시지 페이로드에서 모니터링되는 핀의 이벤트가 참인지 확인합니다.
    • 부품 수 증가
    • 목적: 핀 이벤트가 true일 때 흐름 변수 부품 수를 늘립니다.
    • 튤립 머신 속성: 파트 수
    • 목적: API를 통해 Tulip에 페이로드(partCount)를 전송합니다.

RMS 전류 모니터링

두 번째 경로는 ADC(아날로그-디지털 컨버터) 입력에 연결된 전류 센서를 모니터링하는 것입니다. 이 흐름은 6개의 기능 노드로 구성됩니다.

  1. 차동 ADC 판독값

    • 목적: 아날로그 구성 프로파일을 ADC 입력에 할당합니다.
    • 1/5 판독값 필터링
    • 목적: 매 5번째 측정값(5초)을 추출하여 Tulip에 전달합니다.
    • 메시지 전달
    • 목적: 매 5번째 메시지에 대한 판독값 수를 0으로 초기화합니다.
    • 메시지 삭제 및 증가
    • 목적: 다른 모든 판독값에 대해 판독값 수를 1씩 증가시킵니다.
    • CR-3111 스케일링
    • 목적: 제조업체의 사양에 따라 센서 측정값의 스케일을 조정합니다.
    • 튤립 기계 속성: RMS 전류
    • 목적: API를 통해 페이로드(partCount)를 Tulip에 전송합니다.

기본적으로 비활성화되어 있지만 Node-RED에 의해 머신 상태를 결정하도록 활성화할 수 있는 네 가지 옵션 노드도 있습니다. Tulip 내에서 머신 트리거를 사용하여 동일한 로직을 실행할 수도 있습니다.

  1. 전류가 100mA 이상인가?

    • 목적: 전류 값이 100mA보다 큰지 확인합니다.
    • 상태 = ON
    • 목적: 전류가 100mA보다 크면 페이로드를 ON으로 설정합니다.
    • 상태 = OFF
    • 목적: 전류가 100mA 이하인 경우 페이로드를 OFF로 설정합니다.
    • 튤립 머신 속성: 상태
    • 목적: API를 통해 Tulip에 페이로드(상태)를 전송합니다.

3c. 흐름 편집

이 흐름 설정을 완료하려면 Tulip 머신 속성에 대한 장치 정보를 수정합니다: 부품 수Tulip 머신 속성: RMS Current 노드에 앞서 설정한 기계의 attributeId 및 machineIdfield가포함되어야 합니다.

사용하는 센서에 따라 현재 변압기의 회전율을 반영하도록 CR-3111 스케일링 노드를 추가로 편집할 수 있습니다.

3d. 흐름 배포

Node-RED 플로우가 빌드되고 필요한 파라미터가 추가되면 플로우를 배포하고 브레이크 빔 및 전류 센서의 데이터가 Tulip으로 출력되는 것을 확인할 수 있습니다.

Node-RED 에디터의 오른쪽에 있는 디버그 메시지 옵션을 선택하면 Tulip API의 응답과 해당 상태 코드를 볼 수 있습니다.

상태 코드에 대한 자세한 정보를 확인하려면 Tulip 인스턴스의 API 설명서(예: .tulip.co/apidocs)로 이동하세요. 특히 POST /속성/보고서 엔드포인트 문서를 참조하세요.

이제 머신의 구성 탭으로 이동하여 Tulip에서도 데이터를 볼 수 있습니다.

Node-RED 플로우의 기술적 세부 사항

다음은 machine_visibility.json 파일로 가져온 노드와 해당 기본 구성 매개변수에 대한 자세한 요약입니다.

파트 카운터

  1. 모니터 핀

    • 목적: 활성화된 핀 속성을 통해 모니터링할 에지 IO의 GPIO 핀을 정의합니다.

    • 노드 유형: 디지털 입력

    • 기본 속성:

      • 실행 모드 - 연속
      • 새로 고침 빈도 - 1초
      • 핀 활성화 - 1
      • 핀업 필터
    • 목적: 메시지 페이로드에서 모니터링되는 핀의 이벤트가 참인지 확인합니다.

    • 노드 유형: 스위치

    • 기본 속성:

      • 속성 - msg.payload
      • 규칙 - is true
      • 부품 수 증가
    • 목적: 핀 이벤트 참일 때 흐름 변수 부품 수를 증가시킵니다.

    • 노드 유형: 변경

    • 기본 속성입니다:

      • Rules:

        • flow.partCount를 $flowContext('partCount') + 1 표현식으로 설정합니다.
        • msg.payload를 flow.partCount로 설정합니다.
        • 튤립 머신 속성: 부품 수
    • 목적: API를 통해 페이로드(partCount)를 Tulip에 전송합니다.

    • 노드 유형: 머신 속성

    • 기본 속성:

      • 장치 정보* - {"attributeId":"", "machineId":""}
      • 속성 소스 - msg.payload

RMS 전류 모니터링

  1. 차동 ADC 판독값

    • 목적: 아날로그 구성 프로파일을 ADC 입력에 할당합니다.

    • 노드 유형: 고속 아날로그

    • 기본 속성:

      • 아날로그 구성 - 차동 ADC RMS @ 1kHZ

        • 구성할 ADC - 차동 ADC 선택
        • 활성화된 출력 - RMS
        • 버퍼 크기 - 1000
        • 샘플링 주파수(Hz) - 1000 + 데이터 유형 - RMS + 출력 모드 - 연속 + 새로 고침 빈도(초) - 1
        • 1/5 판독값 필터링
    • 목적: 매 5번째 측정값(5초)마다 추출하여 Tulip으로 전달합니다.

    • 노드 유형: 스위치

    • 기본 속성:

      • 속성 - flow.numReadings

      • Rules:

        • == 4
        • 그렇지 않으면
        • 메시지 전달
    • 목적: 매 5번째 메시지에 대한 판독 횟수를 0으로 초기화합니다.

    • 노드 유형: 변경

    • 기본 속성입니다:

      • 규칙:

        • flow.numReadings를 0으로 설정
        • 메시지 삭제 및 증분
    • 목적: 다른 모든 판독값의 경우 판독값 수를 1씩 증가시킵니다.

    • 노드 유형: 변경

    • 기본 속성:

      • Rules:

        • flow.numReadings를 $flowContext('numReadings') + 1 표현식으로 설정합니다.
        • CR-3111 스케일링
    • 목적: 제조업체의 사양에 따라 센서 측정값의 스케일을 조정합니다.

    • 노드 유형: 하위 흐름 템플릿

    • 기본 속성:

      • 속성 - 데이터
      • 스케일* - 3000
      • 오프셋 - 0
      • 튤립 머신 속성: RMS 전류
    • 목적: API를 통해 페이로드(partCount)를 Tulip으로 전송합니다.

    • 노드 유형: 머신 속성

    • 기본 속성:

      • 장치 정보* - {"attributeId":"", "machineId":""}
      • 속성 소스 - msg.data[0]

머신 상태 계산을 위한 하위 흐름

  1. 전류가 100mA 이상인가요?

    • 목적: 전류 값이 100mA보다 큰지 확인합니다.

    • 노드 유형: 스위치

    • 기본 속성:

      • 속성 - msg.data[0]

      • Rules:

        • > 0.1
        • 그렇지 않으면
        • 상태 = ON
    • 목적: 전류가 100mA보다 크면 페이로드를 ON으로 설정합니다.

    • 노드 유형: 변경

    • 기본 속성입니다:

      • Rules:

        • msg.payload를 ON으로 설정
        • 상태 = OFF
    • 목적: 전류가 100mA 이하인 경우 페이로드를 OFF로 설정합니다.

    • 노드 유형: 변경

    • 기본 속성:

      • Rules:

        • msg.payload를 OFF로 설정
        • 튤립 머신 속성: State
    • 목적: API를 통해 페이로드(상태)를 Tulip에 전송합니다.

    • 노드 유형: 머신 속성

    • 기본 속성:

      • 기기 정보* - {"attributeId":"", "machineId":""}
      • 속성 소스 - msg.payload

* 흐름이 올바르게 작동하려면 매개변수를 업데이트해야 합니다. 현재 센서의 눈금 값은 제조업체의 권장 사항에 따라 수정해야 합니다.

추가 자료


원하는 것을 찾았나요?

community.tulip.co로 이동하여 질문을 게시하거나 다른 사람들이 비슷한 질문을 했는지 확인할 수도 있습니다!


이 문서가 도움이 되었습니까?