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