找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
{{itemCategory}}
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
1、
最后一张图中,I_BCD 转换的结果是 16 位的BCD码,有效值是在低位字节中,西门子是低位高存,所以中间那张图比*VD30、*VD34 取的都是I_BCD 转换的结果BCD码的高位,这就不对了。
可以再引入两个指针,比如 VD38、VD42,其中 VD38=VD30+1,VD42=VD34+1,这样*VD38、*VD42就都指向了有效字节。
再用字节比较指令进行时比较,则比较 VB23 *VD38 的关系
再用字节比较指令进行分比较,则比较 VB24 *VD42 的关系
2、
其实西门子提供了一个 Clock_integer 库指令,其功能:由于S7-200时钟指令的数据格式是BCD码,使用该库指令可以直接读取S7-200 CPU时钟并以整数格式输出所读取的值。
用这个指令则不用这么麻烦进行转换了。
下面链接《2.2 Clock_integer》
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/software/library/library_links/Library_links.html
Clock_Integer 指令库及其使用
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/software/library/Clock_Integer/Clock_Integer.html
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!