S7-1200几个SCL编写的功能块_第1页
S7-1200几个SCL编写的功能块_第2页
S7-1200几个SCL编写的功能块_第3页
S7-1200几个SCL编写的功能块_第4页
S7-1200几个SCL编写的功能块_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1200Al数据采集功能块FUNCTION_BLOCK”AI_convert”{S7_Optimized_Access:='FALSE'}AUTHOR:TyfixnVERSION:0.1VARJNPUTJnAW{ExternalAccessible:='False';ExternalVisible:='False';ExternalWritable:='False'):Int;//Al输入采集端,对应硬件地址JnHI:Real:=100.0; //Al量程上限JnLi:Real;//Al量程下限_AlarmHiSP:Real:=90.0; //Al报警上限_AlarmLiSP:Real:=0.0; //Al报警下限_AlarmHHiSP:Real:=95.0; //Al报警上上限_AlarmLLiSP:Real;//Al报警下下限END_VARVAR_OUTPUTout:Real;//Al转换输出值,PV值_Alarm_H:Bool;//高报_Alarm_L:Bool;//低报_Alarm_HH:Bool;//高高报AlarmLL:Bool;〃低低报END_VARVARErr_Code:Word;〃转换错误代码,word字节中的第一位高报,第二位低报,第三位高高报,第四位底底报,第五位转发错误。其中转换错误代码是Err_Code.Err:Bool;〃报警数字输出_out_N:Real;〃输出0・1之间的比例,END_VARVAR_TEMP"Varn:Word;END_VARBEGINIF#_out<#_AlarmLiSPTHEN IF#_out<#_AlarmLiSPTHEN 〃彳氐限报警禽虫发。将采集的信号将采集的信号缩#_out_N:=NORM_X(MIN:=0,VALUE:=#JnAW,MAX:=27648);//缩放至fj将采集的信号将采集的信号缩0-1之间#_out:=SCALE_X(MIN:=#JnLi,VALUE:=#_out_N,MAX:=#JnHI);//放到需要的量程范围内。//当上上限小于上限时,更改上上限值为上限值。//当下下限大于下限时,更改下下限值为下限值。IF#_AlarmHHiSP<#_AlarmHiSPTHEN#_AlarmHHiSP:=#_AlarmHiSP;ENDJF;IF#_AlarmLLiSP>#_AlarmLiSPTHEN#_AlarmLLiSP:=#_AlarmLiSP;ENDJF;IF#_out>#_AlarmHiSPTHEN //高限报警触发。_Alarm_H:=1;Err_Code:=#Err_CodeOR16#1;ELSE_Alarm_H:=0;Err_Code:=#Err_CodeAND16#fe;ENDJF;

_Alarm_L:=1;Err_Code:=#Err_CodeOR16#2;ELSE_Alarm_L:=0;Err_Code:=#Err_CodeAND16#fd;ENDJF;IF#_out>#_AlarmHHiSPTHEN_Alarm_HH:=1;Err_Code:=#Err_CodeOR16#4;ELSE_Alarm_HH:=0;Err_Code:=#Err_CodeAND16#fb;ENDJF;IF#_out<#_AlarmLLiSPTHEN_Alarm_LL:=1;ErrCode:=#ErrCodeOR16#8;ELSE_Alarm_LL:=0;Err_Code:=#Err_CodeAND16#f7;//高高限报警触发。//低低限报警触发。ENDJF;//高高限报警触发。//低低限报警触发。IF#VaroOTHEN〃自带的IF#VaroOTHEN〃自带的Scale功能块运算错误报警Err_Code:=#Err_CodeOR16#10;ELSEErr_Code:=#Err_CodeAND16#ef;ENDJF;IF#Err_Code<>0THENErr:=1;ELSEErr:=0;ENDJF;//word字节中的第一位高报,第二位低报,第三位转换错误,第四位高高报警,第五位低低报警。END_FUNCTION_BLOCK2、1500Al采集功能块FUNCTION_BLOCK,,AI_convert,,{S7_Optimized_Access:=TALSE'}AUTHOR:TyfixnVERSION:0.1VARJNPUTJnAW:Int; //Al输入采集端,对应硬件地址JnLi:Real;//Al量程下限JnHI:Real:=100.0;//Al量程上限_AlarmLiSP:Real:=0.0;//Al报警下限_AlarmHiSP:Real:=95.0;//Al报警上限_AlarmLLiSP:Real;//Al报警下下限_AlarmHHiSP:Real;//Al报警上上限END_VARVAR_OUTPUT_out:Real;//Al转换输出值,PV值_Alarm_L:Bool;//低报_Alarm_H:Bool;//高报_Alarm_LL:Bool;//低低报_Alarm_HH:Bool;//高高报END_VARVARErr_Code:Word;//转换错误代码,word字节中的第一位高报,第二位低报,第三位转换错误。其中转换错误代码是Err_Code.Err:Bool;〃报警数字输出_out_N:Real;//输出0・1之间的比例,END_VARVAR_TEMP"Var":Word;END_VARBEGINVar:=SCALE(IN:=#JnAW,HI_LIM:=1.0,LO_LIM:=0.0,BIPOLAR:=0,OUT=>_out_N);〃将采集的信号缩放到之间Var:=SCALE(IN:=#JnAW,HI_LIM:=#JnHI,LO_LIM:=#JnLi,BIPOLAR:=0,OUT=>#_out); 〃将采集的信号缩放到需要的量程范围内。IF#_out>#_AlarmHiSPTHEN//高限报警触发。AlarmH:=1;Err_Code:=#Err_CodeOR16#1;ELSEAlarmH:=0;ErrCode:=#ErrCodeAND16#fe;ENDJF;IF#_out<#_AlarmLiSPTHEN//低限报警触发。AlarmL:=1;Err_Code:=#Err_CodeOR16#2;ELSEAlarmL:=0;Err_Code:=#Err_CodeAND16#fd;ENDJF;IF#Var<>0THEN//自带的Scale功能块运算错误报警ErrCode:=#ErrCodeOR16#4;ELSEErrCode:=#ErrCodeAND16#fb;ENDJF;IF#_out>#_AlarmHHiSPTHEN //高高限报警角虫发。AlarmHH:=1;ErrCode:=#ErrCodeOR16#8;ELSEAlarmHH:=0;Err_Code:=#Err_CodeAND16#f7;ENDJF;IF#_AlarmHHiSP<#_AlarmHiSPTHEN_AlarmHHiSP:=#_AlarmHiSP;ENDJF;//低低限报警触发。//低低限报警触发。AlarmLL:=1;Err_Code:=#Err_CodeOR16#10;ELSEAlarmLL:=0;Err_Code:=#Err_CodeAND16#ef;ENDJF;IF#_AlarmLLiSP>#_AlarmLiSPTHENAlarmLLiSP:=#AlarmLiSP;ENDJF;IF#Err_Code<>0THENErr:=1;ELSEErr:=0;END_VAREND_VAR_AlarmHHiSP_AlarmHHiSP:Real:=95.0; //RTD报警上上限ENDJF;//word字节中的第一位高报,第二位低报,第三位转换错误,第四位高高报警,第五位低低报警。END_FUNCTION_BLOCK3、RTD采集功能块FUNCTION_BLOCK"RTD_Convert"{S7_Optimized_Access:='FALSE'}AUTHOR:TyfixnVERSION:0.1VARJNPUTJnAW:Int:=0; //RTD输入采集端,对应硬件地址JnLi:Real:=0.0; //RTD量程下限,供上位机使用JnHI:Real:=100.0; //RTD量程上限,供上位机使用_AlarmLiSP:Real:=0.0;//RTD报警下限_AlarmHiSP:Real:=90.0;//RTD报警上限_AlarmLLiSP:Real:=0.0;//RTD报警下下限END_VARVAR_OUTPUT_out:Real://Al转换输出值,PV值_Alarm_L:Bool;//低报_Alarm_H:Bool; //高报_Alarm_LL:Bool; 〃低低报AlarmHH:Bool;〃高高报END_VARVARErrCode:Word;〃转换错误代码Err:Bool;//word字节中的第一位高报,第二位低报,第三位转换错误。其中转换错误代码是Err_Code.outN:Real;//将输出转换为0・1之间,供PID回路使用。END_VARVAR_TEMP”Var“:Word;ENDJF;ENDJF;BEGIN#_out:=INT_TO_REAL(#JnAW)/10;至#_out:=INT_TO_REAL(#JnAW)/10;至实际的温度数值。〃将温度采集的信号直接除以10,即可得#_out_N:=#_out/#JnHI;//高限报警触发。IF#_out>#_AlarmHiSPTHEN_Alarm_H:=1;Err_Code:=#Err_CodeOR16#1;ELSE_Alarm_H:=0;Err_Code:=#Err_CodeAND16#fe;ENDJF;IF#_out<#_AlarmLiSPTHEN 11低限报警触发。_Alarm_L:=1;Err_Code:=#Err_CodeOR16#2;ELSE_Alarm_L:=0;Err_Code:=#Err_CodeAND16#fd;//高高限报警触发。//高高限报警触发。_Alarm_HH:=1;Err_Code:=#Err_CodeOR16#4;ELSE_Alarm_HH:=0;Err_Code:=#Err_CodeAND16#fb;ENDJF;IF#_out<#_AlarmLLiSPTHEN//低低限报警触发。_Alarm_LL:=1;Err_Code:=#Err_CodeOR16#8;ELSE_Alarm_LL:=0;Err_Code:=#Err_CodeAND16#f7;ENDJF;IF#Var<>0THEN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论