您现在所在的是:

PLC论坛

回帖:19个,阅读:850 [上一页] [1] [2] [下一页]
42312
YXBK 版主
文章数:19441
年度积分:2726
历史总积分:42312
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/1/31 20:01:28
#0楼
有一种染色助剂调配好后的有效期是72个钟,超过72小时需要提示报警做报废处理。

操作就是人工调配好后,在触摸屏上按下开始,然后PLC或者触摸屏自动计算。

考虑到放假时停电关机,所以用计时器累计行不通,只能用实时时钟做减法,这样就算中途停电也不影响。

大概思路时,工人调配好后,按一个键记录下当前的实际时钟,然后隔一段时间调出最新时间与前面的时间相减即可。

我想用威纶通触摸屏的宏指令做,上网搜了一下,没看到有专门的函数,只能自己写程序判断

这就麻烦了,要判断闰年(2月是28天还是29天)、月大(31天)、月小(30天)
[此贴子已经被作者于2023/2/3 14:01:35编辑过]
大家一起学习
85315
ZCMY 版主
文章数:47403
年度积分:1374
历史总积分:85315
注册时间:2004/3/16
发站内信
2018论坛贡献奖
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(三)
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
2014相约国庆
2013论坛优秀版主
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2023/1/31 21:26:23
#1楼
简单点外部加个定时器,时间到了给PLC一个信号;
26494
goldage
文章数:15081
年度积分:1996
历史总积分:26494
注册时间:2006/1/10
发站内信
2018论坛热心网友
发表于:2023/1/31 21:40:20
#2楼
买个超长时间的机械定时器,时间到接通报警
38045
知道一点
文章数:22547
年度积分:2464
历史总积分:38045
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2023/1/31 22:16:31
#3楼
你的问题有点问题
【考虑到放假时停电关机】~如果放假超过72个钟(是小时?)啥方法都难实现,除非有值班的~那就用一个用电池的独立定时器。

抛开放假停机可能产生的问题
可以这样~交给PLC来做
触摸屏启动按键开始记录,同时修正PLC时钟(PLC时钟误差太大)
PLC里就简单了~就怕所用PLC没有时钟或没有时钟运算指令
快乐 幸福 自由 比什么都重要
42312
YXBK 版主
文章数:19441
年度积分:2726
历史总积分:42312
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/2/1 7:32:31
#4楼
以下是引用知道一点2023/1/31 22:16:31的发言:
你的问题有点问题
【考虑到放假时停电关机】~如果放假超过72个钟(是小时?)啥方法都难实现,除非有值班的~那就用一个用电池的独立定时器。

抛开放假停机可能产生的问题
可以这样~交给PLC来做
触摸屏启动按键开始记录,同时修正PLC时钟(PLC时钟误差太大)
PLC里就简单了~就怕所用PLC没有时钟或没有时钟运算指令


就算放假时长超过72小时,那么来上班通电时也会马上报警提醒,工人报废处理不用就可以了。

我这个PLC是信捷XC3的,带有时钟功能,问题是也很麻烦,月大、月小这些也都要考虑。
大家一起学习
42312
YXBK 版主
文章数:19441
年度积分:2726
历史总积分:42312
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/2/1 7:38:38
#5楼
西门子官方论坛有一个是计算天数的

附件 微信截图_20230201073651.jpg
附件 微信截图_20230201073719.jpg


//计算两个年份之间的天数。只计算完整一年这部分。
//基本好像可以。。。。。
if year1+1>=year2 then    //没有完整的一年,不参与计算
else
for i=year1+1 to year2-1
 if i%4==0 then
  sum=sum+366    //闰年算366日
 else
  sum=sum+365    //平年算365日
 end if
next i
end if
//计算两个月份之间的天数
if (year1==year2)&(month1+1>=month2) then   //年相同,月之间没有完整月,就不需要计算什么。
else     //否则就出现后面两种情况……
if year1==year2 then   //这是第一种情况,年相等,直接计算。
 if year1%4==0 then   //闰年了
  mon[1]=29
 else
  mon[1]=28
 end if
 for i=month1 to month2-2 //从当前月的下一个月起,累加,到结束之前的一个月。
 sum=sum+mon[i]
 next i
else       //这是第二种情况,年不相等,分两段计算月。

 //1 2 3 4 5 6 7 8 9 10 11 12
 //1 2 3 4 5 6 7 8 9 10 11 12
 if month1<>12 then   //计算前段不足一年的月数的天数。
  if year1%4==0 then   //闰年了
   mon[1]=29
  else
   mon[1]=28
  end if
  for i=month1 to 11
   sum=sum+mon[i]
  next i
 end if
 if month2<>1 then   //计算后段不足一年的月数的天数。
  if year2%4==0 then   //闰年了
   mon[1]=29
  else
   mon[1]=28
  end if
  for i=0 to month2-2
   sum=sum+mon[i]
  next i
 end if
end if
end if
//计算两个日期之间的天数
if (year1==year2)&(month1==month2) then
sum=day2-day1
else
if year1%4==0 then
 mon[1]=29
else
 mon[1]=28
end if
i=month1-1
sum=mon[i]-day1+day2+sum
end if
你不需要看代码,只需要看文字解释就可以大概地了解这个计算日子的过程。就要这么多的过程。
大家一起学习
9088
711022027
文章数:812
年度积分:598
历史总积分:9088
注册时间:2006/8/4
发站内信
发表于:2023/2/1 7:42:23
#6楼
可以用分钟来计数,比如按下按钮时读取当时是38分,再通过比较指令到下个38分计数一次就是小时数,比较这个数值输出报警。

可以单独搞一套设备,过年或者放假不停电,再说也用不了多少电费,相对于质量来说这都不算事。
[此贴子已经被作者于2023/2/1 7:46:47编辑过]
5328
2233296153
文章数:660
年度积分:794
历史总积分:5328
注册时间:2019/5/9
发站内信
发表于:2023/2/1 8:09:30
#7楼
我建议是把时间转化为时间戳,然后比较两个时间戳之间的差值就行
19249
pqsh 版主
文章数:7422
年度积分:1079
历史总积分:19249
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2023/2/1 8:55:47
#8楼
停电保持计时器(寄存器)不行?
你说的实时时钟,大概也是要精度要求(比如1分钟),而大部分的实时时钟做减法,在plc和触屏里,没有万年历,是不行的.这个在pc里,是完全没问题的.
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
50
13148755878
文章数:9
年度积分:50
历史总积分:50
注册时间:2022/11/3
发站内信
发表于:2023/2/1 9:32:42
#9楼
其实这个思路很简单就可以搞定,停电的时候记录好时间保存,再上电的时候,用当前时间和停电时间作比较,超过72小时,物料报废

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005