概覽
有了來自Nation Instruments的LabVIEW NI SoftMotion模塊,您可以使用LabVIEW項(xiàng)目對您的運(yùn)動軸設(shè)置進(jìn)行配置和測試,調(diào)節(jié)您的
伺服電機(jī)。它提供了使用基于PLCOpen IEC 1131-3規(guī)范的高級函數(shù)模塊API的運(yùn)動輪廓編程的易用性。除了對全新NI C系列驅(qū)動器接口的本地支持之外,NI SoftMotion技術(shù)還提供了軸界面節(jié)點(diǎn),可以用來添加專用I/O、定制控制算法或是與第三方驅(qū)動器的附加通信接口。此外,在結(jié)合SolidWorks Premium 3D CAD設(shè)計(jì)應(yīng)用程序時(shí),這個(gè)技術(shù)為
運(yùn)動控制應(yīng)用程序和機(jī)械設(shè)計(jì)提供了數(shù)字原型開發(fā)功能。使用用于SolidWorks的NI SoftMotion,您可以在花費(fèi)成本構(gòu)建物理原型系統(tǒng)之前,對在SolidWorks中創(chuàng)建的系統(tǒng)用NI SoftMotion函數(shù)模塊開發(fā)的實(shí)際運(yùn)動輪廓進(jìn)行仿真。
使用帶有NI掃描引擎的NI SoftMotion
結(jié)合您的硬件使用NI SoftMotion函數(shù)模塊或軸界面節(jié)點(diǎn),您必須在LabVIEW項(xiàng)目中創(chuàng)建軸、坐標(biāo)系和表格。這些項(xiàng)與運(yùn)動I/O資源相關(guān),在使用NI SoftMotion函數(shù)模塊或軸界面節(jié)點(diǎn)創(chuàng)建運(yùn)動控制應(yīng)用程序時(shí)使用。使用軸管理器對話框?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)工作軸
無限制軸
[align=center]

圖1:NI SoftMotion軸管理器對話框[/align]
使用配置坐標(biāo)空間對話框?qū)⑤S在坐標(biāo)系中進(jìn)行組織。坐標(biāo)系是軸的邏輯組合,用來作為可以使用坐標(biāo)系資源的NI SoftMotion函數(shù)模塊的輸入。使用坐標(biāo)系,您可以指定多個(gè)軸運(yùn)動,確保所有的軸在相同的時(shí)間開始和結(jié)束。這與在同一時(shí)刻開始并非坐標(biāo)系組成部分的獨(dú)立軸不同——軸開始運(yùn)動是同步的,但停止運(yùn)動卻不是同步的。
[align=center]

圖2:NI SoftMotion配置坐標(biāo)系空間對話框

圖3:含有完成配置的運(yùn)動軸與坐標(biāo)系空間的LabVIEW項(xiàng)目[/align]
所有運(yùn)動控制I/O和執(zhí)行信息都被加入全局掃描引擎內(nèi)存映射,并在每個(gè)掃描周期進(jìn)行更新。在同一個(gè)掃描周期中執(zhí)行的函數(shù)模塊在相同的掃描周期進(jìn)行同步,其中包括線性、停止、調(diào)速和凸輪系統(tǒng)。這意味著您可以在同一個(gè)掃描周期中開始軸、坐標(biāo)系、調(diào)速操作或是凸輪系統(tǒng)操作。然而,以同步方式開始的軸并不同步地結(jié)束。為了同步結(jié)束這些運(yùn)動,您必須在同一時(shí)間計(jì)算結(jié)束所有軸運(yùn)動的約束條件,或是配置坐標(biāo)系從而能夠自動計(jì)算這些數(shù)值。
由于函數(shù)模塊執(zhí)行是在掃描引擎周期內(nèi)的,因此可能在響應(yīng)外部事件時(shí)或是同步不同軸類型時(shí)等,會有較小的延遲。表1定義了最小延遲與最大延遲。
表1:函數(shù)模塊執(zhí)行延遲
使用NI SoftMotion函數(shù)模塊
LabVIEW NI SoftMotion模塊提供了函數(shù)模塊,用于構(gòu)建使用函數(shù)模塊編程模型的確定性運(yùn)動控制應(yīng)用程序。
LabVIEW具有基于IEC 61131-3工業(yè)控制系統(tǒng)編程國際標(biāo)準(zhǔn)的函數(shù)模塊。這些函數(shù)模塊為實(shí)時(shí)應(yīng)用而設(shè)計(jì),能夠?qū)⑵鋮?shù)作為共享變量,用于人機(jī)界面(HMI)編程和狀態(tài)監(jiān)視中。您可以利用這些熟悉的工業(yè)函數(shù)模塊和LabVIEW中的所有VI與函數(shù),開發(fā)簡單和復(fù)雜的工業(yè)測量與控制應(yīng)用程序。
在Windows平臺下安裝了LabVIEW和LabVIEW實(shí)時(shí)模塊后,您可以使用LabVIEW函數(shù)模塊,它們與LabVIEW實(shí)時(shí)模塊一起進(jìn)行安裝。LabVIEW NI SoftMotion安裝附加的函數(shù)模塊,提供運(yùn)動控制函數(shù),并且讓您使用LabVIEW項(xiàng)目來配置并測試您的運(yùn)動軸設(shè)置,調(diào)節(jié)伺服電機(jī)。LabVIEW NI SoftMotion包含在LabVIEW的平臺DVD中。您可以安裝模塊的30天試用版或使用限制功能的免費(fèi)版模塊。
函數(shù)模塊使用LabVIEW編寫,設(shè)計(jì)用于非阻塞確定性執(zhí)行的實(shí)時(shí)應(yīng)用中,使得它們適用于對時(shí)間確定性要求非常嚴(yán)格的代碼中。函數(shù)模塊的每個(gè)實(shí)例都有唯一的名稱和可重入執(zhí)行的內(nèi)存空間。因此,您可以在應(yīng)用程序中獨(dú)立使用這些函數(shù)模塊。舉例而言,您可以使用PID函數(shù)模塊的每個(gè)實(shí)例控制一個(gè)獨(dú)立的系統(tǒng)。
在應(yīng)用中使用的函數(shù)模塊在LabVIEW項(xiàng)目中可見,并且能夠遠(yuǎn)程訪問每個(gè)終端中的共享變量。您可以在函數(shù)模塊的屬性頁面中配置這些終端和變量。
在默認(rèn)設(shè)置下,終端變量被配置為單線程實(shí)時(shí)FIFO的共享變量,因此您可以在實(shí)時(shí)應(yīng)用中使用,從而避免訪問變量值時(shí)的抖動。您可以配置每個(gè)終端,從程序框圖的終端中接收數(shù)值,或是從對應(yīng)的共享變量或是常量中遠(yuǎn)程接收數(shù)值。
您可以將終端變量配置為網(wǎng)絡(luò)發(fā)布共享變量,為HMI編程和遠(yuǎn)程監(jiān)視提供遠(yuǎn)程參數(shù)數(shù)值訪問。對于HMI編程,您可以在臺式機(jī)或工業(yè)觸摸屏計(jì)算機(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ù)每個(gè)函數(shù)模塊狀態(tài)的附加參數(shù)。用于NI SoftMotion函數(shù)模塊的API是非阻塞、異步的API,您可以用來與您的運(yùn)動控制硬件進(jìn)行通信。
下表提供了運(yùn)動控制函數(shù)模塊的概述。

以下技巧可能會在您使用LabVIEW中的NI SoftMotion函數(shù)模塊進(jìn)行編程時(shí)起到幫助:
使用函數(shù)模塊的VI必須存在于LabVIEW項(xiàng)目中。
函數(shù)模塊必須在循環(huán)中運(yùn)行。根據(jù)您應(yīng)用需求的不同,您可以選擇使用等待下一個(gè)整數(shù)倍毫秒函數(shù)進(jìn)行定時(shí)的while循環(huán),或是如果您的應(yīng)用需要函數(shù)模塊以一定掃描周期執(zhí)行,也可以使用與NI掃描引擎同步的定時(shí)循環(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í)行的順序,運(yùn)動控制函數(shù)模塊提供了狀態(tài)參數(shù)。下表提供了函數(shù)模塊狀態(tài)參數(shù)行為的簡介。
執(zhí)行、錯(cuò)誤輸出、完成、中止、忙碌和活動參數(shù)根據(jù)以下內(nèi)容執(zhí)行: