求助:s7-300日期比较及时间控制问题,急! 点击:880 | 回复:8



dennisdo

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 74回
  • 年度积分:191
  • 历史总积分:1602
  • 注册:2009年6月10日
发表于:2010-07-18 18:26:49
楼主

我想做一个程序到期自动停止运行的程序,也就是说用当前年月日比较设置的到期年月日,如果当前时间等于或大于设置的到期年月日时,停止运行程序。这个程序怎么编,最好能写的详细一点,DATE_AND_TIME类型是怎么比较的???




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2010-07-18 19:16:24
1楼
DT类型也就是8个字节,分别为年,月,日,时,分,秒,星期,读取字节比较,或者直接DT比较。

使用符号变量,符号名你自己定义,数据类型DT类型就可以了。

不过这其中有个缺陷,因为这种方式下,如果别人重置PLC时间,你那种方式几乎形同虚设,到时或许一分钱都收不回来,请三思,因为这种方式实在太低级了。

Regards

dennisdo

  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 74回
  • 年度积分:191
  • 历史总积分:1602
  • 注册:2009年6月10日
发表于:2010-07-19 11:10:47
2楼

像您说的直接DT比较,是用什么函数比较呢,给我写一下详细的程序吧,谢谢了。比如整数比较是用cmp>=I

符号变量的定义找不到DT类型啊,您是怎么实现的

 

dennisdo

  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 74回
  • 年度积分:191
  • 历史总积分:1602
  • 注册:2009年6月10日
发表于:2010-07-19 11:11:53
3楼

您有更好的方法实现日期的比较吗? 我看了有人是通过FC9实现,我不是太懂,他们也没有具体程序

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2010-07-19 11:30:36
4楼
FC9 EQ_DT 比较DT是否相等 FC28 NE_DT 比较DT是否不相等 FC14 GT_DT 比较DT是否大于 FC12 GE_DT 比较DT是否大于等于 FC23 LT_DT 比较DT是否小于 FC18 LE_DT 比较DT是否小于等于。 Regards

笨笨猫

  • 精华:1帖
  • 求助:3帖
  • 帖子:70帖 | 1517回
  • 年度积分:0
  • 历史总积分:2257
  • 注册:2008年6月15日
发表于:2010-07-25 11:22:19
5楼

4楼正解!不错。

 

dennisdo

  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 74回
  • 年度积分:191
  • 历史总积分:1602
  • 注册:2009年6月10日
发表于:2010-07-29 15:45:03
6楼

哦,就是通过FC9这些功能块吧,谢谢了,他们是怎么用呢?

 

脚跟着地

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 32回
  • 年度积分:0
  • 历史总积分:127
  • 注册:2005年6月13日
发表于:2010-07-29 16:20:23
7楼
比较时间确实是存在PLC重置无效问题。但是前提是他知道了你设置了时间限制,其实你可以用一个3600秒的定时器来触发一个计数器。可以做很长时间的。在把PLC设置密码,就没问题了。

dennisdo

  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 74回
  • 年度积分:191
  • 历史总积分:1602
  • 注册:2009年6月10日
发表于:2010-07-30 14:42:59
8楼
回复内容:
对:脚跟着地 关于比较时间确实是存在PLC重置无效问题。但是前提是他知道了你设置了时间限制,其实你可以用一个3600秒的定时器来触发一个计数器。可以做很长时间的。在把PLC设置密码,就没问题了。 内容的回复:


有没有具体例子,给我发一份,谢了, 我的邮箱 ya_ning311@sina.com

热门招聘
相关主题

官方公众号

智造工程师