




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、TYJL-III型計算機(jī)聯(lián)鎖系統(tǒng)綜合柜使用說明(廣州教學(xué)站)2011-05-091系統(tǒng)構(gòu)成, 32聯(lián)鎖機(jī)柜 3 21 機(jī)柜附屬設(shè)施部分 4211電源端子, 4 212散熱風(fēng)扇 4 22聯(lián)鎖機(jī)部分 4 221聯(lián)鎖10機(jī)箱 4 222聯(lián)鎖機(jī)構(gòu)成 5 223聯(lián)鎖機(jī)母板 5 224聯(lián)鎖機(jī)CANARCNET通信配置表 6 23 智能I0部分 6 231智能I0板。 6 232智能I0機(jī)箱 6 233智能I0母板 7 234聯(lián)鎖10機(jī)箱 8 235智能I0半組母板 8 236智能I0板地址8C線配置 9 24 CAN通信 10 25 24V電源 11 251 24V電源系統(tǒng)標(biāo)識定義 12 252 A系24
2、V電源和B系24V電源關(guān)系 13附錄 A系24V電源和B系24V電源關(guān)系圖 聯(lián)鎖柜供電原理圖 聯(lián)鎖柜配線表 控制臺和微機(jī)桌配線表QUQu 4 4 4 4 4 5 5 6 6 6 6 7 8 8 9 0 1 2 21 系統(tǒng)構(gòu)成 新型計算機(jī)聯(lián)鎖系統(tǒng)從設(shè)備硬件結(jié)構(gòu)上分為四部分:綜合機(jī)柜、聯(lián)鎖機(jī)柜、電務(wù)維護(hù)終端設(shè)備和車務(wù)控制終端設(shè)備。 車務(wù)控制終端設(shè)備為車務(wù)人員與聯(lián)鎖系統(tǒng)的人機(jī)交互接口設(shè)備,即鼠標(biāo)控制臺,包括監(jiān)控機(jī)顯示器、音箱、鼠標(biāo)等設(shè)備,設(shè)于車務(wù)運(yùn)轉(zhuǎn)室; 電務(wù)維護(hù)終端設(shè)備為電務(wù)人員與聯(lián)鎖系統(tǒng)的人機(jī)交互接口設(shè)備,即維修機(jī),包括維修機(jī)主機(jī)、維修機(jī)顯示器、鼠標(biāo)、鍵盤、打印機(jī)等設(shè)備,設(shè)于機(jī)械室微機(jī)房;機(jī)和智
3、能采集、驅(qū)動板,設(shè)于機(jī)械室微機(jī)房; 綜合機(jī)柜安裝系統(tǒng)電源設(shè)備和監(jiān)控機(jī)設(shè)備,設(shè)于機(jī)械室微機(jī)房; 聯(lián)鎖機(jī)柜安裝聯(lián)鎖2 聯(lián)鎖機(jī)柜 新型聯(lián)鎖系統(tǒng)有兩套聯(lián)鎖機(jī)聯(lián)鎖A機(jī)和聯(lián)鎖B機(jī),兩套聯(lián)鎖機(jī)為同步并行工作關(guān)系,一套故障自行脫機(jī), 另一套繼續(xù)工作。聯(lián)鎖A機(jī)控制A系智能I0板,聯(lián)鎖B機(jī)控制B系智能I0板。聯(lián)鎖機(jī)柜安裝聯(lián)鎖機(jī)和智能I0板。一般車站有兩個聯(lián)鎖機(jī)柜,一個機(jī)柜安裝聯(lián)鎖A機(jī)及A系智能I0板,另一個機(jī)柜安裝聯(lián)鎖B機(jī)及B系智能I0板,兩個機(jī)柜硬件布置完全相同。小型車站將A、B兩套系統(tǒng)裝在一個聯(lián)鎖機(jī)柜中。 聯(lián)鎖機(jī)柜頂層安裝散熱風(fēng)扇單元,還有六個六U高度的空間層可供使用,從下往上定義為零層、一層、二層、三層、四
4、層、五層。零層安裝電源端子,其余五層安裝聯(lián)鎖機(jī)和智能I0機(jī)箱。 聯(lián)鎖機(jī)柜所安裝設(shè)備按功能分成以下三部分:聯(lián)鎖機(jī)部分、智能IO部分以及機(jī)柜附屬設(shè)施部分。2. 1 機(jī)柜附屬設(shè)施部分電源端子散熱風(fēng)扇211電源端子 電源端子包括壓接式接線端子、空氣開關(guān)、事故繼電器和防雷元件;為了表述方便把電源端子根據(jù)功能分成若干功能端子,安裝時以橘黃色端子擋片作為分各端子功能參見附錄(聯(lián)鎖柜供電原理圖)和(聯(lián)鎖柜配線表)2. 12散熱風(fēng)扇安裝在機(jī)柜頂層,用于機(jī)柜通風(fēng)散熱。由風(fēng)扇電源開關(guān)控制其工作。22 聯(lián)鎖機(jī)部分 CPU板為聯(lián)鎖機(jī)的核心。聯(lián)鎖機(jī)通過CAN總線與各個智能I/O板通信,通過ARCNET與另一套聯(lián)鎖機(jī)以及監(jiān)
5、控機(jī)A、B機(jī)通信。 主要設(shè)備如下: 一塊CPU板 一塊ARCNET通信板 一塊比較板 一塊電源板 聯(lián)鎖機(jī)母板221聯(lián)鎖/0機(jī)箱 聯(lián)鎖/0機(jī)箱同時安裝聯(lián)鎖機(jī)和智能I/O板,鎖機(jī)部分,智能I/O部分在下一節(jié)介紹。聯(lián)鎖/0機(jī)箱示意圖如下:222聯(lián)鎖機(jī)構(gòu)成 一塊CPU板(APCI5093):CPU板為聯(lián)鎖機(jī)的核心。CPU板與另一套聯(lián)鎖機(jī)的CPU板通過ARCNET通信完成主備信息交換。 一塊ARCNET通信板(APCI5656):通信板通過ARCNET與監(jiān)控A機(jī)、監(jiān)控B機(jī)通信,接收主控監(jiān)控機(jī)的操作命令,向兩臺監(jiān)控機(jī)傳遞整個系統(tǒng)的狀態(tài)信息和聯(lián)鎖運(yùn)算數(shù)據(jù);通信板通過CAN通信與智能I/O板聯(lián)系,向智能I/O
6、板發(fā)送控制命令,接收智能I/O板采集到的繼電器接點(diǎn)狀態(tài)信息以及智能I/O板本身的狀態(tài)信息。 一塊比較板:監(jiān)督校驗(yàn)CPU板的輸出命令,錯誤時停止比較板驅(qū)動輸出,事故繼電器落下,切斷智能I/O部分的工作電源,系統(tǒng)倒向安全。 一塊電源板:為聯(lián)鎖機(jī)提供工作電源,輸入24V,輸出5V。為了增加系統(tǒng)可靠性,新安裝的聯(lián)鎖系統(tǒng)取消了電源板,改用獨(dú)立電源為聯(lián)鎖母板提供5V直流電,獨(dú)立電源輸入交流220V、輸出直流5V。223聯(lián)鎖機(jī)母板聯(lián)鎖機(jī)母板示意圖如下: 主機(jī)96芯插座lCAN通信(主):A1:ACANH: A2:ACANL; A3:5VGNDCAN通信主從配置:A17、A18、A19、A20,B17、B18
7、、B19、B20 ARCNET通信:(監(jiān)控機(jī)A)A31:ARC+; A32:ARC (監(jiān)控機(jī)B)C31:ARC+; C32:ARC 主機(jī)96芯插座2(一般不用,用于特大站的CAN通信擴(kuò)展)CAN通信(主):Al:ACANH; A2:ACANL; A3:5VGND 從機(jī)96芯插座1未用 從機(jī)96芯插座2未用 J22、J23ARCNET主備通信:(另一套聯(lián)鎖機(jī))2:ARC+;3:ARC- J20、J2l未用 J25比較板驅(qū)動輸出接點(diǎn), J26聯(lián)鎖機(jī)24V電源輸入端子,端子有兩個接線位,接線位定義如圖所示224聯(lián)鎖機(jī)CAN/ARCNET通信配置表96芯插座管腳聯(lián)鎖機(jī)A聯(lián)鎖機(jī)BA-17,B1711A-
8、18,B1811A-19, B1910A-20,B20101:表示表中兩管腳不連接;0:表示表中兩管腳連接;23 智能I/0部分 智能I/0部分接收聯(lián)鎖機(jī)發(fā)來的控制命令,完成繼電器的驅(qū)動;同時將采集到的現(xiàn)場信號設(shè)備的接點(diǎn)狀態(tài)信息以及智能I/O板本身的狀態(tài)信息反饋給聯(lián)鎖機(jī)。智能I/0部分主要包括智能驅(qū)動采集板。 主要設(shè)備如下: 若干塊智能驅(qū)動采集板(FIMIO); 智能I/0母板; 智能I/O半組母板;231智能FO板 智能I/O板有一種型號,智能驅(qū)動采集板(FIMIO);智能驅(qū)動采集板(FIMIO)容量為16路驅(qū)動,32路采集,可以驅(qū)動16個繼電器,采集32個繼電器接點(diǎn);232智能I/0機(jī)箱
9、每個智能I/0機(jī)箱可以容納16塊智能驅(qū)動采集板(FIMIO)智能I/O機(jī)箱示意圖:233智能I/O母板智能I/O母板示意圖如下: CAN通信端子每塊母板有兩個CAN端子,完成CAN總線蛇型串接,一入一出。每個端子有六個接線位,接線位定義如圖所示。 匹配電阻在CAN總線蛇型連接的末端的母板, 電源端子:智能I/0機(jī)箱24V電源輸入端子,端子有四個接線位, I/O板地址跳線端子每一塊I/0板有兩組八位地址跳線端子,主地址端子和從地址端子,與/O板中主從CPU對應(yīng),兩組端子跳線配置一致。 10插座:48芯插座,驅(qū)動板使用前16路,采集板使用后32路。機(jī)箱IO插座端子定義:插座標(biāo)號DBZ11N11Nl
10、7OUT121N21N18OUT231N31N19OUT341N41N20OUT451N51N21OUT561N61N22OUT671N71N23OUT781N81N24OUT891N91N25OUT9101N101N26OUTl0111N111N27OUTl1121N121N28OUTl2131N131N29OUTl34141N141N30OUTl45151N151N31OUTl51161N161N32OUT16234聯(lián)鎖/10機(jī)箱 聯(lián)鎖/10機(jī)箱同時安裝聯(lián)鎖機(jī)和智能I/O板,各占半個機(jī)箱。聯(lián)鎖機(jī)己在上一節(jié)部分介紹,此部分介紹智能UO部分。 聯(lián)鎖/10機(jī)箱安裝8塊智能驅(qū)動采集板(FIMIO)
11、235智能I/O半組母板智能I/O半組母板示意圖如下: CAN通信端子 每塊母板有兩個CAN端子,完成CAN總線蛇型串接,一入一出。每個端子有六個接線位,接線位定義如圖所示。 匹配電阻在CAN總線蛇型連接的末端的母板,封連兩個匹配電阻跳線。 電源端子:智能I/0機(jī)箱24V電源輸入端子,端子有四個接線位,接線位定義如圖所示。 I/O板地址跳線端子每一塊I/0板有兩組八位地址跳線端子,主地址端子和從地址端子,與I/0板中主從CPU對應(yīng),兩組端子跳線配置一致。 系統(tǒng)狀態(tài)采集端子:系統(tǒng)定義第一塊采集板的第8位(CJ8)和第16位(CJl6)作為系統(tǒng)狀態(tài)采集點(diǎn)。此端子的CJ8和CJl6位已通過PCB走線
12、連到第一塊采集板的第8位和第16位。CJ8:采集監(jiān)控機(jī)切換板的主備狀態(tài);CJl6:采集綜合柜24V電源狀態(tài)。 10插座:48芯插座,驅(qū)動板使用前16路,采集板使用后32路。機(jī)箱IO插座端子定義: 插座標(biāo)號 D B Z 1 1N1 1N17 OUT1 2 1N2 1N18 OUT2 3 1N3 1N19 OUT3 4 1N4 1N20 OUT4 5 1N5 1N21 OUT5 6 1N6 1N22 OUT6 7 1N7 1N23 OUT7 8 1N8 1N24 OUT8 9 1N9 1N25 OUT9 10 1N10 1N26 OUTl0 11 1N11 1N27 OUT11 12 1N12 1
13、N28 OUTl2 13 m13 1N29 OUTl3 14 1N14 1N30 OUTl4 15 1N15 1N31 OUTl5 16 1N16 1N32 OUTl6236智能I/0板地址跳線配置驅(qū)動采集板地址:使用90FF(16進(jìn)制)位位值(0或1)10進(jìn)制權(quán)值從主低ll-22-34-48-高5l-62-74-88-位值二0或1,該位跳線封連為1,不封連為0;高位地址碼二高四位(位值*權(quán)值)之10進(jìn)制和換算成16進(jìn)制低位地址碼二低四位(位值*權(quán)值)之10進(jìn)制和換算成16進(jìn)制高位:A16=1010=1*8+0*4+1*2+0*1;低位:516=510=0*8+1*4+0*2+1*124 CA
14、N通信 新II型聯(lián)鎖系統(tǒng)采用CAN總線作為聯(lián)鎖機(jī)與智能I/0板的安全數(shù)據(jù)交換通道,它完成聯(lián)所鎖機(jī)與各智能I/0板之間的雙向高速安全數(shù)據(jù)交換功能。 新II型聯(lián)鎖系統(tǒng)共有兩條CAN總線。 聯(lián)鎖機(jī)A與其控制的A系智能I/0板使用一條CAN總線。CAN總線完成聯(lián)鎖A機(jī)CPU板與其控制的A系智能I/0板中CPU的通信。 聯(lián)鎖機(jī)B與其控制的B系智能I/0板使用另一條CAN總線。CAN總線完成聯(lián)鎖B機(jī)CPU板與其控制的B系智能I/0板中CPU的通信。CAN通信涉及聯(lián)鎖機(jī)中的CAN/ARCNET通信板、聯(lián)鎖機(jī)母板的96芯插座、通信轉(zhuǎn)接板、智能I/0母板上的CAN端子、智能I/0板中的CAN通信部分。CAN總線
15、為蛇型連接,總線末端需端接匹配電阻,也就是在最后一塊智能I/0母板上封連匹配電阻跳線。CAN通信關(guān)系圖2. 5 24V電源綜合柜的兩個24V電源分別向聯(lián)鎖A系和聯(lián)鎖B系供電。聯(lián)鎖A系包括聯(lián)鎖機(jī)柜A和聯(lián)鎖機(jī)柜A驅(qū)動和采集的繼電器;聯(lián)鎖B系包括聯(lián)鎖幾柜B和聯(lián)鎖機(jī)柜B驅(qū)動和采集的繼電器。在A系和B系中,采集電源直接使用綜合柜提供的電源,驅(qū)動電源則由驅(qū)動板上的24V安全電源供電。251 24V電源系統(tǒng)標(biāo)識定義 驅(qū)動電源的+24V是機(jī)柜電源經(jīng)驅(qū)動板上的安全電源逆變而出,與機(jī)柜電源的+24V容易混淆,為了便于表述,將系統(tǒng)電源標(biāo)識統(tǒng)一定義。+24V:驅(qū)動板逆變電源輸出正端24VGND:驅(qū)動板逆變電源輸出負(fù)端
16、,機(jī)柜24V電源正端;24V:機(jī)柜24V電源負(fù)端;系統(tǒng)使用24VGND作為系統(tǒng)地,接機(jī)殼和大地;系統(tǒng)使用24VGND作為驅(qū)動回線,驅(qū)動線輸出為+24V;系統(tǒng)使用-24V作為采集回線,采集參考電壓為24VGND;252 A系24V電源和B系24V電源關(guān)系 24VGND:兩系的24VGND連在一起,同時和大地相連; -24V:兩系的24V在機(jī)柜側(cè)是完全分開的,機(jī)柜A使用綜合柜24V電源A的 -24V,機(jī)柜B使用綜合柜24V電源B的-24V;在繼電器側(cè),兩個-24V各自通 過一個二極管后連在一起,作為統(tǒng)一的采集回線使用。(詳見附錄 A系24VB系24V電源關(guān)系圖)A系24V電源和B系24V電源關(guān)系圖
17、附錄資料:不需要的可以自行刪除 perl函數(shù)應(yīng)用一、進(jìn)程處理函數(shù)1、進(jìn)程啟動函數(shù)函數(shù)名eval調(diào)用語法eval(string)解說將string看作Perl語句執(zhí)行。正確執(zhí)行后,系統(tǒng)變量$為空串,如果有錯誤,$中為錯誤信息。例子$print = print (hello,worldn);eval ($print);結(jié)果輸出hello, world函數(shù)名system調(diào)用語法system(list)解說list中第一個元素為程序名,其余為參數(shù)。system啟動一個進(jìn)程運(yùn)行程序并等待其結(jié)束,程序結(jié)束后錯誤代碼左移八位成為返回值。例子proglist = (echo, hello,world!);sy
18、stem(proglist);結(jié)果輸出hello, world!函數(shù)名fork調(diào)用語法procid = fork();解說創(chuàng)建程序的兩個拷貝-父進(jìn)程和子進(jìn)程-同時運(yùn)行。子進(jìn)程返回零,父進(jìn)程返回非零值,此值為子程序的進(jìn)程ID號。例子$retval = fork();if ($retval = 0) # this is the child process exit; # this terminates the child process else # this is the parent process結(jié)果輸出無函數(shù)名pipe調(diào)用語法pipe (infile, outfile);解說與fork合用
19、,給父進(jìn)程和子進(jìn)程提供通信的方式。送到outfile文件變量的信息可以通過infile文件變量讀取。步驟:1、調(diào)用pipe2、用fork將程序分成父進(jìn)程和子進(jìn)程3、一個進(jìn)程關(guān)掉infile,另一個關(guān)掉outfile例子pipe (INPUT, OUTPUT);$retval = fork();if ($retval != 0) # this is the parent process close (INPUT); print (Enter a line of input:n); $line = ; print OUTPUT ($line); else # this is the child p
20、rocess close (OUTPUT); $line = ; print ($line); exit (0);結(jié)果輸出$programEnter a line of input:Here is a test lineHere is a test line$函數(shù)名exec調(diào)用語法exec (list);解說與system類似,區(qū)別是啟動新進(jìn)程前結(jié)束當(dāng)前程序。常與fork合用,當(dāng)fork分成兩個進(jìn)程后,子進(jìn)程用exec啟動另一個程序。例子 結(jié)果輸出函數(shù)名syscall調(diào)用語法syscall (list);解說調(diào)用系統(tǒng)函數(shù),list第一個元素是系統(tǒng)調(diào)用名,其余為參數(shù)。如果參數(shù)是數(shù)字,就轉(zhuǎn)化成C的
21、整型數(shù)(type int)。否則傳遞字符串的指針。詳見UNIX的幫助或Perl文檔。使用syscall必須包含文件syscall.pl,即:require (syscall.ph); 例子結(jié)果輸出2、進(jìn)程終止函數(shù)函數(shù)名Die調(diào)用語法die (message);解說終止程序并向STDERR輸出錯誤信息。message可以為字符串或列表。如果最后一個參數(shù)不包含換行符,則程序文件名和行號也被輸出。例子die (Cannot open input file);結(jié)果輸出Cannot open input file at myprog line 6.函數(shù)名warn調(diào)用語法warn (message);解說
22、與die類似,區(qū)別是不終止程序。例子warn(Danger! Danger!n);結(jié)果輸出Danger! Danger!函數(shù)名exit調(diào)用語法exit (retcode);解說終止程序并指定返回值。例子exit(2);結(jié)果輸出無函數(shù)名kill調(diào)用語法kill (signal, proclist);解說給一組進(jìn)程發(fā)送信號。signal是發(fā)送的數(shù)字信號,9為殺掉進(jìn)程。proclist是進(jìn)程ID列表。詳見kill的UNIX幫助。例子結(jié)果輸出3、進(jìn)程控制函數(shù)函數(shù)名sleep調(diào)用語法sleep (time);解說將程序暫停一段時間。time是停止的秒數(shù)。返回值為實(shí)際停止的秒數(shù)。例子sleep (5);結(jié)
23、果輸出無函數(shù)名wait調(diào)用語法procid = wait();解說暫停程序執(zhí)行,等待子進(jìn)程終止。不需要參數(shù),返回值為子進(jìn)程ID,如果沒有子進(jìn)程,返回-1。例子結(jié)果輸出函數(shù)名waitpid調(diào)用語法waitpid (procid, waitflag);解說暫停程序執(zhí)行,等待特定的子進(jìn)程終止。procid為等待的進(jìn)程ID例子$procid = fork();if ($procid = 0) # this is the child process print (this line is printed firstn); exit(0); else # this is the parent proces
24、s waitpid ($procid, 0); print (this line is printed lastn);結(jié)果輸出$ programthis line is printed firstthis line is printed last$4、其它控制函數(shù)函數(shù)名caller調(diào)用語法subinfo = caller();解說返回調(diào)用者的程序名和行號,用于Perl Debugger。返回值為三元素的列表:1、調(diào)用處的包名2、調(diào)用者文件名3、調(diào)用處的行號例子結(jié)果輸出函數(shù)名chroot調(diào)用語法chroot (dir);解說改變程序的根目錄,詳見chroot幫助。例子結(jié)果輸出函數(shù)名local調(diào)用
25、語法local($variable);解說在語句塊(由大括號包圍的語句集合)中定義局域變量,僅在此語句塊中起作用,對其的改變不對塊外同名變量造成影響。千萬不要在循環(huán)中使用,否則每次循環(huán)都定義一個新的局域變量!例子結(jié)果輸出函數(shù)名times調(diào)用語法timelist = times解說返回該程序及所有子進(jìn)程消耗的工作時間。返回值為四個浮點(diǎn)數(shù)的列表:1、程序耗用的用戶時間2、程序耗用的系統(tǒng)時間3、子進(jìn)程耗用的用戶時間4、子進(jìn)程耗用的系統(tǒng)時間例子結(jié)果輸出二、數(shù)學(xué)函數(shù)函數(shù)名sin調(diào)用語法retval = sin (value);解說參數(shù)為弧度值。函數(shù)名cos調(diào)用語法retval = cos (value)
26、;解說參數(shù)為弧度值。函數(shù)名atan2調(diào)用語法retval = atan2 (value1, value2);解說運(yùn)算并返回value1除以value2結(jié)果的arctan值,單位為弧度,范圍在-PIPI。應(yīng)用例:角度轉(zhuǎn)化成弧度子程序。sub degrees_to_radians local ($degrees) = _; local ($radians);11: $radians = atan2(1,1) * $degrees / 45;函數(shù)名sqrt調(diào)用語法retval = sqrt (value);解說平方根函數(shù)。value為非負(fù)數(shù)。函數(shù)名exp調(diào)用語法retval = exp (value
27、);解說返回e的value次方。函數(shù)名log調(diào)用語法retval = log (value);解說以e為底的自然對數(shù)。函數(shù)名abs調(diào)用語法retval = abs (value);解說絕對值函數(shù)。(Perl 4中沒有)函數(shù)名rand調(diào)用語法retval = rand (num);解說隨機(jī)數(shù)函數(shù),返回0和整數(shù)num之間的一個浮點(diǎn)數(shù)。函數(shù)名srand調(diào)用語法srand (value);解說初始化隨機(jī)數(shù)生成器。保證每次調(diào)用rand真正隨機(jī)。三、字符串處理函數(shù)函數(shù)名index調(diào)用語法position = index (string, substring, position);解說返回子串substri
28、ng在字符串string中的位置,如果不存在則返回-1。參數(shù)position是可選項(xiàng),表示匹配之前跳過的字符數(shù),或者說從該位置開始匹配。函數(shù)名rindex調(diào)用語法position = rindex (string, substring, position);解說與index類似,區(qū)別是從右端匹配。函數(shù)名length調(diào)用語法num = length (string);解說返回字符串長度,或者說含有字符的數(shù)目。函數(shù)名pos調(diào)用語法offset = pos(string);解說返回最后一次模式匹配的位置。函數(shù)名substr調(diào)用語法substr (expr, skipchars, length)解說抽
29、取字符串(或表達(dá)式生成的字符串)expr中的子串,跳過skipchars個字符,或者說從位置skipchars開始抽取子串(第一個字符位置為0),子串長度為length,此參數(shù)可忽略,意味著取剩下的全部字符。當(dāng)此函數(shù)出現(xiàn)在等式左邊時,expr必須為變量或數(shù)組元素,此時其中部分子串被等式右邊的值替換。函數(shù)名study調(diào)用語法study (scalar);解說用一種內(nèi)部格式提高變量的訪問速度,同一時刻只對一個變量起作用。函數(shù)名lcuc調(diào)用語法retval = lc(string);retval = uc(string);解說將字符串全部轉(zhuǎn)換成小/大寫字母。函數(shù)名lcfirstucfirst調(diào)用語法
30、retval = lcfirst(string);retval = ucfirst(string);解說將第一個字母轉(zhuǎn)換成小/大寫。函數(shù)名quotameta調(diào)用語法newstring = quotemeta(oldstring);解說將非單詞的字母前面加上反斜線()。語句 : $string = quotemeta($string);等效于:$string = s/(W)/$1/g;常用于模式匹配操作中,確保字符串中沒有字符被看作匹配操作符。函數(shù)名join調(diào)用語法join (joinstr, list);解說把字符串列表(數(shù)組)組合成一個長的字符串,在每兩個列表元素間插入串joinstr。函數(shù)
31、名sprintf調(diào)用語法sprintf (string, fields);解說與printf類似,區(qū)別是結(jié)果不輸出到文件,而作為返回值賦給變量。例子$num = 26;$outstr = sprintf(%d = %x hexadecimal or %o octaln,$num, $num, $num);print ($outstr);結(jié)果輸出26 = 1a hexadecimal or 32 octal四、標(biāo)量轉(zhuǎn)換函數(shù)函數(shù)名chop調(diào)用語法$lastchar = chop (var);解說var可為變量或數(shù)組,當(dāng)var為變量時,最后一個字符被刪除并賦給$lastchar,當(dāng)var為數(shù)組/列表
32、時,所有元素的最后一個字符被刪除,最后一個元素的最后一個字母賦給$lastchar。函數(shù)名chomp調(diào)用語法result = chomp(var);解說檢查字符串或字符串列表中元素的最后一個字符是否為由系統(tǒng)變量$/定義的行分隔符,如果是就刪除。返回值為實(shí)際刪除的字符個數(shù)。函數(shù)名crypt調(diào)用語法result = crypt (original, salt);解說用DES算法加密字符串,original是將要加密的字符串,salt是兩個字符的字符串,定義如何改變DES算法,以使更難解碼。返回值為加密后的串。函數(shù)名hex調(diào)用語法decnum = hex (hexnum);解說將十六進(jìn)制數(shù)(字符串形
33、式)轉(zhuǎn)化為十進(jìn)制數(shù)。函數(shù)名int調(diào)用語法intnum = int (floatnum);解說將浮點(diǎn)數(shù)舍去小數(shù)部分轉(zhuǎn)化為整型數(shù)。函數(shù)名oct調(diào)用語法decnum = oct (octnum);解說將八進(jìn)制數(shù)(字符串形式)或十六進(jìn)制數(shù)(0 x.形式)轉(zhuǎn)化為十進(jìn)制數(shù)。函數(shù)名ord調(diào)用語法asciival = ord (char);解說返回單個字符的ASCII值,與PASCAL中同名函數(shù)類似。函數(shù)名chr調(diào)用語法$char = chr (asciival);解說返回ASCII值的相應(yīng)字符,與PASCAL中同名函數(shù)類似。函數(shù)名pack調(diào)用語法formatstr = pack(packformat, li
34、st);解說把一個列表或數(shù)組以在實(shí)際機(jī)器存貯格式或C等編程語言使用的格式轉(zhuǎn)化(包裝)到一個簡單變量中。參數(shù)packformat包含一個或多個格式字符,列表中每個元素對應(yīng)一個,各格式字符間可用空格或tab隔開,因?yàn)閜ack忽略空格。除了格式a、A和外,重復(fù)使用一種格式多次可在其后加個整數(shù),如: $twoints = pack (i2, 103, 241);把同一格式應(yīng)用于所有的元素則加個*號,如: $manyints = pack (i*, 14, 26, 11, 83);對于a和A而言,其后的整數(shù)表示要創(chuàng)建的字符串長度,重復(fù)方法如下: $strings = pack (a6 x 2, test
35、1, test2);格式的情況比較特殊,其后必須加個整數(shù),該數(shù)表示字符串必須的長度,如果長度不夠,則用空字符(null)補(bǔ)足,如: $output = pack (a 6 a, test, test2);pack函數(shù)最常見的用途是創(chuàng)建可與C程序交互的數(shù)據(jù),例如C語言中字符串均以空字符(null)結(jié)尾,創(chuàng)建這樣的數(shù)據(jù)可以這樣做: $Cstring = pack (ax, $mystring);下表是一些格式字符與C中數(shù)據(jù)類型的等價關(guān)系:字符 等價C數(shù)據(jù)類型CcharddoubleffloatiintIunsigned int (or unsigned)llongLunsigned longssh
36、ortSunsigned short完整的格式字符見下表。 格式字符 描述a用空字符(null)補(bǔ)足的字符串A用空格補(bǔ)足的字符串b位串,低位在前B位串,高位在前c帶符號字符(通常-128127)C無符號字符(通常8位)d雙精度浮點(diǎn)數(shù)f單精度浮點(diǎn)數(shù)h十六進(jìn)制數(shù)串,低位在前H十六進(jìn)制數(shù)串,高位在前i帶符號整數(shù)I無符號整數(shù)l帶符號長整數(shù)L無符號長整數(shù)n網(wǎng)絡(luò)序短整數(shù)N網(wǎng)絡(luò)序長整數(shù)p字符串指針s帶符號短整數(shù)S無符號短整數(shù)u轉(zhuǎn)化成uuencode格式vVAX序短整數(shù)VVAX序長整數(shù)x一個空字節(jié)X回退一個字節(jié)以空字節(jié)(null)填充函數(shù)名unpack調(diào)用語法list = unpack (packformat
37、, formatstr);解說unpack與pack功能相反,將以機(jī)器格式存貯的值轉(zhuǎn)化成Perl中值的列表。其格式字符與pack基本相同(即上表),不同的有:A格式將機(jī)器格式字符串轉(zhuǎn)化為Perl字符串并去掉尾部所有空格或空字符;x為跳過一個字節(jié);為跳過一些字節(jié)到指定的位置,如4為跳過4個字節(jié)。下面看一個和X合同的例子: $longrightint = unpack (* X4 L, $packstring);此語句將最后四個字節(jié)看作無符號長整數(shù)進(jìn)行轉(zhuǎn)化。下面看一個對uuencode文件解碼的例子:1 : #!/usr/local/bin/perl2 : 3 : open (CODEDFILE,
38、 /u/janedoe/codefile) |4 : die (Cant open input file);5 : open (OUTFILE, outfile) |6 : die (Cant open output file);7 : while ($line = ) 8 : $decoded = unpack(u, $line);9 : print OUTFILE ($decoded);10: 11: close (OUTFILE);12: close (CODEDFILE); 當(dāng)將pack和unpack用于uuencode時,要記住,雖然它們與UNIX中的uuencode、uudecod
39、e工具算法相同,但并不提供首行和末行,如果想用uudecode對由pack的輸出創(chuàng)建的文件進(jìn)行解碼,必須也把首行和末行輸出(詳見UNIX中uuencode幫助)。函數(shù)名vec調(diào)用語法retval = vec (vector, index, bits);解說顧名思義,vec即矢量(vector)函數(shù),它把簡單變量vector的值看作多塊(維)數(shù)據(jù),每塊含一定數(shù)目的位,合起來即一個矢量數(shù)據(jù)。每次的調(diào)用訪問其中一塊數(shù)據(jù),可以讀取,也可以寫入。參數(shù)index就象數(shù)組下標(biāo)一樣,提出訪問哪一塊,0為第一塊,依次類推,要注意的是訪問次序是從右到左的,即第一塊在最右邊。參數(shù)bits指定每塊中的位數(shù),可以為1,
40、2,4,8,16或32。例子1 : #!/usr/local/bin/perl2 : 3 : $vector = pack (B*, 11010011);4 : $val1 = vec ($vector, 0, 4);5 : $val2 = vec ($vector, 1, 4);6 : print (high-to-low order values: $val1 and $val2n);7 : $vector = pack (b*, 11010011);8 : $val1 = vec ($vector, 0, 4);9 : $val2 = vec ($vector, 1, 4);10: pr
41、int (low-to-high order values: $val1 and $val2n); 結(jié)果high-to-low order values: 3 and 13low-to-high order values: 11 and 12函數(shù)名defined調(diào)用語法retval = defined (expr);解說判斷一個變量、數(shù)組或數(shù)組的一個元素是否已經(jīng)被賦值。expr為變量名、數(shù)組名或一個數(shù)組元素。如果已定義,返回真,否則返回假。函數(shù)名undef調(diào)用語法retval = undef (expr);解說取消變量、數(shù)組或數(shù)組元素甚至子程序的定義,回收其空間。返回值始終為未定義值,此值與空
42、串等效。五、數(shù)組和列表函數(shù)函數(shù)名grep調(diào)用語法foundlist = grep (pattern, searchlist);解說與同名的UNIX查找工具類似,grep函數(shù)在列表中抽取與指定模式匹配的元素,參數(shù)pattern為欲查找的模式,返回值是匹配元素的列表。例子list = (This, is, a, test);foundlist = grep(/tT/, list);結(jié)果foundlist = (This, test);函數(shù)名splice調(diào)用語法retval = splice (array, slipelements, length, newlist);解說拼接函數(shù)可以向列表(數(shù)組)
43、中間插入元素、刪除子列表或替換子列表。參數(shù)skipelements是拼接前跳過的元素數(shù)目,length是被替換的元素數(shù),newlist是將要拼接進(jìn)來的列表。當(dāng)newlist的長度大于length時,后面的元素自動后移,反之則向前縮進(jìn)。因此,當(dāng)length=0時,就相當(dāng)于向列表中插入元素,而形如語句splice (array, -1, 0, Hello);則向數(shù)組末尾添加元素。而當(dāng)newlist為空時就相當(dāng)于刪除子列表,這時,如果length為空,就從第skipelements個元素后全部刪除,而刪除最后一個元素則為:splice (array, -1);這種情況下,返回值為被刪去的元素列表。函數(shù)名shift調(diào)用語法element = shift (arrayvar);解說刪去數(shù)組第一個元素,剩下元素前移,返回被刪去的元素。不加參數(shù)時,缺省地對ARGV進(jìn)行操作。函數(shù)名unshift調(diào)用語法count = unshift (arrayver, elements);解說作用與shift相反,在數(shù)組arrayvar開頭增加一個或多個元素,返回值為結(jié)果(列表)的長度。等價于splice (array, 0, 0,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨區(qū)域教師課題研究的政策支持與保障
- 制定具有挑戰(zhàn)性的工作計劃
- 學(xué)校秋季師德師風(fēng)建設(shè)計劃
- 跨界合作推動血透流程優(yōu)化創(chuàng)新
- 內(nèi)部控制的評估與改進(jìn)方案計劃
- 秋季學(xué)期職業(yè)生涯規(guī)劃指導(dǎo)計劃
- 如何應(yīng)對企業(yè)危機(jī)的挑戰(zhàn)計劃
- 跨國公司財務(wù)管理的全球化與成本控制
- 超科技術(shù)的綠色環(huán)保應(yīng)用與實(shí)踐
- 食品供應(yīng)鏈管理預(yù)防超市食品安全事故的關(guān)鍵環(huán)節(jié)
- 統(tǒng)編版小學(xué)語文六年級下冊第四單元《理想和信念》作業(yè)設(shè)計
- 2025年春季學(xué)期學(xué)校工作計劃及安排表
- 化驗(yàn)班組安全培訓(xùn)
- 英語-廣東省大灣區(qū)2025屆高三第一次模擬試卷和答案
- 丹佛斯變頻器培訓(xùn)經(jīng)典課件
- 2024年06月日照銀行社會招聘筆試歷年參考題庫附帶答案詳解
- 烤房租賃合同范例
- 建筑地暖系統(tǒng)工程安裝考核試卷
- 專題四 指數(shù)函數(shù)與對數(shù)函數(shù)【中職專用】2025春季對口高考數(shù)學(xué)專題復(fù)習(xí)(河南適用)(解析版)
- 江蘇卷2024年高考語文第一次模擬考試一(原卷版+解析版)
- 2024解析:第十六章電壓和電阻-講核心(解析版)
評論
0/150
提交評論