找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
#VALVE_OUT:=#valve_out_temp;
IF #ALARM_RESET THEN
#ALARM_ALL_CLOSE := 0;
#ALARM_NO_CLOSE := 0;
#ALARM_NO_OPEN := 0;
END_IF;
IF #FC_FO_SELECT AND (NOT #ESTOP OR #M_A_SELECT) THEN
#M_RUN_INPUT :=0;
END_IF;
IF NOT #FC_FO_SELECT AND (NOT #ESTOP OR #M_A_SELECT) THEN
#M_RUN_INPUT := 1;
END_IF;
#valve_open_temp:= (#valve_out_temp AND #FC_FO_SELECT)OR(NOT #valve_out_temp AND NOT #FC_FO_SELECT);
//---------------------------------同事关反馈报警
IF NOT #VALVE_TEST AND #CLOSE_FB_INPUT AND #OPEN_FB_INPUT THEN
#ALARM_ALL_CLOSE := 1;
END_IF;
#timer_open_delay(IN := #valve_open_temp ,
PT := #timer_open_delay.PT);
IF NOT #VALVE_TEST AND #timer_open_delay.Q AND NOT #OPEN_FB_INPUT THEN
#ALARM_NO_OPEN := 1;
END_IF;
#timer_close_delay(IN := NOT #valve_open_temp,
PT := #timer_close_delay.PT);
IF NOT #VALVE_TEST AND #timer_close_delay.Q AND NOT #CLOSE_FB_INPUT THEN
#ALARM_NO_CLOSE := 1;
END_IF;
#alarm_on_temp := #ALARM_ALL_CLOSE OR #ALARM_NO_CLOSE OR #ALARM_NO_OPEN;
#alarm_out := #alarm_on_temp AND "Clock_1Hz";
#VALVE_OPEN_OK := ((#timer_open_delay.Q AND #VALVE_TEST) OR (#OPEN_FB_INPUT AND NOT #CLOSE_FB_INPUT AND NOT #VALVE_TEST))AND NOT #alarm_on_temp;
#VALVE_CLOSE_OK := ((#timer_close_delay.Q AND #VALVE_TEST) OR (NOT #OPEN_FB_INPUT AND #CLOSE_FB_INPUT AND NOT #VALVE_TEST))AND NOT #alarm_on_temp;
IF #VALVE_CLOSE_OK AND NOT #VALVE_OPEN_OK AND NOT #alarm_out THEN
#VALVE_STATE := 0;
END_IF;
IF NOT #VALVE_CLOSE_OK AND #VALVE_OPEN_OK AND NOT #alarm_out THEN
#VALVE_STATE := 1;
END_IF;
IF #alarm_out THEN
#VALVE_STATE := 2;
END_IF;
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
1、《 FB块和FC块》
http://www.ad.siemens.com.cn/productportal/prods/published/Prog/Prog_2.3/Prog_2.3.html
《FB ( Function Block / 功能块》
https://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/07-Program/02-basic/03-Block/04-FB.html
2、功能块大概就是设备的自动运行和手动运行选择,非正常情况下输出报警
当调用FB时,必须指定背景数据块的号码,该数据块将自动打开。
背景数据块可以保存静态变量,故静态充数量只能用于FB中,并在其变量声明表中定义。当FB退出时,静态变量仍然保持。
当FB被调用时,实际参数的值被存储在它的背景数据块中。如果在调用块时,没有实际参数分配给形式参数,则在程序执行中将采用上一次存储在背景数据块中的参数值。
每次调用FB时可以指定不同的实际参数。当块退出时,背景数据块中的数据仍然保持。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!