slrc是什么品牌?
凱攝奇SLRC-4是凱攝奇品牌的一款相機(jī)包。這款CaseLogic SLRC-4單反相機(jī)背包為雙層絲織材料生產(chǎn),耐臟耐磨易于清潔,內(nèi)襯專業(yè)防震材料保護(hù)您的相機(jī)。內(nèi)側(cè)面料光滑細(xì)膩決不會劃傷磨損您的相機(jī)表面。總體來說這款包是為專業(yè)的數(shù)碼攝影發(fā)燒友設(shè)計(jì)的
康耐視相機(jī)更改相機(jī)名稱
Cognex康耐視相機(jī)操作使用說明書
康耐視相機(jī)操作使用說明書
文件狀態(tài):■草稿□修改□定稿 文檔密級 □不保密■內(nèi)部□機(jī)密
項(xiàng)目名稱
版本號 1.0
描述 康耐視相機(jī)操作使用說明書
編寫人 余國鷹 編寫日期 2015/9/10
審核人 審核日期
一、康耐視相機(jī)具體設(shè)置1.1軟件安裝雙擊康耐視相機(jī)軟件Cognex_In-Sight_Software_4.8.1,按照步驟一步步安裝即可。1.2流程編輯1. 設(shè)置電腦本地連接IPV4地址為192.168.39.12(設(shè)置為39段即可)。2. 雙擊康耐視In-Sight瀏覽器軟件進(jìn)入相機(jī)設(shè)置界面,軟件會自動搜索連接的相機(jī)設(shè)備,如下圖1.1所示。?圖1.13. 雙擊相機(jī)設(shè)備(紅色橢圓內(nèi)設(shè)備圖標(biāo)),進(jìn)入相機(jī)編輯界面,如下圖1.2所示。圖1.24. 在應(yīng)用程序步驟中,開始、設(shè)置工具、配置結(jié)果、完成這4個(gè)步驟形成一個(gè)完整的相機(jī)操作流程;?開始 單擊“開始”中“已連接”,如下圖1.3所示,可以進(jìn)行連接設(shè)備、斷開設(shè)備、刷新、添加等操作。圖1.3單擊“開始”中的“設(shè)置圖像”,如下圖1.4所示。在“采集/加載圖像”對話框中,“觸發(fā)器”按鈕是進(jìn)行拍照,“實(shí)況視頻”按鈕是實(shí)時(shí)顯示相機(jī)中的圖像,“從PC加載圖像”按鈕是加載一張存在的圖像。
圖1.4在“編輯采集設(shè)置”對話框中,設(shè)置一系列相機(jī)參數(shù),根據(jù)具體需要進(jìn)行調(diào)節(jié)?設(shè)置工具 單擊“設(shè)置工具”中“定位部件”按鈕,對檢測模型進(jìn)行定位,作為識別的模型進(jìn)行對比;單擊“設(shè)置工具”中“檢測部件”按鈕,對模型進(jìn)行編輯操作。在“定位部件”的設(shè)置對話框中,如下圖1.5所示,合格閥值:每次拍照之后的得分如果大于閥值,則拍照成功,否則失??;旋轉(zhuǎn)公差:檢測部件能夠旋轉(zhuǎn)的角度范圍,如果在范圍之類則會拍照成功,否則會失敗圖1.5?配置結(jié)果 單擊“配置結(jié)果”中“通信”按鈕,進(jìn)行通訊設(shè)置操作,如下圖1.6所示。新時(shí)達(dá)機(jī)器人視覺通信采用的TCP/IP通訊方式,單擊“TCP/IP”,如下圖1.7所示,在“TCP/IP設(shè)置”對話框中,“服務(wù)器主機(jī)名”設(shè)為192.168.39.220(機(jī)器人控制器IP地址),“端口”設(shè)置與CodeSys中相同,本例中設(shè)為9876,“超時(shí)時(shí)間”設(shè)為15000,“結(jié)束符”設(shè)為字符串(CR13)。單擊“格式化輸出字符串”,進(jìn)行輸出操作,如下圖1.8所示。勾選“使用分隔符”,表示在輸出之間用逗號分隔符進(jìn)行隔開,方便進(jìn)行數(shù)據(jù)處理操作;單擊“添加”按鈕,可以輸出很多數(shù)據(jù),這里只需要輸出4個(gè)數(shù)據(jù),“失敗”、“定位器.X”、“定位器.Y”、“定位器.角度”;輸出數(shù)據(jù)說明:均為7個(gè)字節(jié)寬度,除圖案.失敗是整形外,其它數(shù)據(jù)均為浮點(diǎn)型,小數(shù)點(diǎn)位數(shù)為2位。1)第一位圖案.失?。号卸ǚ?,為0表示采集到特征,拍照成功;為1則拍照失敗。2)第二位圖案.定位器.X:輸出用戶坐標(biāo)系下的X方向絕對值。3)第三位圖案.定位器.Y:輸出用戶坐標(biāo)系下的Y方向絕對值。4) 第四位圖案.定位器.角度:輸出用戶坐標(biāo)系下的相對角度。圖1.6圖1.7圖1.8?完成 在“完成”中單擊“保存作業(yè)”,則保存當(dāng)前作業(yè)任務(wù)中的所有設(shè)置;在“完成”中單擊“運(yùn)行作業(yè)”,則運(yùn)行當(dāng)前作業(yè)任務(wù)。注意,以上參數(shù)設(shè)定必須在脫機(jī)模式下才能夠設(shè)置,在聯(lián)機(jī)狀態(tài)下參數(shù)不能設(shè)置,與外界設(shè)備實(shí)時(shí)通訊必須在聯(lián)機(jī)模式下;物體旋轉(zhuǎn)一定角度拍照失敗,看檢測部件是否超過相機(jī)視野范圍和旋轉(zhuǎn)角度值設(shè)置是否合理。
1.3Codesys通信注意事項(xiàng)a)說明:設(shè)定PC端的IP地址,IP地址必須192.168.39.XXX,這里設(shè)定為192.168.39.12,用網(wǎng)線與相機(jī)控制器相連;b)通信流程包括:建立TCPIP的服務(wù)器端并連接,給相機(jī)發(fā)送指令,從相機(jī)接收數(shù)據(jù);c)圖1.7中如果把“字段分隔符”改為“停止”,則兩個(gè)數(shù)據(jù)之間就是無分隔符的直接連接;如果選擇其他,則有相應(yīng)的分隔符號;d)例:采用“消零”為“有”,“字段分隔符”為“停止”的方式時(shí),相機(jī)發(fā)送數(shù)據(jù)“-001.00”和“1010.02”時(shí),實(shí)際上發(fā)送了“45 48 48 49 46 48 48 49 48 49 48 46 48 50 13”(13是回車符的ASIIC碼);e)在下載工程成功時(shí),查看通訊是否連接正常。當(dāng)client_congnex任務(wù)中的step_cognex:=2和server_cognex中的step_server:=2時(shí),此時(shí)通訊成功,否則通訊不正常,需要查看設(shè)備是否連接好和In-Sight軟件是否處于聯(lián)機(jī)狀態(tài)。f)詳細(xì)指令及其他形式的通信可參考文檔《通信設(shè)定sdnb-cn5-714d_fh_fz5》。二、相機(jī)標(biāo)定要實(shí)現(xiàn)將相機(jī)采集的數(shù)據(jù)轉(zhuǎn)換為機(jī)器人坐標(biāo)系下的位姿數(shù)據(jù),必須建立相機(jī)坐標(biāo)系與機(jī)器人坐標(biāo)系的對應(yīng)轉(zhuǎn)換關(guān)系,該過程通過相機(jī)標(biāo)定來實(shí)現(xiàn)。相機(jī)也分平面相機(jī)和三維相機(jī),前者只支持平面數(shù)據(jù)采集,后者則可以獲取xyz空間值。以三維相機(jī)為例,要詳細(xì)建立相機(jī)三維空間的位置與機(jī)器人坐標(biāo)系的對應(yīng)關(guān)系,必須通過嚴(yán)格的手眼標(biāo)定來實(shí)現(xiàn)。不同相機(jī)有手眼標(biāo)定算法,通過示教多個(gè)點(diǎn)來建立手眼轉(zhuǎn)換關(guān)系。這里不詳述。如果只做平面工件抓取,那只需要工件變化的坐標(biāo)值x、y以及繞z軸的轉(zhuǎn)動角度c,問題就簡單的多,只需要進(jìn)行平面的簡單標(biāo)定即可實(shí)現(xiàn)。以康耐視相機(jī)為例,格力等客戶只需要實(shí)現(xiàn)流水線來料的抓取操作,標(biāo)定平面坐標(biāo)系即可,康耐視相機(jī)可以提供移動后的工件相對于移動前的偏移位置量,或者提供工件的絕對移動位置。這里,我們提供這兩種工作方式的實(shí)現(xiàn)過程。
2.1相機(jī)校準(zhǔn)相機(jī)默認(rèn)輸出的坐標(biāo)值是相機(jī)采集到的像素值,并非實(shí)際工件位置尺寸,因此需要將物理坐標(biāo)與像素值進(jìn)行映射標(biāo)定。設(shè)定校準(zhǔn)后,可使測量結(jié)果像素值轉(zhuǎn)換為實(shí)際尺寸并輸出,康耐視提供了校準(zhǔn)參數(shù)的制作過程。1.單擊“設(shè)置圖像“,界面右下角出現(xiàn)下圖2.1所示界面。校準(zhǔn)類型中有很多種,根據(jù)實(shí)際需要選擇,這里選擇“網(wǎng)格”,然后單擊“校準(zhǔn)”按鈕,出現(xiàn)下圖2.2所示界面。?圖2.12.打印校準(zhǔn)網(wǎng)格紙張。在圖2.2中,單擊“打印網(wǎng)格”按鈕,然后將打印的網(wǎng)格紙張放在相機(jī)視野正中間。3.在“設(shè)置”界面中,“網(wǎng)格類型”為方格圖案(帶基準(zhǔn)),其它值均為默認(rèn)。4.單擊“姿勢”,進(jìn)入姿勢設(shè)置界面,如圖2.3所示,原點(diǎn)位置為默認(rèn),單擊“觸發(fā)器”按鈕, 相機(jī)會自動拍照,最后單擊“校準(zhǔn)”,校準(zhǔn)工作就結(jié)束。5.單擊“結(jié)果”,可以查看校準(zhǔn)情況,如圖2.4所示。圖2.2圖2.3圖2.46.建立檢測模型。單擊“定位部件”,出現(xiàn)如圖2.5所示界面,單擊“位置工具”中“圖案”,然后單擊“添加”,單擊“OK”,接著單擊界面右下角“模型”,拖動綠色模型矩形框,使被檢測模型處于綠色矩形框中,最后單擊界面右下角“訓(xùn)練”,此時(shí)檢測模型已經(jīng)建立。圖2.57.查看模型建立是否成功。在界面右側(cè)選擇板中,可以查看建立圖案的情況,綠色圓點(diǎn)表示模型建立成功,同時(shí)會輸出檢測模型的位置、角度、得分,如圖2.6所示。圖2.6通過以上7步即可完成相機(jī)的校準(zhǔn)過程。2.2絕對坐標(biāo)實(shí)現(xiàn)絕對坐標(biāo)的實(shí)現(xiàn)必須借助機(jī)器人的用戶坐標(biāo)系,即機(jī)器人在用戶坐標(biāo)系下走絕對位置運(yùn)動。具體實(shí)現(xiàn)由以下幾個(gè)步驟組成。首先,用step機(jī)器人三點(diǎn)法示教出一個(gè)固定用戶坐標(biāo)系。用戶坐標(biāo)系的原點(diǎn)根據(jù)實(shí)際情況而定,一般選擇流水線上一個(gè)固定位置參考點(diǎn),該參考點(diǎn)要方便相機(jī)進(jìn)行坐標(biāo)轉(zhuǎn)化標(biāo)定。關(guān)于用戶坐標(biāo)系的標(biāo)定,可參見新時(shí)達(dá)機(jī)器人操作使用說明書;其次,進(jìn)行相機(jī)坐標(biāo)與實(shí)際位置坐標(biāo)的標(biāo)定轉(zhuǎn)換。在完成第一步中的固定用戶坐標(biāo)系標(biāo)定后,在該坐標(biāo)系下選取工件上的三點(diǎn),計(jì)算出這三點(diǎn)在用戶坐標(biāo)系的X、Y值(該步驟可通過機(jī)器人協(xié)助示教獲得在用戶坐標(biāo)系下的位姿值)。在圖像輸入的“校準(zhǔn)”模塊中,按照2.1中的步驟完成相機(jī)坐標(biāo)與實(shí)際位置坐標(biāo)的校準(zhǔn)參數(shù)制作轉(zhuǎn)換;
最后,機(jī)器人實(shí)現(xiàn)絕對位置運(yùn)動。在完成第二步后,工件每偏移一點(diǎn),相機(jī)均可計(jì)算出其在用戶坐標(biāo)系下新的位置值X、Y和繞Z軸的theta角度值。這樣,只需要在示教器程序中設(shè)置抓取運(yùn)動點(diǎn)參考的坐標(biāo)系為用戶坐標(biāo)系即可,即RefSys語句下走絕對cpe點(diǎn)。該cpe點(diǎn)是codesys里直接讀取的相機(jī)返回值。2.3相對坐標(biāo)實(shí)現(xiàn)相對坐標(biāo)的實(shí)現(xiàn)就比較簡單,只需要將相機(jī)坐標(biāo)轉(zhuǎn)換為實(shí)際位置坐標(biāo)即可。在工件上選取三個(gè)特征點(diǎn),用帶尖機(jī)器人示教出這三點(diǎn)在機(jī)器人基坐標(biāo)系下的坐標(biāo)值(主要是X和Y)。按照2.1中的校準(zhǔn)流程制作出校準(zhǔn)參數(shù)。這樣,工件偏移后,相機(jī)可以直接計(jì)算出其新的坐標(biāo)X、Y和theta。需要注意的是,使用相對坐標(biāo)運(yùn)動時(shí),相機(jī)輸出數(shù)據(jù)必須是相對量,即測量坐標(biāo)與基準(zhǔn)坐標(biāo)之差,而不是絕對測量坐標(biāo)。具體信息見后續(xù)章節(jié)。
三、示教器示例程序3.1絕對坐標(biāo)實(shí)現(xiàn)范例Tool(tool0);//若帶工具,則先加載好PTP(ap0); //走到一個(gè)安全位置點(diǎn)Lin(cp3);//走到標(biāo)準(zhǔn)抓取位置(工件處于標(biāo)準(zhǔn)位置時(shí)機(jī)器人的抓取位姿,提前示教好)RefSys(ref1);//切到用戶坐標(biāo)系下WaitTime(uint3);BOOLEXTSet(boolbasepos,TRUE);//端口號為2,發(fā)送信號到codesys,讀取當(dāng)前位置作為標(biāo)準(zhǔn)抓取位置WaitTime(uint4);BOOLEXTSet(boolbasepos,FALSE);//關(guān)閉該端口/////以上為獲得標(biāo)準(zhǔn)抓取位置需要的步驟RefSys(WORLD);PTP(ap0);LP:int0;BOOLEXTSet(boolphoto,TRUE); //發(fā)送相機(jī)拍照命令,端口號0WaitTime(uint0); //等待PLC處理時(shí)間,建議在300ms以上bool0:=BOOLEXTRead(boolenableget); //讀取抓取標(biāo)志位,為TRUE則能抓取BOOLEXTSet(boolphoto,FALSE); //關(guān)閉該端口,保證下次為高電平觸發(fā)
IF(bool0=0)THEN //為true則可抓取,否則重新發(fā)送拍照命令WaitTime(uint1);GOTO(int0);END_IFRefSys(ref1); //切到用戶坐標(biāo)系下Lin(rcpe0); //走到codesys里輸出的絕對位置(外部點(diǎn)形式,端口號0)BOOLEXTSet(boolfinishget,TRUE); //發(fā)送抓取完成標(biāo)志W(wǎng)aitTime(uint2);BOOLEXTSet(boolfinishget,FALSE); //關(guān)閉抓取完成標(biāo)志PTP(ap1);GOTO(int1); //回到循環(huán)開始,等待下一個(gè)工件3.2相對坐標(biāo)實(shí)現(xiàn)范例Tool(tool0);//若帶工具,則先加載好PTP(ap0); //走到一個(gè)安全位置點(diǎn)Lin(cp3);//走到標(biāo)準(zhǔn)抓取位置(工件處于標(biāo)準(zhǔn)位置時(shí)機(jī)器人的抓取位姿,提前示教好)WaitTime(uint3);BOOLEXTSet(boolbasepos,TRUE);//端口號為2,讀取當(dāng)前位置作為標(biāo)準(zhǔn)抓取位置WaitTime(uint4);BOOLEXTSet(boolbasepos,FALSE);//關(guān)閉該端口/////以上為獲得標(biāo)準(zhǔn)抓取位置需要的步驟PTP(ap0);//回到安全點(diǎn)LP:int0;BOOLEXTSet(boolphoto,TRUE); //發(fā)送相機(jī)拍照命令,端口號0WaitTime(uint0); //等待PLC處理時(shí)間,建議在300ms以上bool0:=BOOLEXTRead(boolenableget); //讀取抓取標(biāo)志位,為TRUE則能抓取BOOLEXTSet(boolphoto,FALSE); //關(guān)閉該端口,保證下次為高電平觸發(fā)IF(bool0=0)THEN //為true則可抓取,否則重新發(fā)送拍照命令WaitTime(uint1);GOTO(int0);END_IFLin(rcpe1); //走到codesys里輸出的絕對位置(外部點(diǎn)形式,該位置是機(jī)器人當(dāng)前位置加上相對偏移,端口號1)
BOOLEXTSet(boolfinishget,TRUE); //發(fā)送抓取完成標(biāo)志W(wǎng)aitTime(uint2);BOOLEXTSet(boolfinishget,FALSE); //關(guān)閉抓取完成標(biāo)志PTP(ap1);GOTO(int1); //回到循環(huán)開始,等待下一個(gè)工件
四、Codesys邏輯開發(fā)4.1Socket通信開發(fā)首先,要在codesys上完成socket通訊開發(fā)。通訊開發(fā)的要點(diǎn)包括協(xié)議類型、協(xié)議數(shù)據(jù)、數(shù)據(jù)收發(fā)、邏輯判斷等。一般的相機(jī)都是支持TCP/IP協(xié)議的,我們也多是采用該協(xié)議完成step控制器與各類相機(jī)的通訊連接及數(shù)據(jù)交互的。一般來說,機(jī)器人控制器作為主機(jī)server(服務(wù)器),相機(jī)處理器作為從機(jī)client(客戶端)。控制器作為主機(jī)的好處在于,控制器“知道”自己什么時(shí)候需要拍照、需要數(shù)據(jù),此時(shí)給相機(jī)發(fā)送命令即可。相機(jī)作為客戶端始終處于監(jiān)聽狀態(tài)。主機(jī)控制器的IP地址為192.168.39.220,端口號任意,如取為9876,用網(wǎng)線與相機(jī)控制器相連,在完成相機(jī)與控制器的通信數(shù)據(jù)格式設(shè)定后,接下來就是codesys端編程實(shí)現(xiàn)。通信示例說明:CASE step OF0:SAddr.sAddr := '192.168.39.120';//服務(wù)器地址server(xEnable:=TRUE,ipAddr:=SAddr,uiPort:=9876);//建立服務(wù)器IF(server.xBusy = TRUE) THENconnect(xEnable:=server.xBusy,hServer:=server.hServer);//連接IF(connect.xActive = TRUE) THEN//連接成功step := 1;//執(zhí)行接收數(shù)據(jù)END_IFIF(connect.xError = TRUE)THEN//連接報(bào)錯step := 3;//復(fù)位END_IFEND_IFIF(server.xError = TRUE)THEN
step := 3;END_IF///////////////////////從相機(jī)傳過來的數(shù)據(jù)以ASCII碼的形式存儲到recvokcr數(shù)組,數(shù)組的第一位存儲的是串行數(shù)據(jù)輸出中設(shè)定的首位///////////////////////例如設(shè)定的整數(shù)位為1,小數(shù)位為1,當(dāng)相機(jī)發(fā)送一個(gè)1.0時(shí),用BYTE型recvokcr數(shù)組“1.0回車(CR)”對應(yīng)的ASCII碼“49“,”62“,”48“,”13“1:size1 := SIZEOF(recvokcr);//數(shù)組長度precv := ADR(recvokcr);//數(shù)組地址recv(xEnable:=TRUE,hConnection:=connect.hConnection,szSize:=size1,pdata:=precv);//接收數(shù)據(jù)IF(recv.szCount>7) THEN//判斷是否收到數(shù)據(jù)輸出,這里的數(shù)字應(yīng)小于數(shù)據(jù)總長度step:=5;//數(shù)據(jù)處理END_IFIF recv.xError THEN//接收數(shù)據(jù)報(bào)錯step:=3;END_IF///////////////////////以ASCII碼的形式從senddata數(shù)組傳給相機(jī),給相機(jī)發(fā)送“M回車(CR)”命令可以采集一張圖片2:size2 := SIZEOF(senddata);//數(shù)組長度senddata[0]:=16#4D;//M的ASCII碼,16進(jìn)制表示,是單次測量的指令。senddata[1]:=16#0D;//回車(CR)的ASCII碼,16進(jìn)制表示(歐姆龍相機(jī)用MCR來發(fā)送數(shù)據(jù))psend := ADR(senddata);//指令地址send(xExecute:=TRUE,hConnection:=connect.hConnection,szSize:=size2,pdata:=psend,udiTimeOut:=1000000);
IF(send.xDone = TRUE) THEN//發(fā)送成功send(xExecute:=FALSE);//函數(shù)復(fù)位step := 1;END_IFIF(send.xError = TRUE) THEN//發(fā)送報(bào)錯send(xExecute:=FALSE);step := 3;END_IF5://數(shù)據(jù)處理程序………………………..3: //復(fù)位后返回connect(xEnable:=FALSE);server(xEnable:=FALSE);recv(xEnable:=FALSE,hConnection:=connect.hConnection,szSize:=size,pdata:=precv);step := 99;99:step:=0;END_CASE注意,多數(shù)socket函數(shù)都是上升沿執(zhí)行,所以在調(diào)用后,應(yīng)在合適的地方將其關(guān)閉(給下降沿),這樣下一周期執(zhí)行時(shí)才會繼續(xù)生效。否則可能造成函數(shù)執(zhí)行無效,程序死循環(huán)卡死在某一步、或者報(bào)錯處理。4.2外部點(diǎn)數(shù)據(jù)處理在步驟1.1通過socket實(shí)現(xiàn)控制器與相機(jī)的通信連接及數(shù)據(jù)收發(fā)處理后,本步驟主要完成與HMI的命令收發(fā)處理以及外部cpe點(diǎn)位置計(jì)算與返回。完整流程邏輯如下://獲取示教器輸入GetHMIBOOL(Enable := TRUE,PortNumber := 0,Data => ReqGet); //獲取拍照命令GetHMIBOOL(Enable := TRUE,PortNumber := 1,Data => FinishGet); //獲取完成抓取命令GetHMIBOOL(Enable := TRUE,PortNumber := 2,Data => basePosGet); //獲取標(biāo)準(zhǔn)抓取位置命令//(**獲取標(biāo)準(zhǔn)抓取位置(當(dāng)前通過IO語句發(fā)送命令實(shí)現(xiàn),端口號為2)***)IF (basePosGet = TRUE AND (basePosCount = 0)) THEN
¥
5.9
百度文庫VIP限時(shí)優(yōu)惠現(xiàn)在開通,立享6億+VIP內(nèi)容
立即獲取
Cognex康耐視相機(jī)操作使用說明書
Cognex康耐視相機(jī)操作使用說明書
康耐視相機(jī)操作使用說明書
文件狀態(tài):■草稿□修改□定稿 文檔密級 □不保密■內(nèi)部□機(jī)密
項(xiàng)目名稱
版本號 1.0
描述 康耐視相機(jī)操作使用說明書
編寫人 余國鷹 編寫日期 2015/9/10
審核人 審核日期
第 1 頁
一、康耐視相機(jī)具體設(shè)置
1.1軟件安裝
雙擊康耐視相機(jī)軟件Cognex_In-Sight_Software_4.8.1,按照步驟一步步安裝即可。
1.2流程編輯
1. 設(shè)置電腦本地連接IPV4地址為192.168.39.12(設(shè)置為39段即可)。
2. 雙擊康耐視In-Sight瀏覽器軟件進(jìn)入相機(jī)設(shè)置界面,軟件會自動搜索連接的相機(jī)設(shè)備,如下圖1.1所示。
康耐視相機(jī)更改相機(jī)名稱首先打開相機(jī)在相機(jī)的設(shè)置里面選擇需要更換的相機(jī)名稱,然后將自己需要更換的消息名稱進(jìn)行選擇,選擇完成之后就可以更換了。