找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
NO.1
用SFC0设置时间,SFC1读出时间进行比较。方法如下:
1、建立一共享数据块,比如DB1,SYMBOLS设为AA(DB1和AA可以任意设定,在此只是举例)
2、打开数据块DB1,进行变量声明:(第1个字由系统占用,我们从第2个字开始)在NAME栏中声明名称为DW2,TYPE栏中声明变量类型为“DATE_AND_TIME”,初始值自动生成。同样在声明DW10。每个变量占用8个字节,分别代表年、月、日、时、分、秒、星期。
3、在OB1里调用DB1
4、设定时间:调用SFC0,在PDT端输入“AA”.DW2,在RET_VAL端输入一个字,比如MW100
5、读出时间:调用SFC1,在CDT端输入“AA”.DW10,在RET_VAL端输入一个字,比如MW102
6、在DB1中,自DB1.DBW2到DB1.DBW9存放须设定的年、月、日、时、分、秒、星期的值;自DB1.DBW10到DB1.DBW17存放实际的年、月、日、时、分、秒、星期的值;
7、比较DB1.DBW10到DB1.DBW17的值和你需要的值,进行你的比较操作。
说明:STEP7中有这方面的介绍,大致是在OB1里面进行变量声明,进行时间的设定和取出,由于取出的值不能直接应用,再通过FC6、7、8等转换出来,我觉得很麻烦,因此应用如上方法实现。
NO.2
取出当前日期存入MB1,同时置位M0.1,启动M1
M0.1的上升沿(必须用边沿触发)将MB1送入MB2
一直比较MB1和MB2,如相等,M1继续运行;
如不相等,加上M0.1置位M0.2,同时复位M0.1,启动M2
同理,在M0.2接通时,如果数据不等,置位M0.3,同时复位M0.2启动M3
同理,在M0.3接通时,如果数据不等,置位M0.1,同时复位M0.3启动M1
注意:MB1送入MB2的条件必须使用边沿,否则MB1和Mb2总是相等,无法比较
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城