MC-Basic:ONEVENT/zh-hans

From SoftMC-Wiki
< MC-Basic:ONEVENT
Revision as of 02:53, 25 April 2017 by Chi (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
语言: English  • 中文(简体)‎

缩写

格式

OnEvent <event> {<condition>} {Priority=<priority>} {ScanTime=}
           <command block that defines the action>
EndOnevent

适用版本

所有版本

描述

ONEVENT命令定义一个同步任务,一旦事件被启用(用EVENTON),定期检查事件发生的条件。当满足条件时,执行事件动作模块。事件条件可以是任何条件表达式。

事件动作代码会中断当前执行的任务,并执行。相同任务中的多个事件可能会相互中断,但它们之间不是多任务的,在不同任务中定义的事件是多任务的。

Priority是执行动作代码的优先级,它可以被分配从1到16的任何值。事件优先级必须高于定义它的任务的优先级。

ScanTime单位为SERCOS周期,值为1会导致每个周期都检查条件。

如果事件被定义为没有任何条件(版本4.0.10及更高版本),则每个扫描周期执行一次事件动作模块,从而允许定期执行应用程序代码。

类型

<event>: Alphanumeric string
<condition>: an expression
<priority>: Long
<scan time>: Long

取值范围

<priority>: 1 to 16

单位

默认

<priority>: 1
<scan time>: 1

使用范围

任务区

限制

必须启用事件(使用EVENTON)才能进行处理。 事件无法终止其父任务(定义事件的任务)。 事件条件不包括在同一周期内无法传送的变量或属性(通过SERCOS服务通道传输的IDN)。 SYSTEM.ALOAD 不能作为事件触发条件。不要在子程序或者函数中定义事件。 OnEvent不能在IF、WHILE或者其它循环中定义。

例子

OnEvent EV1 SysDin.1=1      'Trigger event when input 1 is 1
  Move X-axis 50000
End OnEvent

参见