青海省西門子授權供應商---西門子電機果洛藏族自治州總代理
| 更新時間 2024-11-23 08:00:00 價格 請來電詢價 西門子PLC 西門子伺服電機 西門子觸摸屏 西門子電纜 西門子變頻器 西門子模塊 聯系電話 13510737515 聯系手機 13185520415 聯系人 董海波 立即詢價 |
導讀
在我們的實際項目中經常需要使用模擬量來讀取現場設備的數據。比如設備的溫度、液體的高度、流速、變頻器的頻率、閥門的開度等等。那么如果現場有多個模擬量的傳感器要編寫程序的話,可能工作量就會比較大,有沒有更快捷的方式編程呢?那么本文就給大家分享多個模擬量快速編程的方法。本案例使用的是S7-1200PLC實現控制要求。
將連續16個Al信號(IW96-IW126),根據信號的范圍,轉換成對應的工程量信號。比如:IW96測量的是溫度,范圍是0.0-100.0℃。IW96測量的是管道的壓力,范圍是0.0-1.0MPa。
組態模擬量模塊
①在博途軟件中組態1215CPU以及兩個8通道模擬量模塊,如圖1所示:
▲圖1▲
②查看兩個模擬量擴展模塊的通道地址得知是IW96-IW126,如圖2和圖3所示:
▲圖2▲
▲圖3▲
程序編寫
①在博途軟件中新建DB1數據塊,建立4個數組的數據類型,每個數組包含16個元素個數。比如“A”這個數組,包含了16個Int的數據?!癓imlitMix”數組包含了16個Real數據。其中還建立了兩個Int的數據,名稱為“ForNum”和“ForNum1”,主要用于循環程序的使用。
▲圖4▲
②如圖5所示,在OB1程序塊中編寫程序。程序段1對循環次數清零。程序段2是標準化和縮放指令,標準化指令(NORM_X)中的VALUE這個管腳的地址,使用數組間接尋址,隨著ForNum這個變量的變化,可以得知第一次的數據為A[0],第二次為A[1],依次遞增??s放指令的MIN和MAX管腳的參數也同樣的是間接尋址,MIN管腳第一次的數據為LimlitMix[0],第二次的數據為LimlitMix[1],依次遞增。MAX管腳第一次的數據為LimlitMax[0],第二次的數據為LimlitMax[1],依次遞增。
程序段3使用的是ADD指令實現“ForNum”循環次數的遞增,再判斷循環次數,如果循環次數的值小于等于15則跳轉到程序段2。
▲圖5▲
③程序段4是使用PEEK_WORD指令將IW96為起始的16個數據映射到DB塊的“A”數組中,這樣就能把外部的16個模擬量通道的數據依次存入A[0]至A[15]中。其中指令的area的含義是:指定訪問存儲區類型,16#81:輸入映像區。
dbNumber的含義是:用來指定訪問數據塊的編號。僅在訪問數據塊時使用,其他存儲區為0。byteOffset的含義是:用來指定讀取數據地址的偏移量。如圖6所示:
▲圖6▲
仿真測試
①第一個通道工程單位設置為0.0-100.0,第二個通道工程單位設置為0.0-1.0。第三個通道工程單位設置為-100.0-200.0。如圖7所示:
▲圖7▲
②在強制表中寫入三個模擬量通道數據。如圖8所示:
▲圖8▲
③模擬量的數據已經轉換成實際的工程單位值。如圖9所示:
▲圖9▲
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415