跳转至

学习路线

不需要先理解编译器怎样分析图。先跑通一个程序,再一层一层加入节律、设备、分支和通信。每篇教程都是一个可以直接复制运行的完整程序,用模拟设备代替真实机器人。

顺序 教程 读完能回答
1 安装与第一个程序 头段、图、尾段各放什么?对象状态为什么能保留?
2 节律的四个边界 一次 drive 和一个周期有什么区别?Input、Yield、Feed、Output 各在哪里?
3 借用设备 机械臂怎样借给节点?两个使用者怎样排序?失败时设备在哪里?
4 分支、条件与重试 match、守卫和图内 if 各用于什么检查?只重试一个步骤怎么写?
5 多层节律 任务层和控制层怎样嵌套?哪些对象跨段保留,哪些每段新建?
6 失败、停止与收尾 一段失败怎样不影响下一段?外部怎样停止一个永不结束的循环?
7 多设备与旁路 两台设备各按自己的节拍运行时,怎样交换信息?
8 事件与信号 操作员或其他线程发来的指令怎样驱动任务?
9 hard 节律 几十毫秒的规划怎样不拖住 2 ms 的控制环?

写每一层节律之前

先写出这一层的四个值:整次运行收到什么(Input)、结束时交出什么(Output)、每个周期给图什么(Yield)、图每个周期交回什么(Feed)。再标出哪些对象在本层创建、哪些从外层借来。这些说不清楚时,继续加嵌套只会让程序更难读。

验证的习惯

用有限的节律(迭代器、计数)和固定输入,在调用方断言结果、调用次数和保留的状态;不要把断言写进节点里。无设备的版本通过之后,再换成真实驱动。

之后读什么