- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1200 Al数据采集功能块
FUNCTION_BLOCK ”AI_convert“
{ S7 Optimized Access := FALSE}
AUTHOR : Tyfixn
VERSION :0.1
VARJNPUT
JnAW ( ExternalAccessible := False; ExternalVisible := False;
ExternalWritable := False}: Int;//Al 输入采集端,对应硬件地址
JnHI : Real := 100.0; // Al 量程上限
JnLi:Real;//AI 量程下限
_AlarmHiSP : Real := 90.0; // Al 报警上限
_AlarmLiSP : Real := 0.0; // Al 报警下限
_AlarmHHiSP : Real := 95.0; 〃 Al 报警上上限
_AlarmLLiSP : Real; // Al 报警下下限
END_VAR
VARJDUTPUT
out: Real;//Al转换输出值,PV值
Alarm_H : Bool; // 高报
_Alarm_L : Bool; // 低报
Alarm HH : Bool; // 高高报
_Alarm_LL : Bool; 〃 低低报
END_VAR
VAR
Err_Code : Word; 〃转换错误代码,word字节中的第一位高报,第二位低报,
第三位高高报,第四位底底报,第五位转发错误。其中转换错误代码是Err_Code.
Err: Bool; //报警数字输出
_out_N : Real; 〃输出0?1之间的比例,
END_VAR
VAR_TEMP
”Var”: Word;
END_VAR
BEGIN
#_out_N := NORM_X(MIN := 0, VALUE := #_inAW, MAX := 27648); // 缩放到
将采集的信号
0-1之间
#_out := SCALE_X(MIN:=#_inLi, VALUE:=#_out_N, MAX:=#JnHI); // 放到需要
将采集的信号缩
的量程范
//当上上限小于上限时,更改上上限值为上限值。
//当下下限大于下限时,更改下下限值为下限值。
IF #_AlarmHHiSP #_AlarmHiSP THEN
#_AlarmHHiSP := #_AlarmHiSP;
ENDJF;
IF #_AlarmLLiSP #_AlarmLiSP THEN
#_AlarmLLiSP := #_AlarmLiSP;
ENDJF;
IF #_out #_AlarmHiSP THEN
//高限报警触发。
# Alarm H := 1;
#Err_Code := #Err_Code OR 16#1;
ELSE
# Alarm H := 0;
#Err_Code := #Err_Code AND 16#fe;
ENDJF;
IF #_out #_AlarmLiSP THEN
〃低限报警触发
=J
END IF;
END IF;
#_Alarm_L := 1;
#Err_Code := #Err_Code OR 16#2;
ELSE
#_Alarm_L := 0;
#Err_Code := #Err_Code AND 16#fd;
ENDJF;
〃高高限报警触发。
〃高高限报警触发。
#Err Code := #Err Code OR 16#4;
ELSE
#_Alarm_HH := 0;
#Err Code := #Err Code AND 16#fb;
ENDJF;
//低低限报警触发。IF #_out #_AlarmLLiSP THEN
//低低限报警触发。
# Alarm LL := 1:
#Err_Code := #Err_Code OR 16#8;
ELSE
#_Alarm_LL := 0;
#Err_Code := #Err_Code AND 16#f7;
IF#Var oOTHEN
〃自带的Scale功能块运算错误报警
#Err_Code := #Err_Code OR 16#10;
ELSE
#Err_Code := #Err_Code AND 16#ef;
ENDJF;
IF #Err_Code 0 THEN
#Err := 1;
ELSE
#Err := 0;
ENDJF;
//word字节中的第一位高报,第二位低报,第三位转换错误,第四位高高报警,第五位
低低报警。
END_FUNCTION_BLOCK
2、
1500 Al采集功能块
FUNCTION_BLOCK ,,AI_convertH { S7_Optimized_Access := FALSE*}
AUTHOR :
文档评论(0)