您现在所在的是:

人机界面

回帖:13个,阅读:1608 [上一页] [1] [2] [下一页]
15623
step1
文章数:7314
年度积分:35
历史总积分:15623
注册时间:2008/4/10
发站内信
2017国庆活动(三)
2016国庆活动(三)
2013辞旧迎新
发表于:2022/9/12 16:48:58
#0楼
macro_command main()
bool b=false
short nSecondS = 0,nSecond = 0
GetData(b, "Local HMI", LB, 0, 1)
if b==false then
return
end if
GetData(nSecondS, "Local HMI", RW, 10, 1)
nSecondS = nSecondS+1

SetData(nSecondS, "Local HMI", RW, 10, 1)

SetData(nSeconds, "Local HMI", LW, 10, 1)
end macro_command
[此贴子已经被作者于2022/9/12 16:57:54编辑过]
不积硅步,无以至千里;不积小流,无以成江河;九层之台,始于垒土。   好好学习,天天向
上。
15623
step1
文章数:7314
年度积分:35
历史总积分:15623
注册时间:2008/4/10
发站内信
2017国庆活动(三)
2016国庆活动(三)
2013辞旧迎新
发表于:2022/9/12 16:49:45
#1楼
第一次扫描清零,后面还是计时
不积硅步,无以至千里;不积小流,无以成江河;九层之台,始于垒土。   好好学习,天天向
上。
42312
YXBK 版主
文章数:19441
年度积分:2726
历史总积分:42312
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2022/9/12 18:58:49
#2楼
如果你要从0开始的话,就把nSecondS =0改成nSecondS =-1

macro_command main()
bool b,c
short nSecondS
GetData(b, "Local HMI", LB, 0, 1)

if b==1 and c==0 then

nSecondS =0

end if
c=b

if b==1 then
 nSecondS = nSecondS+1
end if

SetData(nSecondS, "Local HMI", LW, 10, 1)

end macro_command
大家一起学习
15623
step1
文章数:7314
年度积分:35
历史总积分:15623
注册时间:2008/4/10
发站内信
2017国庆活动(三)
2016国庆活动(三)
2013辞旧迎新
发表于:2022/9/13 9:00:59
#3楼
回复 #2楼 YXBK
你这个测试结果是到1就不动了,,我自己搞了一个清零的程序块,只在b=1首次调用,计时程序周期循环,也能实现,但是我需要对计时个“b为1时”计时,希望能做到一个程序块简单些,周期循环的程序有没有只执行一次的指令?这个计时程序必须选择1秒周期循环,加入清零指令,就周期清零了,这是个矛盾

是b为1上升沿置零,不是为0时置0,因为那个计时还要保留一下
[此贴子已经被作者于2022/9/13 9:04:17编辑过]
不积硅步,无以至千里;不积小流,无以成江河;九层之台,始于垒土。   好好学习,天天向
上。
42312
YXBK 版主
文章数:19441
年度积分:2726
历史总积分:42312
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2022/9/13 9:28:01
#4楼
我的理解是,就在上升沿时清零一下。





附件 微信截图_20220913090934.jpg



附件 微信截图_20220913091006.jpg
大家一起学习
15623
step1
文章数:7314
年度积分:35
历史总积分:15623
注册时间:2008/4/10
发站内信
2017国庆活动(三)
2016国庆活动(三)
2013辞旧迎新
发表于:2022/9/13 12:20:58
#5楼
回复 #4楼 YXBK
奇怪了,我反复核对反复测试,还是不行
不积硅步,无以至千里;不积小流,无以成江河;九层之台,始于垒土。   好好学习,天天向
上。
42312
YXBK 版主
文章数:19441
年度积分:2726
历史总积分:42312
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2022/9/13 12:32:24
#6楼
回复 #5楼 step1
把你的程序截图上来看看
大家一起学习
15623
step1
文章数:7314
年度积分:35
历史总积分:15623
注册时间:2008/4/10
发站内信
2017国庆活动(三)
2016国庆活动(三)
2013辞旧迎新
发表于:2022/9/13 12:39:48
#7楼
回复 #4楼 YXBK
第一个数值不动,第二个关了就为0, 我现在想要一个信号启动,一个信号停止,信号不保持,只保持几秒钟
附件 1.jpg

附件 2.jpg
[此贴子已经被作者于2022/9/13 13:34:53编辑过]
不积硅步,无以至千里;不积小流,无以成江河;九层之台,始于垒土。   好好学习,天天向
上。
42312
YXBK 版主
文章数:19441
年度积分:2726
历史总积分:42312
注册时间:2007/4/14
发站内信
2015论坛优秀版主
2015春节活动
2013论坛优秀版主
2012论坛优秀版主
发表于:2022/9/13 16:30:39
#8楼
LB0 LB1 改成复归型



附件 1111111.jpg

附件 22222222222.jpg
大家一起学习
15623
step1
文章数:7314
年度积分:35
历史总积分:15623
注册时间:2008/4/10
发站内信
2017国庆活动(三)
2016国庆活动(三)
2013辞旧迎新
发表于:2022/9/14 9:07:07
#9楼
回复 #8楼 YXBK
怪事,我照你的程序测试,就是不行,d不能保持为1, LW10为0不变,,,我昨天就试过反复修改测试发现,d要写入一个屏的寄存器地址才能保持,S要读取LW10才会累加,难道是屏的型号不同?  我感觉屏在反复扫描的时候,不管上次的结果重复初始化了,只有寄存器的地址才能保存前次程序的结果
[此贴子已经被作者于2022/9/14 9:11:36编辑过]
不积硅步,无以至千里;不积小流,无以成江河;九层之台,始于垒土。   好好学习,天天向
上。

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

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

62.4004