找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
VAR
IOStatus { ExternalVisible := 'False'; ExternalWritable := 'False'} : ARRAY[0..7, 0..7] OF BOOL;
END_VAR
VAR_TEMP
i : Int;
j : Int;
retVal : Int;
END_VAR
BEGIN
//将IO信号转入HMI专用DB块,实现HMI状态画面IO显示功能
//根据当前画面号切换需要显示的数据
"HMIData".ScreenNoCurrent := WORD_TO_INT("HMIData".PointerOf_HMI_Number[1]);
//画面改变后显示清零
IF "HMIData".ScreenNoCurrent <> "HMIData".ScreenNoPrevious THEN
FOR i := 0 TO 7 DO
FOR j := 0 TO 7 DO
"HMIData".IOStatus[i, j] := FALSE;
END_FOR;
END_FOR;
"HMIData".ScreenNoPrevious := "HMIData".ScreenNoCurrent;
END_IF;
//普通输入
CASE "HMIData".ScreenNoCurrent OF
1300:
retVal := BLKMOV(SRCBLK := "IO".In.Mop, DSTBLK => "HMIData".IOStatus);
1301: //RCB1
retVal := BLKMOV(SRCBLK := "IO".In.RCB, DSTBLK => "HMIData".IOStatus);
1302:
retVal := BLKMOV(SRCBLK := "IO".In.RCB, DSTBLK => IOStatus);
"HMIData".IOStatus[0] := IOStatus[2];
"HMIData".IOStatus[1] := IOStatus[3];
ELSE
;
END_CASE;
//普通输出
CASE "HMIData".ScreenNoCurrent OF
1400:
retVal := BLKMOV(SRCBLK := "IO".Out.Mop, DSTBLK => "HMIData".IOStatus);
ELSE
;
END_CASE;
END_FUNCTION_BLOCK
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
如何使用 AT 函数在 S7-SCL 中构造一个 ANY 指针?
https://support.industry.siemens.com/cs/cn/zh/view/21946854
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!