一、列型程序的種類
例行程序有三種:Procedures, Functions 和Traps
Procedure沒有返回值,可用指令直接調用
Function有特定類型的返回值,必須通過表達式調用
Trap例行程序提供處理中斷的方法。Trap例行 程序和某個特定中斷連接,一旦中斷條件滿足,將被自動執行。Trap例行程序不能在程序中直接調用。
二、例行程序范圍
例行程序范圍是指例行程序可被調用的范圍。
例行程序的聲明前帶有 Local 標識,則該例行程序可在所屬模塊內調用,否則為Global。
在同一模塊中,例行程序不能與其他例行程序和數據同名
在不同模塊中, Global 例行程序不能與模塊、另一個 Global 例行程序, Global 數據同名
例行程序范圍的使用原則如下:
Global 例行程序可以包含在任何模塊內
Local 例行程序只能在其所屬的模塊內被調用
在同一范圍內,Local 例行程序隱含所有同名的Global 例行程序和數據
在同一范圍內,例行程序隱含所有同名的指令和預定義例行程序及數據
三、列型程序數據
在調用帶參數的例行程序時,必須提供相應實參。
例行程序的參數有四種存取模式:
INPUT-通常例行程序參數被設為該模式並作為例行程序數據來處理。在例行程序內改變該 變量對相應自變量沒有影響。
INOUT-如果例行程序參數被設為該模式,則相應的自變量必須是可被例行程序修改的 VAR 或 RS數據
VAR -如果例行程序參數被設為該模式,則相應的自變量必須是可被例行程序修改的
VAR數據.
PERS-如果例行程序參數被設為該模式,則相應的自變量必須是可被例行程序修改的PERS數據
可選參數:一個例行程序參數可以被設置為可選參數,並在參數前帶有“”標識, 用例行程序時,該參數可以缺省
可選參數在調用例行程序時缺省,則在程序中不被引用,這意味着該參數在使用之前要先檢測是否缺省.
四、列型程序聲明
一個例行程序包含例行程序聲明(包括參數)、數據、程序體、一個backward handler(指針對procedure)和一個error handler。例行程序的聲明不能嵌套。
五、程序列型Procedure
Procedure的聲明:
舉例如下:
Procedure的終止:
Procedure可以通過return指令終止運行,也可以通過例行程序的結束標識(ENDPROC、BACKWARD、ERROR)終止運行
Procedure的調用:
Procedure的調用在示教器上是通過指令ProcCall來完成的。在調用帶有參數的例行程序時,強制參數必須指定,而且參數的順序要正確;可選參數可以缺省。
六、列行程序--Function
Function的聲明:
舉例如下:
Function的終止:
Function 必須通return指令終止運行, return指令返回的數據類型必須與Function的數據類型一致。
Function的調用:
Function必須通過表達式來完成調用,如賦值指令,不能通過 ProcCall來完成的。在調用帶有參數的Function 時,強制參數必須指定,而且參數的順序要正確;可選參數可以缺省。
七、列行程序--Trap
Trap 的聲明:
舉例如下:
Trap 的終止:
Trap可以通過return指令終止運行,也可以通過例行程序的結束標(ENDTRAP、ERROR)終止運行。然后在中斷觸發點繼續執行。
Trap的調用:
Trap例行程序提供了處理中斷的方法。一個中斷例行程序必須通過CONNECT指令與某個特定的中斷連接。一旦中斷觸發,控制會立即轉移到相應的Trap例行程序;如果中斷觸發,但是沒有相關聯的Trap例行程序,將被視為致命錯誤,比如程序立即停止運行
