您现在所在的是:

PLC论坛

回帖:19个,阅读:852 [上一页] [1] [2] [下一页]
42328
YXBK 版主
文章数:19445
年度积分:2742
历史总积分:42328
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/2/1 10:01:35
#10楼
以下是引用pqsh2023/2/1 8:55:47的发言:
停电保持计时器(寄存器)不行?
你说的实时时钟,大概也是要精度要求(比如1分钟),而大部分的实时时钟做减法,在plc和触屏里,没有万年历,是不行的.这个在pc里,是完全没问题的.

停电保持只是保持住,但在停电期间不会继续计时。

我只要求到小时

比如1月30日8点开始,那么2月2日早上8点到期.

如果是4月30日8点开始,那么就是5月3日早上8点到期.(因为4月小只有30天)

还有2月有28天的也有29天的,条件有点多,所以判断起来比较麻烦

如果有专用函数就好办,否则也就只能这样了
大家一起学习
42328
YXBK 版主
文章数:19445
年度积分:2742
历史总积分:42328
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/2/1 10:05:41
#11楼
以下是引用ZCMY2023/1/31 21:26:23的发言:
简单点外部加个定时器,时间到了给PLC一个信号;

一共有12种料,安装起来有点麻烦,PLC与触摸屏之前就有的,现在只是在原来基础上加这么一个功能,如果只动程序能搞定最好。
大家一起学习
42328
YXBK 版主
文章数:19445
年度积分:2742
历史总积分:42328
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/2/1 10:07:48
#12楼
以下是引用131487558782023/2/1 9:32:42的发言:
其实这个思路很简单就可以搞定,停电的时候记录好时间保存,再上电的时候,用当前时间和停电时间作比较,超过72小时,物料报废

思路确实简单明了,只是计算起来条件有点多,每个月的天数不一样。
大家一起学习
19260
pqsh 版主
文章数:7424
年度积分:1090
历史总积分:19260
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2023/2/1 10:36:57
#13楼
以下是引用YXBK2023/2/1 10:01:35的发言:
以下是引用pqsh2023/2/1 8:55:47的发言:
停电保持计时器(寄存器)不行?
你说的实时时钟,大概也是要精度要求(比如1分钟),而大部分的实时时钟做减法,在plc和触屏里,没有万年历,是不行的.这个在pc里,是完全没问题的.

停电保持只是保持住,但在停电期间不会继续计时。

我只要求到小时

比如1月30日8点开始,那么2月2日早上8点到期.

如果是4月30日8点开始,那么就是5月3日早上8点到期.(因为4月小只有30天)

还有2月有28天的也有29天的,条件有点多,所以判断起来比较麻烦

如果有专用函数就好办,否则也就只能这样了
哦,你要的是断电还计时.时钟的话,没有万年历,只能自己把近几年几十年的日历算法都写进去了.
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
38060
知道一点
文章数:22553
年度积分:2479
历史总积分:38060
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2023/2/1 11:22:20
#14楼
以下是引用YXBK2023/2/1 7:32:31的发言:
以下是引用知道一点2023/1/31 22:16:31的发言:
你的问题有点问题
【考虑到放假时停电关机】~如果放假超过72个钟(是小时?)啥方法都难实现,除非有值班的~那就用一个用电池的独立定时器。

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


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

我这个PLC是信捷XC3的,带有时钟功能,问题是也很麻烦,月大、月小这些也都要考虑。

信捷的没有实际使用过
你可以做个实验,编个小程序,~很简单
附件 image.jpg

附件 image.jpg
先将PLC时钟改为20年2月28日,再给D171赋值72(小时),查看D160,D161,D162
如果对应数据变为20年3月2日,说明所用PLC具有"万年历"功能
快乐 幸福 自由 比什么都重要
38060
知道一点
文章数:22553
年度积分:2479
历史总积分:38060
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2023/2/1 13:32:20
#15楼
以下是引用YXBK2023/2/1 10:07:48的发言:
以下是引用131487558782023/2/1 9:32:42的发言:
其实这个思路很简单就可以搞定,停电的时候记录好时间保存,再上电的时候,用当前时间和停电时间作比较,超过72小时,物料报废

思路确实简单明了,只是计算起来条件有点多,每个月的天数不一样。
这个思路能实现?
1.停电时间怎么统计?
2.【停电的时候记录好时间保存】怎么保存?如何知道几点几分停的电

就判断大小月,闰年不是很难~时间跨度不是很大,才72h嘛,关键是PLC(屏)的时钟能不能自我纠正
如果似机械手表那样,基本两月调一次就麻烦了
快乐 幸福 自由 比什么都重要
42328
YXBK 版主
文章数:19445
年度积分:2742
历史总积分:42328
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/2/1 14:22:18
#16楼
以下是引用知道一点2023/2/1 13:32:20的发言:
以下是引用YXBK2023/2/1 10:07:48的发言:
以下是引用131487558782023/2/1 9:32:42的发言:
其实这个思路很简单就可以搞定,停电的时候记录好时间保存,再上电的时候,用当前时间和停电时间作比较,超过72小时,物料报废

思路确实简单明了,只是计算起来条件有点多,每个月的天数不一样。
这个思路能实现?
1.停电时间怎么统计?
2.【停电的时候记录好时间保存】怎么保存?如何知道几点几分停的电

就判断大小月,闰年不是很难~时间跨度不是很大,才72h嘛,关键是PLC(屏)的时钟能不能自我纠正
如果似机械手表那样,基本两月调一次就麻烦了


停电时间是不需要统计也不需要保存,其实就是个减法计算,把起始时间记录下来,比如2月1日8点配的料,这个时间在按键时已经保存了,后面隔一定时间就拿当前的实时时间减去这个保存时间好了,比如现在是2月1日14点,那就是用了6个小时了,当超过72小时时就报警。中途停电无所谓,假设4号5号(周六周日)都休息了,6号早上上班通电,就是2月6日8点,相减下来就是5天,120个小时了。

虽然时间跨度不大,但条件还是有那么多的,都得考虑进去才行。
大家一起学习
38060
知道一点
文章数:22553
年度积分:2479
历史总积分:38060
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2023/2/1 16:01:53
#17楼
刚才看了一下信捷软件
有DACMP~日期比较,TADD~时钟数据加,TCMP~时钟比较,TRD~读时钟
因为没有模拟的办法
所以你可以试试TADD,或许信捷的PLC没那么笨
快乐 幸福 自由 比什么都重要
42328
YXBK 版主
文章数:19445
年度积分:2742
历史总积分:42328
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/2/3 13:59:39
#18楼
以下是引用知道一点2023/2/1 16:01:53的发言:
刚才看了一下信捷软件
有DACMP~日期比较,TADD~时钟数据加,TCMP~时钟比较,TRD~读时钟
因为没有模拟的办法
所以你可以试试TADD,或许信捷的PLC没那么笨

TADD只有XD系列才有,我这个是XC3
大家一起学习
42328
YXBK 版主
文章数:19445
年度积分:2742
历史总积分:42328
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2023/2/3 14:05:03
#19楼
想到一个折中的办法,由于是72个钟,用星期就可以了,一般中途放假不会超过7天,春节放假期间是要先处理调好料的。

本人英语不行,定义名字就用拼音缩写了。

附件 微信截图_20230203135821.jpg


short SSSJ,SSXQ,N
short JLSJ[12],JLXQ[12],XSYS[12],XQJG[12]
bool BJ[12]

GetData(SSSJ, "Local HMI", LW, 9019, 1)
GetData(SSXQ, "Local HMI", LW, 9023, 1)
GetData(JLSJ[0], "Local HMI", RW, 10, 12)
GetData(JLXQ[0], "Local HMI", RW, 50, 12)

for N=0 to 11

XQJG[N]=SSXQ-JLXQ[N]

if XQJG[N]<0 then
XQJG[N]=XQJG[N]+7
else
XQJG[N]=XQJG[N]
end if

XSYS[N]=XQJG[N]*24+(SSSJ-JLSJ[N])

if XSYS[N]>=72 then
BJ[N]=1
else
BJ[N]=0
end if
next

SetData(XSYS[0], "Local HMI", RW, 80, 12)
SetData(XQJG[0], "Local HMI", RW, 100, 12)
SetData(BJ[0], "XINJE XC Series", M, 0, 12)
[此贴子已经被作者于2023/2/3 14:06:05编辑过]
大家一起学习

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

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

78.0005