程式運行問題

各位先進好

目前我使用研華的DAQ與軸向控制卡做放電加工設備的自動化程式,但在程式撰寫過程中,有點問題想請教。程式如圖所示,下方也有附上撰寫的VI程式。



我想要在按下開機測試鈕後,Z軸會自動下降,直到AD訊號=15 時,Z軸就會停止

請問各位先進我該如何去做程式迴圈的修改?
再麻煩各位指教了,謝謝。

附上程式VI:
統整.vi (1.1 MB)

統整2.vi (1.0 MB)

  1. 我把 開機測試 按鈕
    Mechanical Action
    Latch When Released 改成 Switch When Pressed

  2. 開機測試 Event Mouse Up 改成 Value Chang

  3. AD訊號值 浮點 轉 整數
    image

  4. 當AD訊號值 不等於整數 15 時, 開機測試 按鈕 設置為 True
    連接 Value Signaling (再一次執行 開機測試 Value Chang Event )
    image

  5. 當AD訊號值 等於 整數 15 時, 開機測試 按鈕 Value 設置為 False ( 不觸發 Event )
    image

1個讚

感謝 我嘗試看看
剛剛在使用的時候會一直跳警報出來 我修改看看

謝謝前輩

前輩 剛剛我在測試後 開機測試按鈕改為switch until released

我是希望程式為一接收到AD訊號,Z軸立即停止,
現在測試為AD訊號要保持在15以上,並且我按下下方OK鍵後 Z軸才停止

想請教前輩這部分我該怎麼做修改
另外,謝謝前輩幫忙整理我的程式介面 有規劃的介面真的超讚的

當AD訊號值 不等於整數 15 時 ( Default Case),

  1. Acm_AxMoveRel.vi 輸出 = 0
    開機測試 按鈕 設置為 True 連接 Value Signaling
    (再一次執行 開機測試 Value Chang Event )

  2. Acm_AxMoveRel.vi 輸出 > 0
    顯示訊息 PTP Relatively Failed With Error Code:0x
    按下OK鍵後 , 將開機測試 按鈕 Value 設置為 False ( 不觸發 Event ) 即 Z軸停止

1個讚

AD訊號 = 15 Case Structure 的値 15… 把 “…” 拿掉 ,改成整數 15

當AD訊號值 不等於整數 15 時 , 小於 或 大於
Case Structure 就會跑 ( Default Case)

1個讚

A/D到時候會換成真實的類比訊號嗎? 如果是的話, 你可能需要留意一下, A/D條件滿足的時候到馬達真的停止, 這個時間可能不是非常可控唷, 如果這個時間很重要(不管是要很短或者是很穩), 一般軸卡不一定能做到唷

1個讚

感謝前輩的幫忙 我現在這部分程式可以正常運行了

感謝前輩的意見~
目前我只有要將這個類比訊號提供給電腦做訊號回授而已,不會再轉換為另一個類比訊號的,
因為我這台設備是要做放電加工機的,如果在回授後還有延遲時間對加工製程來說真的太傷了

了解, 我只是看到你的解說有貼一張馬達動作跟AD卡的訊號有關係, 才提醒的XD , 如果真的有需要, 你可以查看看real-time這個關鍵字, 會有幫助:D

1個讚

各位前輩好

目前我正在撰寫放電加工的程式,
程式動作流程圖如下方所示,在開始加工前,我會先選擇加工軸與加工深度,之後才會啟動加工,
此時加工軸會開始自動移載,直到AD值>5時,加工軸退後1pulse,並以此座標點為原點進給至指定加工深度,
在加工途中如果AD訊號值>5的話,會隨著AD訊號值的大小退後相對應的步數,若AD值一直>5,則加工軸會重複的進行退後,直到AD訊號值<5,才繼續進給加工,直到達到指定加工深度為止。

目前我正在撰寫AD訊號回授的部分使馬達有進退進退的加工過程,但我撰寫出來的程式結果,加工軸會直接到達指定的加工深度,不會立即接收我的AD訊號值做相對應的退刀動作,程式撰寫內容如下,還請各位前輩為我解惑,拜託了


附上程式VI:
放電加工設備labview介面.vi (1.1 MB)

好的!! 我對labview真的很不熟悉,蠻需要各種知識補充的哈哈

1個讚

2021好新不能開QQ (2018飄過)

不過你這裡說的, 可以再多描述一下發生什麼現象嗎?

加工軸會直接到達指定的加工深度,不會立即接收我的AD訊號值做相對應的退刀動作

因為照你原本說的AD值在5這個數值似乎是個門檻, 超過要退回, 低於才能正常加工
你的描述我猜意思是: 目前的狀況不管AD值多少, 他都會一路往前跑, 對嗎?

如果是, 我建議可以先嘗試看看用highlight功能(一個燈泡的圖樣, 在block diagram上方), 執行程式前 or 中, 都可以點這個功能, 會有一個類似慢動作的效果, 你先用這個方式查看看邏輯有沒有正常, 確認邏輯再來看是不是硬體使用錯誤的可能性

抱歉我表達能力可能弱了點XD
沒錯,如同前輩說的這樣,現在加工軸不管有沒有接收到AD訊號都會直接移動到指定深度位置
除非是放電加工程式開始前AD就已經有訊號輸出了,這時加工軸才會有倒退移動的情況發生,
但也只是倒退後,程式就結束了,並不會因為我AD訊號停止輸出,加工軸就開始往前移動,
想問是我的迴圈方式寫錯了嗎?

好的!!我稍後會使用highlight功能測試看看,謝謝前輩的建議

降檔版本我稍後會提供,謝謝前輩

謝謝各位前輩的指教
讓我對labview的程式設計觀念更清晰
目前我已經將放電加工的程式部分撰寫完成了
但還是有些地方有疑問



1.程式結束的問題:
我想利用位置顯示的數值來使加工軸停止,如程式圖所示,
例如我啟動加工深度為0.5 mm,想在位置顯示為0.5 mm時,程式結束,
但現在明明Numeric的數值也顯示為-0.5了,程式卻沒有如預期停止,加工軸還持續的進行移動,
想請問這部分是我程式部分哪裡寫錯?
另外,目前我只是先用Z軸做顯示看運行狀態,未來我想做不管哪軸到達指定加工深度,程式就會結束。

2.加工暫停的問題:
目前我按下放電加工開始的按鈕後,加工軸會如預期進行加工,但在途中我按下加工暫停鈕都沒有反應,想請問這部分我是要拉區域變數到放電加工開始的迴圈裏面使程式暫停嗎?還是有別的更好的辦法呢?

以上,再麻煩前輩了,我花了兩天的時間做測試一直試不出來,拜託前輩了,謝謝。

附上程式VI:
放電加工設備labview介面.vi (1.1 MB)