成人精品一区二区久久久 I 国产美女永久无遮挡 I 中文字幕+乱码+中文字幕明步 I 国产在视频一区二区三区吞精 I 日韩精品小视频 I 成人性生交大片免费4 I 免费aaa级毛片在线视频 I 一级片毛片 I 大型成人社区 I 国模在线播放 I 欧美大荫蒂毛茸茸视频 I 偷偷色噜狠狠狠狠的777米奇 I www.久久亚洲 I 日日搞夜夜操 I 亚洲成色777777女色窝 I 毛片黄色毛片 I 午夜片在线观看 I 国产一区二区三区中文字幕 I 天天干夜夜骑 I 日韩在线视频一区二区三区 I 久久久无码精品亚洲a片0000 I 写真福利片hd在线播放 I 欧美成人一区二免费视频 I 色噜噜狠狠爱综合视频 I 中文字幕无线码免费人妻 I 国产精品久久久久久久久久不蜜臀 I 欧美综合人人做人人爱 I 1024成人网色www I 国产精品视频一二三区 I 亚洲免费美女视频

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

二、DLL函數(shù)說(shuō)明

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

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

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

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

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

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

4、PLC存儲(chǔ)器的讀取(C、D、T)
Function ComDRead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;
參數(shù):
nport: 串口號(hào),取值為1~8,代表COM1~COM8;
address: 寄存器地址,取值為D區(qū)0~4095、C、T(定時(shí)器/計(jì)數(shù)器當(dāng)前值)區(qū)0~255;
Count: 讀取寄存器個(gè)數(shù),最多讀取32個(gè)寄存器;DLL讀取的越界會(huì)自動(dòng)舍去
element:元件名稱,支持D、C、T;
返回值:字符串?dāng)?shù)據(jù),字符串?dāng)?shù)據(jù)的終止符為"@";
使用舉例:
ComDRead(1,0,4,'D') ,由COM1讀取D0~D3四個(gè)寄存器的值,如返回值為“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: 串口號(hào),取值為1~8, 代表COM1~COM8;
address: 位單元地址,定時(shí)器C:0~255、M:0~2047、S:0~999、T:0~255、特M: M8000~M8255;
element:元件名稱,支持C、M、S、T;
sendstr:  給多線圈寫入的值,該值為2個(gè)一組的16進(jìn)制字符串組其取值為00~FF(整數(shù)值為0~255),當(dāng)要寫入多個(gè)值時(shí)依次排列即可。例如: 字節(jié)地址C0'(實(shí)際由位地址位C0~C7)、字節(jié)地址C1'(實(shí)際由位地址位C8~C15),如給C0'賦值80、C1'賦值CF,則sendstr=80CF;一次最多寫64個(gè)字節(jié),即字符串長(zhǎng)應(yīng)小于等于128;
                          ---------- - ~  ------
寫字符串序列如:          | 00 | FF | 10 | 64 |  ~  | 1F | 48 |
                          ---------- - ~  ------

實(shí)際字符串與位地址的數(shù)值應(yīng)如下表:(將上例的字節(jié)C0'、C1'轉(zhuǎn)換為位地址C0~C15由下表對(duì)應(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      |
            ------------------------------------
         
返回值:長(zhǎng)整型,操作成功返回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都按此公式計(jì)算如何給實(shí)際的位地址強(qiáng)置值。

6、PLC的多線圈讀取(C、M、S、T、X、Y)
Function ComERead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;
參數(shù):
nport: 串口號(hào),取值為1~8,代表COM1~COM8;
address: 位單元地址,定時(shí)器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é)個(gè)數(shù),最多讀取64個(gè)字節(jié);
element:元件名稱,支持C、M、S、T、X、Y;
位單元的字節(jié)組成按8個(gè)位一組,如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組合的兩個(gè)字節(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。

對(duì)于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: 串口號(hào),取值為1~8,代表COM1~COM8;
address: 位單元地址,定時(shí)器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: 串口號(hào),取值為1~8,代表COM1~COM8;
address: 位單元地址,定時(shí)器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ù)說(shuō)明

1、串口打開狀態(tài)的讀取
Function ComTrue(nport:longint):longint;stdcall;
參數(shù):
noprt: 串口號(hào),取值為1~8,代表COM1~COM8;
返回值:長(zhǎng)整型,串口打開返回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í)按實(shí)際輸出;

使用舉例:
CIntToHex(200,2),則返回字符串“C8@”;
CIntToHex(200,4),則返回字符串“00C8@”;
CIntToHex(4500,4),則返回字符串“1194@”;
CIntToHex(4500,3),則返回字符串“1194@”,因?yàn)椤?94”不足以表示4500這個(gè)數(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)制字符串中某個(gè)位的值
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”時(shí),要讀取M10的值時(shí),則調(diào)用CinBin(‘FC’,3)返回值1表示M10的值為1。

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

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

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

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

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

7、返回字符串Text從Start開始的Count個(gè)字符 (為VC等非RAD開發(fā)環(huán)境所增設(shè))
Function CMidStr(Text:Pchar;Start,Count:longint):Pchar;stdcall;
參數(shù):
Text: 字符串原型;
Start: 指定返回字符串的起始位置;
Count: 指定返回字符串個(gè)數(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: 查詢的字符串;
返回值:長(zhǎng)整型;

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

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

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

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

在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ù)。通信時(shí)必須先使用ComOpen函數(shù)打開串口,在串口打開后可以有效操作相關(guān)函數(shù),為確保通信可在程序運(yùn)行開始時(shí)打開串口,程序關(guān)閉前關(guān)閉串口。應(yīng)用程序關(guān)閉之前請(qǐng)務(wù)必將關(guān)閉所有串口,如串口未關(guān)閉前關(guān)閉系統(tǒng)將拋出異常。確保應(yīng)用程序在關(guān)閉釋放前關(guān)閉打開的串口。解決方法,在form的OnDestroy事件中加入如下語(yǔ)句:
if ComTrue(1)=1 then ComClose(1);
在Delphi中給中給DLL中的函數(shù)傳pchar值問(wèn)題,參考下例:
讀取多線圈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語(yǔ)言環(huán)境開發(fā)說(shuō)明

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

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

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

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

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

2)、按下例說(shuō)明聲明相關(guān)各個(gè)函數(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)、聲明并建立動(dòng)態(tài)鏈接庫(kù)中的函數(shù)與新函數(shù)名的對(duì)應(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");

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

4)、接下來(lái)就可以自由使用動(dòng)態(tài)鏈接庫(kù)中的函數(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時(shí)記得關(guān)閉串口及釋放動(dòng)態(tài)鏈接庫(kù),如:

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

6)、釋放DLL

FreeLibrary(m_handle);

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

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

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

    主站蜘蛛池模板: 宅男噜噜99国产精品麻豆精品 | 爽爽窝窝午夜精品一区二区 | 91亚洲成人 | 天天摸天天做天天爽天天弄 | 鸥美一级片 | 久草精品在线观看 | 4虎最新| 少妇下蹲下露大唇58 | 天天摸夜夜添久久精品 | 大岛优香中文av在线字幕 | 欧美三级久久久 | 亚洲精品香蕉 | 精品午夜福利无人区乱码一区 | 亚洲日本韩国 | 在线精品观看 | 欧美社区在线 | 亚洲色精品vr一区二区 | 最新亚洲人成网站在线影院 | 无码专区狠狠躁躁天天躁 | 神马久久春色 | 中国chinese军人xx呻吟 | 无码任你躁久久久久久 | www青青草| 午夜美女久久久久爽久久 | 欧美巨大巨粗黑人性aaaaaa | 免费的美女色视频网站 | 亚洲成在人线视av | 人妻无码αv中文字幕久久琪琪布 | 久久精精品久久久久噜噜 | 精品久久国产字幕高潮 | 亚洲综合性网 | 99色在线观看 | 成人h无码动漫在线观看 | 亚洲.欧美.在线视频 | 色偷偷亚洲男人天堂 | 精品国产一区二区三区四区动漫a | 国产97人人超碰caoprom | 国产精品国产三级国产密月 | 在线精品亚洲第一区焦香 | 国产又爽又黄的激情精品视频 | 狠狠色狠狠色综合系列 | 国产91精品久久久久久久网曝门 | 国产成人无码av | 午夜大片男女免费观看爽爽爽尤物 | 久久久久99人妻一区二区三区 | 麻豆国产av尤物网站尤物 | 99免费观看 | 97精品国产久热在线观看 | 亚洲粉嫩高潮的18p 国产日韩亚洲大尺度高清 性av网 | 国产产无码乱码精品久久鸭 | 国产爆乳肉感大码在线视频 | av无码天一区二区一三区 | 欧美大屁股xxxx高跟欧美黑人 | 国产日韩高清在线 | 伊人精品在线观看 | 久久奇米 | 十八禁午夜私人在线影院 | 蜜臀久久99精品久久久无需会员 | 日韩成人高清视频 | 主站蜘蛛池模板: 蛛词}| 51国产偷自视频区免费播放 | 亚洲香蕉网站 | 日本一区二区视频在线播放 | 91在线观看视频 | 国产偷国产偷亚洲清高 | 欧美精品18videosex性欧美 | www视频在线观看 | 天天看天天干 | 欧美肥老太牲交 | 人人澡超碰碰97碰碰碰 | 亚洲欧美视频在线 | 亚洲处破女av日韩精品波波网 | www.一区二区三区 | 国产精品综合av一区二区 | 婷婷狠狠爱| 在线观看国产最新a视频 | 免费日韩中文字幕 | 亚洲一区无码精品色 | 国产精品一区二区久久久久 | 日本xxxxx九色视频在线观看 | 伊人激情在线 | 精品无码一区二区三区爱欲九九 | 国产亚洲情侣一区二区无码av | 国产成人高清精品免费软件 | 亚洲一区 日韩精品 中文字幕 | 日韩欧美群交p内射捆绑 | 欧美老熟妇乱子 | 亚洲欧美日韩在线 | 久久在线免费观看 | 亲子性教育中文字幕 | 国产成人不卡无码免费视频 | 19禁无遮挡啪啪无码网站性色 | 国产又大又黑又粗 | 午夜小网站 | 超91视频| 午夜男人天堂 | 欧美日韩亚洲一区二区三区 | 午夜精品久久久久久久喷水 | 91亚洲精选 | 日韩在线一区二区三区 | 在线 | 国产精品星空传媒丿 | 日本少妇aa特黄毛片亚洲 | 国产久9视频这里只有精品 99视频观看 | 欧美一区二区三区在线观看视频 | 欧美 日韩 国产 亚洲 色 | 国产精品永久免费视频 | 亚洲成人动漫在线观看 | 免费视频毛片 | 国产一区二区三区内射高清 | 久久久久久久久久久综合 | 精品日产卡一卡二卡927 | 免费无码又爽又刺激高潮的动态图 | 国产香蕉97碰碰碰视频在线观看 | 国产视频97 | 狠狠色噜噜狠狠狠888米奇 | 免费国产污网站在线观看不要卡 | 丁香色婷| 夜夜cao| 国产乱妇无码大片在线观看 | 主站蜘蛛池模板: 蛛词}| 忘忧草日本在线播放www | 日韩黄色免费网站 | 亚洲日韩a∨无码久 | 日韩精品中文字幕久久臀 | 曰韩精品无码一区二区视频 | 黄片毛片在线观看 | 曰本又大又粗又黄又爽的少妇毛片 | 日日碰日日摸日日澡视频播放 | 强开小婷嫩苞又嫩又紧韩国视频 | 日韩精品网站在线观看 | 狠狠躁夜夜躁人蜜臀av | 国产真人做爰视频免费 | 亚洲久久久久久中文字幕 | 视频一区二区无码制服师生 | 国产 | 久你欧洲野花视频欧洲1 | 丰满少妇人妻hd高清大乳在线 | av亚洲精华国产精华精 | 日本三级毛片 | 午夜内射高潮视频 | 欧美色欧美亚洲高清在线视频 | 亚洲精品国产黑色丝袜 | 免费成人深夜夜 | 免费看成人午夜福利专区 | 狠狠操天天操夜夜操 | 99综合在线 | 老司机午夜精品99久久免费 | 亚洲国产精品久久久久久女王 | 狠狠色婷婷久久综合频道毛片 | 精品国产一二三区 | 免费的毛片网站 | 国产香蕉尹人视频在线 | 亚洲色精品vr一区区三区 | 久草97| 国产精品国产三级国产传播 | 欧美在线日韩 | 九九九小视频 | 四虎5151久久欧美毛片 | 小泽玛利亚一区二区在线观看 | 国产精品热久久高潮av袁孑怡 | 欧美成人www在线观看 | 欧美3区 | 91人人爱 | 亚洲成av人片一区二区三区 | 国产精品丝袜久久久久久高清 | 国产中文网 | 久久精品亚洲一区 | 同性男男黄g片免费网站 | 日本亚洲精品色婷婷在线影院 | 国模冰冰炮一区二区 | 爆乳护士一区二区三区在线播放 | 麻豆视频一区二区三区 | 中文人妻av大区中文不卡 | 国产精品久久久久久亚洲毛片 | www.av免费 | 成人精品久久久 | 18禁裸男晨勃露j毛免费观看 | 野外少妇被弄到喷水在线观看 | 在线观看免费小视频 | 人妻系列无码专区无码中出 | 主站蜘蛛池模板: 蛛词}| av无码av高潮av喷吹免费 | 中文午夜人妻无码看片 | 99re6热在线精品视频观看 | 在线观看免费视频污网站 | 久草在线中文888 | 亚洲小视频在线播放 | 色爽黄1000部免费软件下载 | 麻豆久久久9性大片 | hd最新国产人妖ts视频 | 手机在线看片你懂得 | 欧美精品二区三区四区免费看视频 | 午夜视频在线免费看 | 91网站在线免费观看 | 亚洲精品一线二线三线无人区 | 中文字幕亚洲精品日韩 | 婷婷亚洲五月 | 亚洲人亚洲人成电影网站色 | 免费欧美一级 | 91国内精品 | 欧美精品黑人粗大破除 | 国内精品自在自线视频 | 国产成人精品午夜福利在线观看 | 亚洲专区中文字幕 | 少妇激情视频 | 亚洲a∨精品一区二区三区 国产三级在线视频 一区二区三区 | 久久男人av| 亚洲在战av极品无码 | 亚洲人成人77777网站 | 精品久久久久久中文字幕大豆网 | 国产iv一区二区三区 | www.色图| 国产精品21p | 伦伦影院午夜理论片 | 青青草超碰在线 | 精品久久久久久中文字幕2017 | 伊人国产在线观看 | 人妻无码久久久久久久久久久 | www91com国产91 | 国产色99 | 日韩专区在线观看 | 一本一本久久a久久精品 | 日欧美女人 | 久久久亚洲国产精品 | 第一页综合 | 免费黄色毛片 | 思思久久99热久久精品66 | 可以免费观看的av网站 | 99这里精品 | 国产精品毛片一区二区 | 亚洲另类色区欧美日韩图片 | 国内精品久久久久影院网站 | 久久精品久久电影免费理论片 | 天天干天天操天天 | 轻轻色在线观看 | 国产精品vⅰdeoxxxx国产 | www.天天操 | 亚洲欧美综合区丁香五月小说 | 国产视频资源在线观看 | 欧美 亚洲 | 主站蜘蛛池模板: 蛛词}| 99久久久久久 | 亚洲视频精品一区 | 亚洲日本中文字幕乱码在线 | 青青草国产精品人人爱 | 色桃av | 天天躁日日躁狠狠躁2018 | 精品视频一区二区三区四区戚薇 | 99精品国产丝袜在线拍国语 | 又爽又黄又无遮挡的激情视频免费 | 少妇精品揄拍高潮少妇 | 国产两女互慰高潮视频在线观看 | 少妇丰满大乳被男人揉捏视频 | 又色又爽又高潮免费观看 | 久久精品无码一区二区三区不卡 | 精品无码一区二区三区不卡 | 亚洲jizzjizz少妇野女人 | 77777_亚洲午夜久久多人 | 国产成人无码精品久久二区三区 | 久久青青草免费线频观 | 真实乱视频国产免费观看 | 亚洲精品乱码久久久久久9色 | 中文无码伦av中文字幕在线 | 欧美a影院 | 老头把我添高潮了a片 | 夜夜嗨av涩爱av牛牛影视 | 中文无码乱人伦中文视频在线 | 免费无码又爽又高潮视频 | 高清性欧美暴力猛交 | 黄色毛片视频免费 | 国产曰又深又爽免费视频 | 亚洲国产av久久久 | 中文字幕亚洲高清精品一区在线 | 亚洲中又文字幕精品av | 国产美女爽到喷出水来视频 | 亚洲国产成人精品无码区在线秒播 | 国产av老师丝袜美腿丝袜 | 亚洲精品天天影视综合网 | 男女猛烈啪啪无遮挡激烈 | 国产精品久久久久9999不卡 | 国产亚洲精品国产福app | 搡老女人老91妇女老女人 | 亚洲视频在线观看一区二区 | 中日韩黄色大片 | 91一区视频 | 精品国产成人网站一区在线 | 看黄a大片日本真人视频直播 | 99精品久久久久久久免费看蜜月 | 日韩成人精品在线 | 国内a∨免费播放 | 19禁无遮挡啪啪无码网站 | 国产精品久久久久久久久久久久久久久 | 国产成人手机高清在线观看网站 | 自拍偷拍三级 | 真实处破女刚成年av网站 | 亚洲精品一卡2卡三卡4卡乱码天 | 成人a片产无码免费视频在线观看 | 日本青青草视频 | 欧美激情综合五月色丁香小说 | 少妇激情作爱视频 |