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

wjun7610
級別: 略有小成
精華主題: 0
發帖數量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
樓主  發表于: 2013-06-22 19:51
Omron_Fins.dll V1.0 Fins通信協議串口通訊動態鏈接庫DLL(以下簡稱DLL),是為滿足工業通信需要,

針對工業領域要求上位機對歐姆龍系列PLC通訊實時采集與控制的組態編程而設計。

可以適用于常用的各種開發環境如:Vb6、Vb.net、Delphi、C#、VC++、powerbuilder、易語言、labviEW等進行上位機軟件開發。

本DLL是采用Delphi語言開發的標準串口通訊庫,具有以下特點:

1)、遵循歐姆龍最新Fins通信協議;

2)、支持多串口并發操作,支持多線程串口通訊,將串口通訊對主程序的影響降至最低;

3)、實時性、可靠性好,通用性強;

4)、適用于多PLC(下位機)聯網和上位機通信,滿足多方面的需要;

5)、函數接口功能全,操作簡單,支持歐姆龍PLC的絕大部分地址的讀寫功能函數;

6)、支持USB、PC擴展卡等擴展串口號;

7)、支持多種操作系統win2000/winXP/Win7(標準Win32 DLL);

8)、易于快速開發(VC等非RAD開發環境的開發);

9)、采用數組指針調用數據發生與接收,初學者快速入門;對于不方便使用指針的開發環境可采用DLL緩沖區傳遞;

10)、可在多種編程環境下使用,例如VB、VC、Delphi、PB、Labview、易語言等開發環境;

11)、擴展了函數功能讀取下位機中的雙字、單精度浮點等類型數據,更加符合工業自動化領域的工控軟件的開發。

軟件版本及相關說明:

Omron_Fins.dll V1.0 Fins通信協議串口通訊鏈接庫,實現了對歐姆龍全系列PLC的Fins協議的支持,

wangjun于2013年在原有Omron_HostLink.dll V3.2版基礎上基于Finsi協議重寫通訊底層協議結構。

對于16位整數和32位整數讀取寫入均按有符號整數處理,小數的返回按單精度浮點型(2進制浮點)

處理讀取方式。提供擴展功能函數,方便用戶實現混合數據讀取。能夠同時滿足32個串口并發

情況下的正常使用。

Omron_Fins.dll V1.0 分為完美版和單機版兩個版本。

注意:實例在使用時不能超出試用版的地址限制,否則無法正確通訊。


龍帥工作室為您提供專業串口通訊控件,也可為您訂制

專用通訊協議串口控件。目前龍帥系列串口通訊協議

控件包括modbus_rtu、modbus_tcp、三菱FX PLC編程口、

歐姆龍HostLink、西門子PPI等多個系列產品。

淘-寶-店:http://shop34821629.taobao.com

電 話:13912935690

騰訊QQ:157610979

阿里旺旺: wj_longshuai

郵 箱:[url=mailto:157610979@QQ.com]157610979@QQ.com[/url] ;   [url=mailto:chinawanglong@163.com]chinawanglong@163.com[/url]
[ 此帖被wjun7610在2016-11-24 14:06重新編輯 ]
附件: 歐姆龍fins協議動態庫.rar (1353 K) 下載次數:663
網站提示: 請不要用迅雷下載附件,容易出錯
wjun7610
級別: 略有小成
精華主題: 0
發帖數量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
1樓  發表于: 2013-06-22 19:52
DLL串口操作函數包括:

  1)、finsComOpen打開串口;

     finsCvComOpen打開串口; //CV模式通訊串口打開

  2)、finsComClose關閉串口;
      
  3)、finsSetDelay串口通訊延時設定;
                    
  4)、finsComTrue判斷串口是否打開成功;
            
  5)、finsComWork判斷串口是否正在工作中;

Fins協議基本功能函數包括:

  1)、finsPlcRs  讀取PLC運行狀態;

  2)、finsPlcWs 更改PLC運行狀態;  

  3)、finsBitForced  PLC位元件強制;

  4)、finsCancelAllF 取消全部PLC強制;

  5)、finsReadBit 讀PLC位元件值;

  6)、finsReadInt 讀PLC字元件值;

  7)、finsWriteBit 寫PLC位元件值;  

  8)、finsWriteInt 寫PLC字元件值;

Fins協議擴展功能函數包括:

  1)、finsSet PLC的位元件置位;

  2)、finsReSet PLC的位元件復位;  

  3)、finsReadDInt 讀PLC的雙字整數值;

  4)、finsReadFloat 讀PLC的浮點數據值;

  5)、finsWriteDInt 寫PLC的雙字整數值;

  6)、finsWriteFloat 寫PLC的浮點數據值;

Fins協議DLL緩沖區傳遞功能函數包括

  1)、finsClearBuf  清除復位DLL緩存區;

  2)、finsReadBitBuf 讀PLC的位元件值  

  3)、finsReadIntBuf 讀PLC的字元件值;

  4)、finsReadDIntBuf 讀PLC雙字整數值;

  5)、finsIntDllBufRead 讀DLL整數緩存區值;

  6)、finsReadFloatBuf 讀PLC浮點數據值;  

  7)、finsFloatDllBufRead 讀DLL浮點緩存區值;

  8)、finsWriteIntDllBuf  寫DLL整數緩存區值;

  9)、finsBitBufWrite  寫PLC的位元件值;

  10)、finsIntBufWrite 寫PLC的字元件值;  

  11)、finsDIntBufWrite 寫PLC雙字整數值;

  12)、finsWriteFloatDllBuf 寫DLL浮點緩存區值;  

  13)、finsFloatBufWrite 寫PLC浮點數據值;
當需要進行16位整數、32位整數、32位浮點數值進行混合讀寫時,所需拓展函數包括:

  1)、DecBitBin  字整數的位抽取;

  2)、Int32ToInt_16h  雙字到字轉換高位字;  

  3)、Int32ToInt_16l  雙字到字轉換低位字;

  4)、Int16ToInt32  字到雙字的轉換;

  5)、Float32ToInt_16h 浮點到字轉換高位字;

  6)、Float32ToInt_16l 浮點到字轉換低位字;

  7)、Int16ToFloat32  字到浮點的轉換;

  8)、Int16Unsign   16位有符號整數轉無符號整數  
wjun7610
級別: 略有小成
精華主題: 0
發帖數量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
2樓  發表于: 2013-06-22 19:52
在VC中使用DLL一般都是采用動態聲明的方式,函數說明中給出的是Delphi的函數原型,

在VC中聲明時只要注意一下類型的對應即可,Delphi中的longint類型對應VC中的int類型

Delphi中的Pchar對應VC中的char* ,下面給出主要函數的聲明:

在使用的文件的cpp中聲明一個句柄:

HINSTANCE hinstDLL;

用來標識導入的動態鏈接庫。

1)、按下例說明聲明相關各個函數:(在cpp文件的頭處聲明)

typedef int (_stdcall *pOpen)(int nport, int BaudRate, int DataBits, char* Parity, int StopBits, char* User);
typedef int (_stdcall *pClose)(int nport);
typedef int (_stdcall *pSetDelay)(int value);
typedef int (_stdcall *pComTrue)(int nport);
typedef int (_stdcall *pComWork)(int nport);

typedef int (_stdcall *pRs)(int nport, int node);
typedef int (_stdcall *pWs)(int nport, int node, int State);
typedef int (_stdcall *pBitForced)(int nport, int node, int address, int Bit, int value, char* Area);
typedef int (_stdcall *pCancelAllF)(int nport, int node);
typedef int (_stdcall *pReadBit)(int nport, int node, int address, int Bit, int Count, char* Area, int* RxdBuffer);
typedef int (_stdcall *pReadInt)(int nport, int node, int address, int Count, char* Area, int* RxdBuffer);
typedef int (_stdcall *pWriteBit)(int nport, int node, int address, int Bit, int Count, char* Area, int* TxdBuffer);
typedef int (_stdcall *pWriteInt)(int nport, int node, int address, int Count, char* Area, int* TxdBuffer);

typedef int (_stdcall *pSet)(int nport, int node, int address, int Bit, char* Area);
typedef int (_stdcall *pReSet)(int nport, int node, int address, int Bit, char* Area);
typedef int (_stdcall *pReadDInt)(int nport, int node, int address, int Count, int* RxdBuffer);
typedef int (_stdcall *pReadFloat)(int nport, int node, int address, int Count, float* RxdBuffer);
typedef int (_stdcall *pWriteDInt)(int nport, int node, int address, int Count, int* TxdBuffer);
typedef int (_stdcall *pWriteFloat)(int nport, int node, int address, int Count, float* TxdBuffer);

typedef int (_stdcall *pBitBin)(int value, int Bitaddress);
typedef int (_stdcall *p32I_16h)(int value);
typedef int (_stdcall *p32I_16l)(int value);
typedef int (_stdcall *p16I_32I)(int valueH, int valueL);
typedef int (_stdcall *p32f_16h)(float value);
typedef int (_stdcall *p32f_16l)(float value);
typedef float (_stdcall *p16I_32f)(int valueH, int valueL);
typedef int (_stdcall *pInt16Unsign)(int value);

2)、建立動態鏈接庫的新函數名:(在cpp文件的頭處聲明)

pOpen mOpen;
pClose mClose;
pSetDelay mSetDelay;
pComTrue mComTrue;
pComWork mComWork;

pRs mRs;
pWs mWs;
pBitForced mBitForced;
pCancelAllF mCancelAllF;
pReadBit mReadBit;
pReadInt mReadInt;
pWriteBit mWriteBit;
pWriteInt mWriteInt;

pSet mSet;
pReSet mReSet;
pReadDInt mReadDInt;
pReadFloat mReadFloat;
pWriteDInt mWriteDInt;
pWriteFloat mWriteFloat;

pBitBin mBitBin;
p32I_16h m32I_16h;
p32I_16l m32I_16l;
p16I_32I m16I_32I;
p32f_16h m32f_16h;
p32f_16l m32f_16l;
p16I_32f m16I_32f;
pInt16Unsign mInt16Unsign;

3)、導入動態鏈接庫,如例所示:(在cpp文件的OnInitDialog過程建立):

hinstDLL = LoadLibrary("Omron_fins.dll");

4)、判斷dll文件是否存在并聲明并建立動態鏈接庫中的函數與新函數名的對應關系,

如下:(在cpp文件的OnInitDialog過程建立):

   if (hinstDLL)
   {
      mOpen = (pOpen)GetProcAddress (hinstDLL,"finsComOpen");
      //mOpen = (pOpen)GetProcAddress (hinstDLL,"finsCvComOpen");  CV模式plc使用這個打開串口
      mClose = (pClose)GetProcAddress (hinstDLL,"finsComClose");
      mSetDelay = (pSetDelay)GetProcAddress (hinstDLL,"finsSetDelay");
      mComTrue = (pComTrue)GetProcAddress (hinstDLL,"finsComTrue");
      mComWork = (pComWork)GetProcAddress (hinstDLL,"finsComWork");
    
      mRs = (pRs)GetProcAddress (hinstDLL,"finsPlcRs");
      mWs = (pWs)GetProcAddress (hinstDLL,"finsPlcWs");
      mBitForced = (pBitForced)GetProcAddress (hinstDLL,"finsBitForced");
      mCancelAllF = (pCancelAllF)GetProcAddress (hinstDLL,"finsCancelAllF");
      mReadBit = (pReadBit)GetProcAddress (hinstDLL,"finsReadBit");
      mReadInt = (pReadInt)GetProcAddress (hinstDLL,"finsReadInt");
      mWriteBit = (pWriteBit)GetProcAddress (hinstDLL,"finsWriteBit");
      mWriteInt = (pWriteInt)GetProcAddress (hinstDLL,"finsWriteInt");

      mSet = (pSet)GetProcAddress (hinstDLL,"finsSet");
      mReSet = (pReSet)GetProcAddress (hinstDLL,"finsReSet");
      mReadDInt = (pReadDInt)GetProcAddress (hinstDLL,"finsReadDInt");
      mReadFloat = (pReadFloat)GetProcAddress (hinstDLL,"finsReadFloat");
      mWriteDInt = (pWriteDInt)GetProcAddress (hinstDLL,"finsWriteDInt");
      mWriteFloat = (pWriteFloat)GetProcAddress (hinstDLL,"finsWriteFloat");


     mBitBin = (pBitBin)GetProcAddress (hinstDLL,"DecBitBin");
     m32I_16h = (p32I_16h)GetProcAddress (hinstDLL,"Int32ToInt_16h");
     m32I_16l = (p32I_16l)GetProcAddress (hinstDLL,"Int32ToInt_16l");
     m16I_32I= (p16I_32I)GetProcAddress (hinstDLL,"Int16ToInt32");
     m32f_16h = (p32f_16h)GetProcAddress (hinstDLL,"Float32ToInt_16h");
     m32f_16l = (p32f_16l)GetProcAddress (hinstDLL,"Float32ToInt_16l");
     m16I_32f= (p16I_32f)GetProcAddress (hinstDLL,"Int16ToFloat32");
     mInt16Unsign = (pInt16Unsign)GetProcAddress (hinstDLL,"Int16Unsign");
  
     AfxMessageBox("Omron_fins.dll已成功載入!");
  }
  else
{
    AfxMessageBox("沒找到Omron_fins.dll!");
    SendMessage(WM_CLOSE);
  }

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


函數中用到了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時記得關閉串口及釋放動態鏈接庫,(在OnDestroy事件中釋放)

if(hinstDLL)
{
   int k = mComTrue(mnport);
   if (k==1)
   {
      mClose(mnport);
   }    
   FreeLibrary(hinstDLL);
}

主站蜘蛛池模板: 又色又爽又高潮免费视频国产_成人黄色一级视频_无套内谢少妇毛片a片免费_精品视频免费看_在线观看国产区_xxxxx日韩_欧美性XXXXX极品老少_天天逼网 | 中国chinese4p交换video_中文在线天堂资源_丁香伊人_久久精品免视看国产成人_精品乱码一区二区三区四区_亚洲一区二三区_最近免费中文字幕MV在线视频1_人人插超碰 | 亚洲AV午夜福利精品一区二区_亚洲精品一区二区国产精华液_国产91在_亚洲精品在线观看一区二区_99久久99热这里只有精品_91久久久久久久久久久久久_哪里可以看免费的av_日韩有码第一页 | 亚洲色图在线播放_国产精品久久国产精品99gif_蜜桃久久久aaaa成人网一区_日本黄色高清视频网站_天天干天天澡_国产精品一区二区免费在线观看_九九有精品_国产高清不卡二三区 | 欧美中文在线观看_国产91精_无码国产69精品久久久久网站_中文在线a在线_毛片大全免费_免费观看色网站_农村一级毛片_意甲赛程2024赛程表最新 | 精品性影院一区二区三区内射_又大又湿又紧又爽a视频_亚洲日本一线产区和二线产区_92在线_穿靴子的猫在线观看_国产在线h_农村妇女野外牲交一级毛片_亚洲欧洲国产综合aⅴ无码 | 成人久久18免费观看_色69av_激情欧美在线观看_国语自产偷拍精品视频偷_91插插影库_天天躁日日躁狠狠躁av麻豆男男_国产精品久久久久久网站_成人欧美一区 | 少妇女BBXBBXBBXBBX_久久综合99_亚洲精品国产精品乱码不66_baoyu121永久免费网站_亚洲伊人色欲综合网无码_天天插综合网_天堂在线资源中文_性一交一乱一伦一色一情 | 丰满少妇大力进入_熟妇好紧好大快点舒服使劲xh_亚洲一区免费视频_成品人国产一区二区三区精品_亚洲欧美精品在线观看_原神xman图_久久久受www免费人成_久久香蕉影院 | 亚洲成AV人片一区二区梦乃_高清日韩一区_国产国产精品人在线观看_www.亚洲综合_日皮视频在线_一区精品在线_永夜星河一到30集免费观看_亚洲AV福利天堂在线观看 | 911影视_91看篇_国产一级黄色影片_爱爱视频在线_国产成人精品一区二区三区视频_久久91精品国产一区二区三区_aa视频免费观看_国产精品无码一区二区牛牛 | 麻豆一二三专区入口_免费h网站在线观看的_国产成人亚洲精品青草_欧美顶级METART裸体全部_日韩在线观看网址_A级免费黄色视频_久久久免费看_国产真人无码作爱视频免费 | 成人免费黄色片_精品人妻中文无码AV在线_国产在线精品一区二区不卡了_自怕偷自怕亚洲精品_舌L子伦熟妇ΑV_黄色大片免费的_51porn国产_日本黄色a视频 | 亚洲AV午夜福利精品一区二区_亚洲精品一区二区国产精华液_国产91在_亚洲精品在线观看一区二区_99久久99热这里只有精品_91久久久久久久久久久久久_哪里可以看免费的av_日韩有码第一页 | 国产高清免费在线_国产美女久久久久_毛片在线不卡_亚洲在线一区二区_超碰免费视_24小时日本在线视频_国产啪视频1000部免费_精品国产一区二区三区四区阿崩 | 国产精品高潮呻吟久久久久_中日AV高清字幕版在线观看_一级美国毛片_久久精品国产亚洲精品_国产1区2区3区在线观看_国产一卡二卡新区在线_国产精品美女久久久久av超清_亚洲一区日韩精品 | 色国产精品女五丁香五月五月_99tv成人_性色a∨精品高清在线观看_国产精品一级黄片免费在线观看_亚洲天堂高清_日本高清一道本_大胆精选欧美gogo人体_久久婷婷五月综合97色一本一本" | 亚洲最大激情网_超碰97.com_国产在线视频综合_久久综合久久综合久久综合_被黑人猛躁10次高潮视频☆_永久免费AV在线影院_国产精品久久久久AV福利动漫_天天躁日日躁狠狠躁AV麻豆 | 一本二卡三卡四卡乱码娱乐网_亚洲av无码成人影院一区_在线观看成人一区_海角国产精品_欧美成人vps_精品视频在线观自拍自拍_亚洲视频网址_超碰caoporen国产 | 久久久久亚洲AV成人网_日本三级成本人网站_成人久18秘免费观看视频_在线观看不卡一区_狠狠色丁香婷婷久久综合蜜芽_天天夜摸夜夜添夜夜无码_国产a免费一级视频_91社区国产在线观看 | 亚洲AV少妇熟女猛男_成人真爽爱性视频网_国产综合色精品一区二区三区_国产精品视频–无名网_又大又爽又黄无码A片在线观看_99亚洲狠狠色综合久久位_美女黄视频在线播放_91成人精品网站 | 午夜精品影院_中文JAPANESE在线播放_精品三级_林深见鹿40集高清免费观看_国产一级αv片免费观看_青草久久国产_超碰个人97_广西美女色炮150p图 | 国产黄网免费视频在线观看_欧美成人在线免费观看_亚洲久热_亚洲午夜成人片_亚洲成人一级毛片_亚洲Av之男人的天堂_中文字幕热久久久久久久_888亚洲欧美国产VA在线播放 | 日本xxxx小便xxxx偷拍_软萌小仙自慰喷白浆_免费在线观看黄片毛片a_青草一区_久久久久久久久久久一区二区_欧美日本午夜一区二区_国产黄a三级三级三级av在线看_www夜夜操com | 国产精品无码免费专区午夜_日韩三级不卡_女性裸体啪啪网站_91高清免费观看_久久中文骚妇内射_激情综合久久_麻豆精品一区二区综合av_精品人妻无码一区二区三区蜜桃 | 中国少妇做受XXXXX69小说_欧美日韩中出_精品欧美日韩精品_亚洲AV手机在线观看不卡_3bmm在线观看视频免费_永久免费无码AV在线网站_日韩狠狠_日本中文字幕在线播放 | 兔子先生节目在线观看_gogogo高清在线播放韩国_林ゆな中文字幕一区二区_91精品国产91久久久久久不卡_一二三四影视在线观看免费视频_91亚洲日本aⅴ精品一区二区_成人在线午夜视频_国产在线一区二区三区在线观看 | 黄瓜av_九九热在线视频观看_久久国产精品久久喷水_在线视频免费观看大全_草草影院永久在线观看_久久一区_中文字幕在线免费看线人_bestialityvideo另类灌满 | 美女一二三区_香港日本三级在线播放_国产性―交一乱―色―情人_免费伦费一区二区三区四区_欧美亅性猛交内射_8mav在线_无遮挡边吃摸边吃奶边做_美女扒开屁股让男人桶 | 久涩涩福利视频在线观看_国产福利高清_yw193国产成人精品_久久丝袜视频_欧美成年黄网站色视频_日日摸夜夜添欧美一区_亚洲一区二区免费看_免费永久看黄神器 | 无码乱肉视频免费大全合集_caoporn超碰97_搡老熟女vⅰdeos_少妇高潮喷水正在播放_免费在线观看色_人妻精品动漫H无码网站_国产91在线播放精品_免费中文字幕在线 | 被按摩师玩弄到潮喷在线播放_免费AV无码不卡在线观看_呦一呦二在线精品视频_久色免费_久久女性裸体无遮挡啪啪_国产一级一区_黄色片一级免费_深夜艹逼逼 | A片无码一区二区三区在线草莓_ww国产_日韩一区二区三区在线视频_人妖天堂狠狠ts人妖天堂狠狠_国产一性一交一伦一A片_黄色一级片在线观看_黄色一级片视频_日本丰满护士bbw | 国产肉体ⅹxxx137大胆_吃奶呻吟打开双腿做受是免费视频_久久精品国产99国产精品严洲_国产成人喷潮在线观看_欧美毛片网站_www.亚洲欧美_国产精品久久欧美久久一区_大地资源网在线观看免费官网 | 男女aa视频_97人人草人人_成人日韩在线_亚洲AV秘无码一区二区三区一_爱啪啪av网_亚洲一区美女_久久精品国产99国产毛片_久久久精品人妻无码专区不卡 | 午夜精品久久久内射近拍高清_三级久久久久久久久高潮_在线免费观看av网址_免费国产在线观看_日本熟妇中文字幕三级_国产免费让你躁在线视频_奇米视频888_麻豆午夜影院 | 日本老逼_欧美丰满熟妇乱XXXXX网站_性少妇中国内射XXXX狠干_国产婷婷成人久久av免费高清_九一在线观看_一级做a爰性色毛片免费视频_国产在线免费_亚洲女人网 | 91成人在线_成人无码在线视频网站_131MM少妇做爰视频_精品国产乱码久久久久久虫虫_免费国产_国产一级淫片在线观看_在线字幕_欧美久久人人网 | 香蕉久久夜色精品国产_亚洲女人被黑人巨大进入_6969视频_综合色久_国产乱对白刺激视频_中文无码一区二区视频在线播放量_性爱视频在线免费_欧美特黄色片 | 超国产女人高潮a片免费视频_91免费视频播放_狠狠综合久久综合88亚洲爱文_国产精品久久人妻无码免费看_www.com色_少妇借种高潮了_久久久久亚洲AV成人无码_大尺度吃奶摸下激烈视频 | 中国黄色片在线观看_免费人成黄页在线观看忧物_国产精品300页_91看毛片_国产欧美综合一区_日本中文字幕高清_肉体xxxxxⅰ8xxxx少妇_AV国内精品久久久久影院 |