1.分配程序到相应的执行等级
用户的程序必须分配到执行等级和任务中才能执行。可以分配用MCC、ST或者LAD/FBD编写的程序到一个或多个任务中,也可在一个任务中分配多个程序。分配的程序按照列表中的顺序依次执行,此顺序可以在SCOUT软件中指定。后面的程序必须在前面的程序结束后才能执行。可以将一个程序分配到几个任务中,此时它们在不同任务中独立运行。
分配一个程序到执行系统中,也就定义了该程序的执行优先级、执行模式(是顺序执行还是循环执行)以及程序变量的初始化。分配一个程序到一个或多个任务时应注意以下事项:
1)被分配的程序必须被编译过且没有错误;
2)在下载程序之前进行分配;
3)当一个程序在执行时,有可能被另外一个任务调用。这时系统不能保证数据的一致性;
4)当分配了一个程序到任务后,即使重新编译程序也会保持分配状态。
在SCOUT项目浏览界面中选择“EXECUTION SYSTEM”打开任务配置界面,如图10-4所示。
图10-4 执行系统任务配置界面
在任务配置的左侧可以看到执行等级树,在每个执行等级下有分配的任务和程序的列表。为任务分配程序的步骤如下:
1)选择要分配程序的任务;
2)选择“Program assignment”选项卡,在左侧的窗口会列出所有可分配的程序;
3)在左侧的窗口选择要分配的程序;
4)单击按钮,选定的程序出现在右边的窗口中;
5)在右侧窗口中选中相应的任务,按上下按钮可以调整程序的运行顺序;
6)还可以在“Task configuration”标签中进行更多的设置,例如,程序出错的处理方式、周期任务的看门狗时间、MotionTasks的启动模式等。
全部设置完成后,可以在线项目后下载到目标系统中。
2.设置系统循环时钟
在SIMOTION硬件配置中,如某个通信接口被设置成了等时同步DP/PN模式,则时钟周期的设置被用做总线时钟周期。DP/PN的通信、伺服以及插补周期均与总线时钟周期同步。如果想要等时同步地访问IO变量,必须进行此设置。支持等时同步的驱动设备有:SIMODRIVE 611U,MASTERDRIVES MC,SINAMICS。SIMOTION也可以连接不支持等时同步模式的驱动,例如MICROMASTER MM4和MASTERDRIVES VC。如果未设置等时同步模式,也可以设置基本的系统时钟,伺服和插补周期与基本的时钟同步。
(1)系统时钟周期
一旦选择了时钟周期的源,就可以定义各个同步的周期时间,它们是基本时钟周期的倍数。SIMOTION中有下述时钟周期:
1)Bus data cycle:总线时钟周期。
2)Servo cycle clock:输入输出在此周期内被刷新,包括轴的位置控制以及集中式IO或分布式IO的处理。伺服时钟周期可以设置为总线时钟周期的整数倍。
3)Interpolator cycle clock(IPO cycle clock):轴运动是在IPO时钟周期内被计算。IPO-SynchronousTask也是在此周期内执行。IPO周期与伺服周期的比率可以设置成1∶1到1∶6。
4)Interpolator cycle clock2(IPO_2 cycle clock)/T3(DCC)cycle clock:IPO_2时钟周期可以运行低优先级的轴。此外,IPOSynchronousTask_2和PWM Task(TControl)也在此周期内执行,IPO_2与IPO时钟周期的比率可以设置成1∶2到1∶64。
(2)系统时钟周期的设置
系统时钟周期的设置步骤如下:
1)通过菜单“Target system”→“Expert”→“Set system cycle clocks…”,或者用鼠标右键单击“EXECUTION SYSTEM”选择“Expert”→“Set system cycle clocks”打开设置页面,如图10-5所示。
图10-5 系统时钟周期的设置
2)如果没有设置等时同步模式,则可以指定基本的总线时间。
3)设置各个时钟之间的比例关系。
4)如果使用了T Control则需对T Control系统任务以及时钟周期进行设置,如图10-6所示。
(3)给TO(工艺对象)分配系统时钟周期
可以分配TO的计算周期来改变TO的优先级、优化系统的性能。一般情况下,可以分配低优先级的工艺对象到IPO2,例如外部编码器。也可以分配快速输出或快速测量输入到IPO或Servo时钟周期,可以设置的时钟周期见表10-1。(www.xing528.com)
图10-6 系统时钟设置
表10-1 工艺对象可以分配的系统时钟周期
(4)任务运行时间
可以用任务运行时间来检查系统的性能是否可以满足要求。在设备的变量Taskruntime和effectiveTaskruntime中可以查看任务的运行时间。Taskruntime是指任务运行的时间(不包括中断的时间),effectiveTaskruntime显示实际执行等级的执行时间,也就是从执行等级开始到最后的任务结束所需的时间,如图10-7所示。
图10-7 任务的运行时间(IPO2:IPO1=2:)
Servo—伺服循环周期IS1_IPOSynchronousTask IS2—IPOSynchronousTask_2 IPO1—IPOTask IPO2_IPOTask2
系统运行时可能会发生超时或溢出。也可以用SCOUT的诊断功能来监控程序的运行。
3.自由执行任务的时间分配
除了高优先级的用户和系统任务外剩余的时间是留给MotionTask和BackgroundTask的,在自由执行任务级别自由地顺序执行这些任务。由于是循环执行,因此执行时起始顺序是不确定的。在此循环中一个任务可以在指定的时间内连续执行,然后转到下一个任务,如果任务执行结束就会直接转到下一个任务,如图10-8所示。可以通过设置来决定MotionTask和BackgroundTask在自由执行任务级别中执行时间的分配。
图10-8 自由时间分配
自由执行任务等级的时间分配步骤如下:
1)在任务分配窗口中选择“MotionTask”或“BackgroundTask”,选择任务配置标签。
2)单击时间分配按钮Time allocation,如图10-9所示。
图10-9 设置时间分配
3)在打开的窗口中用滑动条设置BackgroundTask的时间分配,单击“OK”按钮确定,如图10-10所示。
图10-10 时间分配滑动设置
下面通过两个例子来说明自由执行等级时间的设置。
【例1】如果设置BackgroundTask的运行时间为1个伺服周期,如图10-11所示。在此设置下,BackgroundTask执行一个伺服周期,然后运行所有的MotionTask,但每个Motion-Task最多运行两个伺服周期。然后BackgroundTask再执行一个伺服周期。
在有两个MotionTask的情况下,自由执行等级的执行情况见表10-2。
图10-11 为BackgroundTask分配时间片
表10-2 自由执行等级的执行情况
【例2】如果设置BackgroundTask的运行时间为20个伺服周期如图10-12所示。在此设置下,BackgroundTask执行20个伺服周期,然后运行所有的MotionTask,但每个Motion-Task最多运行两个伺服周期。然后BackgroundTask再执行20个伺服周期。
图10-12 为BackgroundTask分配时间片
在有两个MotionTask的情况下,自由执行等级的执行情况见表10-3。
表10-3 自由执行等级的执行情况
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。