時間:2021-12-08 15:46:04來æºï¼šæ·±åœ³å¸‚æ£é‹å‹•技術(shù)有é™å…¬å¸
  今天,æ£é‹å‹•å°åŠ©æ‰‹çµ¦å¤§å®¶åˆ†äº«ä¸€ä¸‹é‹å‹•控制å¡ä¹‹ECI3808如何使用C++æ“作使用連續(xù)æ’補é‹å‹•以åŠå°ç·šæ®µå‰çž»ã€‚
  一ECI3808硬件介紹
  1.功能介紹
  ECI3808ç³»åˆ—æŽ§åˆ¶å¡æ”¯æŒæœ€å¤šé”12軸直線æ’補ã€ä»»æ„圓弧æ’補ã€ç©ºé–“圓弧ã€èžºæ—‹æ’補ã€é›»å凸輪ã€é›»å齒輪ã€åŒæ¥è·Ÿéš¨ã€è™›æ“¬è»¸ã€æ©Ÿæ¢°æ‰‹æŒ‡ä»¤ç‰;采用優(yÅu)化的網(wÇŽng)絡(luò)通訊å”(xié)è°å¯ä»¥å¯¦ç¾(xià n)實時的é‹å‹•控制。
  ECI3808系列é‹å‹•æŽ§åˆ¶å¡æ”¯æŒä»¥å¤ªç¶²(wÇŽng),RS232 通訊接å£å’Œé›»è…¦ç›¸é€£ï¼ŒæŽ¥æ”¶é›»è…¦çš„æŒ‡ä»¤é‹è¡Œï¼Œå¯ä»¥é€šéŽCAN總線去連接å„個擴展模塊,從而擴展輸入輸出點數(shù)或é‹å‹•軸。
  ECI3808系列é‹å‹•控制å¡çš„æ‡‰(yÄ«ng)用程åºå¯ä»¥ä½¿ç”¨ VC,VB,VS,C++,C#ç‰è»Ÿä»¶ä¾†é–‹ç™¼(fÄ),程åºé‹è¡Œæ™‚需è¦å‹•æ…‹(tà i)庫 zmotion.dll。調(dià o)試時å¯ä»¥æŠŠZDevelopè»Ÿä»¶åŒæ™‚連接到控制器,從而方便調(dià o)試和觀察。
  2.硬件接å£
通用輸入å£é›»è·¯
通用輸出å£é›»è·¯
AD/DA接å£èªªæ˜Ž
本地脈沖軸說明
輔助編碼器 CN15
3.控制器基本信æ¯
  二ã€C++進行é‹å‹•控制開發(fÄ)
  1.新建MFCé …ç›®å¹¶æ·»åŠ å‡½æ•¸(shù)庫
  (1)在VS2015èœå–®â€œæ–‡ä»¶â€â†’“新建â€â†’ â€œé …ç›®â€ï¼Œå•Ÿå‹•創(chuà ng)å»ºé …ç›®å‘?qÅ«)Ð?/p>
  (2)鏿“‡é–‹ç™¼(fÄ)語言為“Visual C++â€å’Œç¨‹åºé¡žåž‹â€œMFC應(yÄ«ng)用程åºâ€ã€‚
  (3)點擊下一æ¥å³å¯ã€‚
  (4)鏿“‡é¡žåž‹ç‚ºâ€œåŸºäºŽå°è©±æ¡†â€ï¼Œä¸‹ä¸€æ¥æˆ–者完æˆã€‚
(5)æ‰¾åˆ°å» å®¶æä¾›çš„光盤資料,路徑如下(64ä½åº«ç‚ºä¾‹)。
  A.é€²å…¥å» å•†æä¾›çš„光盤資料找到“8.PC函數(shù)â€æ–‡ä»¶å¤¾ï¼Œå¹¶é»žæ“Šé€²å…¥ã€‚
  B.鏿“‡â€œå‡½æ•¸(shù)庫2.1â€æ–‡ä»¶å¤¾ã€‚
  C.鏿“‡â€œWindowså¹³è‡ºâ€æ–‡ä»¶å¤¾ã€‚
  D.æ ¹æ“š(jù)需è¦é¸æ“‡å°æ‡‰(yÄ«ng)的函數(shù)åº«é€™é‡Œé¸æ“‡64ä½åº«ã€‚
  E.解壓C++的壓縮包,é‡Œé¢æœ‰C++å°æ‡‰(yÄ«ng)的函數(shù)庫。
  F.函數(shù)庫具體路徑如下。
  (6)å°‡å» å•†æä¾›çš„C++的庫文件和相關(guÄn)é æ–‡ä»¶å¾©(fù)åˆ¶åˆ°æ–°å»ºçš„é …ç›®é‡Œé¢ã€‚
(7)åœ¨é …ç›®ä¸æ·»åŠ éœæ…‹(tà i)庫和相關(guÄn)é æ–‡ä»¶ã€‚
  A.å…ˆå³æ“Šé …ç›®æ–‡ä»¶ï¼ŒæŽ¥è‘—ä¾æ¬¡é¸æ“‡:â€œæ·»åŠ â€â†’“ç¾(xià n)æœ‰é …â€ã€‚
  B.在彈出的窗å£ä¸ä¾æ¬¡æ·»åŠ éœæ…‹(tà i)庫和相關(guÄn)é æ–‡ä»¶ã€‚
  (8)è²æ˜Žç”¨åˆ°çš„é æ–‡ä»¶å’Œå®šç¾©æŽ§åˆ¶å™¨é€£æŽ¥å¥æŸ„。
  至æ¤é …目新建完æˆï¼Œå¯é€²è¡ŒMFCé …ç›®é–‹ç™¼(fÄ)。
  2.查看PC函數(shù)手冊,熟悉相關(guÄn)函數(shù)接å£
(1)PC函數(shù)手冊也在光盤資料里é¢ï¼Œå…·é«”路徑如下:“光盤資料\8.PC函數(shù)\函數(shù)庫2.1\ZMotion函數(shù)庫編程手冊 V2.1.pdfâ€
  (2)éˆæŽ¥æŽ§åˆ¶å™¨ï¼Œç²å–éˆæŽ¥å¥æŸ„。
  ZAux_OpenEth()接å£èªªæ˜Žï¼š
  (3) å‰çž»è¨(shè)ç½®çš„å°æ‡‰(yÄ«ng)函數(shù)接å£å¦‚下。
ã€€ã€€â—†å°æŽ¥å£çš„è©³ç´°èªªæ˜Žå¯æŸ¥çœ‹PC函數(shù)手冊。
  3.MFC開發(fÄ)控制器連續(xù)æ’補é‹å‹•以åŠå°ç·šæ®µå‰çž»
  (1)例程界é¢å¦‚下。
  (2)éˆæŽ¥æŒ‰éˆ•çš„äº‹ä»¶è™•ç†å‡½æ•¸(shù)ä¸èª¿(dià o)ç”¨éˆæŽ¥æŽ§åˆ¶å™¨çš„æŽ¥å£å‡½æ•¸(shù)ZAux_OpenEth()ï¼Œèˆ‡æŽ§åˆ¶å™¨é€²è¡ŒéˆæŽ¥,éˆæŽ¥æˆåŠŸåŽå•Ÿå‹•定時器1監(jiÄn)控控制器狀態(tà i)。
  ·
  //ç¶²(wÇŽng)å£éˆæŽ¥æŽ§åˆ¶å™¨void CSingle_move_Dlg::OnOpen(){ char buffer[256]; int32 iresult; //如果已經(jÄ«ng)éˆæŽ¥ï¼Œå‰‡å…ˆæ–·é–‹éˆæŽ¥ if(NULL != g_handle) { ZAux_Close(g_handle); g_handle = NULL; } //從IP下拉框ä¸é¸æ“‡ç²å–IPåœ°å€ GetDlgItemText(IDC_IPLIST,buffer,255); buffer[255] = '\0'; //é–‹å§‹éˆæŽ¥æŽ§åˆ¶å™¨ iresult = ZAux_OpenEth(buffer, &g_handle); if(ERR_SUCCESS != iresult) { g_handle = NULL; MessageBox(_T("éˆæŽ¥å¤±æ•—")); SetWindowText("æœªéˆæŽ¥"); return; } //éˆæŽ¥æˆåŠŸé–‹å•Ÿå®šæ™‚å™¨1 SetWindowText("å·²éˆæŽ¥"); SetTimer( 1, 100, NULL ); }
  (3)通éŽå®šæ™‚器監(jiÄn)控控制器狀態(tà i)。
  void CTest_move2Dlg::OnTimer(UINT_PTR nIDEvent) { // TODO: Add your message handler code here and/or call default if(NULL == g_handle) { MessageBox(_T("éˆæŽ¥æ–·é–‹")); return ; } if(1 == nIDEvent) { CString Xpos; CString Ypos; CString Zpos; CString Upos; CString Curspeed; float showpos[4] ={0}; float curspeed =0;
  ZAux_Direct_GetAllAxisPara( g_handle,"DPOS",4,showpos); //ç²å–ç•¶(dÄng)å‰è»¸ä½ç½® ZAux_Direct_GetVpSpeed( g_handle,0,&curspeed); //ç²å–ç•¶(dÄng)å‰è»¸ä½ç½®
  Xpos.Format("X: %.2f",showpos[0]); Ypos.Format("Y: %.2f",showpos[1]); Zpos.Format("Z: %.2f",showpos[2]); Upos.Format("U: %.2f",showpos[3]); Curspeed.Format("ç•¶(dÄng)å‰é€Ÿåº¦: %.2f",curspeed);
  GetDlgItem( IDC_XPOS )->SetWindowText( Xpos ); GetDlgItem( IDC_YPOS )->SetWindowText( Ypos ); GetDlgItem( IDC_ZPOS )->SetWindowText( Zpos ); GetDlgItem( IDC_UPOS )->SetWindowText( Upos ); GetDlgItem( IDC_VPSPEED )->SetWindowText( Curspeed ); } if (2 == nIDEvent) { int status = 0; int rembuff = 0; int curmark = 0; //判斷主軸狀態(tà i)(å³BASE的第一個軸) ZAux_Direct_GetIfIdle(g_handle, 0, &status); //åˆ¤æ–·å˜æ”¾ç›´ç·šçš„剩余緩沖 ,ZAux_Direct_GetRemain_Buffer判斷的空間圓弧的緩沖,也是å 緩沖最大的é‹å‹• ZAux_Direct_GetRemain_LineBuffer(g_handle, 0, &rembuff); //判斷當(dÄng)å‰é‹å‹•到第幾æ¢é‹å‹•, ZAux_Direct_GetMoveCurmark(g_handle, 0, &curmark); if (status == -1) { GetDlgItem(IDC_RUNSTATUS)->SetWindowText("é‹å‹•狀態(tà i)ï¼šåœæ¢ä¸"); } else { GetDlgItem(IDC_RUNSTATUS)->SetWindowText("é‹å‹•狀態(tà i):é‹å‹•ä¸"); } CString str; str.Format("剩余直線緩沖: %d", rembuff); GetDlgItem(IDC_REBUFF)->SetWindowText(str); str.Format("ç•¶(dÄng)å‰MARK: %d", curmark); GetDlgItem(IDC_MARK)->SetWindowText(str); } CDialog::OnTimer(nIDEvent);}
  (4)按照è¨(shè)置的ä½ç½®è·é›¢é€²è¡Œå°æ‡‰(yÄ«ng)的連續(xù)æ’補é‹å‹•ï¼Œå¹¶å°æ‡‰(yÄ«ng)è¨(shè)ç½®å‰çž»æ¨¡å¼é€²è¡Œå‰çž»è™•ç†ã€‚
  void CTest_move2Dlg::OnStart() //開啟連續(xù)æ’補{ if(NULL == g_handle) { MessageBox(_T("éˆæŽ¥æ–·é–‹")); return ; } UpdateData(true);//åˆ·æ–°åƒæ•¸(shù) int corner_mode = 0; int axislist[4] = {0,1,2,3}; //é‹å‹•BASE軸列表 //鏿“‡åƒèˆ‡é‹å‹•的軸,第一個軸為主軸,æ’è£œåƒæ•¸(shù)å…¨ç”¨ä¸»è»¸åƒæ•¸(shù) ZAux_Direct_SetSpeed(g_handle,axislist[0],m_speed); //速度 UNITS / S ZAux_Direct_SetAccel(g_handle,axislist[0],m_acc); //åŠ é€Ÿåº¦ ZAux_Direct_SetDecel(g_handle,axislist[0],m_dec); //減速度UpdateData(true);//åˆ·æ–°åƒæ•¸(shù) if(m_mode1 == 1) { corner_mode = corner_mode + 2; } if(m_mode2 == 1) { corner_mode = corner_mode + 8; } if(m_mode3 == 1) { corner_mode = corner_mode + 32; } ZAux_Direct_SetMerge(g_handle,axislist[0],1); //連續(xù)æ’補開關(guÄn) ZAux_Direct_SetLspeed(g_handle,axislist[0],m_lspeed); //起始速度 ,æ‹è§’減速由 é‹å‹•速度-起始速度 線性減速的 ZAux_Direct_SetCornerMode(g_handle,axislist[0],corner_mode); //æ‹è§’æ¨¡å¼ ZAux_Direct_SetDecelAngle(g_handle,axislist[0],m_startang*3.14/180); //開始減速角度,轉(zhuÇŽn)æ›ç‚ºå¼§åº¦ ZAux_Direct_SetStopAngle(g_handle,axislist[0],m_stopang*3.14/180); ZAux_Direct_SetFullSpRadius(g_handle,axislist[0],m_fullradius); ZAux_Direct_SetZsmooth(g_handle,axislist[0],m_zsmooth);
  //SP指令ä¸è‡ªå‹•æ‹è§’模å¼ä¸è¨(shè)置一個較大的startmovespeed與endmovespeed ZAux_Direct_SetStartMoveSpeed(g_handle,axislist[0], 10000); ZAux_Direct_SetEndMoveSpeed(g_handle, axislist[0], 10000); //調(dià o)用é‹å‹• é€šéŽæª¢æŸ¥æ˜¯å¦é‚„有剩余緩沖來確定是å¦ç™¼(fÄ)é‹å‹• ZAux_Direct_SetMovemark(g_handle,axislist[0],0 ); //è¨(shè)ç½®MARK = 0 ,來通éŽè®€å–CURMARK實ç¾(xià n)判斷當(dÄng)å‰åŸ·(zhÃ)行到那里 g_curseges = 0; //SetTimer(3, 50, NULL); //新建一個定時器,發(fÄ)é‹å‹• float xposlist[10]; float yposlist[10]; float zposlist[10]; DataDeal(xposlist, yposlist, zposlist); float dposlist[10][4]; for (int i = 0; i < 10; i++) { dposlist[i][0] = xposlist[i]; dposlist[i][1] = yposlist[i]; dposlist[i][2] = zposlist[i]; dposlist[i][3] = 0; } int iresult = 0; int iremain = 0; //判斷緩沖å€(qÅ«)大å°é€²è¡Œé‹å‹• iresult = ZAux_Direct_GetRemain_LineBuffer(g_handle, 0, &iremain); //ä¸åŒé¡žåž‹æ’補函數(shù)ä¸åŒã€ç›´ç·šæ’補緩沖判斷用ZAux_Direct_GetRemain_LineBuffer if (iremain > 10) { for (int i = 0; i < 10; i++) { ZAux_Direct_MoveAbs(g_handle,4,axislist,dposlist[i]); } }}
  (5)通éŽåœæ¢é‹å‹•按鈕的事件處ç†å‡½æ•¸(shù)ä¾†åœæ¢ç•¶(dÄng)å‰çš„é‹å‹•。
  void CSingle_homeDlg::OnStop() //åœæ¢é‹å‹•{ // TODO: Add your control notification handler code here if(NULL == g_handle) { MessageBox(_T("éˆæŽ¥æ–·é–‹ç‹€æ…‹(tà i)")); return ; } ZAux_Direct_Single_Cancel(g_handle,m_nAxis,2); //}
  (6)通éŽå標(biÄo)清零按鈕的事件處ç†å‡½æ•¸(shù)來å°ç•¶(dÄng)å‰è»¸çš„忍™(biÄo)é€²è¡Œå°æ‡‰(yÄ«ng)清零。
  void CSingle_homeDlg::OnZero() //忍™(biÄo)清零{ if(NULL == g_handle) { MessageBox(_T("éˆæŽ¥æ–·é–‹ç‹€æ…‹(tà i)")); return ; } // TODO: Add your control notification handler code here for (int i=0;i<4;i++) { ZAux_Direct_SetDpos(g_handle,i,0); //è¨(shè)置零點 } }
完整代碼ç²å–地å€
â–¼
  三ã€èª¿(dià o)試與監(jiÄn)控
  編è¯é‹è¡Œä¾‹ç¨‹ï¼ŒåŒæ™‚通éŽZDevelopè»Ÿä»¶é€£æŽ¥æŽ§åˆ¶å™¨å°æŽ§åˆ¶å™¨ç‹€æ…‹(tà i)進行監(jiÄn)控。
  1.CornerMode功能å‰çž»è¨(shè)置說明
  第一,它å¯å°æŒ‡ä»¤é€²è¡Œæ•´é«”è¦(guÄ«)劃,å³å°å„段速度進行整體è¦(guÄ«)劃,å†é…åˆæŒ‡ä»¤æ®µå…§(nèi)çš„åŠ æ¸›é€ŸæŽ§åˆ¶ï¼Œå¯ä»¥ä½¿æ©ŸåºŠä¿æŒé«˜é€Ÿé‹è¡Œæé«˜æ•ˆçŽ‡ï¼Œä½¿è² è¼‰é‹å‹•æ›´åŠ æµæš¢ï¼Œå‘Šåˆ¥åœåœèµ°èµ°ï¼Œç³»çµ±(tÇ’ng)通éŽMerge 速度èžåˆåŠŸèƒ½å¯¦ç¾(xià n)。
  第二,它å¯ä¿è‰åœ¨é«˜é€Ÿé‹è¡Œçš„基礎(chÇ”)上為了é™åˆ¶æ©Ÿæ¢°æ²–擊和éŽåˆ‡ç‰ï¼Œé‚„需進行減速è˜åˆ¥ï¼Œé€šéŽæå‰è˜åˆ¥è»Œè·¡è®ŠåŒ–,從而按照安全的減速度æå‰æ¸›é€Ÿï¼Œç³»çµ±(tÇ’ng)é€šéŽæ¸›é€Ÿ/åœæ¢èžåˆåŠŸèƒ½ã€ æŠ‘åˆ¶æ²–æ“ŠåŠŸèƒ½å¯¦ç¾(xià n)。
  綜上所述,速度å‰çž»åŠŸèƒ½æ—¢å¯æå‡æ•´æ©Ÿæ•ˆçŽ‡ï¼Œä¹Ÿå¯æ¸›å°‘æ²–æ“Šå¢žåŠ æŸ”æ€§ï¼Œé™ä½Žé›¶éƒ¨ä»¶ç£¨æï¼Œå¢žåŠ è¨(shè)備使用壽命。
  (1)æ‹è§’減速
  æ‹è§’減速功能解決的å•題是:當(dÄng)指令間夾角éŽå¤§æ™‚,如果ä»ä»¥è¼ƒå¤§é€Ÿåº¦é‹è¡Œï¼Œæœƒåœ¨å¤¾è§’處產(chÇŽn)生較大的機械沖擊,軌跡å離。
ã€€ã€€æŽ§åˆ¶å™¨æœƒå°æŒ‡ä»¤é–“軌跡變化的夾角進行æå‰è˜åˆ¥ï¼Œæ¯”較其與減速/åœæ¢è§’的大å°é—œ(guÄn)系,æå‰æ±ºå®šæ˜¯å¦é€²è¡Œæ¸›é€Ÿï¼Œä¿è‰åœ¨æŒ‡ä»¤é€£æŽ¥è™•平穩(wÄ›n)éŽæ¸¡ã€‚
  如圖,OAéŽæ¸¡AB段ä½ç½®æ™‚角度å°äºŽæ¸›é€Ÿè§’度則,S1-S2段ä¸é€²è¡Œæ¸›é€Ÿï¼ŒABéŽæ¸¡BC段時角度大于減速角度則進行減速處ç†éŽæ¸¡éŽç¨‹å¦‚S2-S3段,BCéŽæ¸¡CDæ®µè§’åº¦å¤§äºŽåœæ¢è§’度速度需è¦é™åˆ°é›¶å¦‚S3-S4段ä½ç½®è™•ç†ã€‚執(zhÃ)行效果如下:
 ?ã€å‚¥æ’®_啟æ‹è§’減速
 ?ã€é™‚_啟æ‹è§’減速
  →é”到減速角度,未é”åˆ°åœæ¢è§’度,部分減速。
  →é”åˆ°åœæ¢è§’度,完全減速。
  (2)å°åœ“é™é€Ÿ
  å°åœ“é™é€ŸåŠŸèƒ½ç”¨äºŽè™•ç†ï¼Œåœ¨é‹è¡Œè»Œè·¡ä¸å¯èƒ½é‹è¡Œåœ“å¼§è»Œè·¡æ“¬åˆæˆçš„å°åœ“,由于角度å轉(zhuÇŽn)較大導(dÇŽo)致出ç¾(xià n)軌跡å轉(zhuÇŽn)ï¼Œå› æ¤åœ¨é€™ç¨®ä½ç½®éœ€è¦é€²è¡Œé€Ÿåº¦é™åˆ¶çš„處ç†ã€‚é–‹
  啟å°åœ“é™é€Ÿï¼Œå°åœ“åŠå¾‘è¶…éŽé™é€ŸåŠå¾‘çš„æ™‚å€™ä¸æœƒå°é€Ÿåº¦é™åˆ¶ï¼Œå°åœ“åŠå¾‘å°äºŽé™é€ŸåŠå¾‘的時候則會開始å°é€Ÿåº¦é€²è¡Œé™åˆ¶ã€‚
  (3)自動倒角
  自動倒角功能一般是用于æ‹è§’處按照一定的倒角åŠå¾‘進行軌跡的弧度化處ç†ï¼Œä½¿é€Ÿåº¦è®ŠåŒ–更平滑。如圖所示:
 ?ã€å‚¥æ’®_啟倒角
 ?ã€é™‚_啟倒角
  2.ZDevelop軟件調(dià o)è©¦è¦–é »
  本次,æ£é‹å‹•技術(shù)簡單易用的é‹å‹•控制å¡(å):連續(xù)æ’補和å°ç·šæ®µå‰çž»ï¼Œå°±åˆ†äº«åˆ°é€™é‡Œã€‚
  更多精彩內(nèi)容請關(guÄn)注“æ£é‹å‹•å°åŠ©æ‰‹â€å…¬çœ¾è™Ÿï¼Œéœ€è¦ç›¸é—œ(guÄn)開發(fÄ)ç’°(huán)境與例程代碼,請咨詢æ£é‹å‹•技術(shù)銷售工程師:400-089-8936。
  本文由æ£é‹å‹•技術(shù)原創(chuà ng),æ¡è¿Žå¤§å®¶è½‰(zhuÇŽn)載,共åŒå¸(xué)ç¿’(xÃ),一起æé«˜ä¸åœ‹æ™ºèƒ½åˆ¶é€ æ°´å¹³ã€‚æ–‡ç« ç‰ˆæ¬Š(quán)æ¸æ£é‹å‹•技術(shù)所有,如有轉(zhuÇŽn)è¼‰è«‹æ³¨æ˜Žæ–‡ç« ä¾†æºã€‚
上一篇:伺æœé©…(qÅ«)動器是怎樣來驅(qÅ«)動伺æœ...
下一篇:PLC與é‹å‹•控制器有什么ä¸åŒï¼Ÿ...
ä¸åœ‹å‚³å‹•ç¶²(wÇŽng)版權(quán)與å…責(zé)è²æ˜Žï¼šå‡¡æœ¬ç¶²(wÇŽng)注明[來æºï¼šä¸åœ‹å‚³å‹•ç¶²(wÇŽng)]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Š(quán)å‡ç‚ºä¸åœ‹å‚³å‹•ç¶²(wÇŽng)(www.siyutn.com)ç¨å®¶æ‰€æœ‰ã€‚如需轉(zhuÇŽn)載請與0755-82949061è¯(lián)系。任何媒體ã€ç¶²(wÇŽng)站或個人轉(zhuÇŽn)è¼‰ä½¿ç”¨æ™‚é ˆæ³¨æ˜Žä¾†æºâ€œä¸åœ‹å‚³å‹•ç¶²(wÇŽng)â€ï¼Œé•å者本網(wÇŽng)將追究其法律責(zé)任。
本網(wÇŽng)轉(zhuÇŽn)載并注明其他來æºçš„稿件,å‡ä¾†è‡ªäº’è¯(lián)ç¶²(wÇŽng)或æ¥(yè)å…§(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuÇŽn)載請ä¿ç•™ç¨¿ä»¶ä¾†æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² ç‰ˆæ¬Š(quán)法律責(zé)任。
相關(guÄn)資訊