S7-1200幾個SCL編寫的功能塊_第1頁
S7-1200幾個SCL編寫的功能塊_第2頁
S7-1200幾個SCL編寫的功能塊_第3頁
S7-1200幾個SCL編寫的功能塊_第4頁
S7-1200幾個SCL編寫的功能塊_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1200 AI 數(shù)據(jù)采集功能塊FUNCTION_BLOCK AI_convert S7_Optimized_Access := FALSE AUTHOR : TyfixnVERSION : 0.1VAR_INPUT_inAW ExternalAccessible := False; ExternalVisible := False;ExternalWritable := False : Int; / AI 輸入采集端,對應硬件地址_inHI : Real := 100.0;/ AI 量程上限_inLi : Real; / AI 量程下限_AlarmHiSP : Real := 90.0;/ A

2、I 報警上限/ AI 報警上上限_AlarmLiSP : Real := 0.0;/ AI 報警下限_AlarmHHiSP : Real := 95.0;_AlarmLLiSP : Real;/ AI 報警下下限END_VARVAR_OUTPUT_out : Real; / AI 轉(zhuǎn)換輸出值, PV 值_Alarm_H : Bool;/ 高報_Alarm_L : Bool;/ 低報_Alarm_HH : Bool;/ 高高報_Alarm_LL : Bool;/ 低低報END_VARVARErr_Code : Word;/ 轉(zhuǎn)換錯誤代碼, word 字節(jié)中的第一位高報,第二位低報,第三位高高報,

3、第四位底底報,第五位轉(zhuǎn)發(fā)錯誤。其中轉(zhuǎn)換錯誤代碼是 Err_Code.Err : Bool; / 報警數(shù)字輸出_out_N : Real;/ 輸出 0-1 之間的比例,END_VARVAR_TEMPVar : Word;END_VARBEGINEND_IF;IF #_out #_AlarmLiSP THEN/ 低限報警觸發(fā)。將采集的信號將采集的信號縮#_out_N := NORM_X(MIN := 0, VALUE := #_inAW, MAX := 27648); / 縮放到 0-1 之間#_out := SCALE_X(MIN:=#_inLi, VALUE:=#_out_N, MAX:=#_

4、inHI); / 放到需要的量程范圍內(nèi)。/ 當上上限小于上限時,更改上上限值為上限值。/ 當下下限大于下限時,更改下下限值為下限值。IF #_AlarmHHiSP #_AlarmLiSP THEN#_AlarmLLiSP := #_AlarmLiSP;END_IF;IF #_out #_AlarmHiSP THEN/ 高限報警觸發(fā)。#_Alarm_H := 1;#Err_Code := #Err_Code OR 16#1;ELSE#_Alarm_H := 0;#Err_Code := #Err_Code AND 16#fe;END_IF;#_Alarm_L := 1;#Err_Code :=

5、#Err_Code OR 16#2;ELSE#_Alarm_L := 0;#Err_Code := #Err_Code AND 16#fd;END_IF;IF #_out #_AlarmHHiSP THEN#_Alarm_HH := 1;#Err_Code := #Err_Code OR 16#4;ELSE#_Alarm_HH := 0;#Err_Code := #Err_Code AND 16#fb;END_IF;IF #_out #_AlarmLLiSP THEN#_Alarm_LL := 1;#Err_Code := #Err_Code OR 16#8;ELSE#_Alarm_LL :=

6、 0;/ 高高限報警觸發(fā)。/ 低低限報警觸發(fā)。#Err_Code := #Err_Code AND 16#f7;IF #Var 0 THEN/ 自帶的 Scale 功能塊運算錯誤報警#Err_Code := #Err_Code OR 16#10;ELSE#Err_Code := #Err_Code AND 16#ef;END_IF;IF #Err_Code 0 THEN#Err := 1;ELSE#Err := 0;END_IF;/word 字節(jié)中的第一位高報,第二位低報,第三位轉(zhuǎn)換錯誤,第四位高高報警,第五位低低報警。END_FUNCTION_BLOCK2、1500 AI 采集功能塊FUNC

7、TION_BLOCK AI_convert S7_Optimized_Access := FALSE AUTHOR : TyfixnVERSION : 0.1VAR_INPUT_inAW : Int;/ AI 輸入采集端,對應硬件地址_inLi : Real; / AI 量程下限_inHI : Real := 100.0;/ AI 量程上限_AlarmLiSP : Real := 0.0; / AI 報警下限_AlarmHiSP : Real := 95.0; / AI 報警上限 _AlarmLLiSP : Real; / AI 報警下下限 _AlarmHHiSP : Real; / AI 報

8、警上上限END_VARVAR_OUTPUT_out : Real; / AI 轉(zhuǎn)換輸出值, PV 值_Alarm_L : Bool; / 低報_Alarm_H : Bool; / 高報_Alarm_LL : Bool; / 低低報_Alarm_HH : Bool;/ 高高報END_VARVARErr_Code : Word;/ 轉(zhuǎn)換錯誤代碼, word 字節(jié)中的第一位高報,第二位低報,第三位轉(zhuǎn)換錯誤。其中轉(zhuǎn)換錯誤代碼是 Err_Code.Err : Bool; / 報警數(shù)字輸出_out_N : Real;/ 輸出 0-1 之間的比例,END_VARVAR_TEMPVar : Word;END_

9、VARBEGIN#Var := SCALE(IN := #_inAW, HI_LIM := 1.0, LO_LIM := 0.0, BIPOLAR := 0, OUT =#_out_N); / 將采集的信號縮放到 0-1 之間#Var := SCALE(IN := #_inAW, HI_LIM := #_inHI, LO_LIM := #_inLi, BIPOLAR := 0,OUT = #_out);/ 將采集的信號縮放到需要的量程范圍內(nèi)。IF #_out #_AlarmHiSP THEN / 高限報警觸發(fā)。#_Alarm_H := 1;#Err_Code := #Err_Code OR 1

10、6#1;ELSE#_Alarm_H := 0;#Err_Code := #Err_Code AND 16#fe;END_IF;IF #_out #_AlarmLiSP THEN / 低限報警觸發(fā)。#_Alarm_L := 1;#Err_Code := #Err_Code OR 16#2;ELSE#_Alarm_L := 0;#Err_Code := #Err_Code AND 16#fd;END_IF;IF #Var 0 THEN / 自帶的 Scale 功能塊運算錯誤報警#Err_Code := #Err_Code OR 16#4;ELSE#Err_Code := #Err_Code AND

11、 16#fb;END_IF;IF #_out #_AlarmHHiSP THEN/ 高高限報警觸發(fā)。#_Alarm_HH := 1;#Err_Code := #Err_Code OR 16#8;ELSE#_Alarm_HH := 0;#Err_Code := #Err_Code AND 16#f7;END_IF;IF #_AlarmHHiSP #_AlarmHiSP THEN#_AlarmHHiSP := #_AlarmHiSP;/ 低低限報警觸發(fā)。END_IF;IF #_out #_AlarmLiSP THEN#_AlarmLLiSP := #_AlarmLiSP;END_IF;IF #Er

12、r_Code 0 THEN#Err := 1;ELSE#Err := 0;END_VAR_AlarmHHiSP : Real := 95.0;/ RTD 報警上上限END_IF;/word 字節(jié)中的第一位高報,第二位低報,第三位轉(zhuǎn)換錯誤,第四位高高報警,第五位低低報警。END_FUNCTION_BLOCK3、RTD 采集功能塊FUNCTION_BLOCK RTD_Convert S7_Optimized_Access := FALSE AUTHOR : TyfixnVERSION : 0.1VAR_INPUT_inAW : Int := 0;/ RTD 輸入采集端,對應硬件地址_inLi :

13、Real := 0.0;/ RTD 量程下限 ,供上位機使用_inHI : Real := 100.0;/ RTD 量程上限,供上位機使用_AlarmLiSP : Real := 0.0; / RTD 報警下限_AlarmHiSP : Real := 90.0; / RTD 報警上限_AlarmLLiSP : Real := 0.0; / RTD 報警下下限END_VARVAR_OUTPUT_out : Real; / AI 轉(zhuǎn)換輸出值, PV 值_Alarm_L : Bool;/ 低報_Alarm_H : Bool;/ 高報_Alarm_LL : Bool;/ 低低報_Alarm_HH :

14、Bool;/ 高高報END_VARVARErr_Code : Word;/ 轉(zhuǎn)換錯誤代碼Err : Bool; / word 字節(jié)中的第一位高報,第二位低報,第三位轉(zhuǎn)換錯誤。其中轉(zhuǎn) 換錯誤代碼是 Err_Code._out_N : Real; /將輸出轉(zhuǎn)換為 0-1 之間,供 PID 回路使用。END_VARVAR_TEMPVar : Word;END_IF;BEGIN#_out := INT_TO_REAL(#_inAW) / 10; 到實際的溫度數(shù)值。#_out_N := #_out / #_inHI;IF #_out #_AlarmHiSP THEN#_Alarm_H := 1;#Err

15、_Code := #Err_Code OR 16#1;ELSE#_Alarm_H := 0;#Err_Code := #Err_Code AND 16#fe;END_IF;IF #_out #_AlarmHHiSP THEN/ 高高限報警觸發(fā)。#_Alarm_HH := 1;#Err_Code := #Err_Code OR 16#4;ELSE#_Alarm_HH := 0;#Err_Code := #Err_Code AND 16#fb;END_IF;IF #_out #_AlarmLLiSP THEN / 低低限報警觸發(fā)。#_Alarm_LL := 1;#Err_Code := #Err_Code OR 16#8;ELSE#_Alarm_LL := 0;#Err_Code := #Err_Code AND 16#f7;END_IF;IF #Var 0 THEN / 自帶的 Scale 功能塊運算錯誤報警#Err

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論