簡單地說 ,FANUC 系統可以分為兩部分 : 控制伺服電動機和主軸電動機動作的系統部分和控制輔助電氣部分的 PMC 。
PMC 與 PLC 非常相似 , 因為專用于機床 , 所以稱為可編程序機床控制器。與傳統的繼電器控制電路相比較 ,PMC 的優點有 : 時間響應快 , 控制精度高 , 可靠性好 , 控制程序可隨應用場合的不同而改變 , 與計算機的接口及維修方便。另外 , 由于 PMC 使用軟件來實現控制 , 可以進行在線修改 , 所以有很大的靈活性 , 具備廣泛的工業通用性。
FANUC 0系統使用的 PMC 有 PMC-L 和 PMC-M 兩種型號 , 它們所需硬件不同 , 性能也有所區別 。PMC-M 需要一塊專門的電路板 , 地址范圍也有所擴大 , 使用時請注意。
表 1 為 PMC-L 和 PMC-M 的部分性能比較表

本文中主要以 PMC-L 為例進行說明。
PMC 的程序稱為順序控制程序 , 用于機床或其他系統順序控制 , 使 CPU 執行算術處理。 順序程序的編制步驟如下 :
(1) 根據機床的功能確定 I/0 點的分配情況 ;
(2) 根據機床的動作和系統的要求編制梯形圖 ;
(3) 利用系統調試梯形圖 ;
(4) 將梯形圖程序固化在 ROM 芯片內。
表 1 兩種型號的性能比較
PMC 程序的工作原理可以簡述為由上至下 , 由左至右 , 循環往復 , 順序執行。因為它是對程序指令的順序執行 , 應注意到在微觀上與傳統繼電器控制電路的區別 , 后者可認為是并行控制的。

以圖 1 、圖 2 兩個電路為例 , 在 A 觸點接通以后 ,B 、 C 線圈會有什么動作 ? 如果是繼電器電路 , 可以認為是并行控制 , 動作與電路的分布位置無關 , 圖 1 、圖 2 的情況相同 , 均為 B 、 C 先同時接通 , 而后 B 斷開。如果是 PMC 程 序的話 , 那么兩圖的情況會有所不同。 在圖 1 中 , 與繼電器的情況相同 ,B 、 C 先接通 , 而后由于 C 的接通斷開B。 在圖 2 中 , 按順序執行的話 , 卻只有 C 接通 , 因為 C 的接通使 B 線圈不能接通。在實際運用中 , 圖 1 中的 B 線圈可以用作輸入信號 A 的上升沿脈沖信號。 B 的接通時間只有一個循環周期。
PMC 順序程序按優先級別分為兩部分 : 第一級和第二級順序程序。劃分優先級別是為了處理一些寬度窄的脈沖信號 , 這些信號包括緊急停止信號以及進給保持信號。第一級順序程序每 8ms 執行一次 , 這 8ms 中的其他時間用來執行第二級順序程序。如果第二級順序程序很長的話 , 就必須對它進行劃分 , 劃分得到的每一部分與第一級順序程序共同構成 8ms 的時間段。梯形圖的循環周期是指將 PMC 程序完整執行一次所需要的時間。 循環周期等于 8ms 乘以第二級程序劃分所得的數目 , 如果第一級程序很長的話 , 相應的循環周期也要擴展。
在 PMC 順序程序中 , 為了提高安全性 , 應該注意使用互鎖處理。對于順序程序的互鎖處理是必不可少的 ,然而在機床電氣柜中的電氣電路終端的互鎖也不能忽略。因為 , 即使在順序程序上使用了邏輯互鎖 ( 軟件), 但當用于執行順序程序的硬件出現問題時 , 互鎖將失去作用。所以 , 在電氣柜中也應提供互鎖以確保機床的安全。
PMC 順序程序的地址表明了信號的位置。這些地址包括對機床的輸入輸出信號和對 CNC 的輸入 / 輸出信 號、內部繼電器、計數器、保持型繼電器、數據表等。每一地址由地址號 ( 每 8 個信號) 和位號 (0 到 7) 組成。可在符號表中輸入數據表明信號名稱與地址之間的關系。地址有以下種類 , 不同類別地址符號也不相同。
X: 由機床至 PMC 的輸入信號 (MT → PMC)
Y: 由 PMC 至機床的輸出信號 (PMC → MT)
F: 由 NC 至 PMC 的輸入信號 (CNC → PMC)
G: 由 PMC 至 NC 的輸出信號 (PMC → CNC)
R: 內部繼電器
D: 非易失性存儲器 ;
FANUC O 系統提供專用操作面板 , 使用時面板的按鍵和 LED 通過地址 G 、 F 與 PMC 進行通信 , 此時不能使用輸入地址 X20 、 X22 和輸出地址 Y51, 因為它們被面板用于對按鍵和 LED 進行掃描。另外 , 此時應在編輯順序程序時的參數設定中選擇使用操作面板。
PMC 的地址中有 R 與 D, 它們都是系統內部存儲器 , 但是它們之間有所區別。 R 地址中的數據在斷電后會丟失 , 在上電時其中的內容為 0 。而 D 地址中的數據斷電后可以保存 , 因而常用來做 PMC 的參數或用作數據表。通常情況下 ,R 地址區域 R300-R699 共 400 字節。應注意 ,D 區域與 R 區域的地址范圍總和也是 400 字節。此時在 R 地址內為 D 地址劃分出一定范圍。比如 , 給 D 地址定義出 200 個字節 , 那么它們的地址范圍為 D300-D499, 而此時 R 地址的區域為 R500-R699。我們必須在編輯順序程序時在參數設定中為 D 地址的數目做出設定。
在 PMC 順序程序的編制過程中 , 應注意到輸入觸點 X 不能用作線圈輸出 , 系統狀態輸出 F 也不能作為線圈 輸出。對于輸出線圈而言 , 輸出地址不能重復 , 否則該地址的狀態不能確定。到這里 , 還要提到 PMC 的定時器指令和計數器指令 , 每條指令都要用到 5 個字節的存儲器地址 , 通常使用 D 地址 , 這些地址也只能使用一次而不 能重復。另外 , 定時器號不能重復 , 計數器號也不能重復。
PMC 的指令有兩類 : 基本指令和功能指令。基本指令只是對二進制位進行與、或、非的邏輯操作; 而功能指令能完成一些特定功能的操作 , 而且是對二進制字節或字進行操作 , 也可以進行數學運算。
本文對 FANUC 系統 PMC 程序編程的一些基本概念進行了簡單的介紹 , 希望對用戶有所幫助。更詳細的資料請參看 FANUC 的 PMC-L 編程手冊。