利用套件快速開發工業用預測性維護應用

作者:Stephen Evanczuk

資料提供者:DigiKey 北美編輯群

由於低成本智慧型感測器的面市,工業設備監控的水準日益提升,如今已能實現預測性維護。然而,對於許多開發人員而言,預測性維護所需的硬體與應用軟體都相當複雜,因此感測器資料的蒐集、組織、傳送、分析及應用作業仍舊是個難題。

為了滿足預測性維護快速增長的需求,半導體廠商開始提供完善的平台解決方案,其中結合許多需要的硬體與軟體。透過這些平台,工業應用開發人員能以更快速、更符合成本效益的方式設計並運行預測性維護系統。

本文將探討使用物聯網進行預測性維護的現代化概念,以及此概念如何大幅改善相關流程與結果。接著將介紹 STMicroelectronics 推出的預測性維護平台,並向開發人員展示如何使用此軟硬體來評估預測性維護的功能並開發其專屬的應用。

維護作業已從從猜測進化成預測

多年以來,工業工程師一直都使用振動分析與其他方法來偵測機械問題。過去,工程師倚賴手持式分析儀或其他專門測試設備來蒐集與處理設備分析用的資料。如今,製造商已經能夠藉由物聯網概念,使用低成本感測器對關鍵設備進行檢測,繼而提供需要的詳細資料流以便進行即時監控。

如果能夠連續評估設備效能,即可為工廠運作帶來重大優勢。如今,工業工程師能夠使用本機或遠端監控應用來加強甚至取代定期的手動維護計畫;這些計畫要不就是沒有問題而讓人虛耗精力,要不就是未能及時防止設備的小問題而惡化成大災難。與其發生問題時才來應對而導致必須關閉生產線,工廠操作人員可以使用基於感測器的方法來事先識別這些問題,分配需要的資源甚至替換機械,並儘可能在不干擾生產的情形下進行維修。

預測性維護可讓設施管理員防患於未然,避免問題釀成大災難,使其能夠在保持生產線完整性與員工安全的同時,分析資料以改善流程和結果。開發人員所面臨的挑戰在於,如何打造一個能夠在所需頻寬與解析度下蒐集資料的平台,以便在受監測的設備上偵測潛在問題的跡象。

若要進行振動分析,工業工程師一般會蒐集振動的時域與頻域資料。經驗豐富的工程師只要看一下這兩項資料,即可識別設備的機械問題。舉例來說,若發生寬廣頻寬的短暫週期性脈衝,通常代表某些零件 (如滾珠軸承) 有瑕疵,導致每旋轉一次,即撞擊軌道壁一次。相反地,如果持續時間長且頻寬窄,則可能代表零件彼此摩擦,最後導致磨損並可能發生故障。

為了有效取得此資料,振動感測器必須夠堅固,才可在突然發生撞擊、劇烈振動或其他工業環境中常見的情況下維持運作。即便在正常運作下,工業設備產生的振動與機械衝擊,仍可能超出早期振動感測器的感測範圍。自從採用微機電系統 (MEMS) 技術的感測器出現以後,這方面的問題大多已不復存在。STMicroelectronics 的 ISM330DLC 就屬於 MEMS 感測器,能承受高達 10,000 g 的突發性加速度長達 0.2 ms,又具有足夠的迅速恢復能力,可進行敏感度高達 mg 的線性加速度測量。

雖然來自動作感測器的數據對於故障分析至關重要,但振動只不過是機械運行狀況的其中一項指標。經驗豐富的工程師可從振動數據辨識出特定故障模式,但他們也會使用其他感測器模態來判定從偵測到症狀到設備出現功能故障時所歷經的時間,這段時間稱為「潛在問題至故障」(P-F) 間隔時間。舉例來說,如果功耗、雜訊或熱量升高,對大部分機械來說,這通常代表 P-F 間隔時間縮短 (圖 1)。

振動分析促成早期偵測的示意圖

圖 1:感測器的不同模態可指出設備存在潛在故障的症狀,但振動分析通常能促成早期偵測,並有助於避免突然故障導致的停機時間。(圖片來源:STMicroelectronics)

為了取得這些額外的指標,工程師需要建立至少能夠擷取振動、音訊、壓力、溫度與濕度的感測器系統。然而,對開發人員來說,要在完備的設計中結合這些感測器面臨著種種現實難題,可能會嚴重拖延進度,導致無法達成更重大的設備分析目標。STMicroelectronics 的 STEVAL-BFA001V1B 開發套件及相關軟體提供完善的平台,能讓工程師快速開發設備監控與預測性維護的應用。

參考平台

STEVAL-BFA001V1B 套件既可當作公版設計,也可當作現成的解決方案,其中包含工業級感測器板及相關的預測性維護軟體。此板件是完整、獨立的感測器系統 (圖 2)。採用高效能的 STMicroelectronics 32 位元 Arm® Cortex®-M4 STM32F469 MCU 搭配一組完整的感測器,包括上述用於振動測量的 ISM330DLC 動作感測器,以及以下的 STMicroelectronics 產品:

STMicroelectronics 的 STEVAL-BFA001V1B 開發套件示意圖

圖 2:STMicroelectronics 的 STEVAL-BFA001V1B 開發套件採用以 MCU 為基礎的工業感測器板設計,其中含有進行設備監控通常需要的一整套感測器。(圖片來源:STMicroelectronics)

此系統以 STMicroelectronics 的 M95M01-DF 1 Mbit EEPROM 輔助微控制器的整合式 2 MB 快閃記憶體,並透過 STMicroelectronics 的 L6984A 切換式穩壓器與 LDK220 低壓降 (LDO) 穩壓器提供電源管理功能。為簡化工業環境中的部署,該板的一端含有一個由 ST L6362A IO-Link 收發器支援的 M12 連接器。另一端則含有擴充連接器,能讓開發人員使用微控制器的 GPIO、類比數位轉換器 (ADC) 與 I2C 序列介面。最終構建出一個完備的系統,僅比 M12 工業纜線稍微大一點,卻能滿足設備監控的所有需求 (圖 3)。

STMicroelectronics 的 STEVAL-BFA001V1B 工業感測器板圖片

圖 3:STMicroelectronics 的 STEVAL-BFA001V1B 工業感測器板包含基於微控制器的多感測器系統、擴充連接器、序列線除錯 (SWD) 連接器與 M12 連接器,其外形尺寸僅比工業纜線大一點。(圖片來源:STMicroelectronics)

開發人員可以使用套件所附的 M12 纜線,也可以添加自己的 M12 連接器。本套件含有一個配接器板,可將 M12 感測器板的序列輸出連接至 STMicroelectronics STM32 Nucleo-64 開發板隨附的 ST-LINK/V2-1 介面。為了供電給板件,開發人員可透過 M12 纜線自行供電,也可將 M12 纜線插入 ST STEVAL-IDP004V1 IO-Link 評估板。這個 IO-Link 評估板提供最快速的開發途徑,因此開發人員能快速連接多個工業感測器板,並使用 STMicroelectronics 基於 Windows 的 STEVAL-IDP005V1-GUI_v1.0 圖形使用者介面 (GUI) 對這些板件進行設定 (圖 4)。

ST 的 Windows GUI 圖片

圖 4:開發人員可使用 ST 的 Windows GUI 快速設定感測器板、蒐集資料,以及查看頻域與時域動作數據及環境數據的結果。(圖片來源:STMicroelectronics)

在設定螢幕上完成設定後,開發人員可以前往振動分析畫面進行資料蒐集。按下開始按鈕之後,開發人員即可查看在 x、y 與 z 軸上蒐集的振動頻率以及旋轉速度測量值 (圖 5)。透過單獨的環境測量螢幕 (ENV Measures標籤),開發人員還可查看每個感測器板所蒐集的壓力、溫度和濕度數據。

ST Windows GUI 提供簡便方法示意圖 (按此放大)

圖 5:ST Windows GUI 可顯示來自動作感測器的頻域與時域數據,能以簡便的方法來評估感測器數據。(圖片來源:STMicroelectronics)

軟體開發

雖然 GUI 應用程式有助於快速使用感測器板的功能,但開發人員需要更靈活的作法來打造其專屬的預測性維護應用。STMicroelectronics 的 STSW-BFA001V1 軟體套裝提供一組完整的 C 軟體模組,包括驅動程式、函式庫以及範例應用程式 (圖 6),可進行客製化開發。

ST 的 STSW-BFA001V1 軟體項目示意圖

圖 6:ST 的 STSW-BFA001V1 軟體提供一組完整的驅動程式與中介軟體以及範例應用程式,可供開發人員立即執行,也可稍後用於自訂應用程式。(圖片來源:STMicroelectronics)

STSW-BFA001V1 套裝在軟體範例中包含一個狀況監控應用程式,可示範從動作感測器蒐集感測器數據以及產生頻域、RMS 和加速峰值的過程。若要建立生產用的設計,開發人員可將此資料上傳到專門偵測故障的主機應用程式。預測性維護應用可在此資料蒐集基礎上進行延伸,添加可發出潛在故障警告的功能。

此作法有很多優點,最具吸引力的一點在於能夠早期偵測指出潛在故障的狀況,進而拉長 P-F 間隔時間。另一項優點則是故障的偵測點更接近設備,能夠更及時地識別故障。

STMicroelectronics 的預測性維護應用向開發人員展示如何將感測器讀數與一系列的速度、加速度及頻率要素閾值進行比較,繼而達到早期偵測。在生產系統中,閾值的選擇取決於多種因素,但這些因素遠超出本文的討論範圍。

不過,請注意有一些標準可供參考。例如,ISO 10816 針對在四種不同操作區域運行的四類機器提供振動值準則。這四個區域包括 A 區 (良好)、B 區 (尚可)、C 區 (不適合連續操作) 以及 D 區 (嚴重,繼續操作可能會受損)。正如這些區域所示,當機器的振動位準達到 C 區時,應警告操作員,而當此位準達到 D 區時,應發出更為緊急的警報。

STMicroelectronics 依照這種特定的使用模式設計預測性維護應用。範例的應用程式軟體組合的標頭檔案 (MotionSP_Threshold.h) 含有警告與警報等級的閾值。在此例中,STMicroelectronics 依照 ISO 10816 的建議值,制訂在 B 區與 C 區邊界運行的警告閾值。而警報閾值則為 C 區與 D 區邊界的 ISO 10816 定義值。由於 STMicroelectronics ISM330DLC 之類的典型動作感測器可提供 x、y 以及 z 平面的數據,因此可為每個受監控的數值:RMS 速度、加速度和快速傅立葉轉換 (FFT),提供三個值以作為警告與警報閾值。此應用程式使用四個不同頻譜子範圍的 FFT 閾值。

最終產生一組與一系列實際機器運作狀態相符的閾值。當然,開發人員仍需調整這些警告與警報閾值,以符合受監控設備的特性,以及警告與警報的整體目標。

雖然標頭檔案可提供監控的操作目標,但主要常式 (main.c) 會提供相關邏輯,以便偵測工業板感測器所蒐集的數據是否發生閾值偏移。將硬體與相關軟體結構初始化之後,主要常式將進入無限迴圈,以產生振動數據的 FFT;測量 RMS 與加速度峰值;偵測閾值超出情形;發送警告 (清單 1)。

複製
  /* Initialize the motion sensor */
  MotionSensorInit();
  MotionSP_TimeDomainAlarmInit(&sTdAlarm,&sTimeDomainVal,&sTdRmsThresholds,&sTdPkThresholds);
  MotionSP_FreqDomainAlarmInit(&FDWarnThresh,&FDAlarmThresh,&THR_Fft_Alarms,MotionSP_Parameters.subrange_num);
  /****************************************************************************/
 
  while (1)
  {
    /* Vibration Analysis */
    MotionSP_Vibration_manager_run(&MotionSP_Parameters);
    /* Status check during Time domain Analysis */
    MotionSP_TimeDomainAlarm(&sTdAlarm,&sTimeDomainVal,
                             &sTdRmsThresholds,
                             &sTdPkThresholds,
                             &sTimeDomain);
    if(FinishAvgFlag == 1)
    {
      SendVibrationResult();
      TD_Thresholds_DataSend(&sTdAlarm,&sTimeDomainVal);
   
      MotionSP_FreqDomainAlarm (&SRAmplitude, FDWarnThresh, FDAlarmThresh,
                                MotionSP_Parameters.subrange_num,
                                &THR_Check, 
                                &THR_Fft_Alarms);
      
      FD_Thresholds_DataSend(MotionSP_Parameters.subrange_num,
                             &SRBinVal,
                             &THR_Fft_Alarms,
                             &THR_Check);
      
      MotionSP_TotalStatusAlarm(&sTdAlarm,
                                &THR_Fft_Alarms,
                                MotionSP_Parameters.subrange_num,
                                &TotalTDAlarm,
                                &TotalFDAlarm);
      
      Thresholds_DataSend(&TotalTDAlarm, &TotalFDAlarm);
      
      FinishAvgFlag = 0;
      RestartFlag = 1;
 
      // wait while the UART is transmitting
      while((HAL_UART_GetState(&hSrvUart) & HAL_UART_STATE_BUSY_TX ) == HAL_UART_STATE_BUSY_TX);
      strcpy((char *)SrvUartTxBuffer, "\r\n|#################### Next Measurement ####################\r\n");
      HAL_UART_Transmit(&hSrvUart, SrvUartTxBuffer, strlen((char *)SrvUartTxBuffer), SRV_UART_TIMEOUT_MAX);
     
      MotionSP_TimeDomainAlarmInit(&sTdAlarm,&sTimeDomainVal,
                                   &sTdRmsThresholds,&sTdPkThresholds);
      MotionSP_FreqDomainAlarmInit(&FDWarnThresh,
                                   &FDAlarmThresh,
                                   &THR_Fft_Alarms,
                                   MotionSP_Parameters.subrange_num);
 
      /* Configure the Hardware using parameters in RAM */
      MotionSP_Vibration_manager_init(&MotionSP_Parameters, 1);
 
      Accelero_MeasurementInit();
    }
  }

清單 1:STMicroelectronics 的預測性維護應用程式展示如何使用無限迴圈,依據頻域與時域感測器的測量數據來識別並發送警報。(程式碼來源:STMicroelectronics)

隨著迴圈繼續執行,板支援套件的感測器驅動程式與服務處理器將讀取資料,並填入到由較高層級常式監控的緩衝器。STMicroelectronics 的範例軟體會在應用程式層級指派處理器,能讓開發人員輕易用自己的常式進行取代,因此無需深入軟體結構即可滿足其獨特的需求。

在每次重複執行主迴圈時,主要常式會調用 MotionSP_TimeDomainAlarm() 來檢查 RMS 速度與加速度峰值的閾值。檢查頻域時,主迴圈則會反覆調用 MotionSP_Vibration_manager_run(),此常式則間接調用另一個模組的常式 MotionSP_FrequencyDomainProcess(),而此常式最終會調用中介軟體 FFT 計算常式,但前提是所需的循環緩衝區 (AccCircBuffer) 已經充分填滿,且 FFT 已啟用 (清單 2)。發生此狀況時,基本的狀況監控應用程式會使用此相同模式。

複製
/**
  * @brief  Frequency Domain Processing starting from the Circular Buffer
  * @param pMotionSP_Parameters: Pointer to board parameters
  * @return None
  */  
void MotionSP_FrequencyDomainProcess(sMotionSP_Parameter_t *pMotionSP_Parameters)
{
#define FFTSIZEDELTA  (MotionSP_Parameters.size*((100.0-MotionSP_Parameters.ovl)/100.0))
 
  if (fftIsEnabled == 1) {
      if (!accCircBuffIndexWaitForOvf) {
        if (AccCircBuffer.IdPos >= accCircBuffIndexForFft) {
        
        MotionSP_FFT_All_Axes();
        
        accCircBuffIndexForFft += FFTSIZEDELTA;
        if (accCircBuffIndexForFft >= AccCircBuffer.Size) {
          accCircBuffIndexForFft -= AccCircBuffer.Size;
          accCircBuffIndexWaitForOvf = 1;
        }
      }
    }
    else {
      if (AccCircBuffer.Ovf) {
        AccCircBuffer.Ovf = 0;
        accCircBuffIndexWaitForOvf = 0;
      }
    }
  }
}

清單 2:STMicroelectronics 範例應用程式的這個常式說明使用動作感測器的數據循環緩衝器進行頻域分析的機制。(程式碼來源:STMicroelectronics)

每次測量期結束時,此應用程式會使用另一個常式 MotionSP_TotalStatusAlarm() 來檢查動作數據的各個屬性,並將頻域警報 pTotalFDAlarm 與時域警報 pTotalTDAlarm 設為最大警報值 (清單 3)。隨後,清單 1 的主要常式會透過 UART 發送這些警報,然後再重新初始化系統,為下一個測量期做好準備。

複製
void MotionSP_TotalStatusAlarm(sTimeDomainAlarm_t *pTdAlarm,
                               sFreqDomainAlarm_t *pTHR_Fft_Alarms,
                               uint8_t subrange_num,
                               Alarm_Type_t *pTotalTDAlarm,
                               Alarm_Type_t *pTotalFDAlarm)
{
 Alarm_Type_t TempAlarm = GOOD;
 Alarm_Type_t TempFDAlarm = GOOD;
 
 TempAlarm = MAX4(TempAlarm,
                  pTdAlarm->PK_STATUS_AXIS_X,
                  pTdAlarm->PK_STATUS_AXIS_Y,
                  pTdAlarm->PK_STATUS_AXIS_Z);
 
 
 TempAlarm = MAX4(TempAlarm,
                  pTdAlarm->RMS_STATUS_AXIS_X,
                  pTdAlarm->RMS_STATUS_AXIS_Y,
                  pTdAlarm->RMS_STATUS_AXIS_Z);
 
 for(int i=0; i<subrange_num; i++)
 {
   TempFDAlarm = MAX4(TempFDAlarm,
                      pTHR_Fft_Alarms->STATUS_AXIS_X[i],
                      pTHR_Fft_Alarms->STATUS_AXIS_Y[i],
                      pTHR_Fft_Alarms->STATUS_AXIS_Z[i]);
 }
 
 *pTotalTDAlarm = TempAlarm;
 *pTotalFDAlarm = TempFDAlarm; 
  
}

清單 3:STMicroelectronics 範例應用程式展示在預測性維護應用中使用多個警報來源的基本設計模式。(程式碼來源:STMicroelectronics)

STMicroelectronics 範例應用程式能讓開發人員快速評估預測性維護的特性與功能。更直接的是,開發人員只需透過終端模擬程式連接至工業感測器板,便可立即開始檢視測量值及警告/警報狀態。

若是在生產應用程式上,開發人員則會想要使用感測器板的序列介面連接到上游資源,以進行更為複雜的應用監測與控制。幾家主要的雲端服務供應商已針對預測性維護提供先進的機器學習解決方案。比如說,Microsoft Azure 已在其整套物聯網解決方案加速器產品中,提供預測性維護解決方案。

開發人員甚至可以透過 Azure 加速器達到領先,其中包含模擬裝置,可顯示來自 NASA 噴射引擎的多個感測器資料流。在此加速器的工具鏈末端,Azure 機器學習服務會根據這些資料提供經過訓練的模型。在某些情況下,開發人員可以採用遷移學習法,使用事先訓練過的模型 (如 Azure 的預測性維護模型),作為其專屬自訂機器學習模型的起點。

結論

為了滿足對預測性維護快速增長的需求,開發人員必須快速部署適合工業環境且完備的多感測器系統。STMicroelectronics 提供完善的開發解決方案,集結專為預測性維護需求而設計的硬體感測器板與軟體環境。

藉由此系統解決方案,開發人員不僅能夠立即開始評估預測性維護、迅速開發專屬的預測性維護應用,還能利用新興的雲端型機器學習資源來建立更為複雜的預測性維護功能。

 
DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk 撰寫電子產業的相關資訊已有超過二十年的經驗,涉及的主題多元,涵蓋硬體、軟體、系統以及包含 IoT 在內的應用。他以神經元網路為研究主題,取得神經科學博士學位,並且在航太產業,針對廣泛運用的安全系統和演算法加速方法進行研究。目前,在撰寫科技和工程文章之餘,他投入辨識和推薦系統的深度學習應用。

關於出版者

DigiKey 北美編輯群