西門(mén)子828D面板死機(jī)按鍵全壞維修
一、創(chuàng)建宏
在轉(zhuǎn)換之前可以創(chuàng)建宏用于替換STEP 5中無(wú)法轉(zhuǎn)換的語(yǔ)句,還有做一些不同于標(biāo)準(zhǔn)轉(zhuǎn)換的改變。通過(guò)轉(zhuǎn)換器創(chuàng)建轉(zhuǎn)換宏,如果一個(gè)宏被兩次定義,則*次定義有效。具有SIMATIC指令集(德文)的宏存放在文件S7U5CAPA.MAC中,具有通用指令集(英文)的宏放在文件S7U5CAPB.MAC里。轉(zhuǎn)換器能夠區(qū)分指令宏和OB宏??梢詣?chuàng)建256個(gè)指令宏和256個(gè)OB宏。
指令宏可以將STEP 5的語(yǔ)句替換為STEP 7規(guī)定的語(yǔ)句序列。
指令宏的一般結(jié)構(gòu):
$MACRO: <STEP 5 statement>
<STEP 7 statement sequence>
$ENDMACRO
STEP 5的語(yǔ)句必須*按規(guī)定(具有完整的地址)。轉(zhuǎn)換器將所規(guī)定的STEP 7語(yǔ)句序列插入到STEP 5語(yǔ)句的位置。
舉例:應(yīng)用CPU 945的STEP 5程序用到了延時(shí)中斷(組織塊OB 6),就可以通過(guò)調(diào)用特殊功能OB 250開(kāi)始這個(gè)中斷:

L KF +200
L KB 1
JU OB 250
*個(gè)加載語(yǔ)句表明了調(diào)用OB 6延時(shí)的毫秒數(shù)。這個(gè)語(yǔ)句可以保留,而剩下的兩個(gè)語(yǔ)句可以用不會(huì)在程序中出現(xiàn)的STEP 5語(yǔ)句來(lái)替代,比如TB RT 200.0。這樣,STEP 5程序變成如下優(yōu)先轉(zhuǎn)換的程序:
L KF +200
TB RT 200.0
現(xiàn)在寫(xiě)出如下指令宏:
$MACRO: TB RT 200.0
T MD 250;
CALL SFC 32 (
OB_NO :=20,
DTIME :=MD 250,
SIGN :=W#16#0000,
RET_VAL:=MW 254);
$ENDMACRO
STEP 5語(yǔ)句TB RT 200.0在轉(zhuǎn)換過(guò)程中被替換為STEP 7的特定語(yǔ)句序列。延時(shí)時(shí)間被加載到(高速暫存)存儲(chǔ)器字MW 250里,然后調(diào)用SFC 32。在開(kāi)始前的對(duì)話框中,轉(zhuǎn)換器建議延時(shí)OB時(shí)用數(shù)字20代替數(shù)字6。
OB宏使用特定的STEP 7語(yǔ)句序列替代OB的調(diào)用(JU OB或JC OB)。OB宏的一般結(jié)構(gòu)如下:
$OBCALL: <Number of the OB>
<STEP 7 statement sequence>
$ENDMACRO
舉例:在用于CPU 945的STEP 5程序中,通過(guò)調(diào)用組織塊OB 160來(lái)啟動(dòng)一個(gè)等待時(shí)間。在STEP 7里,等待時(shí)間是通過(guò)系統(tǒng)功能SFC 47 WAIT來(lái)實(shí)現(xiàn)的。如果鍵入如下宏:
$OBCALL: 160
T MW 250;
CALL SFC 47 (WT:=MW 250);
$ENDMACRO
轉(zhuǎn)換器會(huì)用特定的語(yǔ)句序列替換所有的OB 160(甚至是一個(gè)有條件的調(diào)用)。
以Edit→Replace Macro開(kāi)始輸入宏。在打開(kāi)的文件S7U5CAPA.MAC進(jìn)入宏,并且用File→Save保存,通過(guò)File→Exit結(jié)束宏輸入。
二、準(zhǔn)備轉(zhuǎn)換
如果STEP 5程序仍然沒(méi)有交叉列表文件nameXR.INI,那么必須為轉(zhuǎn)換生成一個(gè)交叉列表文件(在STEP 5里選擇Manage→Create XREF)。
然后進(jìn)行下列操作:
□為轉(zhuǎn)換程序建立自己的工作目錄,復(fù)制所需要的數(shù)據(jù)到該目錄。
□在包含有STEP 5程序的目錄(文件夾)里執(zhí)行轉(zhuǎn)換程序(如果用的是STEP 5下的
同一個(gè)編程器)。
□在磁盤(pán)上執(zhí)行轉(zhuǎn)換(如果在另外的編程器上生成了STEP 5文件)。
用于轉(zhuǎn)換的目錄里必須有文件名(name)為ST.S5D和XR.INI的兩個(gè)文件,在適當(dāng)?shù)那闆r下還可以有文件名為Z0.SEQ的文件。轉(zhuǎn)換器將目標(biāo)文件保存為文件名AC.AWL和A0.SEQ,適當(dāng)情況下還有文件名AF.SEQ和S7.SEQ,并將其存到該目錄下面。
文件S7S5CAPx.MAC保存在Windows目錄下面。
三、開(kāi)始轉(zhuǎn)換

通過(guò)Windows 95/NT任務(wù)欄Start→SIMATIC→STEP 7→S5 Convert File可以啟動(dòng)S5/S7的轉(zhuǎn)換器。通過(guò)File→Open選擇要轉(zhuǎn)換的S5程序,如果單擊“OK”,轉(zhuǎn)換器將顯示源文件和目標(biāo)文件以及新老塊的分配情況。如果有必要,在文本區(qū)域可以改變目標(biāo)文件的文件名。要改變默認(rèn)的塊號(hào),在行上雙擊,在對(duì)話框內(nèi)輸入新的塊號(hào)就可以了。轉(zhuǎn)換器可以識(shí)別標(biāo)準(zhǔn)塊,并用星號(hào)標(biāo)注出來(lái)(在編譯S7源程序之前,必須將這些塊從塊庫(kù)里復(fù)制到離線用戶程序里面)。
通過(guò)單擊“Start(開(kāi)始)”按鈕開(kāi)始轉(zhuǎn)換工作,在*次運(yùn)行時(shí),轉(zhuǎn)換器將S5程序編譯成S5-ASCII文本文件(文件名A0.SEQ),在第二次運(yùn)行時(shí)將此文件編譯成S7源文件,配置列表被編譯成符號(hào)表。在顯示出轉(zhuǎn)換中的錯(cuò)誤和警告信息后,轉(zhuǎn)換工作就完成了。所有的錯(cuò)誤和警告都包含在錯(cuò)誤文件AF.SEQ里面。
如果部分S5程序無(wú)法轉(zhuǎn)換,而且只能在S7程序里作為注釋,這時(shí)一個(gè)出錯(cuò)信息會(huì)顯示出來(lái)。警告包含了可能出現(xiàn)的問(wèn)題。如果轉(zhuǎn)換的語(yǔ)句需要再次檢查,會(huì)出現(xiàn)一個(gè)警告。這些信息部分與S5程序(如果發(fā)現(xiàn)一個(gè)非法的MC 5代碼)有關(guān),部分與S7程序(比如發(fā)現(xiàn)一個(gè)無(wú)法轉(zhuǎn)換的語(yǔ)句)有關(guān)。如果點(diǎn)擊一條信息,轉(zhuǎn)換器將在一個(gè)窗口中顯示信息所處的環(huán)境。
建議輸出打印錯(cuò)誤列表以便處理這些出錯(cuò)信息。
四、可轉(zhuǎn)換的功能
表32-2列出了轉(zhuǎn)換后基本上不會(huì)改變的語(yǔ)句,其中包含那些地址在STEP 7中被別的地址所替換的語(yǔ)句,比如從擴(kuò)展的S存儲(chǔ)位被從256開(kāi)始的M存儲(chǔ)位所替代。語(yǔ)法改變也會(huì)發(fā)生(比如,+G變成了+R)。一般來(lái)說(shuō)沒(méi)必要更正這些語(yǔ)句。
表32-2 運(yùn)算轉(zhuǎn)換
替換語(yǔ)句(存取塊參數(shù))大量被轉(zhuǎn)換。對(duì)一些語(yǔ)句來(lái)說(shuō),需要進(jìn)行某些編輯,這些語(yǔ)句是存取定時(shí)器和計(jì)數(shù)器(比如SEC= parname)以及在塊參數(shù)處理過(guò)程中(DO=parname)。這里,代碼塊或者數(shù)據(jù)塊都可以當(dāng)作實(shí)際地址,而且塊號(hào)可以在轉(zhuǎn)換之后改變。
組織塊包含STEP 7里使用的編號(hào)。所有其他包含用戶程序的塊都變成功能FC。轉(zhuǎn)換器將數(shù)據(jù)塊DB轉(zhuǎn)換成具有相同編號(hào)的全局?jǐn)?shù)據(jù)塊。數(shù)據(jù)塊DX被轉(zhuǎn)換成從編號(hào)256開(kāi)始的數(shù)據(jù)塊DB(如DX 1轉(zhuǎn)換為DB 257)。轉(zhuǎn)換器給出編號(hào),在轉(zhuǎn)換之前可以改變所有給出的塊編號(hào)。
轉(zhuǎn)換器在塊標(biāo)題文件里將塊的庫(kù)編號(hào)用作AUTHOR。如果功能塊的名字里沒(méi)有特殊字符(否則,會(huì)用沒(méi)有帶原始名字的特殊字符取代),則用作NAME。
特殊功能的調(diào)用不能轉(zhuǎn)換過(guò)來(lái)(例如,必須用系統(tǒng)功能來(lái)代替)。
輸入和輸出的地址在轉(zhuǎn)換中不會(huì)改變。對(duì)于帶有P區(qū)地址的加載和傳送語(yǔ)句,轉(zhuǎn)換器則用具有與之相同編號(hào)的外圍輸入PI和外圍輸出PQ來(lái)替代。Q區(qū)的地址映射到外圍I/O,從地址256開(kāi)始(L OB 0轉(zhuǎn)變成LPIB 256,T OB 1變成T PQB 257,等)。

位存儲(chǔ)位F的地址能夠無(wú)變動(dòng)地轉(zhuǎn)換。從存儲(chǔ)器位FY 200到FY 255的位存儲(chǔ)區(qū)可以用于“高速暫存存儲(chǔ)器”,如果STEP 5程序進(jìn)行大量的沒(méi)有變化的轉(zhuǎn)換,那么這些高速暫存存儲(chǔ)器位可以像通常那樣保留。如果要繼續(xù)使用STEP 5或者一部分STEP 5程序在STEP 7環(huán)境下運(yùn)行,建議將這些“高速暫存存儲(chǔ)器”存儲(chǔ)到臨時(shí)局部數(shù)據(jù)里,尤其是適用于要把用戶自己的程序標(biāo)準(zhǔn)從STEP 5轉(zhuǎn)換為STEP 7。擴(kuò)展的S位存儲(chǔ)將映射到從地址256開(kāi)始的位存儲(chǔ)區(qū)(A S 0.0變成A M 256.0,L SY 2變成L MB 258,等等)。
定時(shí)器和計(jì)數(shù)器功能在轉(zhuǎn)換時(shí)不會(huì)改變。在STEP 7里,直接訪問(wèn)定時(shí)器和計(jì)數(shù)器字的單獨(dú)位是不允許的。影響這些字的邊沿存儲(chǔ)位的位測(cè)試語(yǔ)句能夠用與定時(shí)器、計(jì)數(shù)器操作有關(guān)系的SET和CLR替代。
注意,在STEP 7里邊,數(shù)據(jù)是以字節(jié)編址的(作為比較,在STEP 5里是以字編址的),因此DL 0轉(zhuǎn)變?yōu)?/span>DBB 0,DR 0轉(zhuǎn)變?yōu)?/span>DBB 1。在表32-3里可以看到任何一個(gè)地址的轉(zhuǎn)換,轉(zhuǎn)換器通過(guò)直接地址和間接地址,都能夠使用正確的S7地址。對(duì)通過(guò)塊參數(shù)尋址的數(shù)據(jù),用戶自己必須轉(zhuǎn)換為以字節(jié)為單位的地址。
如果浮點(diǎn)數(shù)字在加載語(yǔ)句中是常量,或者用作實(shí)參,則可以無(wú)變化地轉(zhuǎn)換,而且可以像STEP 7的浮點(diǎn)數(shù)那樣轉(zhuǎn)換。用于替換STEP 5標(biāo)準(zhǔn)功能塊的標(biāo)準(zhǔn)塊也以STEP 7的格式(數(shù)據(jù)類(lèi)型REAL)處理浮點(diǎn)數(shù)目。如果將STEP 5程序中的浮點(diǎn)數(shù)放在一起或者已經(jīng)通過(guò)例如計(jì)算機(jī)連接這種方式將它們從另一個(gè)設(shè)備轉(zhuǎn)移來(lái),則必須將這些采用STEP 5浮點(diǎn)數(shù)表示的數(shù)字變成與數(shù)據(jù)類(lèi)型REAL相*??梢栽谠瓡?shū)磁盤(pán)的庫(kù)STL_Book里找到轉(zhuǎn)換的例子,在文件“General Examples”里可以找到(FC 45 GP_TO_REAL)。
表32-3 數(shù)據(jù)地址的地址轉(zhuǎn)換

西門(mén)子828D面板死機(jī)按鍵全壞維修