找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
{{itemCategory}}
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
1、数据定义、FC接口定义、以及FC中用SCL方式写的代码,在 OB1 中调用的方式,还有测试结果如图;
2、程序只对M区字节中1的个数进行了计算,可以在此基础上改成字中1的个数;
3、FC中使用的代码如下,在FC接口定义与代码中使用一致的情况下,代码可直接复制使用。
//M区字节中1的个数
#TRUE_COUNT := 0;
FOR #I := 0 TO 7 DO
#CURR_BIT := PEEK_BOOL(area := 16#83, dbNumber := 0, byteOffset := #B_OFFSET, bitOffset := #I);
IF #CURR_BIT THEN
#TRUE_COUNT := #TRUE_COUNT + 1;
END_IF;
END_FOR;
4、程序中使用了间接寻址,注意存储区代码,其中 16#83 表示M存储区。资料如下
http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/07-Program/03-instruction/03-Address/03-PEEK_POKE.html
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!