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

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

二、DLL函數(shù)說明

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

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

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

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

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

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

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

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


5、PLC的多線圈強(qiáng)置(C、M、S、T)
Function ComEForce(nport,address:longint;element,sendstr:pchar):longint;stdcall;
參數(shù):
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進(jìn)制字符串組其取值為00~FF(整數(shù)值為0~255),當(dāng)要寫入多個值時依次排列即可。例如: 字節(jié)地址C0'(實(shí)際由位地址位C0~C7)、字節(jié)地址C1'(實(shí)際由位地址位C8~C15),如給C0'賦值80、C1'賦值CF,則sendstr=80CF;一次最多寫64個字節(jié),即字符串長應(yīng)小于等于128;
                          ---------- - ~  ------
寫字符串序列如:          | 00 | FF | 10 | 64 |  ~  | 1F | 48 |
                          ---------- - ~  ------

實(shí)際字符串與位地址的數(shù)值應(yīng)如下表:(將上例的字節(jié)C0'、C1'轉(zhuǎn)換為位地址C0~C15由下表對應(yīng))
            ------------------------------------
位地址:    | 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進(jìn)制串:  |      8      |      0      |        C        |        F      |
            ------------------------------------
         
返回值:長整型,操作成功返回1,否則返回0;

使用舉例:
ComEForce(1,0,‘C’ ,‘80CF’),DLL將按上表給相應(yīng)位強(qiáng)置值,這里地址address賦值0~7都是給C0~C15的強(qiáng)置值,因?qū)嶋H字節(jié)地址=address div 8 (0~7 div 8 都等于0,即都是給C0'、C1'強(qiáng)置值)。

字節(jié)地址如Mx' = address div 8 ,M、S、C、T都按此公式計算如何給實(shí)際的位地址強(qiáng)置值。

6、PLC的多線圈讀取(C、M、S、T、X、Y)
Function ComERead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;
參數(shù):
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 位單元地址,定時器C:0~255、M:0~2047、S:0~999、T:0~255、X:0~177(8進(jìn)制)、Y:0~177(8進(jìn)制)、特M: M8000~M8255;
Count: 讀取字節(jié)個數(shù),最多讀取64個字節(jié);
element:元件名稱,支持C、M、S、T、X、Y;
位單元的字節(jié)組成按8個位一組,如56(16進(jìn)制)則表示下表的位構(gòu)造值。
              ----------------
位地址:      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
              ----------------
各位賦值:    | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 |
              ----------------
16進(jìn)制串:    |      5      |      6      |
              ----------------
使用舉例:
ComERead(1,0,1,‘M’),如返回56(16進(jìn)制)則M0~M7的值為上表反應(yīng)的結(jié)果。0~255的位地址映射成字節(jié)地址應(yīng)為0~31。
即:實(shí)際地址=address / 8 ,如ComERead(1,11,2,‘C’)相應(yīng)都得是C8~C15與C16~C23組合的兩個字節(jié)的值,例如返回值為“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進(jìn)制串:|        8        |        7      |        0        |        A        | @ |
        -----------------------------------------

"@"為字符串?dāng)?shù)據(jù)的終止符。

DLL還提供附加函數(shù)CinBin ,可以讀出字節(jié)中相應(yīng)位的值是1還是0。

對于X、Y區(qū)線圈地址可以按8進(jìn)制地址轉(zhuǎn)換成10進(jìn)制后再參照上表的地址映射關(guān)系。


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

Function ComESet(nport,address:longint;element:Pchar):longint;stdcall;
參數(shù):
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的線圈復(fù)位(C、M、S、T)
Function ComEReset (nport,address:longint;element:Pchar):longint;stdcall;
參數(shù):
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復(fù)位;
ComEReset (1,810,‘S’),給S810復(fù)位;

三、DLL附加函數(shù)說明

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

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

使用舉例:
CIntToHex(200,2),則返回字符串“C8@”;
CIntToHex(200,4),則返回字符串“00C8@”;
CIntToHex(4500,4),則返回字符串“1194@”;
CIntToHex(4500,3),則返回字符串“1194@”,因?yàn)椤?94”不足以表示4500這個數(shù)所以按實(shí)際輸出字符串“1194@”;

"@"為字符串?dāng)?shù)據(jù)的終止符。

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

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

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

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

"@"為字符串?dāng)?shù)據(jù)的終止符。

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

"@"為字符串?dāng)?shù)據(jù)的終止符。

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

"@"為字符串?dāng)?shù)據(jù)的終止符。

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

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

DLL中關(guān)于傳出字符串值的函數(shù)都以"@"為字符串函數(shù)值終止符。

四、Delphi、VB、VC語言環(huán)境的開發(fā)使用說明

1、Delphi語言環(huán)境開發(fā)說明

在Delphi環(huán)境下將melsecfx.dll、serialfx.slip(許可文件)復(fù)制到應(yīng)用程序目錄下(即將上述文件與編譯后的可執(zhí)行文件方入同一文件夾內(nèi));

在工程文件的主程序窗體(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';

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

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

上述可以詳細(xì)參照DEMO程序。

2、VB語言環(huán)境開發(fā)說明

在VB環(huán)境下將melsecfx.dll、serialfx.slip(許可文件)復(fù)制到應(yīng)用程序目錄下(即將上述文件與編譯后的可執(zhí)行文件方入同一文件夾內(nèi));

在工程文件中聲明:

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

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

3、VC語言環(huán)境開發(fā)說明
在VC環(huán)境下將melsecfx.dll、serialfx.slip(許可文件)復(fù)制到應(yīng)用程序目錄下(即將上述文件與編譯后的可執(zhí)行文件方入同一文件夾內(nèi));

在工程主文件cpp中聲明一個句柄:
HINSTANCE m_handle;
用來標(biāo)識導(dǎo)入的動態(tài)鏈接庫。

1)、導(dǎo)入動態(tài)鏈接庫,如例所示:

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

2)、按下例說明聲明相關(guān)各個函數(shù):

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)、聲明并建立動態(tài)鏈接庫中的函數(shù)與新函數(shù)名的對應(yīng)關(guān)系,如下:

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");

注:雙引號中為動態(tài)鏈接庫中的函數(shù)名。

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

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

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

5)、當(dāng)不再需要使用DLL時記得關(guān)閉串口及釋放動態(tài)鏈接庫,如:

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

6)、釋放DLL

FreeLibrary(m_handle);

注:對于各位使用VC及其他開發(fā)環(huán)境的朋友,我表示歉意因?yàn)槲也惶褂眠@類軟件所以就不再寫DEMO程序了,VC的參照上述聲明我做過測試是可以使用的,其他開發(fā)環(huán)境我沒有測試不能保證您可以使用。

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

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

    主站蜘蛛池模板: 偷拍各种美女wc嘘嘘视频_亚洲精品乱码久久久久久按摩_成人免费xyz网站_朝桐光a∨一区二区三区_国内精品卡1卡2卡区别_欧美国产一级_亚洲AV综合A∨一区二区_自拍超碰 | 久久婷婷五月综合色一区二区_com毛片_黄色亚洲精品_www成人在线_超级碰人人干_91久久国语露脸精品国产高跟_91精品啪在线观看_天天狠天天透天天伊人 | 国产村民一二三区_国产香蕉尹人综合在线观看_久久久久久久久久一区_久久婷婷人人澡人人喊人人爽_天天干天天透_日韩免费特黄一二三区_欧美国产日韩在线视频_国产欧美日韩另类在线专区 | 中日韩VA无码中文字幕_久久一本热_少妇熟女久久综合网色欲_国产剧情亚洲福利_老色鬼在线精品视频在线观看_456成人网_亚洲国产精品久久久久婷爱影_精品午夜影院 | 天天综合日日夜夜_日日鲁夜夜如影院_99re视频热这里只有精品7_日本一区二区三区四区_国产做A爰片久久毛片A片白丝_97天堂_99视频在线_国产成人精品免费视频大全最热 | 97视频在线精品国自产拍_91精品国产一区二区三区动漫_国产高清色高清在线观看_国产精品久久久久久久久污网站_久久狠狠干_日本高清H色视频在线观看_一级片视频在线播放_国产SUV精品一区二区四 | 亚洲天堂一区在线_国产精品亚洲精品久久挡不住_日本成本人片免费高清在线观看_免费看α片_国产AV丝袜美腿丝袜_激情视频久久_国产视频日韩_日本九九视频 | 亚洲永久精品一区_亚洲精品永久免费_一本大道伊人久久综合_国产精品99久久99久久久动漫_亚洲七久久之综合七久久_超碰网站在线观看_日日日视频_成人做受黄大片 | 午夜精品影院_中文JAPANESE在线播放_精品三级_林深见鹿40集高清免费观看_国产一级αv片免费观看_青草久久国产_超碰个人97_广西美女色炮150p图 | 91精品国产免费久久综合_无码无遮挡在线观看免费_精品国产乱码久久久久久1区2匹_欧美乱码卡1卡2卡三卡四卡_日本最新一区二区三区_一道精品一区二区三区_日日操日日插_成人做爰69片免费看网站野花 | 黄瓜av_九九热在线视频观看_久久国产精品久久喷水_在线视频免费观看大全_草草影院永久在线观看_久久一区_中文字幕在线免费看线人_bestialityvideo另类灌满 | 少妇厨房愉情理9仑片视频_成人免费在线观看网址_国产成人无码精品一区不卡_久久看av_97超碰福利久久精品_美女一级黄色大片_国产欧美日韩一区二区三区四区_亚洲AV嫩草AV极品A片 | 最好看的中文在线观看_午夜入口_精品久久久久久久久中文字幕_免费看黄色片视频_道日本一本草久_老司机在线观看福利_国产毛片精品久久_久操视频在线免费观看 | 玖玖资源站无码专区_911久久久_免费精品一区_日本乱人伦视频_欧美性猛交xxxx乱大交hd_91视频黄版_亚洲精品免费网站_久久久久久国产一级毛片高清版 | 有码无码人妻视频在线_色吧婷婷_夜夜被两个男人玩得死去活来_国产微拍精品一区一再猛点_成人av动漫在线观看_免费毛片a线观看_尤物在线_91豆麻精品91久久久久久 | 日本视频网站WWW色高清免费_少妇高潮灌满白浆毛片免费看_无码专区亚洲综合另类_亚洲国产精品无码久久sM_超碰在线香蕉_亚洲AV片不卡无码久久_日韩欧美一区二区三区永久免费_欧美高潮又爽又黄又硬又无遮 | 97超碰中文字幕久久精品_人妻无码中文字幕中出精品_黄色一级片看看_伊波拉病毒黄秋生_欧美亚洲国产成人一区二区三区_法国a级情欲片性船_久久久久91视频_国产精品白丝久久av网站 | 夜夜穞天天穞狠狠穞AV美女按摩_亚洲高清视频免费_国产片在线看_永久高清免费av网址_大尺度做爰视频在线观看_国产精品一级大片_免费无码黄十八禁网站在线观看_55av亚洲 | 99re6热在线精品视频播放_免费看片日本_日本精品αv中文字幕_黄色欧美视频_中文字字幕在线一本通_美国一级黄色录像_中国老妇xxxx性开放_狠狠操很很干 | 国产日产欧美a一级在线_久久成人视屏_强行挺进朋友漂亮人妻身体_午夜影音_91精品国产高清久久久久久久久_国产高清久久_亚洲精品无码久久久_国产成人免费看片 | 91在线区_bxbx成人精品一区二区三区_性色国产_777奇米四色成人影视色区_国产激情一区二区三区在线观看_日日操夜夜操狠狠操_全部免费特黄特色大片看片_富女玩鸭子一级毛片 | 国产精品久久久久久久久久辛辛_日本丰满熟妇乱子伦_亚洲欧美精品综合在线观看_国产无av码在线观看_青苹果乐园1080免费_色偷偷尼玛图亚洲综合_欧美一区二区视频网站_成人做爰999 | 亚洲色欲久久久综合网东京热_国产毛片久久久久久美女视频_欧美一级日韩片_99精品网站_www.久久免费_99久无码中文字幕一本久道_在线中文字幕亚洲日韩2020_免费播放黄色片 | 国产高清av免费观看_久久一区二区三区欧美_国产一区二区三区久久久久久_婷婷成人综合网_成人插入视频_成人做爰视频WWW免费看网站_欧美69视频_少妇AB又爽又紧无码网站 | 91亚洲免费视频_国产精品人妻一区二区网站_亚洲中文字幕无码一区二区三区_性欧美XXXXX极品少妇_国产精品一区免费在线观看_一级做a爱片_在线视频一区二区三区三区不卡_激情综合婷婷丁香五月俺来也 | 国产一二三四在线_18禁超污无遮挡无码免费游戏_精品美女久久久_久久九九99视频_成人av中文字幕_日韩一区二区福利_亚洲.国产.中文慕字在线_天堂中文资源库官网 | 国产成人亚综合精品首页_国产午夜精品久久久久久久久久_亚洲资源在线_99视频精品视频高清免费_亚洲精品成人无码视频在线_精品一区二区三区波多野结衣_亚洲?V无码专区在线观看成人_永久免费av网站 | 狠狠爱亚洲五月婷婷av_毛茸茸性XXXX毛茸茸毛茸茸_午夜精品久久久99热福利_国产日韩高清一区二区三区在线_一区二区麻豆_性无码免费一区二区三区屯线_免费观看9x视频网站在线观看_私人成片免费观看 | 日韩av无码一区二区三区不卡毛片_性XXXX视频播放免费_亚洲国产一级_国产精品久久久久久久免费看_国产人成无码视频在线观看_欧美三根一起进三p视频_国久久久久久_边吻奶边挵进去gif动态图 | 中文一区一区三区免费在线观看_日本伊人色综合网_最近更新中文字幕在线2018二_黄色片免费在线_色婷婷香蕉在线一区二区_国产女性无套免费网站_边啃奶头边躁高h裴钰莫捷_国产一级淫片s片sss毛片s级 | 少妇被又大又粗又爽A片_日韩精品永久免费视频_麻豆传媒免费_在线观看免费av网_伦流澡到高潮hnp_欧美国产日韩精品_99国产网站_免费观看又污又黄在线观看国产 | 亚洲高清精品视频_欧美9页_国产a∨精品一区二区三区不卡_2019亚洲午夜无码天堂_伊人久久综在合线亚洲2019_www.夜夜撸_久久精品国产精品亚洲综合_日本不卡无码二区三区 | 一级国产黄色毛片_蜜桃一区二区三区在线_黄瓜视频成人在线观看_91精产国品一二三区_日韩欧美国产专区_久久久久久午夜噜噜噜噜蜜臀av_亚洲高清无码加勒比_伸进她的小内裤里疯狂揉摸小说 | 欧美性猛交xxxx乱_黄页av_91嫩草在线_91官网视频_日本中文字幕有码在线视频_国产免费无码_亚洲国产成人丁香五月激情_边做边对白在线播放边做 | 少妇一区二区三区_中文字幕日韩精品无码内射_91精品网_欧洲mv日韩mv国产mv_日产精品一卡2卡三卡4乱码_97涩色_无遮挡免费高清羞羞视频_操操操干干 | japan21xxxxhd日本妞_国产精品婷婷久久爽一下_日韩亚洲国产免费_97超碰青青草_超碰夜夜操_国产精品a久久久久久_少妇蹲下买菜露出毛_一一级毛片 | 狠狠干黄色_丝袜视频一区二区三区_www成人免费视频_国产精品免费视频网站_大香伊蕉中文字幕_91色交_日韩1区2区_国产熟睡乱子伦午夜视频麻豆 | 伊人思思_亚洲精品无码久久_中文字幕成人在线视频_国产精品免费视频软件_在线观看91免费视频_婷婷激情综合色五月久久竹菊影视_手机看日韩片_日韩视频成人 | 性高潮久久久久久久久_国产白嫩精品久久久久久_黄片毛片一级片_久久久福利_九色97_超碰在线国产_久操网在线观看_99在线播放 | 日韩一中文字幕_九九只有精品_色翁荡熄又大又硬又粗又视频_久久华人_亚洲图色成人网_日本大肚子孕妇交XXX_高清视频新国产_久久夜亚洲 | 亚洲91视频_国产一区二区三区视频网站_2018天天弄国产大片_韩国一级片在线_porno日本xxxxx_日韩欧美一区二区三区久久婷婷_精品国产乱码久久久久久天美_一级黄色影片在线观看 |