




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第6頁TTwinCAT3以FeedTable的形式實現NCI插補作者:簡自豪職務:技術工程師郵箱:Yosef45545@163.com日期:2023-11-7摘要:筆者作為倍福用戶,在學習倍福的過程中發現虛擬學院中并沒有文檔是關于TwinCAT3如何使用FeedTable的形式來實現NCI插補的,因此,借這個客戶投稿的機會來補充一下TwinCAT3NCI中該功能的一些文檔,本文參考了TwinCAT2以及infosys上的FeedTable資料進行了編寫。FeedTable實際上就是使用自定義的點位段表來實現NCI的插補,而非通過執行G代碼文件。該形式是非常便于前期調試NCI時的一種方法,得益于其能夠在程序當中直接寫入插補指令來達到更改插補路徑的效果,從而避免了頻繁的修改系統中的G代碼文件。附件:序號文件名備注1FeedTableNci.tnzip例程歷史版本:免責聲明:我們已對本文檔描述的內容做測試。但是差錯在所難免,無法保證絕對正確并完全滿足您的使用需求。本文檔的內容可能隨時更新,如有改動,恕不事先通知,也歡迎您提出改進建議。參考信息:目錄1. 軟硬件版本、FeedTable執行流程 31.1. 倍福Beckhoff 31.1.1. 控制器硬件 31.1.2. 控制軟件 31.2. FeedTable執行流程 32. 指令介紹 42.1. FeedTable相關指令介紹 42.1.1. 結構體NCI_SingleEntry 42.1.2. 指令準備功能塊FB_NciFeedTablePreparation 42.1.3. 執行段表插補指令FB_NciFeedTable 52.2. NCI插補通道相關指令介紹 52.2.1. 組合通道CfgBuildExt3DGroup、解散通道CfgReconfigGroup 52.2.2. 插補通道速比ItpSetOverridePercent、插補通道狀態ItpGetStateInterpreter 62.2.3. 插補指令啟停ItpStartStopEx 63. 例程簡介 63.1. 準備工作 63.1.1. 庫文件添加 63.1.2. 插補通道硬件配置 63.2. 程序介紹 83.2.1. A_NcPTP 83.2.2. A_NciChannel 83.2.3. A_LineTable 93.3. 邏輯執行 113.3.1. HMI 113.3.2. 執行NCI插補 14
軟硬件版本、FeedTable執行流程倍福Beckhoff控制器硬件編程電腦本地仿真模擬Win10企業版64位控制軟件TwinCAT3.1Build4024.44版本FeedTable執行流程最快理解FeedTable插補流程的方法便是拿其和G代碼插補方式去做對比,我們可以用兩張流程圖來展示,首先是G代碼的形式:可以看到G代碼插補的方式源頭是提前編寫好的G代碼文件,里面包含了直線、圓弧插補以及其他非運動指令例如M參數、道具補償參數等;接著,通過G代碼功能塊將其預讀到NCI插補通道的存放區,最后通過啟停功能塊將其寫入NCI插補通道SAF的緩存區,同時控制G代碼的執行與停止。接著我們再來看下FeedTable方式的流程圖:可以看到FeedTable方式的插補與G代碼最大的區別在于NCI指令在寫入SAF緩存之前,指令的運轉全是在PLC程序當中,而并沒有NCI插補通道的介入。NCI指令的源頭是PLC程序中的各個數據塊,同樣可以包括直線、圓弧插補以及其他非運動控制指令;接著通過FeedTable獨有的指令填充功能塊,將所有的指令存放在一個段表中,這個段表也可以理解為一個預讀區,但和G代碼的預讀取差別在于,FeedTable預讀的段表是存放在PLC程序中,而G代碼則是NCI插補通道,也正因如此,FeedTable方式的插補,在修改NCI指令上比G代碼形式更加靈活多變;最后通過功能塊將該段表的指令寫入SAF的緩存進行執行。以上便是兩種插補方式的區別。指令介紹FeedTable相關指令介紹在2.1章節中介紹的指令都可以在infosys中查詢到相關說明:/content/1033/tcnci/958083979.html?id=5205927589624402180結構體NCI_SingleEntryNCI_SingleEntry是一個自定義的結構體,創建該結構體是為了便于統一直線和圓弧插補的準備數據,在填充插補指令的過程中總是會從該結構體中提取數據。因此,該結構體只是便于填充數據而創建的結構體,而并不是FeedTable中必須使用的一環。指令準備功能塊FB_NciFeedTablePreparation該功能塊用于填充插補指令,nEntryType引腳用于定義單次指令的類型。插補指令的類型繁多,但最常用的為兩種,分別是ST_NciGeoLine直線插補、以及ST_NciGeoCirclePlane平面圓弧插補,除此之外,還有些類型在實際使用的過程中也需要注意,分別是ST_NciGeoCircleCIP空間圓弧插補以及通常在首位指令使用的ST_NciGeoStart和ST_NciEndOfTables。引腳則是插補指令的數據來源,在本例程中,數據的來源便是上文提到的自定義結構體NCI_SingleEntry。而最終數據將會填充到指令段表,也就是stFeedGroupTable這個引腳當中。需要注意的是,該段表能夠填充的指令數量并非無限,一張表中最多能夠填充100條指令,若在填充滿后繼續向表中填寫數據,功能塊便會報錯,需新建一張段表或是清空當前段表才能繼續填寫。清空段表則是通過置位bResetTable引腳,其與bResetAll的區別在于bResetAll還會令一些模態參數恢復默認值。執行段表插補指令FB_NciFeedTable該功能塊用于執行段表中填充的插補指令,觸發該功能塊后stNciToPlc引腳上鏈接的對應插補通道便會開始執行stFeedGroupTable段表中的指令。bLogFeederEntries如果置True,則代表功能塊在TwinCAT\Mc\Nci這個路徑下寫入了'PlcItpFeed.log'的日志文件,它包含通過ADS發送到NC內核的所有條目。當段表中的所有指令被發送到NC內核時該引腳便會置位,而當所有指令被執行完成且檢測到段表中的ST_NciEndOfTables類型指令后,bChannelDone引腳便會置位。NCI插補通道相關指令介紹組合通道CfgBuildExt3DGroup、解散通道CfgReconfigGroup該功能塊若大家經常使用NCI插補的話應該是再熟悉不過了,通過NC軸的ID將一個個單獨的PTP軸組合進nGroupId引腳對應的插補通道當中。如需將插補通道的軸重新轉換成獨立的NCPTP軸,則可以使用該功能塊來解散插補通道。插補通道速比ItpSetOverridePercent、插補通道狀態ItpGetStateInterpreter插補通道同樣也有速比設置,使用ItpSetOverridePercent這個Function來設置插補速比,需要注意,該速比必須在插補通道中進行配置或是在程序中進行定義,系統并不會默認設置插補通道的速比為100%。在軸進行插補的過程中往往會需要一些標志位來對插補通道的狀態進行判斷,以便于觀察插補邏輯的正常運行以及執行一些其他的工藝指令,因此,可以通過ItpGetStateInterPreter這個Function來實時獲取插補通道的當前狀態。插補指令啟停ItpStartStopExItpStartStopEx功能塊在使用G代碼文件方式進行插補時,是用于啟動/暫停G代碼執行的功能塊;而在FeedTable的方式中,啟動插補是通過FB_NciFeedTable功能塊,而ItpStartStopEx的作用僅限于在插補指令執行的過程中對其進行暫停。例程簡介準備工作庫文件添加在使用FeedTable前,首先需要在References文件夾中添加需要用到的3個庫文件,詳見下圖。插補通道硬件配置無論是使用G代碼還是FeedTable的形式,都需要先在Motion中創建一根插補通道才能在程序中使用功能塊將軸添加進插補軸組。首先,右鍵Motion選項卡,點擊AddNewItem,創建一個NCtask。隨后右鍵Axes,點擊AddNewItem,添加三根插補軸X、Y、Z。最后,右鍵NC-Task1SAF再次點擊添加新項,選擇NCChannel(forInterpolation)創建一根插補通道。上述項目創建完成后我們便完成了插補通道的硬件配置。程序介紹本例程較為簡單,結合了一個簡單的HMI界面和XYZScope,可以演示FeedTable方式下的直線和圓弧插補,主程序共分成了3個Action。A_NcPTP該Action中的程序非常簡單,用于對所有參與插補的軸進行使能。A_NciChannel前文說到,無論是通過G代碼還是FeedTable的形式進行插補,都需要提前進行插補通道的配置。在完成3.1章節的硬件配置后,接下來可以通過PLC程序將PTP軸加入插補通道,而使用到的便是第2章節中介紹的幾個功能塊。首先使用兩個獲取ID的Function獲取插補通道的軸組ID以及通道ID,以便后續使用。獲取ID完成后需要設定插補通道的速比。設定完成后,便可以調用功能塊將所有的PTP軸加入插補通道進行使用了。除此之外,為了表現出FeedTable方式的插補與G代碼的不同之處,筆者還監控了NCI的通道狀態。該狀態在G代碼方式的插補下,會根據G代碼的裝載、執行而變化為不同的狀態機,但FeedTable形式并未經過此流程,因此,該狀態機的值始終為1:A_LineTable此Action是主程序中最重要的一環,整個FeedTable的流程都將在整個Action中執行完畢。首先是NCI插補指令的填寫,程序中聲明了一個名為Nci_Command的變量,其類型是第2章節中介紹的NCI_SingleEntry的結構體,在該變量中我們可以填寫單次的NCI插補指令:單次的插補指令填寫完成后我們便需要填充到ST_NciFeedGroupTable的指令段表中,這時候我們就需要用到FB_NciFeedTablePreparation功能塊,例程中單次指令只設定成了兩種常用的形式,分別是直線插補以及平面圓弧插補,通過結構體中的iPlane的值來進行區分:填充的過程中有兩行與隊列相關的程序是用來在HMI中便于觀察填寫的指令段表:在所有的指令編寫完成后,便可以調用并觸發FB_NciFeedTable功能塊將其寫入SAF緩存并執行:在段表中的指令執行完成后,儲存在段表中的指令并不會自動清除,若段表中上一次的指令仍然保留,再次執行該功能塊會重新從段表的首行命令開始執行,并不會直接執行新寫入的指令。因此,想要NCI繼續新的插補指令,必須復位段表:若在填寫指令的過程中發現指令填寫錯誤,則需要手動清空段表重新填寫:邏輯執行HMI在執行邏輯之前,我們先來看一下例程中HMI界面的使用,該界面是為了便于寫入插補指令而制作的界面,由兩個子界面構成:首先,子頁面的切換由左上方的兩個button來進行切換,切換的同時程序會自動判斷寫入的指令是直線插補形式還是平面圓弧插補形式:左上角的ToggleSwitch控件用于軸的使能,使能的同時,所有PTP軸將會被加入到NCI插補通道中,可以通過NCI通道中是否出現三根PTP軸來判斷軸是否加入成功:右側的XYZ3個TextBlock可以實時觀察三根插補軸所在的ActPos:界面的下半部分便是填寫NCI指令的地方,我們可以通過左側4個TextBlock填寫單次NCI指令的參數,隨后點擊Write進行寫入,寫入完成后可以看到右側的指令隊列便會顯示出剛剛填寫的數據。在所有的指令填寫完成后,我們便可以點擊ExcuteNci觸發插補,在插補完成后便可以點擊Clear清空段表:而平面圓弧插補和直線插補的區別僅在填寫的部分參數不同,使用流程上并無區別:執行NCI插補現在我們可以激活硬件配置來看一下FeedTable的效果。首先測試直線插補,我們填寫需要執行的參數,同時,使用XYZScope來看一下其執行效果。填寫的參數是一個正方形的4個點:最終的執行效果:同時,我們可以通過功能塊中的BlockNo引腳知道當前正在執行第幾行NCI指令:執行完成后,指令便會自動清除,點擊Clear清空HMI中的段表,便可以繼續填寫后續需要執行的指令。接下來我們再來測試下平面圓弧插補。我們填寫平面圓弧插補指令,讓其在Scope中畫出一個圓形:可以發現平面圓弧插補執行也成功。
上海(中國區總部)中國上海市靜安區汶水路299弄9號(市北智匯園)電話 北京分公司北京市西城區新
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統編版語文六年級下冊習作《寫作品梗概》精美課件
- 牛飼養與飼料配方優化考核試卷
- 那首歌初三語文作文
- 碳排放核查法律問題考核試卷
- 亞麻籽種植園災害預防與應對措施考核試卷
- 介紹一種蔬菜初二語文作文
- 牧業機械化飼料作物種植與收獲考核試卷
- 生物質資源調查與評價方法研究考核試卷
- 生物細胞工程與生物醫藥考核試卷
- 真空電子器件的納米加工技術與應用考核試卷
- 2022年全國森林、草原、濕地調查監測技術規程-附錄
- 【數學】第1課時 不等式的性質教學設計++2024-2025學年人教版數學七年級下冊
- 初三物理常識試卷單選題100道及答案
- 兒童主任培訓課件
- 護理巡視巡查管理制度
- 沈陽華海錕泰投資有限公司招聘筆試沖刺題2025
- 醫療器械維修人員操作題單選題100道及答案
- 2024年出海東南亞:品牌出海白皮書
- 高分子化學8-開環聚合
- 給小學生講醫療知識
- ISO9001質量管理體系培訓課件
評論
0/150
提交評論