Decimal
Length Positions HI LO EQ Comment
Level:
和cycle相關,沒研究過,一般不填
N01:
這個含義比較豐富,我只用過其中一種:
首位不帶N,後面填寫01—99的數字時,表示相應的指示器打開時,執行後面的操作,如:
C 12 EVAL FHS01=’01’
等價於
IF *IN12=’1’
EVAL FHS01=’01’
ENDIF
首位帶N,後面填寫01—99的數字,表示相應的指示器關閉時,執行後面的操作
要注意,該項內容僅作用於該行操作碼。如果指示器打開後,需要執行多條語句,那麼每條語句前面,該項都要賦值。
即
C IF *IN12=’1’
C EVAL FHS01=’01’
C EVAL FHS02=’02’
C ENDIF
如果用這種方式來表達,就要寫作
C 12 EVAL FHS01=’01’
C 12 EVAL FHS02=’02’
所以說,根據指示器狀態來執行的語句,在執行少量操作碼時,可以使用這種方法;如果語句較多,修改起來不方便,還是直接用IF—ENDIF的判斷語句比較合適。
該項還有針對其它指示器的用法,看上去似乎又是與CYCLE相關,暫不介紹了。
Factor 1:
操作內容一,將在後面與操作碼一起講
Operation:
操作碼,後面有專門章節講解操作碼
Factor 2:
操作內容二,同上
Result:
操作結果,同上
Length:
長度。
變數的定義,除了在D行定義之外,還可以在C行通過設定陳述式直接定義
如
D FLD01 S 2 INZ(‘01’)
與
C MOVE ‘01’ FLD01 2 //2在length處,右對齊
是等價的
一個變數,在整個程式中,只要定義一次就可以了,對定義的順序沒有強制要求。
Decimal Positions:
與length相呼應,當此項有值時,表示定義的是一個數字型變數,該項表示小數位長度。
如
C Z-ADD 2 FLD02 3 2
即是說,將FLD02定義為一個3位長,其中1位元整數,2位元小數的數位變數,並賦值為2.00
HI、LO、EQ
這是三個指示器位置項。可賦值的內容是從01—99,在以後的說明中,如果HI項填寫10,LO項填寫20,EQ項填寫30,那麼我所說的HI指示器,即是指*IN10,LO指示器即是*IN20,EQ指示器即是*IN30,依此類推。(也就是說,HI指示器,並不是*INHI,事實上,也沒有*INHI這個指示器)
Comment:
注釋行,源自RPG,不用填,填了也沒用。