工业机器人多任务程序静态数据竞争检测与控制流分布式事务内存有序调度
1. 工业机器人多任务程序静态数据竞争检测
在工业机器人的多任务程序中,数据竞争是一个常见且需要解决的问题。数据竞争可能导致程序执行结果的不一致性,影响机器人的正常运行。
1.1 规则分析
规则 C5 是检测数据竞争的重要规则之一。假设 s1 和 s2 满足条件 C5,若在程序执行 R 中,s2 发生在 s1 之间,设 s1 由任务 t1 执行,s2 由任务 t2 执行。s2 能在 s1 之间发生的唯一情况是,在任务 t1 执行 s1 后有一个 SetDO 指令设置了一个持久数字信号,而在任务 t2 执行 s1 前有一个 WaitDO 指令,且该 WaitDO 指令等待的同一持久数字信号的值与 t1 设置的值不同。但条件 C5 要求 t1 执行 s1 后有 SetDO 指令设置持久数字信号,t2 执行 s2 前有 WaitDO 指令等待同一持久数字信号且值相同,所以这种情况不会发生,保证了规则的合理性。
规则 C1 和 C2 涉及检查所有任务中相同 Wait 指令的出现情况,可应用于任何多任务或多移动的 Rapid 程序,无论任务间是否有优先级。而其余规则仅适用于两个任务的程序,因为 t2 中的 s2 完全依赖于 t1 中的 s1。
1.2 实现步骤
静态数据竞争检测框架的实现步骤如下:
1. 输入程序 :输入一个语法正确的多任务 Rapid 程序。
2. 解析程序 :对输入的程序进行解析,提取所有持久变量、访问这些变量的语句、访问类型(读/写)、同步
超级会员免费看
订阅专栏 解锁全文
981

被折叠的 条评论
为什么被折叠?



