TwinCAT 3實(shí)現(xiàn)整數(shù)拆分為二進(jìn)制數(shù)(組)_第1頁
TwinCAT 3實(shí)現(xiàn)整數(shù)拆分為二進(jìn)制數(shù)(組)_第2頁
TwinCAT 3實(shí)現(xiàn)整數(shù)拆分為二進(jìn)制數(shù)(組)_第3頁
TwinCAT 3實(shí)現(xiàn)整數(shù)拆分為二進(jìn)制數(shù)(組)_第4頁
TwinCAT 3實(shí)現(xiàn)整數(shù)拆分為二進(jìn)制數(shù)(組)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第6頁TTwinCAT3實(shí)現(xiàn)整數(shù)拆分為二進(jìn)制數(shù)(組)作者:彭梓愉職務(wù):華東區(qū)技術(shù)工程師公司:BECKHOFF中國郵箱:zy.peng@日期:2023.5.11摘要:本文通過兩種方式實(shí)現(xiàn)在TwinCAT3軟件中將十進(jìn)制int類型變量轉(zhuǎn)化為二進(jìn)制Bool類型數(shù)/數(shù)組,并可以對二進(jìn)制數(shù)中的每一位進(jìn)行需要的操作。附件:序號文件名備注1Dec_To_Bin.tszip例程免責(zé)聲明:我們已對本文檔描述的內(nèi)容做測試。但是差錯(cuò)在所難免,無法保證絕對正確并完全滿足您的使用需求。本文檔的內(nèi)容可能隨時(shí)更新,如有改動,恕不事先通知,也歡迎您提出改進(jìn)建議。目錄1. 軟硬件版本 31.1. 控制器硬件 31.2. 控制軟件 32. 程序思路1——TwinCAT自帶內(nèi)部轉(zhuǎn)換,輸出單一位 32.1. 基本思路 32.2. PLC代碼實(shí)現(xiàn) 32.2.1. 變量聲明 32.2.2. 程序編寫 32.2.3. 運(yùn)行結(jié)果 43. 程序思路2——從原理出發(fā),輸出完整二進(jìn)制數(shù) 43.1. 十進(jìn)制轉(zhuǎn)為二進(jìn)制原理 43.2. PLC代碼實(shí)現(xiàn) 43.2.1. 工程概覽 43.2.2. 功能塊變量聲明(Byte為例) 53.2.3. 功能塊程序編寫 53.2.4. 主程序編寫 63.2.5. 運(yùn)行結(jié)果 6

軟硬件版本控制器硬件筆記本電腦控制軟件TwinCAT3.1Build4024.40版本程序思路1——TwinCAT自帶內(nèi)部轉(zhuǎn)換,輸出單一位基本思路在TwinCAT3中,可以利用“十進(jìn)制數(shù).位數(shù)”的形式輸出該位數(shù)的二進(jìn)制值位1還是0,而不需要算法代碼。PLC代碼實(shí)現(xiàn)變量聲明 由于只需要輸出某一特定位的值,因此只需要聲明int類型十進(jìn)制數(shù)decValue(初始值為2023)和bool類型的當(dāng)前位二進(jìn)制數(shù)。程序編寫 程序分為兩部分。第一部分是輸出2023的第2位的值,需要注意的是這里的位數(shù)從0開始算第1位,且只能填寫0-15之間的整數(shù)。第二部分展示了如何在實(shí)際工程中使用這一功能:如果2023的第11位二進(jìn)制是1,那么Test變量則輸出1。運(yùn)行結(jié)果 可以看到2023的第2位是1,因此digit輸出為TRUE;2023的第11位是1,因此Test輸出為TRUE。 然而,這種方法并不能讓用戶循環(huán)操作二進(jìn)制的每一位,因此可以將二進(jìn)制數(shù)保存為數(shù)組的形式,參考程序思路2。程序思路2——從原理出發(fā),輸出完整二進(jìn)制數(shù)十進(jìn)制轉(zhuǎn)為二進(jìn)制原理將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的原理是使用除以2的余數(shù)法(也稱為短除法),以下是將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的步驟:選擇要轉(zhuǎn)換的十進(jìn)制數(shù)。將該數(shù)除以2,得到商和余數(shù)。將余數(shù)記錄下來,作為二進(jìn)制數(shù)的最低位。將商作為新的十進(jìn)制數(shù),重復(fù)步驟2和步驟3,直到商為0。將所有記錄的余數(shù)按從下到上的順序排列,得到的就是轉(zhuǎn)換后的二進(jìn)制數(shù)。以下是一個(gè)示例,將十進(jìn)制數(shù)13轉(zhuǎn)換為二進(jìn)制數(shù):13÷2=6……16÷2=3……03÷2=1……11÷2=0……1將記錄的余數(shù)從下到上排列,得到的二進(jìn)制數(shù)為1101。因此,十進(jìn)制數(shù)13轉(zhuǎn)換為二進(jìn)制數(shù)為1101。PLC代碼實(shí)現(xiàn)工程概覽PLC功能分為4個(gè)功能塊和1個(gè)主程序,4個(gè)功能塊按照數(shù)組長度的不同分為:Byte(8bit)、Word(16bit)、DWord(32bit)、LReal(64bit),用戶可以根據(jù)實(shí)際整數(shù)的大小調(diào)用不同的功能塊,具體大小范圍可以參考下方列表:類型下限上限內(nèi)存Byte02558bitWord06553516bitDWord0429496729532bitLReal~-1.79769313486231E308~1.79769313486232E30864bit功能塊變量聲明(Byte為例) 為了方便用戶理解并使用,本文檔以功能塊的形式展現(xiàn)該進(jìn)制轉(zhuǎn)換算法。 輸入變量:b_execute進(jìn)制轉(zhuǎn)換開關(guān)、dec十進(jìn)制數(shù)(int) 輸出變量:bin二進(jìn)制數(shù)(7位數(shù)組)、busy位、error位 功能塊內(nèi)部變量:i循環(huán)計(jì)數(shù)器、b_trig上升沿觸發(fā)位、r_trig上升沿檢測功能塊功能塊程序編寫功能塊使用一個(gè)上升沿檢測功能塊來觸發(fā)進(jìn)制轉(zhuǎn)換,通過3.1節(jié)的原理將十進(jìn)制轉(zhuǎn)換為二進(jìn)制,如果該十進(jìn)制數(shù)為負(fù)數(shù),則輸出error信號;反之輸出二進(jìn)制數(shù)組,轉(zhuǎn)換完成后busy位重置為0,b_trig重置為0,循環(huán)計(jì)數(shù)器i重置為7,等待下一次上升沿觸發(fā)。主程序編寫 主程序分為兩部分,第一部分調(diào)用功能塊實(shí)例FB_ByteArr完成整數(shù)拆分,第二部分遍歷二進(jìn)制數(shù)組每一位的值,進(jìn)行用戶需要的操作。運(yùn)行結(jié)果將TwinCAT3進(jìn)入運(yùn)行模式并login程序,觀察監(jiān)視窗口:可以看到十進(jìn)制數(shù)123被轉(zhuǎn)化為二進(jìn)制后存入8位數(shù)組,對應(yīng)了二進(jìn)制數(shù)01111011。

上海(中國區(qū)總部)中國上海市靜安區(qū)汶水路299弄9號(市北智匯園)電話 北京分公司北京市西城區(qū)新街口北大街3號新街高和大廈407室電話 郵箱:beijing@ 廣州分公司廣州市天河區(qū)珠江新城珠江東路32號利通廣場1303室電話1/2 郵箱:guangzhou@ 成都分公司成都市錦江區(qū)東御街18號百揚(yáng)大廈2305室電話/p>

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論