




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第6頁TTwinCAT3以FeedTable的形式實現(xiàn)NCI插補(bǔ)作者:簡自豪職務(wù):技術(shù)工程師郵箱:Yosef45545@163.com日期:2023-11-7摘要:筆者作為倍福用戶,在學(xué)習(xí)倍福的過程中發(fā)現(xiàn)虛擬學(xué)院中并沒有文檔是關(guān)于TwinCAT3如何使用FeedTable的形式來實現(xiàn)NCI插補(bǔ)的,因此,借這個客戶投稿的機(jī)會來補(bǔ)充一下TwinCAT3NCI中該功能的一些文檔,本文參考了TwinCAT2以及infosys上的FeedTable資料進(jìn)行了編寫。FeedTable實際上就是使用自定義的點位段表來實現(xiàn)NCI的插補(bǔ),而非通過執(zhí)行G代碼文件。該形式是非常便于前期調(diào)試NCI時的一種方法,得益于其能夠在程序當(dāng)中直接寫入插補(bǔ)指令來達(dá)到更改插補(bǔ)路徑的效果,從而避免了頻繁的修改系統(tǒng)中的G代碼文件。附件:序號文件名備注1FeedTableNci.tnzip例程歷史版本:免責(zé)聲明:我們已對本文檔描述的內(nèi)容做測試。但是差錯在所難免,無法保證絕對正確并完全滿足您的使用需求。本文檔的內(nèi)容可能隨時更新,如有改動,恕不事先通知,也歡迎您提出改進(jìn)建議。參考信息:目錄1. 軟硬件版本、FeedTable執(zhí)行流程 31.1. 倍福Beckhoff 31.1.1. 控制器硬件 31.1.2. 控制軟件 31.2. FeedTable執(zhí)行流程 32. 指令介紹 42.1. FeedTable相關(guān)指令介紹 42.1.1. 結(jié)構(gòu)體NCI_SingleEntry 42.1.2. 指令準(zhǔn)備功能塊FB_NciFeedTablePreparation 42.1.3. 執(zhí)行段表插補(bǔ)指令FB_NciFeedTable 52.2. NCI插補(bǔ)通道相關(guān)指令介紹 52.2.1. 組合通道CfgBuildExt3DGroup、解散通道CfgReconfigGroup 52.2.2. 插補(bǔ)通道速比ItpSetOverridePercent、插補(bǔ)通道狀態(tài)ItpGetStateInterpreter 62.2.3. 插補(bǔ)指令啟停ItpStartStopEx 63. 例程簡介 63.1. 準(zhǔn)備工作 63.1.1. 庫文件添加 63.1.2. 插補(bǔ)通道硬件配置 63.2. 程序介紹 83.2.1. A_NcPTP 83.2.2. A_NciChannel 83.2.3. A_LineTable 93.3. 邏輯執(zhí)行 113.3.1. HMI 113.3.2. 執(zhí)行NCI插補(bǔ) 14
軟硬件版本、FeedTable執(zhí)行流程倍福Beckhoff控制器硬件編程電腦本地仿真模擬Win10企業(yè)版64位控制軟件TwinCAT3.1Build4024.44版本FeedTable執(zhí)行流程最快理解FeedTable插補(bǔ)流程的方法便是拿其和G代碼插補(bǔ)方式去做對比,我們可以用兩張流程圖來展示,首先是G代碼的形式:可以看到G代碼插補(bǔ)的方式源頭是提前編寫好的G代碼文件,里面包含了直線、圓弧插補(bǔ)以及其他非運(yùn)動指令例如M參數(shù)、道具補(bǔ)償參數(shù)等;接著,通過G代碼功能塊將其預(yù)讀到NCI插補(bǔ)通道的存放區(qū),最后通過啟停功能塊將其寫入NCI插補(bǔ)通道SAF的緩存區(qū),同時控制G代碼的執(zhí)行與停止。接著我們再來看下FeedTable方式的流程圖:可以看到FeedTable方式的插補(bǔ)與G代碼最大的區(qū)別在于NCI指令在寫入SAF緩存之前,指令的運(yùn)轉(zhuǎn)全是在PLC程序當(dāng)中,而并沒有NCI插補(bǔ)通道的介入。NCI指令的源頭是PLC程序中的各個數(shù)據(jù)塊,同樣可以包括直線、圓弧插補(bǔ)以及其他非運(yùn)動控制指令;接著通過FeedTable獨(dú)有的指令填充功能塊,將所有的指令存放在一個段表中,這個段表也可以理解為一個預(yù)讀區(qū),但和G代碼的預(yù)讀取差別在于,F(xiàn)eedTable預(yù)讀的段表是存放在PLC程序中,而G代碼則是NCI插補(bǔ)通道,也正因如此,F(xiàn)eedTable方式的插補(bǔ),在修改NCI指令上比G代碼形式更加靈活多變;最后通過功能塊將該段表的指令寫入SAF的緩存進(jìn)行執(zhí)行。以上便是兩種插補(bǔ)方式的區(qū)別。指令介紹FeedTable相關(guān)指令介紹在2.1章節(jié)中介紹的指令都可以在infosys中查詢到相關(guān)說明:/content/1033/tcnci/958083979.html?id=5205927589624402180結(jié)構(gòu)體NCI_SingleEntryNCI_SingleEntry是一個自定義的結(jié)構(gòu)體,創(chuàng)建該結(jié)構(gòu)體是為了便于統(tǒng)一直線和圓弧插補(bǔ)的準(zhǔn)備數(shù)據(jù),在填充插補(bǔ)指令的過程中總是會從該結(jié)構(gòu)體中提取數(shù)據(jù)。因此,該結(jié)構(gòu)體只是便于填充數(shù)據(jù)而創(chuàng)建的結(jié)構(gòu)體,而并不是FeedTable中必須使用的一環(huán)。指令準(zhǔn)備功能塊FB_NciFeedTablePreparation該功能塊用于填充插補(bǔ)指令,nEntryType引腳用于定義單次指令的類型。插補(bǔ)指令的類型繁多,但最常用的為兩種,分別是ST_NciGeoLine直線插補(bǔ)、以及ST_NciGeoCirclePlane平面圓弧插補(bǔ),除此之外,還有些類型在實際使用的過程中也需要注意,分別是ST_NciGeoCircleCIP空間圓弧插補(bǔ)以及通常在首位指令使用的ST_NciGeoStart和ST_NciEndOfTables。引腳則是插補(bǔ)指令的數(shù)據(jù)來源,在本例程中,數(shù)據(jù)的來源便是上文提到的自定義結(jié)構(gòu)體NCI_SingleEntry。而最終數(shù)據(jù)將會填充到指令段表,也就是stFeedGroupTable這個引腳當(dāng)中。需要注意的是,該段表能夠填充的指令數(shù)量并非無限,一張表中最多能夠填充100條指令,若在填充滿后繼續(xù)向表中填寫數(shù)據(jù),功能塊便會報錯,需新建一張段表或是清空當(dāng)前段表才能繼續(xù)填寫。清空段表則是通過置位bResetTable引腳,其與bResetAll的區(qū)別在于bResetAll還會令一些模態(tài)參數(shù)恢復(fù)默認(rèn)值。執(zhí)行段表插補(bǔ)指令FB_NciFeedTable該功能塊用于執(zhí)行段表中填充的插補(bǔ)指令,觸發(fā)該功能塊后stNciToPlc引腳上鏈接的對應(yīng)插補(bǔ)通道便會開始執(zhí)行stFeedGroupTable段表中的指令。bLogFeederEntries如果置True,則代表功能塊在TwinCAT\Mc\Nci這個路徑下寫入了'PlcItpFeed.log'的日志文件,它包含通過ADS發(fā)送到NC內(nèi)核的所有條目。當(dāng)段表中的所有指令被發(fā)送到NC內(nèi)核時該引腳便會置位,而當(dāng)所有指令被執(zhí)行完成且檢測到段表中的ST_NciEndOfTables類型指令后,bChannelDone引腳便會置位。NCI插補(bǔ)通道相關(guān)指令介紹組合通道CfgBuildExt3DGroup、解散通道CfgReconfigGroup該功能塊若大家經(jīng)常使用NCI插補(bǔ)的話應(yīng)該是再熟悉不過了,通過NC軸的ID將一個個單獨(dú)的PTP軸組合進(jìn)nGroupId引腳對應(yīng)的插補(bǔ)通道當(dāng)中。如需將插補(bǔ)通道的軸重新轉(zhuǎn)換成獨(dú)立的NCPTP軸,則可以使用該功能塊來解散插補(bǔ)通道。插補(bǔ)通道速比ItpSetOverridePercent、插補(bǔ)通道狀態(tài)ItpGetStateInterpreter插補(bǔ)通道同樣也有速比設(shè)置,使用ItpSetOverridePercent這個Function來設(shè)置插補(bǔ)速比,需要注意,該速比必須在插補(bǔ)通道中進(jìn)行配置或是在程序中進(jìn)行定義,系統(tǒng)并不會默認(rèn)設(shè)置插補(bǔ)通道的速比為100%。在軸進(jìn)行插補(bǔ)的過程中往往會需要一些標(biāo)志位來對插補(bǔ)通道的狀態(tài)進(jìn)行判斷,以便于觀察插補(bǔ)邏輯的正常運(yùn)行以及執(zhí)行一些其他的工藝指令,因此,可以通過ItpGetStateInterPreter這個Function來實時獲取插補(bǔ)通道的當(dāng)前狀態(tài)。插補(bǔ)指令啟停ItpStartStopExItpStartStopEx功能塊在使用G代碼文件方式進(jìn)行插補(bǔ)時,是用于啟動/暫停G代碼執(zhí)行的功能塊;而在FeedTable的方式中,啟動插補(bǔ)是通過FB_NciFeedTable功能塊,而ItpStartStopEx的作用僅限于在插補(bǔ)指令執(zhí)行的過程中對其進(jìn)行暫停。例程簡介準(zhǔn)備工作庫文件添加在使用FeedTable前,首先需要在References文件夾中添加需要用到的3個庫文件,詳見下圖。插補(bǔ)通道硬件配置無論是使用G代碼還是FeedTable的形式,都需要先在Motion中創(chuàng)建一根插補(bǔ)通道才能在程序中使用功能塊將軸添加進(jìn)插補(bǔ)軸組。首先,右鍵Motion選項卡,點擊AddNewItem,創(chuàng)建一個NCtask。隨后右鍵Axes,點擊AddNewItem,添加三根插補(bǔ)軸X、Y、Z。最后,右鍵NC-Task1SAF再次點擊添加新項,選擇NCChannel(forInterpolation)創(chuàng)建一根插補(bǔ)通道。上述項目創(chuàng)建完成后我們便完成了插補(bǔ)通道的硬件配置。程序介紹本例程較為簡單,結(jié)合了一個簡單的HMI界面和XYZScope,可以演示FeedTable方式下的直線和圓弧插補(bǔ),主程序共分成了3個Action。A_NcPTP該Action中的程序非常簡單,用于對所有參與插補(bǔ)的軸進(jìn)行使能。A_NciChannel前文說到,無論是通過G代碼還是FeedTable的形式進(jìn)行插補(bǔ),都需要提前進(jìn)行插補(bǔ)通道的配置。在完成3.1章節(jié)的硬件配置后,接下來可以通過PLC程序?qū)TP軸加入插補(bǔ)通道,而使用到的便是第2章節(jié)中介紹的幾個功能塊。首先使用兩個獲取ID的Function獲取插補(bǔ)通道的軸組ID以及通道ID,以便后續(xù)使用。獲取ID完成后需要設(shè)定插補(bǔ)通道的速比。設(shè)定完成后,便可以調(diào)用功能塊將所有的PTP軸加入插補(bǔ)通道進(jìn)行使用了。除此之外,為了表現(xiàn)出FeedTable方式的插補(bǔ)與G代碼的不同之處,筆者還監(jiān)控了NCI的通道狀態(tài)。該狀態(tài)在G代碼方式的插補(bǔ)下,會根據(jù)G代碼的裝載、執(zhí)行而變化為不同的狀態(tài)機(jī),但FeedTable形式并未經(jīng)過此流程,因此,該狀態(tài)機(jī)的值始終為1:A_LineTable此Action是主程序中最重要的一環(huán),整個FeedTable的流程都將在整個Action中執(zhí)行完畢。首先是NCI插補(bǔ)指令的填寫,程序中聲明了一個名為Nci_Command的變量,其類型是第2章節(jié)中介紹的NCI_SingleEntry的結(jié)構(gòu)體,在該變量中我們可以填寫單次的NCI插補(bǔ)指令:單次的插補(bǔ)指令填寫完成后我們便需要填充到ST_NciFeedGroupTable的指令段表中,這時候我們就需要用到FB_NciFeedTablePreparation功能塊,例程中單次指令只設(shè)定成了兩種常用的形式,分別是直線插補(bǔ)以及平面圓弧插補(bǔ),通過結(jié)構(gòu)體中的iPlane的值來進(jìn)行區(qū)分:填充的過程中有兩行與隊列相關(guān)的程序是用來在HMI中便于觀察填寫的指令段表:在所有的指令編寫完成后,便可以調(diào)用并觸發(fā)FB_NciFeedTable功能塊將其寫入SAF緩存并執(zhí)行:在段表中的指令執(zhí)行完成后,儲存在段表中的指令并不會自動清除,若段表中上一次的指令仍然保留,再次執(zhí)行該功能塊會重新從段表的首行命令開始執(zhí)行,并不會直接執(zhí)行新寫入的指令。因此,想要NCI繼續(xù)新的插補(bǔ)指令,必須復(fù)位段表:若在填寫指令的過程中發(fā)現(xiàn)指令填寫錯誤,則需要手動清空段表重新填寫:邏輯執(zhí)行HMI在執(zhí)行邏輯之前,我們先來看一下例程中HMI界面的使用,該界面是為了便于寫入插補(bǔ)指令而制作的界面,由兩個子界面構(gòu)成:首先,子頁面的切換由左上方的兩個button來進(jìn)行切換,切換的同時程序會自動判斷寫入的指令是直線插補(bǔ)形式還是平面圓弧插補(bǔ)形式:左上角的ToggleSwitch控件用于軸的使能,使能的同時,所有PTP軸將會被加入到NCI插補(bǔ)通道中,可以通過NCI通道中是否出現(xiàn)三根PTP軸來判斷軸是否加入成功:右側(cè)的XYZ3個TextBlock可以實時觀察三根插補(bǔ)軸所在的ActPos:界面的下半部分便是填寫NCI指令的地方,我們可以通過左側(cè)4個TextBlock填寫單次NCI指令的參數(shù),隨后點擊Write進(jìn)行寫入,寫入完成后可以看到右側(cè)的指令隊列便會顯示出剛剛填寫的數(shù)據(jù)。在所有的指令填寫完成后,我們便可以點擊ExcuteNci觸發(fā)插補(bǔ),在插補(bǔ)完成后便可以點擊Clear清空段表:而平面圓弧插補(bǔ)和直線插補(bǔ)的區(qū)別僅在填寫的部分參數(shù)不同,使用流程上并無區(qū)別:執(zhí)行NCI插補(bǔ)現(xiàn)在我們可以激活硬件配置來看一下FeedTable的效果。首先測試直線插補(bǔ),我們填寫需要執(zhí)行的參數(shù),同時,使用XYZScope來看一下其執(zhí)行效果。填寫的參數(shù)是一個正方形的4個點:最終的執(zhí)行效果:同時,我們可以通過功能塊中的BlockNo引腳知道當(dāng)前正在執(zhí)行第幾行NCI指令:執(zhí)行完成后,指令便會自動清除,點擊Clear清空HMI中的段表,便可以繼續(xù)填寫后續(xù)需要執(zhí)行的指令。接下來我們再來測試下平面圓弧插補(bǔ)。我們填寫平面圓弧插補(bǔ)指令,讓其在Scope中畫出一個圓形:可以發(fā)現(xiàn)平面圓弧插補(bǔ)執(zhí)行也成功。
上海(中國區(qū)總部)中國上海市靜安區(qū)汶水路299弄9號(市北智匯園)電話 北京分公司北京市西城區(qū)新
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年亞馬遜消費(fèi)品類攻略手冊
- 變電站優(yōu)化施工規(guī)范詳解
- 內(nèi)蒙古呼倫貝爾市名校2025年高一下化學(xué)期末教學(xué)質(zhì)量檢測試題含解析
- 湖北省荊州市沙市區(qū)沙市中學(xué)2025屆高二化學(xué)第二學(xué)期期末達(dá)標(biāo)檢測模擬試題含解析
- 兒童哮喘的長期控制與急性處理
- 廣東省廣州市三校2024-2025學(xué)年高二下學(xué)期期末聯(lián)考語文試卷(無答案)
- 2025年天津市南大附中高二期中-英語試卷
- 常識檸檬活動方案
- 少先隊徒步活動方案
- 居家運(yùn)動趣味活動方案
- 2024年河南洛陽文旅集團(tuán)財務(wù)崗位招聘筆試真題
- 2025年手繪行業(yè)深度研究報告
- (高清版)DB12∕T 804-2018 口腔綜合治療臺用水微生物標(biāo)準(zhǔn)
- 2025年(四川)公需科目(心理健康與職業(yè)發(fā)展主題)題庫及答案
- 健康中國戰(zhàn)略下的體育產(chǎn)業(yè)發(fā)展方向
- 消防設(shè)施操作和維護(hù)保養(yǎng)規(guī)程
- 關(guān)于“地舒單抗”治療骨質(zhì)疏松的認(rèn)識
- 吊裝施工安全協(xié)議書范本
- 中醫(yī)養(yǎng)生康復(fù)學(xué)
- GB/T 45150-2024老齡化社會認(rèn)知癥包容性社群框架
- 華師版 八年級數(shù)學(xué)下冊 第二學(xué)期 期末綜合測試卷(2025年春)
評論
0/150
提交評論