国产一区二区三区毛片_亚洲乱码AV中文一区二区_亚洲精品无码专区在线播放_日韩欧美一二_咪咪av影院_欧久久av一区二区

wjun7610
級別: 略有小成
精華主題: 0
發帖數量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
樓主  發表于: 2007-09-22 12:49
一、最新三菱PLC FX系列PLC編程口通信協議動態鏈接庫DLL(以下簡稱DLL),是為滿足工業通信需要,針對工業領域要求上位機對PLC實時采集與控制的組態編程而設計。本DLL是采用Delphi語言開發的標準串口通訊庫,具有以下特點:
1)、實時性、可靠性好,可根據通信數據量自行調整通信時間;
2)、適用于多PLC聯網和上位機通信,滿足多方面的需要;
3)、函數接口功能全,操作簡單;
4)、附加實用轉換與讀取函數,易于快速開發(VC等非RAD開發環境的開發);
5)、支持USB、PC擴展卡等擴展串口號;
6)、支持多種操作系統win9x/win2000/winXP;
7)、可在多種編程環境下使用,例如VB、VC、Delphi等開發環境。

二、DLL函數說明

1、打開串口
Function ComOpen(nport:longint;User:Pchar):longint;stdcall;
參數:nport: 打開串口號,取值為1~8,代表COM1~COM8;
      User:DLL授權用戶名;
返回值:長整型,操作成功返回1,否則返回0;打開串口不成功即返回0時的原因:1)、串口不存在或被占用; 2)、DLL試用過期; 3)、DLL授權注冊不正確。

使用舉例:
ComOpen(1,'wjun') , 打開COM1口。

2、關閉串口
Function ComClose(nport:longint):longint;stdcall;
參數:nport: 串口號,取值為1~8,代表COM1~COM8;
返回值:長整型,操作成功返回1,否則返回0;

使用舉例:
ComClose(1) ,關閉打開的COM1口。

3、PLC存儲器的預置(D)
Function ComDWrite(nport,address:longint;sendstr:pchar):longint;stdcall;
參數:
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 寄存器地址,取值為0~4095(此值需根據不同的PLC操作選擇合適的地址范圍);
sendstr:  給寄存器寫入的值,該值為4個一組的16進制字符串組其取值為0000~FFFF(整數值為0~65535),當要寫入多個寄存器值時依次排列即可。如給D0與D1寫值100和1000,先將100轉成16進制字符串0064、1000轉成16進制字符串03E8,則sendstr=006403E8;一次最多寫32個寄存器即字符串長應小于等于128;
                            ---------- ----  ~  ---------
寫字符串序列如:            | 0000 | FFFF | 0010 | 0064 |  ~    | 0010 | 0064 |
                            ---------- ----  ~  ---------
返回值:長整型,操作成功返回1,否則返回0;

使用舉例:
ComDwrite(1,0,‘006403E8’),由串口1預置值D0=100,D1=1000。

4、PLC存儲器的讀取(C、D、T)
Function ComDRead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;
參數:
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 寄存器地址,取值為D區0~4095、C、T(定時器/計數器當前值)區0~255;
Count: 讀取寄存器個數,最多讀取32個寄存器;DLL讀取的越界會自動舍去
element:元件名稱,支持D、C、T;
返回值:字符串數據,字符串數據的終止符為"@";
使用舉例:
ComDRead(1,0,4,'D') ,由COM1讀取D0~D3四個寄存器的值,如返回值為“0001006403E809F0@”,則表示D0=0001, D1=0064,D2=03E8,D3=09F0;

                            ---------- ----  ---
讀字符串序列如:            | 0001 | 0064 | 03E8 | 009F | | @ |
                            ---------- ----  ---
返回值為16進制字符串,可以將返回值如上四位一組再轉換成“0~65535”的整數值。


5、PLC的多線圈強置(C、M、S、T)
Function ComEForce(nport,address:longint;element,sendstr:pchar):longint;stdcall;
參數:
nport: 串口號,取值為1~8, 代表COM1~COM8;
address: 位單元地址,定時器C:0~255、M:0~2047、S:0~999、T:0~255、特M: M8000~M8255;
element:元件名稱,支持C、M、S、T;
sendstr:  給多線圈寫入的值,該值為2個一組的16進制字符串組其取值為00~FF(整數值為0~255),當要寫入多個值時依次排列即可。例如: 字節地址C0'(實際由位地址位C0~C7)、字節地址C1'(實際由位地址位C8~C15),如給C0'賦值80、C1'賦值CF,則sendstr=80CF;一次最多寫64個字節,即字符串長應小于等于128;
                          ---------- - ~  ------
寫字符串序列如:          | 00 | FF | 10 | 64 |  ~  | 1F | 48 |
                          ---------- - ~  ------

實際字符串與位地址的數值應如下表:(將上例的字節C0'、C1'轉換為位地址C0~C15由下表對應)
            ------------------------------------
位地址:    | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
            ------------------------------------ 
各位賦值:  | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1  | 1  | 0  | 0  | 1  | 1  | 1 | 1 |
            ------------------------------------
16進制串:  |      8      |      0      |        C        |        F      |
            ------------------------------------
         
返回值:長整型,操作成功返回1,否則返回0;

使用舉例:
ComEForce(1,0,‘C’ ,‘80CF’),DLL將按上表給相應位強置值,這里地址address賦值0~7都是給C0~C15的強置值,因實際字節地址=address div 8 (0~7 div 8 都等于0,即都是給C0'、C1'強置值)。

字節地址如Mx' = address div 8 ,M、S、C、T都按此公式計算如何給實際的位地址強置值。

6、PLC的多線圈讀取(C、M、S、T、X、Y)
Function ComERead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;
參數:
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 位單元地址,定時器C:0~255、M:0~2047、S:0~999、T:0~255、X:0~177(8進制)、Y:0~177(8進制)、特M: M8000~M8255;
Count: 讀取字節個數,最多讀取64個字節;
element:元件名稱,支持C、M、S、T、X、Y;
位單元的字節組成按8個位一組,如56(16進制)則表示下表的位構造值。
              ----------------
位地址:      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
              ----------------
各位賦值:    | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 |
              ----------------
16進制串:    |      5      |      6      |
              ----------------
使用舉例:
ComERead(1,0,1,‘M’),如返回56(16進制)則M0~M7的值為上表反應的結果。0~255的位地址映射成字節地址應為0~31。
即:實際地址=address / 8 ,如ComERead(1,11,2,‘C’)相應都得是C8~C15與C16~C23組合的兩個字節的值,例如返回值為“870A@”
        -----------------------------------------
位地址:| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | @ |
        ----------------------------------------- 
各位賦值:| 1 | 0  | 0  | 0  | 0  | 1  | 1 | 1 | 0  | 0  | 0  | 0  | 1  | 0  | 1  | 0  | @ |
        -----------------------------------------
16進制串:|        8        |        7      |        0        |        A        | @ |
        -----------------------------------------

"@"為字符串數據的終止符。

DLL還提供附加函數CinBin ,可以讀出字節中相應位的值是1還是0。

對于X、Y區線圈地址可以按8進制地址轉換成10進制后再參照上表的地址映射關系。


7、PLC的線圈置位(C、M、S、T)

Function ComESet(nport,address:longint;element:Pchar):longint;stdcall;
參數:
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 位單元地址,定時器C:0~255、M:0~1023、S:0~999、T:0~255、X:0~177、Y:0~177及特M: M8000~M8255;
element:元件名稱,支持C、M、S、T;
使用舉例:
ComESet(1,0,‘C’),由COM1給C0置位;
ComESet(1,8010,‘M’), 由COM1給M8010置位;


8、PLC的線圈復位(C、M、S、T)
Function ComEReset (nport,address:longint;element:Pchar):longint;stdcall;
參數:
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 位單元地址,定時器C:0~255、M:0~1023、S:0~999、T:0~255、X:0~177、Y:0~177及特M: M8000~M8255;
element:元件名稱,支持C、M、S、T;
使用舉例:
ComEReset(1,0,‘T’),給T0復位;
ComEReset (1,810,‘S’),給S810復位;

三、DLL附加函數說明

1、串口打開狀態的讀取
Function ComTrue(nport:longint):longint;stdcall;
參數:
noprt: 串口號,取值為1~8,代表COM1~COM8;
返回值:長整型,串口打開返回1,否則返回0;

2、整數轉換成16進制字符串 (為VC等非RAD開發環境所增設)
Function CIntToHex(Cint,Digits:Longint):Pchar;stdcall;
參數:
Cint: 待轉換整數,取值為(0~65535);
Digits: 轉換的字符串位數,指定位數小于實際位數時按實際輸出;

使用舉例:
CIntToHex(200,2),則返回字符串“C8@”;
CIntToHex(200,4),則返回字符串“00C8@”;
CIntToHex(4500,4),則返回字符串“1194@”;
CIntToHex(4500,3),則返回字符串“1194@”,因為“194”不足以表示4500這個數所以按實際輸出字符串“1194@”;

"@"為字符串數據的終止符。

3、16進制字符串轉換成整數 (為VC等非RAD開發環境所增設)
Function CHexToInt(CHex:Pchar):Longint;stdcall;
參數:
CHex: 待轉換字符串,取值為(0000~FFFF);
使用舉例:
CHexToInt(‘03E8’),則返回整數1000;

4、抽取16進制字符串中某個位的值
Function CinBin(CHex:Pchar;Start:longint):longint;stdcall;
參數:
CHex: 待轉換字符串,取值為(0~FFFF);
Start: 抽取的位,取值為(0~15);
使用舉例:
CinBin(‘0F’,3),則返回值1;
CinBin(‘0F’,4),則返回值0;
CinBin(‘03E8’,6),則返回值1;
讀取M8~M15組合成的字節值為“FC”時,要讀取M10的值時,則調用CinBin(‘FC’,3)返回值1表示M10的值為1。

5、返回字符串Text左邊的Count個字符  (為VC等非RAD開發環境所增設)
Function CLeftStr(Text:Pchar;Count:longint):Pchar;stdcall;
參數:
Text: 字符串原型;
Count: 指定返回左側字符串個數;

使用舉例:
CleftStr('123456', 3) = '123@';

"@"為字符串數據的終止符。

6、返回字符串Text右邊的Count個字符  (為VC等非RAD開發環境所增設)
Function CRightStr(Text:Pchar;Count:longint):Pchar;stdcall;
參數:
Text: 字符串原型;
Count: 指定返回右側字符串個數
使用舉例:
CRightStr('123456', 3) = '456@';

"@"為字符串數據的終止符。

7、返回字符串Text從Start開始的Count個字符 (為VC等非RAD開發環境所增設)
Function CMidStr(Text:Pchar;Start,Count:longint):Pchar;stdcall;
參數:
Text: 字符串原型;
Start: 指定返回字符串的起始位置;
Count: 指定返回字符串個數;
使用舉例:
CMidStr('123456',2,3) = '234@';

"@"為字符串數據的終止符。

8、字符串Substr開始于字符串S的位置 (為VC等非RAD開發環境所增設)
Function CinStr(S,Substr:Pchar):Longint;stdcall;
參數:
S: 字符串原型;
Substr: 查詢的字符串;
返回值:長整型;

使用舉例:
CinStr('1Tfdg23456','2') = 6

DLL中關于傳出字符串值的函數都以"@"為字符串函數值終止符。

四、Delphi、VB、VC語言環境的開發使用說明

1、Delphi語言環境開發說明

在Delphi環境下將melsecfx.dll、serialfx.slip(許可文件)復制到應用程序目錄下(即將上述文件與編譯后的可執行文件方入同一文件夾內);

在工程文件的主程序窗體(pas)文件中聲明:

Function ComOpen(nport:longint;User:pchar):longint;stdcall;External'melsecfx.dll';
Function ComClose(nport:longint):longint;stdcall;External'melsecfx.dll';
Function ComDWrite(nport,address:longint;sendstr:pchar):longint;stdcall;External'melsecfx.dll';
Function ComDRead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;External'melsecfx.dll';
Function ComEForce(nport,address:longint;element,sendstr:pchar):longint;stdcall;External'melsecfx.dll';
Function ComERead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;External'melsecfx.dll';
Function ComESet(nport,address:longint;Element:Pchar):longint;stdcall;External'melsecfx.dll';
Function ComEReset(nport,address:longint;element:Pchar):longint;stdcall;External'melsecfx.dll';
Function ComTrue(nport:longint):longint;stdcall; External'melsecfx.dll';
Function CinBin(CHex:Pchar;Start:longint):longint;stdcall; External'melsecfx.dll';

其它附加函數Delphi有實用函數,建議用Delphi自帶函數,如需使用聲明參上例;

聲明后可以在程序中使用這些函數,附加函數置中除ComTrue、CinBin外Delphi系統自帶有類似功能函數。通信時必須先使用ComOpen函數打開串口,在串口打開后可以有效操作相關函數,為確保通信可在程序運行開始時打開串口,程序關閉前關閉串口。應用程序關閉之前請務必將關閉所有串口,如串口未關閉前關閉系統將拋出異常。確保應用程序在關閉釋放前關閉打開的串口。解決方法,在form的OnDestroy事件中加入如下語句:
if ComTrue(1)=1 then ComClose(1);
在Delphi中給中給DLL中的函數傳pchar值問題,參考下例:
讀取多線圈M8~M23的值
Procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  elementstr,Recstr:string
  Name:pchar;
  address,Count:word;
begin
  elementstr:=’M’;
  address:=8;  //地址給8~15都行,實際地址=address div 8
  Count:=2;
  // Recstr:= ComERead(1,address, Count,Pchar(elementstr));
  //以上的用法不建議是使用,推薦用下面的用法。
  try
    Name:=strAlloc(8);
Name:=strPCopy(Name, elementstr);  Recstr:=strpas(ComERead(1,address,Count,
Pchar(elementstr));
  finally;
    StrDispose(Name);
  end;
end; 
建議采用strPCopy()|string型轉換到Pchar型,straps()|Pchar型轉換到string型,不推薦使用直接轉換法。

上述可以詳細參照DEMO程序。

2、VB語言環境開發說明

在VB環境下將melsecfx.dll、serialfx.slip(許可文件)復制到應用程序目錄下(即將上述文件與編譯后的可執行文件方入同一文件夾內);

在工程文件中聲明:

Private Declare Function ComOpen Lib "melsecfx.dll" (ByVal nport As Long, ByVal User As String) As Long
Private Declare Function ComClose Lib "melsecfx.dll" (ByVal nport As Long) As Long
Private Declare Function ComDWrite Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal sendstr As String) As Long
Private Declare Function ComEForce Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal element As String, ByVal sendstr As String) As Long
Private Declare Function ComDRead Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal Count As Long, ByVal element As String) As String
Private Declare Function ComERead Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal Count As Long, ByVal element As String) As String
Private Declare Function ComESet Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal element As String) As Long
Private Declare Function ComEReset Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal element As String) As Long
Private Declare Function ComTrue Lib "melsecfx.dll" (ByVal nport As Long) As Long
Private Declare Function CinBin Lib "melsecfx.dll" (ByVal Chex As String, ByVal Start As Long) As Long

其它附加函數VB有實用函數,建議用VB自帶函數,如需使用聲明參上例;
做完上述聲明后,便可以在程序中使用相關函數了。本DLL是串口通信庫,通信時必須先使用ComOpen函數打開串口,在串口打開后可以有效操作相關函數,為保證通信可以在程序運行開始時打開串口,程序關閉前關閉串口。在應用程序關閉之前請務必將關閉所有串口,如您的程序串口未關閉前被關閉系統將拋出異常。當出現這樣的異常請更改您的程序,確保應用程序在關閉釋放前關閉打開的串口。
解決方法,在form的Unload事件中加入如下例:
If ComTrue(1)=1 then
  ComClose(1)
End if
為確保Unload事件有效執行程序中應使用“End”語句,而盡量使用“Unload”語句釋放所有窗體,因使用“End”語句系統不會執行正常的窗體釋放等事件而直接退出程序,如程序中有form1,form2兩個窗體,則使用下面語句:
Unload  form1
Unload  form2
VB會在所有窗體關閉后釋放所有占用資源。
上述可以詳細參照DEMO程序。

3、VC語言環境開發說明
在VC環境下將melsecfx.dll、serialfx.slip(許可文件)復制到應用程序目錄下(即將上述文件與編譯后的可執行文件方入同一文件夾內);

在工程主文件cpp中聲明一個句柄:
HINSTANCE m_handle;
用來標識導入的動態鏈接庫。

1)、導入動態鏈接庫,如例所示:

  m_handle =:: LoadLibrary("melsecfx.dll");

2)、按下例說明聲明相關各個函數:

typedef long (CALLBACK* pOpen)(long nport, char* User);
typedef long (CALLBACK* pClose)(long nport);
typedef long (CALLBACK* pDWrite)(long nport,long address, char* sendstr);
typedef long (CALLBACK* pEForce)(long nport,long address, char* element, char* sendstr);
typedef char* (CALLBACK* pDRead)(long nport,long address,long Count, char* element);
typedef char* (CALLBACK* pERead)(long nport,long address,long Count,char* element);
typedef long (CALLBACK* pSet)(long nport,long address, char* element);
typedef long (CALLBACK* pReset)(long nport,long address char* element);
typedef long (CALLBACK* pTrue)(long nport);
typedef char* (CALLBACK* pIntHex)(long Cint,long Digits);
typedef long (CALLBACK* pHexInt)( char* CHex);
typedef long (CALLBACK* pBin)( char* Chex, long Start);
typedef char* (CALLBACK* pLeft)( char* Text, long Count);
typedef char* (CALLBACK* pRight)( char* Text, long Count);
typedef char* (CALLBACK* pMid)( char* Text, long  Start, long Count);
typedef long (CALLBACK* pinstr)( char* S, char* Substr);

3)、聲明并建立動態鏈接庫中的函數與新函數名的對應關系,如下:

pOpen cOpen = (pOpen)GetProcAddress(m_handle,"ComOpen");
pClose cClose = (pClose)GetProcAddress(m_handle,"ComClose");
pDWrite cDWrite = (pDWrite)GetProcAddress(m_handle," ComDWrite");
pDRead cDRead = (pDRead)GetProcAddress(m_handle," ComDRead");
pEForce cEForce = (pEForce)GetProcAddress(m_handle,"ComEForce");
pERead cERead = (pERead)GetProcAddress(m_handle,"ComERead");
pSet cSet = (pSet)GetProcAddress(m_handle," ComESet");
pReset cReset = (pReset)GetProcAddress(m_handle," ComEReset");
pTrue cTrue = (pTrue)GetProcAddress(m_handle," ComTrue");
pIntHex cIntHex = (pIntHex)GetProcAddress(m_handle," CIntToHex");
pHexInt cHexInt = (pHexInt)GetProcAddress(m_handle," CHexToInt");
pBin cBin = (pBin)GetProcAddress(m_handle," CinBin");
pLeft cLeft = (pLeft)GetProcAddress(m_handle," CLeftStr");
pRight cRight = (pRight)GetProcAddress(m_handle," CRightStr");
pMid cMid= (pMid)GetProcAddress(m_handle," CMidStr");
pinstr instr=(pinstr)GetProcAddress(m_handle," CinStr");

注:雙引號中為動態鏈接庫中的函數名。

4)、接下來就可以自由使用動態鏈接庫中的函數了,如:

cOpen(參數略);
cClose(參數略);
cDWrite(參數略);
cDRead(參數略);
cEForce(參數略);
cERead(參數略);
cSet(參數略);
cReset(參數略);
cTrue(參數略);
cIntHex(參數略);
cHexInt(參數略);
cBin(參數略);
cLeft(參數略);
cRight(參數略);
cMid(參數略);
instr(參數略);

注:函數中用到了char*型參數,這里介紹下char*與Cstring的相互轉換的函數:
(1)char*->CString
char* sz;
CString str;
str.Format("%s",sz);  //可以用此函數將讀取的值轉成字符串
(2) CString -> char*
CString str;
char* sz = str.GetBuffer(0);//可將字符串轉成char*給函數賦值

5)、當不再需要使用DLL時記得關閉串口及釋放動態鏈接庫,如:

關閉串口
if cTrue(1)==1 then
{
  cClose(1);
}

6)、釋放DLL

FreeLibrary(m_handle);

注:對于各位使用VC及其他開發環境的朋友,我表示歉意因為我不太使用這類軟件所以就不再寫DEMO程序了,VC的參照上述聲明我做過測試是可以使用的,其他開發環境我沒有測試不能保證您可以使用。

作者:  wjun7610
QQ:    157610979
Email: wjun7610@yahoo.com.cn
淘寶店:http://shop34821629.taobao.com
本帖最近評分記錄:
  • 下載積分:+5(taoyu001) 樓主辛苦了!
  • 下載積分:+5(YMMFA)
    wjun7610
    級別: 略有小成
    精華主題: 0
    發帖數量: 127 個
    工控威望: 249 點
    下載積分: 708 分
    在線時間: 35(小時)
    注冊時間: 2007-09-16
    最后登錄: 2025-05-07
    查看wjun7610的 主題 / 回貼
    1樓  發表于: 2007-09-22 12:50
    這是我第一次發貼,希望大家多支持。
    wjun7610
    級別: 略有小成
    精華主題: 0
    發帖數量: 127 個
    工控威望: 249 點
    下載積分: 708 分
    在線時間: 35(小時)
    注冊時間: 2007-09-16
    最后登錄: 2025-05-07
    查看wjun7610的 主題 / 回貼
    2樓  發表于: 2007-09-22 12:52
    希望在這里能夠結識很多工控界的朋友共同進步
    lishlish
    級別: *
    精華主題: * 篇
    發帖數量: * 個
    工控威望: * 點
    下載積分: * 分
    在線時間: (小時)
    注冊時間: *
    最后登錄: *
    查看lishlish的 主題 / 回貼
    3樓  發表于: 2008-03-21 12:26
    太好了,這種程序可以在電腦與PLC人機界面中用
    catywu
    級別: 家園?
    精華主題: 2 篇
    發帖數量: 641 個
    工控威望: 853 點
    下載積分: 19992 分
    在線時間: 574(小時)
    注冊時間: 2007-08-19
    最后登錄: 2025-05-28
    查看catywu的 主題 / 回貼
    4樓  發表于: 2008-03-21 21:38
    不錯啊!值得學習!感謝分享!
    heyijun
    級別: 探索解密
    精華主題: 0
    發帖數量: 39 個
    工控威望: 141 點
    下載積分: 626 分
    在線時間: 36(小時)
    注冊時間: 2010-11-18
    最后登錄: 2024-12-24
    查看heyijun的 主題 / 回貼
    5樓  發表于: 2011-01-27 11:55
    值得學習!感謝分享!
    xt5818
    級別: 家園?
    精華主題: 0
    發帖數量: 390 個
    工控威望: 556 點
    下載積分: 9727 分
    在線時間: 277(小時)
    注冊時間: 2010-11-06
    最后登錄: 2024-06-10
    查看xt5818的 主題 / 回貼
    6樓  發表于: 2011-01-27 14:14
    值得學習!感謝分享!
    crgtom
    人生三寶:家庭,事業,健康。
    級別: 網絡英雄

    精華主題: 0
    發帖數量: 1379 個
    工控威望: 9714 點
    下載積分: 101883 分
    在線時間: 967(小時)
    注冊時間: 2009-09-21
    最后登錄: 2025-05-29
    查看crgtom的 主題 / 回貼
    7樓  發表于: 2011-05-11 17:59
    感謝分享!學習!學習!
    技術是有時效性的,一旦過了市場周期,都會變成垃圾!
    wtgosa
    級別: 略有小成
    精華主題: 0
    發帖數量: 219 個
    工控威望: 294 點
    下載積分: 6270 分
    在線時間: 293(小時)
    注冊時間: 2010-01-25
    最后登錄: 2025-05-19
    查看wtgosa的 主題 / 回貼
    8樓  發表于: 2011-05-15 12:21
           ,很想了解,但是智慧有限!!

    主站蜘蛛池模板: 九色蝌蚪在线观看_中国精品自拍_日韩在线精品_国产精品人妻_国产成人无码区免费A∨视频网站_久久偷人_日本精品黄色_午夜操操 | av夜夜操_夜夜骑夜夜操_大片一级_色婷在线_国产精品乱码高清在线观看免费_最新亚洲视频_视频一区二区中文字幕日韩_一区一区三区 中文字幕国产_亚洲精品影院_麻豆av高清_无码中文亚洲AV影音先锋_国产97久久_精品一区二区三区视频_欧美在线视频网_男人影院在线观看www | 益日韩欧群交P片内射中文_1313午夜精品理论片_综合爱爱网_纯肉无遮挡h肉动漫在线观看3d_男人的天堂久久精品_99久久精品午夜一区二区_亚洲七七久久桃花影院_国产91色在线亚洲 | 国产黑丝一区二区_精品久久看_日韩欧美在线观看一区二区_亚洲精品在线免费_北条麻纪在线观看aⅴ_日韩成人免费av_999国产精品视频免费_国产网址在线观看 | 美女久久一区_插B内射18免费视频_激情综合一区二区三区_国产成人亚洲综合精品_黑人中文字幕_china农村妇女videos_综合久色_高清一区二区三区日本久 | 亚洲AV最新在线网址18禁_巨熟乳波霸若妻在线播放_少妇福利视频_WWW亚洲精品久久久_亚洲精品国产成人久久av盗摄_久久精品亚洲一区二区三区画质_涩涩爱97_成人免费视频无码专区 | www无套内射高清免费_2018年国内精品视频_日韩欧美亚欧在线视频_国产毛毛片_国内毛片毛片_国产美女一级a在线_av免费观看大全_九九精品视频免费 | 久久久精品有限公司_色噜噜国产精品视频一区二区_国产麻豆精品theporn_黄色1级大片_一及毛片视频_久久精品国产清自在天天线_豆产96豆麻豆_亚洲AV日韩AV一区二区三曲 | 日本黄色成人_中文字幕av在线免费观看_精品国产一区二区三区性色av_少妇WWWB搡BBB搡BBB_在线看黄色毛片_精品久久久久久久久久久aⅴ_182tv免费福利视频_夜夜草视频资源 国产福利精品视频_91素人在线_国产欧美另类久久久精品丝瓜_日韩精品一区二区av_XX性欧美肥妇精品久久久久久_老司机深夜18禁污污网站_伊人色综_99国产精品免费视频 | 欧美黑人又粗又大xxx_亚洲综合在线播放_91色噜噜_精品久久视频_妖精av_欧美在线xxx_a级在线_欧美又大粗又黄又爽无码 | 亚洲成色网_久国产视频_最新亚洲国产_黄色av看视_国产午夜久久久_天天躁日日躁狠狠躁a∨麻豆_午夜无码片在线观看影院Y_午夜视频一区 | 国产乱了_日韩欧美xxxxx_国产精品成人扳一级aa毛片_韩国一级无码免费精品视频_老师办公室被吃奶好爽在线观看_日本3级视频_啦啦啦中文在线观看日本_奇米影视7777久久精品人人爽 | 国产成人91视频_在线观看第一区_国产精品交换_日本四虎_国精品午夜福利视频不卡麻豆_人妻无码高清一区_久草热线视频_色网免费 | 日本特黄特色特爽大片_性高爱久久久久久久久_欧美麻豆视频_99re这里只有精品99_亚洲国产片_欧美一级片在线视频_午夜免费视频观看_美国特级a毛片免费网站 | 婷婷欧美一区二区三区_成人无码精品一区二区三区亚洲区_tube8欧美大屁股xxxx_精品一区二区三区欧美_久草在线新体验_一级毛片在线a_交换一乱一性一爱_日韩亚洲国产中文永久 | 久色激情_日本国产亚洲_蜜臀久久99精品久久久久久9_BBWBBWBBW少妇毛茸茸_欧美18.19_国产人妻久久精品一区二区三区_色小姐综合_a色视频 | 一个人看的www视频网站_好色综合_在线观看一区亚_国产精品久久久久久久久久久新郎_亚洲va久久久噜噜噜久久男同_久热青青_伊人久久大香线蕉无码麻豆_美国三级 | 穿越时空的少女免费观看动漫日语_国产野战无套av毛片_国产精品成人aaaaa网站_A级毛片内射免费视频_魔鬼部队高清国语免费观看_97精品免费公开在线视频_日韩av高清在线播放_国产欧美日韩另类 | 国产精品嫩草影视久久久_日本精品一区视频_日韩成人一二三_av片在线观看无码免费_中文字幕人妻无码系列第三区_亚洲成av人片在www鸭子_a毛片免费看_毛片免费观看 | 久久久久亚洲av无码专区蜜芽_91插插影院_av高清一区二区_一区二区a视频_国产精品亚洲LV粉色_麻豆av网_久久久99日产_a级毛片特级毛片 | 日本老逼_欧美丰满熟妇乱XXXXX网站_性少妇中国内射XXXX狠干_国产婷婷成人久久av免费高清_九一在线观看_一级做a爰性色毛片免费视频_国产在线免费_亚洲女人网 | 天天干视频网_国产精品久久久久免费a∨大胸_在线亚洲日本_成人αv_精品人妻AV一区二区三区_最新理论三级中文在线观看_久久久免费观看_最好看的中文2018 | 91精品国产色综合久久不卡98_免费国产成人肉肉视频大全_日本熟妇xxxx_日本高清免费观看_看片1区_俺去鲁婷婷六月色综合_日韩精品一区二区亚洲AV观看_青青久久国产 | 色综合99_中文日产幕无限码一区_黄网站色网址_又污又爽又黄的网站_欧美成人h版_亚洲日韩欧洲无码a∨夜夜_亚洲人成影院在线无码_色五月丁香六月欧美综合 | 久久亚洲色WWW成人不卡_超碰在线观看99_鲁一鲁一鲁一鲁一av卡三_极品无码AV国模在线观看_国产第56页_蜜桃传媒视频麻豆第一区免费观看_51成人看片_欧洲无码一区二区三区在线观看 | 久久伦理片_成人网视频在线观看_免费特级黄毛片_亚洲综合中文字幕一区二区_精品综合无码视频久久久_欧美日韩网站在线观看_小辣椒福利视频精品导航_成人黄色一级 | ⅵdeodesetv性欧美_久久精品www人人做人人爽_我要看黄色影片_欧美综合网站_91国产在线播放_97丨九色丨国产人妻熟女_青青久在线视频免费观看_成人av网站大全 | 在线观看高清视频免费网站_在线āv视频_国产一区二区三区四区五区精品_69国产在线观看_免费久草视频_少妇与大狼拘作爱性A片_狠狠干狠狠操_成人免费在线小视频 | 国产成人无码精品久久久性色_国产精品呻吟久久av图片_男人激烈吮乳吃奶视频免费_www.伊人.com_亚洲日韩中文无码久久_欧美人与动性行为视频_黄色在线视屏_国产色综合一区 | 黄网动漫久久久_人人揉人人捏人人添_午夜男女爽爽爽在线视频_精品久久1_天堂资源av在线_日韩精品1区_波多野无码黑人在线播放_日韩大片高清播放器 | 手机看片一级片_人人妻人人爽人人澡人人_亚洲成AV人片在一线观看_在线精品自偷自拍无码_中文字幕一区二区三区在线播放_日本中文字幕视频一区_国产不卡精品_99精品久久久久久久另类 | 国产成人无码精品午夜福利A_日本熟妇HD人妻_国产成年无码a∨片在线韩国_秋霞福利_午夜精品91_AA片子吇中文字处女_欧美夜噜噜免费观看_国产精品青青草原免费无码 | 欧美黑人又粗又大xxx_亚洲综合在线播放_91色噜噜_精品久久视频_妖精av_欧美在线xxx_a级在线_欧美又大粗又黄又爽无码 | 国产AV旡码专区亚洲AV_国产亚洲高清在线观看_日韩精品免费_成人乱码一区二区三区av_国产在线一区二区三区四区_偷拍自拍在线视频_不卡的一区_国内精品国语自产拍在线观看 | 人与动人物XXXX毛片老司机_heyzo无码中文字幕在线_午夜dj影院在线_中国av免费观看_特黄视频_九九九久久久精品_亚洲不卡在线观看_特级淫片aaaaaaa级 | 国产黄在线观看免费观看不卡_av福利免费_国产麻豆天美果冻无码视频_午夜宅男久久久_xxxxxhd日本xxxx47_日韩高清在线一区二区三区_男人天堂视频网_少妇高潮浪潮av99网站 | 国内精品久久人妻朋友_制服视频在线一区二区_中国人妻被两个老外三p_衣服被扒开强摸双乳18禁网站_超碰在线最新_色av色_久久久久亚洲精品成人网小说_av超碰在线 | 绝顶丰满少妇av无码_国产精品一区欧美_国产精品色哟哟_日韩淫视频_老熟妇仑乱视频一区二区_亚洲欧美中文日韩在线v日本野外_欧美乱偷一区二区三区在线_成人在线观看www | 亚洲综合国产一区_www.狠狠操.com_91视频福利网_欧美99热_国产观看_日本一级片视频_国产永久免费_亚洲精品久久久AV无码专区 | sxeoquenetv另类重口_日本视频网址_日韩成人在线一区_综合狠狠开心_91久久高清国语自产拍_久草在线免费资源站_国产精品亚洲专区无码不卡_欧洲美熟女乱又伦av影片 | 久久99精品久久_66亚洲丁香婷婷综合久久_日本精品久久久久中文字幕乱中年_少妇无码AV无码专区_男女啪啪永久免费观看网站_国产精品久久久久野外_欧美国产韩a在线视频_天海翼一区二区三区高清在线 |