Function...Fend

以Function语句开始并以Fend语句结束的、可执行程序的最小单位是1个函数。

格式
Function 函数名 [(自变量列表)] [As型(函数)] 语句 Fend

参数

函数名称
对以Function开始并以Fend命令结束的语句组,将名称指定在64个字母以内。还可以使用下划线。
自变量列表
指定调用时赋予函数自变量的变量列表。如果是多个变量,用逗号进行分隔。可省略。
自变量的格式如下。

[ {ByRef | ByVal}​ ] 变量名 [( )] As 型(自变量)

ByRef
参照要调用的函数的变量时,指定ByRef。此时,可以将函数内的自变量的变更反映到调用的变量中。可省略。
ByVal
是默认设置。如不变更调用函数参照的变量的值,可指定ByVal。可省略。
变量名[()]
自变量的变量名,是必要的参数。请按照变量名的命名方法的规则执行。如要将数组变量用作自变量,请务必指定ByRef,并在变量后面添加空括号“()”以表示数组。
As类型(自变量)
是必要的参数。请声明自变量的类型。
As类型(函数)
是要获取返回值时附加的参数。请声明返回值的类型。

返回值
是在函数声明的最后由As指定的数据类型(As类型(函数))。

说明
Function语句表示SPEL+语句组的开始。用Fend语句表示1个函数的结束。Function与Fend语句之间的所有语句都被认为是该函数的一部分。

Function与Fend、包括它们之间的所有语句,其本身是一个函数,可以认为是容器那样的语句段。还可以在一个程序文件中使用多个函数。

要使用返回值时,请将数值代入到与函数名同名的变量中,然后结束函数。

参阅
Call、Fend、Halt、Quit、Return、Xqt

Function...Fend使用示例
[例1] 下例为1个文件中包括3个函数的示例。task2和task3被main调用并与main一起同时执行。

Function main
  Xqt 2, task2 '同时执行任务2
  Xqt 3, task3 '同时执行任务3
  .
  .
  .
Fend

Function task2
  Do
    On 1
    On 2
    Off 1
    Off 2
  Loop
Fend

Function task3
  Do
    On 10
    Wait 1
    Off 10
  Loop
Fend

[例2] 如下所示为将外围装置的压力控制序列设为自变量、将发送到外部装置时的结果设为返回值并在画面上显示时的函数示例。

Function main
  Integer iResult
  Real Sequence1(200)
  .
  .
  iResult = PressureControl(ByRef Sequence1())   '自变量为数组
  .
  Print "Result:", iResult
  .
Fend

Function PressureControl(ByRef Array1() As Real) As Integer
  .
  (根据Array1数组对外围装置进行压力控制)
  .
  PressureControl = 3    '返回值
  .
  .
Fend