一般而言,在plc程序中的所有信號都是借助於“地址(Address)”進行識別與區分的,例如,當輸入點IO.O連接了外部的“電機啟動”按鈕時,程序中的全部IO.O信號觸點便代表了“電機啟動”按鈕的狀態,這樣的地址稱為“絕對地址”(見圖13-4.1)。

使用絕對地址編程時,如果程序較複雜,編程人員必須在編程的同時編製一份地址與實際信號的對應關係表,以記錄程序中每一信號的含義以及對應的PLC地址,以便在編程時進行隨時查閱。同樣,在程序閱讀、調試與檢查時,也必須根據對應關係表才能確認最終係統中的實際信號以及信號的狀態。
雖然使用絕對地址編程容易、方便,程序簡單,但是在程序較複雜時,會帶來程序理解、閱讀方麵的難度。因此,為了便於程序的理解,方便他人閱讀程序,對於較複雜的程序,在PLC中一般可以采用利用文字編輯的“符號( Symbol)”來表示信號的地址,例如,在程序中直接使用“m—start”這一名稱來代表電機啟動信號的輸入IO.O等,這樣的地址稱為“符號地址”(見圖13-4.2)。

為了在程序中能夠使用“符號”來進行編程,同樣必須在STEP7中編寫一份絕對地址與信號符號之間的對應關係表,這一對應表在STEP7中稱為“符號表(Symbol table)”(見圖13 -4.3)。

2.全局符號、局部符號
在PLC程序中所使用的信號根據用途可以分為兩大類。
第一類是用於整個程序的通用信號,如輸入I、輸出Q、標誌寄存器M等,這些信號在整個PLC程序中的意義與狀態是唯一的,因此又稱為“全局變量”。
另一類是僅用於某一個特定邏輯塊(如FC、FB、OB等)的臨時信號,主要有局部變量寄存器L等。變量寄存器是一種用於臨時保存信號狀態的暫存器,它僅在程序調用到這一邏輯塊時才具有實質性的含義,在程序調用完成後,其狀態就失去意義,因此又稱為“局部變量”。
對於全局變量定義的符號地址稱為“共享符號”( Shared Symbols)或“全局符號”;對於局部變量定義的符號地址稱為“局域符號”或“局部符號”( Local Symbols)。
“共享符號”在程序中的顯示加雙引號(見圖13 -4.2),“局域符號”在顯示時前麵加“撐”標記(見圖13-4.4)。

“共享符號”是整個程序所使用的共同符號,在一個程序中,符號名稱應是唯一的;而“局域符號”隻是在某一特定邏輯塊中使用的臨時性標記,因此,在同一程序的不同邏輯塊中可以重複使用。 “共享符號”可以由英文字母、數字、下劃線、特殊字符甚至漢字所組成,“局域符號”一般不可以使用
特殊字符與漢字,一個符號最大可以使用的字符總數為24個。符號表內不可以使用附錄C中的S7關鍵詞。
3.符號表與變量聲明表
符號表( Symbol table)與變量聲明表(Variable declaration table)是STEP7中兩種用來定義符號地址的表格形式,其本質都是為了建立絕對地址與符號地址之間的內在聯係,但表格所針對的對象有所區別。
在STEP7中,由於使用了“共享苻號”與“局域符號”兩種不同的符號地址,且其使用範圍不同,因此,其定義的方法也因此而有所區別。
“共享符號”是整個程序所使用的共同符號,可以在程序中通過統一、通用的表進行定義。用於“全局符號”定義的表,在STEP7中稱為“符號表(Symbol Table)”。
“局域符號”是某一特定邏輯塊所使用的臨時性標記,隻能在特定的邏輯塊中進行臨時性定義。用於臨時性的、“局域符號”定義的表被稱為“變量聲明表(Variable declaration table)”。
表13 -4.1列出了“共享符號”與“局域符號”之間的區別。
