MC-Basic:ONEVENT/zh-hans
语言: | [[::MC-Basic:ONEVENT|English]] • [[::MC-Basic:ONEVENT/zh-hans|中文(简体)]] |
---|
缩写
格式
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