西門(mén)子PLC: | 西門(mén)子伺服電機 |
西門(mén)子觸摸屏: | 西門(mén)子電纜 |
西門(mén)子變頻器: | 西門(mén)子模塊 |
單價(jià): | 面議 |
發(fā)貨期限: | 自買(mǎi)家付款之日起 天內發(fā)貨 |
所在地: | 廣東 惠州 |
有效期至: | 長(cháng)期有效 |
發(fā)布時(shí)間: | 2024-07-20 10:16 |
最后更新: | 2024-07-20 10:16 |
瀏覽次數: | 110 |
采購咨詢(xún): |
請賣(mài)家聯(lián)系我
|
導讀
在我們的實(shí)際項目中經(jīng)常需要使用模擬量來(lái)讀取現場(chǎng)設備的數據。比如設備的溫度、液體的高度、流速、變頻器的頻率、閥門(mén)的開(kāi)度等等。那么如果現場(chǎng)有多個(gè)模擬量的傳感器要編寫(xiě)程序的話(huà),可能工作量就會(huì )比較大,有沒(méi)有更快捷的方式編程呢?那么本文就給大家分享多個(gè)模擬量快速編程的方法。本案例使用的是S7-1200PLC實(shí)現控制要求。
將連續16個(gè)Al信號(IW96-IW126),根據信號的范圍,轉換成對應的工程量信號。比如:IW96測量的是溫度,范圍是0.0-100.0℃。IW96測量的是管道的壓力,范圍是0.0-1.0MPa。
①在博途軟件中組態(tài)1215CPU以及兩個(gè)8通道模擬量模塊,如圖1所示:
▲圖1▲
②查看兩個(gè)模擬量擴展模塊的通道地址得知是IW96-IW126,如圖2和圖3所示:
▲圖2▲
▲圖3▲
①在博途軟件中新建DB1數據塊,建立4個(gè)數組的數據類(lèi)型,每個(gè)數組包含16個(gè)元素個(gè)數。比如“A”這個(gè)數組,包含了16個(gè)Int的數據。“LimlitMix”數組包含了16個(gè)Real數據。其中還建立了兩個(gè)Int的數據,名稱(chēng)為“ForNum”和“ForNum1”,主要用于循環(huán)程序的使用。
▲圖4▲
②如圖5所示,在OB1程序塊中編寫(xiě)程序。程序段1對循環(huán)次數清零。程序段2是標準化和縮放指令,標準化指令(NORM_X)中的VALUE這個(gè)管腳的地址,使用數組間接尋址,隨著(zhù)ForNum這個(gè)變量的變化,可以得知第一次的數據為A[0],第二次為A[1],依次遞增。縮放指令的MIN和MAX管腳的參數也同樣的是間接尋址,MIN管腳第一次的數據為L(cháng)imlitMix[0],第二次的數據為L(cháng)imlitMix[1],依次遞增。MAX管腳第一次的數據為L(cháng)imlitMax[0],第二次的數據為L(cháng)imlitMax[1],依次遞增。
程序段3使用的是ADD指令實(shí)現“ForNum”循環(huán)次數的遞增,再判斷循環(huán)次數,如果循環(huán)次數的值小于等于15則跳轉到程序段2。
▲圖5▲
③程序段4是使用PEEK_WORD指令將IW96為起始的16個(gè)數據映射到DB塊的“A”數組中,這樣就能把外部的16個(gè)模擬量通道的數據依次存入A[0]至A[15]中。其中指令的area的含義是:指定訪(fǎng)問(wèn)存儲區類(lèi)型,16#81:輸入映像區。
dbNumber的含義是:用來(lái)指定訪(fǎng)問(wèn)數據塊的編號。僅在訪(fǎng)問(wèn)數據塊時(shí)使用,其他存儲區為0。byteOffset的含義是:用來(lái)指定讀取數據地址的偏移量。如圖6所示:
▲圖6▲
①第一個(gè)通道工程單位設置為0.0-100.0,第二個(gè)通道工程單位設置為0.0-1.0。第三個(gè)通道工程單位設置為-。如圖7所示:
▲圖7▲
②在強制表中寫(xiě)入三個(gè)模擬量通道數據。如圖8所示:
▲圖8▲
③模擬量的數據已經(jīng)轉換成實(shí)際的工程單位值。如圖9所示:
▲圖9▲