Level    N01 Factor 1         Operation         Factor 2       Result

                             

            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,不用填,填了也沒用。

狼翔月影 發表在 痞客邦 PIXNET 留言(0) 人氣()