一、功能指令的表示格式
功能指令表示格式與基本指令不同。功能指令用編號FNC00~FNC294表示,并給出對應的助記符(大多用英文名稱或縮寫表示)。例如FNC45的助記符是MEAN(平均),若使用簡易編程器時鍵入FNC45,若采用智能編程器或在計算機上編程時也可鍵入助記符MEAN。
有的功能指令沒有操作數,而大多數功能指令有1至4個操作數。如圖1所示為一個計算平均值指令,它有三個操作數,[S]表示源操作數,[D]表示目標操作數,如果使用變址功能,則可表示為[S·]和[D·]。當源或目標不止一個時,用[S1·]、[S2·]、[D1·]、[D2·]表示。用n和m表示其它操作數,它們常用來表示常數K和H,或作為源和目標操作數的補充說明,當這樣的操作數多時可用n1、n2和m1、m2等來表示。

圖3-26中源操作數為D0、D1、D2,目標操作數為D4Z0(Z0為變址寄存器),K3表示有3個數,當X0接通時,執行的操作為[(D0)+(D1)+(D2)]÷3→(D4Z0),如果Z0的內容為20,則運算結果送入D24中。
功能指令的指令段通常占1個程序步,16位操作數占2步,32位操作數占4步。
1.連續執行與脈沖執行
功能指令有連續執行和脈沖執行兩種類型。如圖2所示,指令助記符MOV后面有“P”表示脈沖執行,即該指令僅在X1接通(由OFF到ON)時執行(將D10中的數據送到D12中)一次;如果沒有“P”則表示連續執行,即該在X1接通(ON)的每一個掃描周期指令都要被執行。

2.數據長度
功能指令可處理16位數據或32位數據。處理32位數據的指令是在助記符前加“D”標志,無此標志即為處理16位數據的指令。注意32位計數器(C200~C255)的一個軟元件為32位,不可作為處理16位數據指令的操作數使用。如圖2所示,若MOV指令前面帶“D”,則當X1接通時,執行D11D10→D13D12(32位)。在使用32位數據時建議使用首編號為偶數的操作數,不容易出錯。
三、功能指令的數據格式
1.位元件與字元件
象X、Y、M、S等只處理ON/OFF信息的軟元件稱為位元件;而象T、C、D等處理數值的軟元件則稱為字元件,一個字元件由16位二進制數組成。
位元件可以通過組合使用,4個位元件為一個單元,通用表示方法是由Kn加起始的軟元件號組成,n為單元數。例如K2M0表示M0~M7組成兩個位元件組(K2表示2個單元),它是一個8位數據,M0為最低位。如果將16位數據傳送到不足16位的位元件組合(n<4)時,只傳送低位數據,多出的高位數據不傳送,32位數據傳送也一樣。在作16位數操作時,參與操作的位元件不足16位時,高位的不足部分均作0處理,這意味著只能處理正數(符號位為0),在作32位數處理時也一樣。被組合的元件首位元件可以任意選擇,但為避免混亂,建議采用編號以0結尾的元件,如S10,X0,X20等。
2.數據格式
在FX系列PLC內部,數據是以二進制(BIN)補碼的形式存儲,所有的四則運算都使用二進制數。二進制補碼的最高位為符號位,正數的符號位為0,負數的符號位為1。FX系列PLC可實現二進制碼與BCD碼的相互轉換。
為更精確地進行運算,可采用浮點數運算。在FX系列PLC中提供了二進制浮點運算和十進制浮點運算,設有將二進制浮點數與十進制浮點數相互轉換的指令。二進制浮點數采用編號連續的一對數據寄存器表示,例D11和D10組成的32位寄存器中,D10的16位加上D11的低7位共23位為浮點數的尾數,而D11中除最高位的前8位是階位,最高位是尾數的符號位(0為正,1是負)。10進制的浮點數也用一對數據寄存器表示,編號小數據寄存器為尾數段,編號大的為指數段,例如使用數據寄存器(D1,D0)時,表示數為
10進制浮點數=〔尾數D0〕×10〔指數D1〕
其中:D0,D1的最高位是正負符號位。