找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
小程序查看
手机扫码追踪该问题
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
FUNCTION_BLOCK FB618
//
TITLE = ''LEIJI''
//
know_how_protect
VERSION: ''6.0''
AUTHOR: nyj
NAME: nyj
FAMILY: china
{S7_m_c:=''true''}
// Block Parameters
VAR_INPUT
// Input Parameters
TongDaoDiZhi{S7_m_c:=''true''}:WORD:=0;// AI adress
XunHuanShiJian{S7_m_c:=''true''}:REAL:=100;// unit:ms
Liangcheng{S7_m_c:=''true''}:REAL:=0.0;// m3/h(max) , t/h(max)
QingLing{S7_m_c:=''true'';S7_string_0:=''false'';S7_string_1:=''true''}:BOOL:=0;// back to zero
END_VAR
VAR_OUTPUT
// Output Parameters
ShunShiZhi{S7_m_c:=''true''}:REAL;//m3/h , t/h
LeiJiZhi{S7_m_c:=''true''}:DINT;//m3 , t
END_VAR
VAR_IN_OUT
LeiJiHH:DINT:=0;//(1e--??ee)
LeiJiH:DINT:=0;//(1--1e)
LeiJiL:REAL:=0.0;//(0.0--1.0)
END_VAR
BEGIN
IF WORD_TO_INT(TongDaoDiZhi)< 0 OR WORD_TO_INT(TongDaoDiZhi)= 32767 OR WORD_TO_INT(TongDaoDiZhi)= -32767 THEN
TongDaoDiZhi:=0;
END_IF;
IF WORD_TO_INT(TongDaoDiZhi)> 27648 AND WORD_TO_INT(TongDaoDiZhi)<> 32767 AND WORD_TO_INT(TongDaoDiZhi)<> -32767 THEN
TongDaoDiZhi:=27648;
END_IF;
ShunShiZhi:=WORD_TO_INT(TongDaoDiZhi)*Liangcheng/27648.0;
LeiJiL:=LeiJiL+ShunShiZhi*XunHuanShiJian/3600000.0;
IF LeiJiL >= 1.0 AND LeiJiL < 100000000.0 THEN
IF REAL_TO_DINT(LeiJiL)<=LeiJiL THEN
LeiJiH:= LeiJiH + REAL_TO_DINT(LeiJiL / 1.0);
LeiJiL:= LeiJiL- REAL_TO_DINT(LeiJiL / 1.0);
ELSE
LeiJiH:= LeiJiH + REAL_TO_DINT(LeiJiL / 1.0)-1;
LeiJiL:= LeiJiL - REAL_TO_DINT(LeiJiL / 1.0)+1;
END_IF;
END_IF;
IF LeiJiL >= 100000000.0 THEN
IF REAL_TO_DINT(LeiJiL/100000000.0)<=(LeiJiL/100000000.0) THEN
LeiJiHH:= LeiJiHH + REAL_TO_DINT(LeiJiL / 100000000.0);
LeiJiL:= LeiJiL- REAL_TO_DINT(LeiJiL / 100000000.0)*100000000.0;
ELSE
LeiJiHH:= LeiJiHH + REAL_TO_DINT(LeiJiL / 100000000.0)-1;
LeiJiL:= LeiJiL - (REAL_TO_DINT(LeiJiL / 100000000.0)-1.0)*100000000.0;
END_IF;
END_IF;
IF LeiJiH >= 100000000.0 THEN
LeiJiHH:= LeiJiHH+(LeiJiH DIV 100000000);
LeiJiH:= LeiJiH-(LeiJiH DIV 100000000)*100000000;
END_IF;
IF LeiJiL < 0.0 THEN
LeiJiL:=0.0;
END_IF;
IF LeiJiH < 0 THEN
LeiJiH:=0;
END_IF;
IF LeiJiHH < 0 THEN
LeiJiHH:=0;
END_IF;
LeiJiZhi:=REAL_TO_DINT(LeiJiHH*100000000.0+LeiJiH+LeiJiL);
IF QingLing = true THEN
QingLing := false ;
LeiJiHH:= 0 ;
LeiJiH:= 0 ;
LeiJiL:= 0.0 ;
END_IF;
END_FUNCTION_BLOCK
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!