Copyright: ISaGRAF V3.4


 使用字典編輯器

ISaGRAF字典 (dictionary) 是一個宣告內部變數、I/O變數、功能方塊樣例以及定義字的編輯工具。字典集合了宣告變數、功能方塊樣例以及定義字。

基礎

主字典視窗

變數管理

物件的描述

快速宣告

Modbus SCADA位址對應

與其它應用程式交換資訊

連結到其它的ISaGRAF工具

設定個別保護


基礎

變數、功能方塊以及定義字必須在程式原始碼中使用前，先在字典中宣告它們。變數以及定義字能夠用於任一種語言上：SFC、FC、FBD、LD、ST及IL。功能方塊用於FBD語言上不需要加以宣告，因為ISaGRAF的FBD及Quick LD編輯器會自動宣告已用過的方塊樣例。

變數

定義字

功能方塊樣例

網路位址


變數

變數依 "範圍" 和 "型態" 分類來儲存。僅有相同的 "型態" 和相同的 "範圍" 的變數可以在相同的編輯視窗中輸入。下列為變數基本的 "範圍"：

 全域	可以被目前案件中任何程式使用

 區域	僅可以用於一個程式中

下列為變數基本 "型態"：

 布林	真/假二進位值

 類比	實數或整數值

 計時器	時間值

 訊息	字串

變數的資料由名稱、註解、屬性、網址以及其它特別指定之欄位所組成。以下為變數的基本屬性：

內部	內部變數

輸入	連接至輸入裝置的變數

輸出	連接至輸出裝置的變數

常數	唯讀內部變數 (有初始值)

注意：	計時器永遠是內部屬性的變數。輸入以及輸出變數永遠具有全域範圍。


定義字

定義字是一個可以替代文字字串，而且用於任何語言中的 "別名"。被替代的文字可以是一個變數名，或一個常數表示式或複雜的表示式。定義字依 "範圍" 分類。僅有相同 "型態" 及相同 "範圍" 的定義字可以在相同的編輯視窗中輸入。以下為基本的 "範圍"：

 共用	可以在任一案件的任一程式中使用

 全域	可以在目前的案件中的任一程式中使用

 區域	僅可用於單一程式中

定義字的資料是由名稱、ST語法表示式以及註解所組成。


功能方塊樣例

在ST及IL語言中所用到的功能方塊樣例必須在字典中宣告，因為功能方塊具有隱藏的內部資料，所以每一個功能方塊的拷貝皆必須被識別。下列的範例表示在程式館中定義的功能方塊 "R_TRIG" 被用於做不同變數的邊緣偵測。每一個方塊的拷貝皆必須以一個唯一的名稱來識別。方塊型態名稱以及它的參數定義可以使用程式館管理員來完成：

方塊名稱：	R_TRIG

參數：	Input=CLK

Output=Q

樣例的命令可使用字典編輯器來完成：

樣例名稱：	TRIG_B1	方塊名稱：	R_TRIG

樣例名稱：	TRIG_B2	方塊名稱：	R_TRIG

宣告的樣例可以在ST程式中使用：

TRIG_B1 (b1);

edge_b1 := TRIG_B1.Q;	(* b1變數邊緣偵測 *)

TRIG_B2 (b2);

edge_b2 := TRIG_B2.Q;	(* b2 變數邊緣偵測 *)

對一個程式而言，宣告的功能方塊樣例可以為全域的 (案件中的每一個程式皆認識)，或區域的 (只用於單一程式)。用於FBD或LD語言的功能方塊無須宣告，因為ISaGRAF FBD編輯器會自動地宣告用過的方塊樣例。

(* 功能方塊永遠使用程式館中定義的方塊名稱。當每次圖形中插入一個新的方塊時，ISaGRAF FBD及Quick LD編輯器會自動地宣告一個樣例 *)

在FBD及Quick LD編輯器中自動地宣告的功能方塊樣例永遠是"區域性的"。


網路位址

網路位址 (Network address) 是選擇性的。一個非零網路位址的變數可以在執行中被外部系統 (例如監控系統) 偵測到。更進一步的說，網路位址是提供給無法處理符號名稱的通信系統在每一次通信時的一個識別碼。當建立或修改一個變數時，可以將網路位址輸入給每一個變數使用。


主字典視窗

相同 "型態" 及 "範圍" 的變數會顯示於相同的字典編輯視窗中。變數的 "型態" 及 "範圍" 將會出現在視窗的標題中。

編輯視窗內僅顯示出變數描述的主要欄位：名稱、屬性、網路位址以及文字註解，被選取的變數其完整描述永遠顯示在狀態列內。

可利用下列工具列中的按鈕去選擇欲編輯的變數"範圍"：

共用	可用於任何案件的任何程式

全域	可用於目前案件的任何程式

區域	僅可用於一個程式中

可利用 "Tab" 鍵在標題列的按鈕上去選擇欲編輯變數的 "型態"：

如欲搜尋變數名稱可以在工具列左方的文字輸入欄中輸入文字，在此情形下，依據目前的選擇，搜尋工作會從頭開始進行。編輯 / 搜尋命令亦提供變數名稱及註解中的字串搜尋功能，並能將游標移至此變數。大小寫不會影響搜尋的進行。


變數管理

在 "檔案" 功能表中所提供的命令適用於所有被選擇的變數族群、功能方塊樣例或定義字。使用 "其他" 命令可以選擇編輯不同的 "型態" 及 "範圍"。

列印變數

產生一個新的變數

修改存在的變數

 	剪下及貼上

變數排序

設定網路位址

布林 "真/假" 字串表示法


列印變數

使用 "檔案 / 列印" 命令可以將已編輯過的變數列或定義字列印到標準的Windows印表設備。使用ISaGRAF文件產生器來列印。列印輸出包括了每個變數或定義字的完整描述。


產生一個新的變數

"編輯 / 新變數" 命令允許使用者於選擇的 "型態" 或 "範圍" 中創造新的變數、功能方塊樣例或定義字，新的變數會插入於目前選擇的變數之前。當此命令執行時，輸入欄框會被打開以便輸入變數描述。當描述完成後，可按下 "儲存" 按鈕以便將變數放入表列中。新的輸入欄框會自動再度打開，所以使用者可以在相同的 "編輯" 命令中輸入其它變數。按下 "取消" 按鈕則會中斷變數產生程序。


修改存在的變數

"編輯" 功能表中的 "編輯" 命令允許使用者去修改選擇列指到的變數的描述。當此命令執行時，輸入欄框會被打開以便修改變數的描述。當描述完成後，按下 "儲存" 按鈕來儲存所作的修改。使用者亦可按 "下一個" 及 "前一個" 按鈕修改相鄰的變數。按下 "取消" 按鈕會將對話框關閉，且不會儲存任何做過的修改。


 	剪下及貼上

ISaGRAF的字典編輯工具可做多行式選取，許多提供的命令可用於目前所編輯的變數集。下列為 "編輯" 功能表中提供的命令：

複製	命令可將選出的一群變數拷貝到字典剪貼簿上。

剪下	命令可將選出的一群變數拷貝並自原列表中移除。

清除	命令可將原列表中選出的一群變數清除

貼上	命令可在選擇變數前插入字典剪貼簿的內容。

"複製/剪下/貼上" 功能可以使用於一個變數集至另一個變數集上，但是它不能用在不同物件屬性上。


變數排序

"工具 / 排序" 命令將現在的變數或定義字加以排序，分類順序是以變數屬性來排列；

•	先由內部變數排起

•	再來是輸入變數

•	最後處理輸出變數

具相同屬性的變數皆以字母順序排列，定義字也是以字母順序排列。


設定網路位址

網路位址是選擇性的。在執行狀態下一個非零值的網路位址可以被一個外部的系統 (例如程序顯示系統) 連結到。當變數被建立或修改時，網路位址可以輸入給每一個變數。"編輯 / 重新編號" 命令可讓使用者將全部的變數群做網路位址設定，此命令一旦執行，它會對選取的變數集產生作用。當輸入16進位的起始位址後，變數集的網路位址將被設定為連續的位址。若輸入一個空白的位址值，將使所選取的變數網路位址全部重置成0。


布林 "真/假" 字串表示法

當編輯定義字時，"工具 / 輸入真/假定義" 命令允許使用者自定一個字串來取代真 (TRUE) 及假 (FALSE) 的狀態。這個取代的字串於除錯時使用。如果它被用在程式中，則它必須被指定為定義字。


物件的描述

一個完整的描述必須輸入給每一個變數、功能方塊樣例或定義字。每一種物件型態的描述欄位皆不相同。下列欄位是任何型態的變數皆共同具備的：

名稱	表示變數名稱：第一個字元必須是字母，其次的字元必須是字母，數字或 '_'。

網路位址	表示16進位數值的網路位址 (可選擇的)。當此欄位的值不是零時，於執行時變數可為外界之系統所連結到。

註解	變數描述。

可回復	這是一個選項，表示變數必須被存在不揮發的記憶體中。

這些是布林變數的其它欄位：

屬性	可指定為內部、常數、輸入或輸出變數。

"False" 字串	於除錯時表示假值的字串。

"True" 字串	於除錯時表示真值的字串。

開始時為真	若此選項被打鉤，則初始值會設為真 (TRUE)，否則設為假 (FALSE)。

這些是整數或實數類比變數的其它欄位：

屬性	可指定內部、常數、輸入或輸出變數。

格式	可指定為整數或實數變數。於除錯時使用的顯示格式可以選擇。

單位字串	除錯時表示物裡單位所使用的字串。

轉換	變數關連的轉換表或轉換函數名稱 (僅適用於輸出/入變數)。

初始值	變數的初始值 (必須與變數的格式相同)。若沒有指定，則初始值為 "0"。

這些是計時器變數的其它欄位：

屬性	可指定為內部或常數變數。

初始值	變數的初始值 (時間值)。若未特別指定時，初始值為time#0s。

這些是訊息變數的其它欄位：

屬性	可指定為內部、常數、輸入或輸出變數。

最大長度	指定訊息變數的最大字元個數。

初始值	變數的初始值 (長度不能超過訊息變數的容量)。若未特別指定時，初始值將為空字串。

這些是定義字的欄位：

名稱	用於ST程式的名稱，第一個字元必須是字母，接著的字元必須是字母，數字或 '_' 符號。

定義	於編譯時將取代定義字，並依據ST語法的字串。例如：Name = PI - Equivalence = 3.14159。

註解	定義字的註解。

這些是功能方塊樣例的欄位：

名稱	用於ST程式的樣例名稱，第一個字元必須是字母，接著的字元是字母，數字或 '_' 符號。

型態	於程式館中相關的功能方塊名稱。

註解	功能方塊樣例註解。


 與其它應用程式交換資訊

ISaGRAF字典編輯工具提供了與其它應用程式交換資訊的輸入/輸出功能，例如文字處理器、試算表、資料庫管理等。這些命令在 "工具" 功能表中分為幾群。"輸出文字" 命令建立純粹的ASCII文字描述欄位去描述一組欲編輯的物件，然後將這些文字儲存至視窗剪貼板或檔案中，這些資訊通常可用於其他應用程式。至於 "輸入文字" 命令則從儲存於視窗剪貼板或檔案輸入變數宣告描述欄位 (純ASCII文字格式)，並且以輸入的欄位更新目前的編輯列，這些文字格式通常由其它的應用程式產生。

輸出資料

輸入資料

可提供的文字格式

關鍵字 (Keywords)


輸出資料

下列的對話框於 "輸出文字" 命令執行時顯示。它允許使用者去控制輸出的機制 (mechanism)。

若 "全部" 選項被選取，則會輸出全部的編輯列。在此情形下，目前的選擇區域會被忽略。若 "選取的變數" 選項被選取，則僅有反白的變數會被輸出。

如果 "剪貼簿" 選項被選取，則輸出資訊會以ASCII文字格式形式儲存於視窗剪貼板中。該文字在其它應用中可用 "貼上" 命令來利用。如果 "檔案" 選項被選取，則輸出文字會被儲存於ASCII檔案中，該檔案的完整路徑名稱必須被鍵入。"瀏覽" 命令可以用來尋找存在的路徑名稱。

然後選擇使用者輸出文字的格式。所能提供的格式種類在別的章節中有更進一步的說明。按下 "確定" 按鈕便可執行輸出功能，按下 "取消" 按鈕可關閉對話框且跳離輸出命令。

所有被選取的物件欄位皆被儲存在輸出文字內，且以標準宣告次序排列。輸出文字的第一行包含了欄位名稱。每一個物件皆以一行文字描述。"列結束" 分格符號是標準的MS-DOS ASCII碼 "0d-0a"。在第一行中用以識別欄位的名稱是可以改變的，經由按下 "關鍵字" 按鈕的操作即可。這個命令在其它章節中有更進一步的描述。


輸入資料

下列的對話框會在 "輸入文字" 命令被執行時顯示出來。它可以允許使用者去控制輸入的方法。

如果 "剪貼簿" 選項被選取，則輸入資料會以ASCII文字的格式從Windows剪貼簿輸入。如果 "檔案" 選項被選取，則輸入資料會從ASCII檔案讀入。該檔案的完整路徑名稱必須被鍵入方可，可用 "瀏覽" 命令可用以尋找目前存在的路徑名稱。

輸入文字所用的格式 (分隔符號) 於輸入時會自動辨識。可提供的格式在其它章節中會有詳細說明。按下 "確定" 按鈕便可執行輸入功能，按下 "取消" 按鈕可關閉對話框，並跳離輸入命令。按下 "關鍵字" 按鈕可改變輸入行中第一行的欄位辨識名稱，這個命令在其他章節有詳細的描述。

文字的第一行必須包含欄位名稱，這是依據隨後行列的排列次序而定的。每一個物件皆以一行文字來描述。"列結束" 分隔符號是標準的MS-DOS "0d-0a"。欄位能以任何次序顯示。如果少了某些欄位，它會自動地以內定值填入輸入物件描述之中。如果在編輯列中已有相同物件存在，則使用者必須確認是否要覆蓋。物件於是會被輸入欄位所更新。如果少了某些欄位，它們便不會在物件描述中被更新。


可提供的文字格式

下面是輸出命令可提供的格式，輸入命令會自動地辨識這些格式。

•	定位分隔 (tab separators)

解說：	欄位以跳欄字元分離

例如：	Name	Attribute	Comment
	level	internal	internal calculated water level
	alrm1	output	main alarm output

•	逗號分隔 (comma separators)

解說：	欄位以逗號分離

例如：	Name,Attribute,Comment
	level,internal,internal calculated water level
	alrm1,output,main alarm output
•	分號分隔 (semicolon separators)

解說：	欄位以分號分離

例如：	Name;Attribute;Comment
	level;internal;internal calculated water level
	alrm1;output;main alarm output
•	逗號及引號 (commas and quotes)

解說：	欄位以逗號分離，但是每個欄位寫於引號之間

例如：	"Name","Attribute","Comment"
	"level","internal","internal calculated water level"
	"alrm1","output","main alarm output"


關鍵字 (Keywords)

按下 "關鍵字" 按鈕可以改變位於輸入/輸出行第一行用於識別欄位的名稱。這個命令打開下列的對話框：

以上的視窗所顯示出物件欄位以及相對應的關鍵字。若要修改關鍵字，使用者必須先選好列中的欄位，然後按 "變更" 按鈕。若按 "內定" 按鈕則會儲存內定的關鍵字集。關鍵字的命名必須符合下列規則：

•	名稱不可超過16個字元

•	第一個字元必須是字母

•	隨後的字元可以是字母，數字或 '_' 符號

•	相同的名稱不可用於不同的關鍵字

下列是ISaGRAF提供的標準關鍵字：

物件名稱	Name

文字註解	Comment

網路位址	Address

屬性 (內部，輸入，輸出)	Attribute

布林 '假' 字串	False

布林 '真' 字串	True

類比格式 (實數或整數)	Format

類比單位字串	Unit

類比轉換名稱	Conversion

訊息最大長度	MaxLength

功能方塊程式庫型態	Library

定義字相等詞	Equivalence

內部屬性	Internal

輸入屬性	Input

輸出屬性	Output

常數屬性	Constant

實數類比格式	Real

整數類比格式	Integer


連結到其它的ISaGRAF工具

"工具" 功能表包含了變數管理時讓使用者執行其它有用的ISaGRAF工具的命令：

"I/O連結" 命令能讓使用者對開啟的案件執行ISaGRAF I/O連結編輯器。假如字典編輯器視窗中使用者目前選取的I/O變數已經被連結了，那麼當I/O連結視窗被開啟時，相關的I/O板就會被顯示出來。

"轉換表" 命令會在一個對話方塊中執行轉換表編輯器。表格可以被設定給字典中的實數或整數I/O變數。

"交互查詢" 命令可以對開啟的案件執行交互查詢編輯器。


快速宣告

"工具 / 快速宣告" 命令允許一次宣告多個變數。快速宣告所產生的變數以號碼規則來命名，因此你必須定義：

-	第一個及最後一個變數的索引號碼

-	變數符號中的號碼前後的文字

-	變數符號中的號碼位數

另外：你也能指定所產生的變數的基本屬性 (內部、輸入或輸出...) 以及不同變數型態專屬的性質 ( "可回復" 屬性、整數或實數格式、訊息字串最大長度)。

因為變數名稱不能以數字開頭，所以你必須於變數號碼之前插入開頭的文字。當 "號碼位數" 設定成 "自動" 時，ISaGRAF將設定號碼位數成最小需求位數，當你指定號碼位數，ISaGRAF會將所有號碼設定成指定的位數，不足之位數則於號碼之前以 '0' 來補足。指定號碼位數將可避免變數排序時產生錯誤的次序。下面為一些範例。

範例：	快速宣告設定：

產生三個變數，如下：

Var9xx      Var10xx      Var11xx

範例：	快速宣告設定：

產生名稱為MyVar001到MyVar100的100個變數


Modbus SCADA位址對應

ISaGRAF "網路位址" 常用於建立ISaGRAF系統與SCADA之間Modbus通訊連結，此時SCADA為Modbus master (主)，而ISaGRAF目標硬體為Modbus slave (從)。網路位址用於產生所有必須被SCADA控制的變數虛擬Modbus對應。"工具 / Modbus SCADA位址對應" 可用來快速產生應用程式變數的Modbus虛擬對應。

對應工具顯示兩個表列；上面的表列為Modbus對應的區段 (4096個)，顯示對應的變數 (具有網路位址的變數)，下面的表列顯示未對應的變數 (不具有網路位址的變數)。"0" 位址為保留值，不能用於變數位址。

使用 "編輯" 功能表的 "對應" 及 "移除" 命令搬移變數到另一個表列上，如此便可建立對應的關係。於變數符號上雙按滑鼠左鍵，也可以達到相同的效果。在任何時刻你都可以使用 "區段" 來觀看另一區段的對應。

"選項" 功能表的命令能隨時觀看10進位或16進位的位址。

"編輯 / 尋找" 命令可用來搜尋宣告的變數 (不管對應與否)。


設定個別保護

ISaGRAF工作平台提供了一個完整的、以密碼架設的資料保護系統。變數宣告可以由一個密碼全權保護。另外，在下面的情況下，ISaGRAF能讓你設定個別保護給任何宣告了的變數：

-	密碼已經定義在密碼定義系統中 (使用案件管理員視窗的 "案件 / 設定密碼" 命令)，以便設定個別保護時就可以得到所需的保護層級。

-	相較於全域變數的保護，你必須設定較高級的保護層級給個別保護。

當變數有個別保護的時候，一個小圖示會很靠近的顯示在字典視窗變數列表中此變數名稱旁邊：

使用 "編輯" 功能表的 "設定保護" 和 "取消保護" 命令來對選取的變數設定或取消個別保護。這兩個命令都會要求你輸入一個有用的密碼，以便一個保護層級可以被依附到這個變數上。然後，每一次你要改變一個有個別保護的變數時，你必須輸入一個有充分權限層級的密碼。

警告：	假如變數被一個層級保護，而相關的密碼從保護系統中被移除，並且假設沒有更高的層級密碼被定義，那麼除非一個具有充分等級的新密碼被定義，否則就沒有人可以改變這個變數。