什么是时序 您所在的位置:网站首页 排水检查井及雨水口技术规范要求 什么是时序

什么是时序

2024-06-07 16:03| 来源: 网络整理| 查看: 265

黄国强 2021/10/14

        PC端做设备控制软件,有一个核心概念叫做时序,这里分享一下我的认识。 先看代码。

// 时序函数1 void sequence1(int& step) { switch(step) { case 0: // do something step++; break; case 1: // do something step++; break; case 2: // do something step++; break; case 3: // do something step = 0; break; } // 时序函数2 void sequence2(int& step) { switch(step) { case 0: // do something step++; break; case 1: // do something step++; break; case 2: // do something step = 0; break; } main() { int step1 = 0; int step2 = 0; while(1) { sequence1(step1); sequence2(step2); } }

        一台设备可以认为是时序的集合。上面这段代码只是展示时序背后的原理,实际工作中可以有更好的写法,比如我一般喜欢用 std::function 和 lamda 表达式组合来写时序,这里不展开。这种方法虽然是单线程,但是达到了多线程同样的效果,大致有以下几个优点: * 动作精确的时间控制     实际工程中上面的 while 循环的每 1ms 触发一次,这样每个动作的控制精度可以达到1ms。* 单线程编程难度降低     由于是单线程,在时序内是不用考虑加锁的问题,程序的运行速度得到保证。* 保留了机器状态    由于随时保存了机器动作的状态,暂停和重启机器的编程变得很容易。 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有