帮忙给个思路,多路定时工作相关的,不太好描述,请进...

2020-01-01 17:53发布

接了一个一顿饭价钱的活,档次就是不带星的饭店10个菜的那种,还不能算酒水
正题

上位机软件   开关80,通过串口控制下位机,下位机有595控制的80个继电器

软件功能       80个开关  一个总按钮  和一个输入延时的框  1-100S         
软件工作       按了几号按钮   对应下位机的继电器就吸合工作几秒,

刚如认为很简单,后来发现也挺难的,
就是  有交叉工作的地方,还有逻辑的地方

比如说软件设置延时5秒   (多路工作时,比如开关4和8打开,一按按钮就串口发送了,下位机4和8就继电器工作了)   
情况1        4号继电器工作了3S的时候,4号又来信号了,就在按5S算
情况2        4号继电器和8号继电器工作到3秒时   4路信号又来了   那这样4号就是5秒延时了,但8号在有2秒就释放了

这地方,想不能了,开始以为哪个工作,哪个延时就完事了。。。大家帮个忙,给个思路就好
谢谢大家,

         
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
jacky_yhy
1楼-- · 2020-01-03 13:27
80个变量的事情
klxx68
2楼-- · 2020-01-03 16:15
落叶随风 发表于 2016-7-26 08:47
大致一个思路:80个开关可以同时工作,就用80个变量去对应,上位机发送X按钮的工作时间Y秒,就去刷新相应的 ...

80个变量会不会太多,程序写起来冗杂
guo69
3楼-- · 2020-01-03 22:03
klxx68 发表于 2016-7-26 09:53
80个变量会不会太多,程序写起来冗杂

嫌多的话,定义一个数组,循环一下就可以了
styleno1
4楼-- · 2020-01-04 03:18
 精彩回答 2  元偷偷看……
mcu5i51
5楼-- · 2020-01-04 08:15
按最小时间定义时钟;
1.全部可以打开,定义对应的变量之后if( tim [n] ) { tim--;setsw(n); } else clrsw(n);就好;
2.设定同时工作的最大量,变量中加入序号的时间,根据时间操作对应的序号开关;
kentxiong
6楼-- · 2020-01-04 13:20
10楼的服务已很好了

一周热门 更多>