一.建立子程序
使用STEP 7-MicroWIN SMART先建立兩個子程序,分別命名S_ITR和S_RTI。
二.寫程序
1. S_ITR程序及原理
用途是將輸入范圍中的整數縮放為輸出范圍中的實數。
此子例程首先會讀取由調用POU傳遞的值:要縮放的輸入、輸入范圍上限 (ISH)、輸入范圍下限 (ISL)、輸出范圍上限 (OSH) 和輸入范圍下限 (OSL)。
下一步是用 OSH 中減去 OSL,以確定存回 OSH 中的輸出縮放范圍。 接下來,該子例程會從輸入中減去 ISL,并將所得的差先轉換為雙字,然后再轉換為實數。 之后,下一條指令將該實數乘以輸出范圍。
再下一步是用 ISH 減去 ISL,以計算輸入縮放范圍,將計算所得的值轉換為雙字,并再轉換為實數。
接下來,該子例程用輸出縮放范圍除以計算所得的實數,并將結果與輸出范圍下限值 (OSL) 相加,以確定最終輸出值。 最后,該子例程會將此值移動到要由調用 POU 使用的子例程的輸出。
公式如下:
輸出 = [(OSH -OSL) * (輸入 - ISL) /(ISH - ISL)] + OSL
表一.S_ITR變量表
以上圖片是子程序S_ITR里的程序
2. S_RTI程序及原理
用途是將輸入范圍中的實數縮放為輸出范圍中的整數。
此子例程首先會讀取由調用POU 傳遞的值: 要縮放的輸入、輸入范圍上限 (ISH)、輸入范圍下限 (ISL)、輸出范圍上限 (OSH) 和輸入范圍下限 (OSL)。
下一步是用 OSH 中減去 OSL,以確定存回 OSH 中的輸出縮放范圍。 接下來,該子例程會從輸入中減去 ISL,并將所得的差先轉換為雙字,然后再轉換為實數。
下一步是用輸入減去 ISL,然后用所得的差乘以計算所得的實數輸出縮放范圍。
再用 ISH 減去 ISL,以計算輸入縮放范圍,用輸出范圍除以計算所得的輸入鎖定范圍,然后將商舍入為雙字。
之后,該子例程將根據該數據類型的界限限制檢查已舍入的輸出值,以確保最終值的準確性。在界限檢查后,子例程會將雙字值轉換為整數,用該整數加上輸出范圍下限(OSL),并將所得值移動到子例程輸出。
公式如下:
輸出 = [(OSH -OSL) * (輸入 - ISL) /(ISL - ISL)] + OSL
表二.S_RTI變量表
以上圖片是子程序S_RTI里的程序
3. 保存
三.建模擬量庫
打開軟件---文件----創建----對話框改名為:“模擬量”;存儲路徑建議默認,方便后期添加。
對話框---組件---程序塊,選擇剛剛保存的程序名稱,依次添加。
添加完畢可以點創建。(保護,版本生成隨個人意愿)
四.調用模擬量庫
打開軟件----左邊的菜單樹----庫-----就可以看到自己創建的庫了,無需添加,自動生成,前提是你得把你建的庫放到系統默認的路徑(上圖有介紹)。
例1:讀取變送器送來的液位信號,0~50m, 用VD0保存。
例2:把設定的閥門開度0~100%,AQW0輸出控制。