概覽
有了來自Nation Instruments的LabVIEW NI SoftMotion模塊,您可以使用LabVIEW項目對您的運動軸設置進行配置和測試,調節您的伺服電機。它提供了使用基于PLCOpen IEC 1131-3規范的高級函數模塊API的運動輪廓編程的易用性。除了對全新NI C系列驅動器接口的本地支持之外,NI SoftMotion技術還提供了軸界面節點,可以用來添加專用I/O、定制控制算法或是與第三方驅動器的附加通信接口。此外,在結合SolidWorks Premium 3D CAD設計應用程序時,這個技術為運動控制應用程序和機械設計提供了數字原型開發功能。使用用于SolidWorks的NI SoftMotion,您可以在花費成本構建物理原型系統之前,對在SolidWorks中創建的系統用NI SoftMotion函數模塊開發的實際運動輪廓進行仿真。
使用帶有NI掃描引擎的NI SoftMotion
結合您的硬件使用NI SoftMotion函數模塊或軸界面節點,您必須在LabVIEW項目中創建軸、坐標系和表格。這些項與運動I/O資源相關,在使用NI SoftMotion函數模塊或軸界面節點創建運動控制應用程序時使用。使用軸管理器對話框將您的硬件與NI SoftMotion軸關聯在一起。軸包含軌跡生成器、比例積分微分(PID)控制循環或步進輸出以及監督控制。您可以將NI SoftMotion軸與仿真硬件或實際硬件關聯在一起。伺服軸需要編碼器反饋資源。開環步進軸不需要操作反饋。
您可以根據與NI SoftMotion軸進行關聯的硬件,創建以下類型的軸:
NI 951x軸(掃描界面模式)
仿真軸
固態工作軸
無限制軸
圖1:NI SoftMotion軸管理器對話框
使用配置坐標空間對話框將軸在坐標系中進行組織。坐標系是軸的邏輯組合,用來作為可以使用坐標系資源的NI SoftMotion函數模塊的輸入。使用坐標系,您可以指定多個軸運動,確保所有的軸在相同的時間開始和結束。這與在同一時刻開始并非坐標系組成部分的獨立軸不同——軸開始運動是同步的,但停止運動卻不是同步的。
圖2:NI SoftMotion配置坐標系空間對話框
圖3:含有完成配置的運動軸與坐標系空間的LabVIEW項目
所有運動控制I/O和執行信息都被加入全局掃描引擎內存映射,并在每個掃描周期進行更新。在同一個掃描周期中執行的函數模塊在相同的掃描周期進行同步,其中包括線性、停止、調速和凸輪系統。這意味著您可以在同一個掃描周期中開始軸、坐標系、調速操作或是凸輪系統操作。然而,以同步方式開始的軸并不同步地結束。為了同步結束這些運動,您必須在同一時間計算結束所有軸運動的約束條件,或是配置坐標系從而能夠自動計算這些數值。
由于函數模塊執行是在掃描引擎周期內的,因此可能在響應外部事件時或是同步不同軸類型時等,會有較小的延遲。表1定義了最小延遲與最大延遲。
使用NI SoftMotion函數模塊
LabVIEW NI SoftMotion模塊提供了函數模塊,用于構建使用函數模塊編程模型的確定性運動控制應用程序。
LabVIEW具有基于IEC 61131-3工業控制系統編程國際標準的函數模塊。這些函數模塊為實時應用而設計,能夠將其參數作為共享變量,用于人機界面(HMI)編程和狀態監視中。您可以利用這些熟悉的工業函數模塊和LabVIEW中的所有VI與函數,開發簡單和復雜的工業測量與控制應用程序。
在Windows平臺下安裝了LabVIEW和LabVIEW實時模塊后,您可以使用LabVIEW函數模塊,它們與LabVIEW實時模塊一起進行安裝。LabVIEW NI SoftMotion安裝附加的函數模塊,提供運動控制函數,并且讓您使用LabVIEW項目來配置并測試您的運動軸設置,調節伺服電機。LabVIEW NI SoftMotion包含在LabVIEW的平臺DVD中。您可以安裝模塊的30天試用版或使用限制功能的免費版模塊。
函數模塊使用LabVIEW編寫,設計用于非阻塞確定性執行的實時應用中,使得它們適用于對時間確定性要求非常嚴格的代碼中。函數模塊的每個實例都有唯一的名稱和可重入執行的內存空間。因此,您可以在應用程序中獨立使用這些函數模塊。舉例而言,您可以使用PID函數模塊的每個實例控制一個獨立的系統。
在應用中使用的函數模塊在LabVIEW項目中可見,并且能夠遠程訪問每個終端中的共享變量。您可以在函數模塊的屬性頁面中配置這些終端和變量。
在默認設置下,終端變量被配置為單線程實時FIFO的共享變量,因此您可以在實時應用中使用,從而避免訪問變量值時的抖動。您可以配置每個終端,從程序框圖的終端中接收數值,或是從對應的共享變量或是常量中遠程接收數值。
您可以將終端變量配置為網絡發布共享變量,為HMI編程和遠程監視提供遠程參數數值訪問。對于HMI編程,您可以在臺式機或工業觸摸屏計算機的LabVIEW應用程序中使用共享變量。NI分布式系統管理器可以用于監視在網絡上的系統和管理發布數據。對于系統管理員,您無需LabVIEW開發環境就可以查看函數模塊參數數值。通過配置函數模塊終端接收變量數值,您還可以通過系統管理器寫入參數數值,舉例而言,您可以遠程調節PID函數模塊。
NI SoftMotion函數模塊還包含其他用于監視和維護每個函數模塊狀態的附加參數。用于NI SoftMotion函數模塊的API是非阻塞、異步的API,您可以用來與您的運動控制硬件進行通信。
下表提供了運動控制函數模塊的概述。
選板對象 選板符號
描述
直線
使用軸或坐標系資源完成直線運動。直線運動使用一條或多條軸連接兩點。運動行為隨著直線運動模式的設置而變化。
弧線
完成圓形、圓弧或螺旋線運動。弧線運動使用您所指定的半徑生成圓形運動。弧線運動的類型隨著圓弧運動模式的設置而變化。
曲線
使用軸或坐標系資源完成曲線運動。曲線運動由軟件插值得到光滑曲線時所使用的一系列位置來描述。這些位置存儲在表格中。 運動中的每個點以絕對位置進行表示,使用運動的開始點作為暫時的“零點”位置。曲線運動的類型根據曲線模式的設置而變化。
參考
完成參考運動,例如在軸資源上定位初始點或極限位置。參考移動用來初始化運動控制系統,建立可重復的參考位置。移動根據參考移動模式的設置而變化。
捕捉
根據例如傳感器狀態等外部輸入記錄編碼器位置。您可以使用采集得到的位置來完成相對于采集位置的運動,或是僅僅是在采集事件發生的時候記錄編碼器位置。
比較
將電機與外部活動和指定的編碼器位置進行同步。當達到指定位置時,能夠得到用戶可配置的脈沖。位置比較操作根據比較模式的設置而變化。
調速
配置指定軸進行調速操作。調速將從軸的運動與主軸的運動進行同步,主軸運動可以是編碼器或是另一個軸的軌跡。從軸運動可以相對于主軸以更高或更低的轉速比進行。例如,主軸每轉一次,從軸可能轉動兩次。調速操作根據調速模式設置的變化而變化。
凸輪
為指定軸配置凸輪操作。這些比例由NI SoftMotion自動進行管理,從而能夠對調速比例進行精確切換。凸輪用于從軸速度與主軸速度比不是線性關系的應用中。這個類型的凸輪操作根據凸輪模式設置而變化。
讀取
從軸、坐標系、反饋和其他資源中讀取狀態和數據信息。使用可用的讀取方法獲取不同資源的信息。
寫入
向軸、坐標系或反饋資源寫入狀態和數據信息。使用可用的寫入方法向不同資源寫入信息。
重置位置
在指定軸或坐標系上重置位置。
停止
在軸或坐標系上停止當前運動。移動行為根據停止模式的設置而變化。
在指定軸或坐標系資源上開啟或關閉軸和驅動器。
清除默認值
清除NI SoftMotion默認值。
以下技巧可能會在您使用LabVIEW中的NI SoftMotion函數模塊進行編程時起到幫助:
使用函數模塊的VI必須存在于LabVIEW項目中。
函數模塊必須在循環中運行。根據您應用需求的不同,您可以選擇使用等待下一個整數倍毫秒函數進行定時的while循環,或是如果您的應用需要函數模塊以一定掃描周期執行,也可以使用與NI掃描引擎同步的定時循環。
使用函數模塊狀態輸出判斷函數模塊執行的順序,這并不是標準的LabVIEW編程方法。舉例而言,不要將函數模塊放在條件分支中。
您必須在應用循環外初始化所有的矩陣輸出,以便讓函數模塊不進行內存分配。這可以減少系統的漂移和抖動。
為了確定函數模塊執行的順序,運動控制函數模塊提供了狀態參數。下表提供了函數模塊狀態參數行為的簡介。
執行、錯誤輸出、完成、中止、忙碌和活動參數根據以下內容執行:
輸出狀態 完成和中止輸出在執行的下降沿重置。但是,執行的下降沿并不停止或影響實際函數模塊的執行。必須確保在每個循環中對對應的輸出進行配置,如果這些狀態中的一個會發生——即便執行在函數模塊完成之前被重置。如果函數模塊實例在完成之前收到新的執行(作為同一實例下的一系列指令),函數模塊不會為函數模塊的前一執行,返回例如完成或中止等任何狀態輸出。
輸入參數 函數模塊的輸入參數與執行輸入的上升沿一起使用。要修改任何參數,必須修改輸入參數并且重新執行函數模塊。
未連接的輸入參數 如果函數模塊有未連接的輸入,將使用這個函數模塊上一次執行時的參數值。在函數模塊的首次執行時,使用默認值。
符號規則 加速、減速、加加速度、減加速度輸入總是正值。目標位置和距離可以為正數也可以為負數。除了使用速度方法完成直線運動之外,速度在所有情況下為正數。
錯誤處理行為 所有函數模塊都包含錯誤輸出簇,對執行函數模塊中可能發生的錯誤進行處理。這些輸出描述如下:
在函數模塊執行中發生錯誤時,狀態變為真。在錯誤發生之后,狀態輸出僅在第一個循環執行中保持真。如果您希望將錯誤狀態保持為真,必須使用移位寄存器將錯誤信息傳遞到之后的循環執行中。
代碼是錯誤代碼或警告代碼。如果狀態為真,代碼是非零錯誤代碼。如果狀態為假,代碼為0或警告代碼。
源描述了錯誤或警告的來源,在大多數情況下,是產生錯誤或警告的函數模塊名稱。
如果在函數模塊中發生了錯誤,執行時間可能會增加。
完成輸出行為 完成輸出在指令行為完成的時候被置位。如果有多個函數模塊順序對同一個資源進行操作,在一個資源上的運動被同一資源上的另一個運動中斷而沒有達到終點時,第一個函數模塊的完成并不會被置位。
中止輸出行為 在一個指令被另一個指令中斷時,中止被置位。中止行為與完成行為相似。在中止發生時,其他輸出信號被重置。
在您使用另一個在不同資源上的另一個函數來中斷執行時,中止并不返回真。舉例而言,執行坐標系中一條軸上的直線運動并不會中止運行中的坐標系運動。實際上,弧線運動被設置為真,并且停止執行。
輸入超過應用程序限制 如果一個函數模塊的輸入參數違反應用程序限制,這個函數模塊實例將會產生一個錯誤。
忙碌輸出行為 每個函數模塊都含有忙碌輸出,表明函數模塊執行還沒有完成。忙碌在執行的上升沿被置位,在完成、中止或錯誤輸出被設置的時候重置。建議不要在忙碌輸出為真的時候停止應用程序,否則軟件可能會處于未定義的狀態中。
輸出活動 在函數模塊得到指定資源控制權、所有屬性被設置并且函數模塊開始執行時,活動輸出被設置為真。一旦活動輸出為真,函數模塊在下一個掃描周期生效。
責任編輯:gt
評論
查看更多