1. 提问
有什么方法能够让两个函数或者程序同时执行吗?
一个函数或者程序执行完成另外一个函数或者程序才能执行,要想实现这种操作就需要使用多任务。多任务的最大好处是充分利用CPU资源,提高程序的执行效率。
2. 多任务的概念
多任务是指在同一时间内执行多个任务,例如: 现在电脑安装的操作系统都是多任务操作系统,可以同时运行着多个软件。
3.进程的概念
一个正在运行的程序或者软件就是一个进程,它是操作系统进行资源分配的基本单位,也就是说每启动一个进程,操作系统都会给其分配一定的运行资源(内存资源)保证进程的运行。
比如:现实生活中的公司可以理解成是一个进程,公司提供办公资源(电脑、办公桌椅等),真正干活的是员工,员工可以理解成线程。
注意:
一个程序运行后至少有一个进程,一个进程默认有一个线程,进程里面可以创建多个线程,线程是依附在进程里面的,没有进程就没有线程。
4.线程的概念
线程是进程中执行代码的一个分支,每个执行分支(线程)要想工作执行代码需要cpu进行调度 ,也就是说线程是cpu调度的基本单位,每个进程至少都有一个线程,而这个线程就是我们通常说的主线程。
5.ABB中的多任务
从手册中了解到,首先要有623-1Multitask选项,同一时间最多运行20项任务。每项任务都由一段程序(含若干程序模块)和若干个系统模块组成。这些模块是各项任务中的本地模块。
变量和常量都是各项任务中的本地量,但持续变量(就是可变量PERS)并不是本地量。
每项任务都有自身的软中断处理事项,且只有其自身的任务系统状态才能触发事件例程。
用WaitSyncTask实现同步 当各任务程序取决于彼此时,同步就会发挥作用。除非所有任务程序都抵达了各自程序代码中的同步点,否则这些任务程序都不会继续执行到其程序代码的同步点以外。
指令WaitSyncTask等待异步任务,它的作用是同步各任务程序。除非所有任务程序都抵达了同一WaitSyncTask指令处,否则这些任务程序都不会继续执行。
从手册了解到,ABB机器人中的多任务,是用多线程来实现多任务的,这跟硬件单核CPU有关。
多线程特点:
1、多线程共享全局变量,
2、线程之间执行是无序的。
6.多任务配置
重启后,会有两个任务界面,画面如下图:
7.小测试
多任务一般实际应用,会跟视觉通讯用得较多,把需要接收和处理的数据放到后台任务中,前台只需要运行纠正好的点位即可。
程序不做详细讲解,前面案例中有讲解。
后台任务:
前台任务: