Copyright: ISaGRAF V3.4


 使用文字編輯器

這一章節僅說明指定的元件及ISaGRAF文字編輯器的命令，尤其是用在輸入ST與IL程式的原始碼時的命令。

編輯命令

選項

"工具" 功能表的命令

呼叫ISaGRAF其他工具

程式的參數

"檔案" 功能表中其它的命令

程式日記 (program diary) 的更新

從字典中挑選變數

除錯ST與IL程式

ISaGRAF文字編輯器也可以用來輸入案件描述，編輯日記檔案，程式庫元素的技術註記 (線上文件)，而且使用者每次都必須輸入純文字的文件。

定義資源


編輯命令

"編輯" 功能表的命令用來編輯所輸入的文字，大部分的命令作用在於圖中所選的字串上，或作用於游標所在位置的物件。

 	剪下與貼上

尋找與取代

跳至某行

從字典插入符號

插入檔案


 	剪下與貼上

DEL鍵用來移除所選的文字，在DEL命令執行後，可以使用 "編輯 / 回復" 命令來復原刪除的元件。"編輯" 功能表下的 "剪下"、"複製" 與 "貼上" 命令用來移除或複製程式內的文字，或者插入從其他應用程式來的剪貼簿內的文字。


尋找與取代

"編輯" 功能表下的 "尋找" 與 "取代" 命令用來尋找與取代程式內的文字，任何的字串都可以被找到。尋找能從游標所在的位置往前或往後搜尋，當搜尋到邊界後，並不會從另一端再搜尋起。


跳至某行

"編輯 / 跳至某行" 命令用來移動游標至指定的行數，當ISaGRAF編輯ST或IL程式有錯誤發生時，會以行數當作錯誤的參考，這個命令用來直接跳至該行是非常有用的。


從字典插入符號

使用 "編輯 / 插入變數" 命令用來插入案件字典中宣告的變數符號或物件到游標所在位置，注意這個命令僅能處理純ASCII文字檔案。


插入檔案

"編輯 / 插入檔案" 命令插入全部的檔案內容到游標所在的位置，注意這個命令僅能處理純ASCII文字檔案。


選項

"選項" 功能表的命令用來顯示或隱藏工具列以及選擇字型，這裡所選的字型將會套用在所用的ISaGRAF工作平台的文字編輯器中。

當輸入ST / IL程式的原始碼時，"選項 / 顯示關鍵字" 命令可用來顯示或隱藏ST或IL語言最常用的識別字工具盒。點選工具列上的按鈕來插入相對的識別字或運算元到游標所在的位置。


呼叫其他ISaGRAF工具

驗證 (編譯) 程式

 	模擬或除錯

編輯變數字典


驗證 (編譯) 程式

"檔案 / 驗證" 命令會執行一個叫 "ISaGRAF碼產生器" (Code generator) 的程式去驗證程式語法。如果是SFC語言，則第一層與第二層都會被驗證。當語法驗證完畢後，"碼產生器" 視窗必須關閉以便繼續程式上的工作。如果沒有語法上的錯誤，而且應用中又只有一個程式，則應用碼便會被產生出來。"選項 / 編譯選項" 命令是被用來設置 (set) 參數的編譯及最佳化時使用。參考 "如何使用碼產生器" 一章，您將會得到進一步有關編譯及碼產生器的訊息。


 	模擬或除錯

"檔案 / 模擬" 以及 "檔案 / 除錯" 命令可以在模擬模式或真實連接模式中執行ISaGRAF圖形除錯器，且於除錯模式時，再將SFC程式開啟。於除錯模式時，你無法修改程式內容。


編輯變數字典

"檔案 / 字典" 命令是用來編輯目前應用程式所用到的變數，它也可用來編輯使用者自訂的定義字。"區域" 宣告或定義字只適用於目前編輯的程式中。


程式的參數

當編輯的程式為函數、功能方塊或副程式時，則 "檔案 / 參數" 命令被用來定義呼叫及回傳的參數。當程式為SFC或為開始、結束區中的程式時，這個命令無效。

副程式、函數或功能方塊最高可以有32個參數 (包含輸入及輸出)。函數或副程式通常只有一個回傳參數，而且這個參數必須與函數名稱相同，以便符合ST語言的撰寫法則。下列對話框是被用來描述副程式的參數：

在視窗左上方的位置列出所有的參數且以呼叫模式的順序來排列。前面是 "呼叫參數"，再來為 "回傳參數"。在視窗的下半部顯示被選取參數的詳細描述，參數可以是任何一個ISaGRAF的資料形態。"回傳參數" 必須位於 "呼叫參數" 之後。參數名稱必須符合下列規則：

•	名稱不能超過16個字元

•	第一個字元必須是英文字母

•	第一個字元以後的字元可以是字母、數字或底線字元

•	名稱不分大小寫

"插入" 命令是用來在選取的參數之前插入新參數。"刪除" 命令是用來刪除選取的參數。"排序" 命令是用來自動重排列 (排序) 參數，所以 "回傳參數" 皆會放置於列尾。


"檔案" 功能表中其它的命令

下列命令可用於所有程式編輯器內的 "檔案" 功能表中：

打開其它的程式

程式列印


打開其它的程式

"檔案 / 開啟" 命令允許使用者關閉目前編輯的程式，且開啟目前案件中相同語言的程式。這個功能不能用來編輯以另一種語言撰寫的程式。被選取的程式會替換目前在編輯視窗中編輯的程式。


程式列印

"檔案 / 列印" 命令用來輸出程式至印表機。這個命令會自動執行ISaGRAF文件產生器來列印正在編輯的程式和相關的區域變數。

於圖形語言程式中 (SFC、FBD及Quick LD)，您可用 "編輯 / 複製圖形" 命令去拷貝在剪貼簿中以metafile格式所繪的圖形，以便於去剪貼於其他的應用中，例如文書編輯器 "Word"。如果是SFC程式，僅有第一階的圖形 (流程圖，數字編號以及第一層註解) 會拷貝到metafile檔中。


更新程式日記 (program diary)

可以用 "檔案 / 日記" 命令將附帶於編輯程式的日記檔以手動方式輸入。每一次程式編譯時，這個日記檔會自動加上語法檢查輸出訊息。編譯輸出完成後會有一個時間 / 日期的蓋印。

如果程式編輯器 "選項" 功能表下的 "更新日記" 模式中被選取，則每次程式被儲存至硬碟時會出現下列對話框。

假如 "確定" 按鍵被按下，則所輸入的文字註解便會加上時間 / 日期而儲存至日記檔的末端。這個特色對於維護程式非常有用，因為它提供了程式生命週期的協助。


從字典中挑選變數

 當編輯文字式程式 (ST或IL) 時，"編輯 / 插入變數" 允許選取一個已宣告的變數名稱，插入到游標所在的位置。當編輯LD或FBD程式時，線圈、I/O參數或FBD變數方塊必須依附上變數。在兩種情況下，將開啟下列的對話框，以便選取已宣告的變數：

"範圍" 列示盒是用來選擇全域或區域變數。列示盒的右邊可以選擇資料型態。在型態選擇欄的旁邊有一些小的圖示 (icon) 為選擇資料型態的快捷按鈕：

布林 (Boolean) 型態

整數 / 實數 (Integer / Real) 型態

計時器 (Timer) 型態

訊息 (Message) 型態

欲選擇變數，只要在名單上點選即可。它的名稱以及註解便會出現在名單正上方。然後按 "確定" 按鈕確認您的選擇，如此便完成了程序。當然，您亦可以直接將變數名稱輸入欄位中。


定義資源

"選項" 功能表的 "資源" 命令允許使用者去定義資源。資源是使用者定義的任何格式的資料 (網路組態，硬體設定 _)，這些資料將會合併到產生的碼中，以便下載到目標硬體PLC中。ISaGRAF 硬體核心不會直接拿這樣的資料作運算，而是用於目標硬體PLC上其它的軟體。參考你的硬體手冊以得到關於可利用的資源的更進一步說明。

資源定義檔

語言參考

例子

資源編譯器

實行


資源定義檔

資源被定義於ISaGRAF案件的 "資源定義檔" 中，它是一個純文字檔，由ISaGRAF資源編輯器所處理。當應用程式碼建立時，這個編譯器會自動執行。這一節解釋這個檔案的語法，資源定義檔使用ST語言的語法規則。註解 (以 "(*" 開始，"*)" 結束) 能被插入於文字中的任何一處，字串以單引號為界線。參考本手冊的第二部分，可得到關於輸入數值的語法格式的更進一步解釋。


語言參考

下面是用於資源定義檔中的關鍵字與敘述表。

ULONGDATA

VARLIST

BINARYFILE

TEXTFILE

TARGET

ANYTARGET

FROM

TO


ULONGDATA

意義：	指示為整數值集合的資源，以不帶符號的32位元整數存於目標硬體碼中，且以資源定義檔指定的順序儲存。各種數值之間以逗點來區隔，資源名稱不能超過15個字元。

語法：	ULONGDATA '<資源名稱>'

BEGIN

... 選擇目標硬體...

... 數值集合...

END

例子：	ULongData 'MYDATA'

Begin

...

0, -1, 100_000,	(*十進位*)

16#A0B1, 2#1011_0101	(*16進位,二進位*)

End


VARLIST

意義：	指定變數位址集合的資源。在原始定義檔中，變數以名稱來識別，而在目標硬體碼中，變數位址以不帶符號的16位元整數儲存，位址以資源定義檔中指定的順序儲存。各變數間必須以逗點分隔。資源名稱不能超過15個字元。

語法：	VARLIST '<資源名稱>'

BEGIN

...選擇目標硬體...

...變數名稱集...

END

例子：	VarList 'LIST'

Begin

...

Var100, MyParameter, Command, Alarm

End


BINARYFILE

意義：	指定二元檔資源。資源中的資料儲存於一個MS-DOS檔中，目標硬體資源定義加上路徑檔名來完成。ISaGRAF資源編譯器不會轉換換列字元。資源名稱不能超過15個字元。

語法：	BINARYFILE '<資源名稱>'

BEGIN

...選擇目標硬體...

FROM '<來源路徑>'

TO '<目的路徑>'

END

例子：	BinaryFile 'MYFILE'

Begin

...

From 'c:\user\config.bin'

To '/dd/user/appl/config.dat'

End


TEXTFILE

意義：	指定文字檔資源。資源資料儲存於ASCII檔案中，目標硬體資源定義以路徑檔名加以完成。ISaGRAF資源定義檔會根據目標硬體主系統轉換法轉換換列字元。資源名稱不能超過15個字元。

語法：	TEXTFILE '<資源名稱>'

BEGIN

...選擇目標硬體...

FROM '<來源路徑>'

TO '<目的路徑>'

END

例子：	TextFile 'MYFILE'

Begin

...

From 'c:\user\config.bin'

To '/dd/user/appl/config.dat'

End


TARGET

意義：	指定必須包含於資源中的目標硬體碼名稱。參考先前所說的編譯選項區域，以得知更多關於所用的目標硬體更多的說明。"Target" 敘述在同一個資源區塊中能出現多次，以便選擇多個目標硬體，若有指定 "Any Target" 敘述，則這個敘述不能使用。

語法：	TARGET '<目標硬體名稱>'

例子：	BinaryFile 'MYFILE'

Begin

Target 'ISA86M'

Target 'ISA68M'

...

End


ANYTARGET

意義：	指定碼產生器建立所有的目標硬體碼，都必須整合到資源中。ISaGRAF碼產生器能於相同的 "製作" 命令產生幾個目標硬體碼。假如已指定一個或多個 "Target" 敘述，這個敘述就不能使用。

語法：	ANYTARGET

例子：	ULongData 'MYDATA'

Begin

AnyTarget

...

End


FROM

意義：	指定BinaryFile或TextFile資源的來源檔 (位於ISaGRAF安裝的PC上)。用於路徑元件 (磁碟機，目錄，檔名，延伸檔名) 的區隔字元必須遵循MS-DOS系統格式。

語法：	FROM '<來源路徑>'

例子：	BinaryFile 'MYFILE'

Begin

...

From 'c:\user\config.dat'

To '/dd/user/appl/config.dat'

End


TO

意義：	指定BinaryFile或TextFile資源的目的檔 (位於目標硬體系統上)。用於路徑元件 (磁碟機、目錄、檔名、延伸檔名) 的區隔字元必須遵循目標硬體系統格式。

語法：	TO '<目標硬體路徑>'

例子：	TextFile 'MYFILE'

Begin

...

From 'c:\user\config.dat'

To '/dd/user/appl/config.dat'

End


例子

以下是一個完整的資源定義檔例子：

(* 資源定義檔 *)

ULongData 'DATA1'	(* 許多數值的集合 *)

Begin

   Target 'ISA86M'	(* 僅用於這個目標硬體 *)

   1, 0, 16#1A2B3C4D, +1, -1	(* 數值 *)

End

VarList 'VLIST1'	(* 許多變數的集合 *)

Begin

   Target 'ISA86M'	(* 僅用於這個目標硬體 *)

   Valve1, StateX, Command, Alrm1	(* 變數名稱 *)

End

BinaryFile 'FILE1'	(* 二元檔資源 *)

Begin

   AnyTarget	(* 可用於所有的目標硬體 *)

   From 'c:\user\updatef.bin'	(* PC上的原始檔 *)

   To 'updatef.cfg'	(* PLC上的目標硬體檔 *)

End

TextFile 'FILE2'	(* 文字檔資源 *)

Begin

   Target 'ISA68M'

   From 'c:\nw\nwbd.txt'	(* PC上的原始檔 *)

   To '/nw/dat/nwbd'	(* PLC上的目標硬體檔 *)

End


資源編譯器

假如資源已被輸入資源定義檔中，於ISaGRAF碼產生後將出現一個對話框。按 "開始編譯" 按鈕執行資源編譯器，訊息及錯誤將顯示於視窗中。按 "離開" 避免資源編譯，則資源將不會加入ISaGRAF碼中。


實行

ISaGRAF不限制資源數、資料列及檔案大小，資源將儲存於產生碼之後。下面是資源目錄的格式 (以C表示)：

__RESOURCE:

{

  long nbres;	/* 定義的資源數 */

  {

    char name[16];	/* 資源名稱 */

    long type;	/* 資源資料型態 */

    long size;	/* 資料區塊的確實大小 */

    uint32 data;

    uint32 path_offset;	/* 指到字串的指標 */

  } /* 記錄大小 */

}

下面是 "type" 欄位的可能值：

1 = binary file (二元檔)

2 = text file (文字檔)

3 = ulong data (不帶符號長整數資料) (path_offset欄此時不使用)

4 = variable list (變數集) (path_offset欄此時不使用)

資源編譯器會根據目標硬體系統格式來轉換文字檔的換列字元。所有的指標都是32位元的相對位址偏移值，所有的資源名稱及路徑都以空字元當做字串結束。路徑及資料緊跟著目錄結構之後。


"工具" 功能表的命令

工具功能表的命令如下所示，使用者可以使用它們來顯示訊息在SFC視窗底部的小文字列中：

顯示編譯輸出	在輸出視窗中顯示最後編譯產生的錯誤訊息

尋找圖形內容	在圖形中尋找指定的圖形內容，並且將它們列在輸出視窗中

隱藏輸出列	關閉輸出列表視窗

當錯誤訊息或尋找的圖形內容被顯示在輸出視窗中時，使用者可以直接用滑鼠左鍵在任何一行上按兩下，然後在訊息的相關位置做設定。


除錯ST與IL程式

ST及IL程式於模擬或線上除錯時，無法修改程式內容。

IL	對IL程式而言，指令格式化成表列的樣子，指令中所用到的變數目前值顯示於相同列上，你可以於指令上雙按滑鼠，可改變對應的變數值。

ST	對ST程式而言，檢測集視窗被植入編輯視窗中，你可以拖曳視窗分隔線，改變視窗的大小。

儲存集合於硬碟中

 	於集合中插入變數

更改選取的變數

二元列印

每一個表列中的變數，ISaGRAF顯示它的名稱、目前值及註解文字。你可以拖曳標題列中的欄位分隔線，改變欄位大小。


儲存集合於硬碟中

"檔案 / 儲存表合" 命令儲存變數集於硬碟中。當你每一次在除錯模式下開啟ST或IL程式時，變數集就會自動重新載入。執行除錯視窗下的 "工具 / 檢測變數集" 命令可以讓你使用檢測集合工具來自由地開啟或修改集合。


 	於集合中插入變數

 "編輯 / 插入變數" 命令插入變數至集合中。變數名稱可以選取案件字典中的物件，因此使用者不需要手動輸入變數名稱。變數會插入於目前選取的變數之前。一個集合不能包含多於32個變數，在相同的集合中，同一個變數不能出現兩次以上。

 當ST程式中的變數名稱被反白時，按下工具列上的按鈕或執行 "編輯 / 檢測選取物" 命令來直接地傳送此變數到嵌入的檢測集合中。


更改選取的變數

"編輯 / 變更變數" 命令以另一個變數取代目前選取的變數，你亦可以使用 "剪下變數" 命令來移除集合中所選取的變數。


二元列印顯示

於任何時刻，你都可以切換表列或 "二元列印" 觀看模式。按工具列之 "放大" 按鈕或使用 "選項 / 二元列印" 命令來切換觀看模式。

於 "二元列印" 模式下，僅能顯示一個變數值，它的值以數值/符號格式顯示於視窗頂端，且以 "二元列印" 模式顯示，這個模式允許你以16進位的方式來檢測變數值。

當訊息字串包含不可列印字元時，"二元列印" 的顯示方式將會有相當的幫助。