LabVIEW Pro 專業論壇-技術討論區-馬達驅動器及時停止
 
     
 
 
 
LabVIEW 討論區基礎教學每月專題分享技術問題精選online Test
技術討論區 ★LabVIEW Pro 嘉年華★ 程式分享區 教育訓練與認證區 閒話家常區 工作機會討論區 回報區 高手專訪系列 2017 LabVIEW 至尊爭霸賽
 熱門關鍵字 
    取得 NI 協助    LabVIEW Pro 嘉年華    量測概念充電站    TOP 資源排行榜    3小時內學會 LabVIEW
 您的位置:首頁 > 技術討論區 > 馬達驅動器及時停止
  技術討論區   板主:meiae
 之1(2篇)
馬達驅動器及時停止 
 
a913305
暱稱:
經驗值:24
等級:學徒
發文:2
回文:1
版本:
闖關狀態:
前往地圖:
 
字級設定

如題

我參考版上的資源 寫出一個狀態機的介面控制我的馬達驅動器

目前已經能夠透過rs232和儀器溝通

但是有一個很大的問題 就是我希望能夠做一個緊急的停止按鈕防止撞機

可是我目前的寫法好像只能按下按鈕等一個指令跑完後才能再跑下一個按鈕的指令

不知道我的程式要怎麼修改才能達到我的要求?

附件是馬達控制器的控制指令 還請板上的大大幫幫我

 

[+]放大圖片
 

[+]放大圖片
 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
附件檔案:    
Unice-translator-manual.zip
  文章人氣: 1072 讚:0 文章日期:2017/11/20 10:52
mingyenwei

暱稱:銘延
經驗值:1743
等級:舵主
發文:2
回文:440
版本:請選擇
闖關狀態:
飄渺嶺
前往地圖:
1樓
字級設定

 

狀態機實作上,最大的優點就是迴圈內狀態明確,最大的缺點就是沒辦法容易根據人機介面做緊急停止。

因為等待人機介面的迴圈狀態已經完成了。這個(單)迴圈已經進入設備控制的部分。

 

****

用久了狀態機,就會發現狀態機是User自願降低程式設計自由度,而帶來的架構簡化效益。狀態機的架構概念就是Advanced Stacked Sequence。

 

常見的情況有幾個拯救方法,簡述如下。不過你的程式在這番拯救後,大概再兩三次改版,就不會想繼續維護了。這正好也是是CLD考試時的常見經驗。

1. 狀態機本身的迴圈與內部狀態所擁有的所有迴圈,加上Local Variable進行偵測。要點是[a] 最內層的迴圈,[b] 所有的分支迴圈最好都要,[c] 善用Shift Register對不需要修改的按鍵 + 燈號進行原狀態by Pass,但最好用Cluster將這些燈號包起來,任何一個偵測的Local Variable偵測到緊急狀態發生時,所有的最內層迴圈都需要對這些緊急Local Variable做反應,[d] 可以善用FeedBack Node簡化 c 的部分,但不要把這個部分在Block Diagram四處亂放。

2, 另外緊急加寫第二個迴圈,完全把UI偵測交給他,與狀態機溝通使用Local Variable。但是會用單迴圈狀態機的人,往往就是對於雙迴圈還沒辦法掌握。雙迴圈的大麻煩Local Variable偏偏在這種時候又是必要,這會造成像是九陰真經只學了下半部。完成的過程中內心是很不踏實的,讓人反而更對雙迴圈卻步。

 

3. 折衷的詭異方法是在需要偵測緊急停止的狀態,增加雙迴圈。(我絕對不會說就是要叫人用雙迴圈...)

狀態機迴圈Case

{

    設備運行

    [設備運行程式碼]

↑↑↑↑使用Local Variable在這兩個迴圈內傳遞↓↓↓↓

    緊急停止偵測Event Structure with Timeout <10ms,也可以用一般迴圈偵測,用XOR偵測按鍵變化

    [緊急停止判斷程式碼,每<10ms發生一次Timeout]

}

[+]放大圖片
 

 

4. 利用資料流(下圖沒使用)+Local variable+Case+Flat Sequence

[+]放大圖片
 

    讚:0 文章日期:2017/11/21 11:56
mingyenwei

暱稱:銘延
經驗值:1743
等級:舵主
發文:2
回文:440
版本:請選擇
闖關狀態:
飄渺嶺
前往地圖:
2樓
字級設定

回到你的"stand by" state的問題 

 

你可以把Event Structure新增一個Timeout,試試看1~10 ms。

1~10ms沒有事件,就會結束你的Event Structure。

這時候會繼續讓下一個狀態維持是"stand by"。(這種作法偵測連續按著按鈕時可能會有額外問題,也可能會漏掉按鍵)

 

我不建議這樣寫,這是根據元件特性試著幫忙找方法硬解。會發生更奇怪的事都是可以預期的...

 

[+]放大圖片
 

    讚:0 文章日期:2017/11/21 12:09
 之1(2篇)
 
 
   會員中心 
帳號:
     
密碼:
     
  以後自動登入
 
註冊
   Top 5 熱門討論 
1. Crash Reporter問題
2. 有關LABVIWE與PLC無法控制,因...
3. myRIO 用25ns的速度去打方波,輸出訊號上不到3.3V ,下也到不了0V
4. Actor framework 20分鐘快速建立
5. 陣列相同保存其餘刪除
 
 
 
LabVIEW討論區 站長信箱 關於我們 站內聲明
國家儀器股份有限公司贊助;Sponsored by NI.
© 2010 National Instruments, Taiwan. All rights reserved. design by begonia