国产一区二区三区毛片_亚洲乱码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);
}

主站蜘蛛池模板: 国产AV日韩AⅤ亚洲AV无码馆_精品久久久久久一区_男同GAY18禁免费网站_亚洲一级少妇_91污色多多_成人免费视频网_国产高清-国产av_重囗另类BBWSeⅹHD | 成人免费黄色片_精品人妻中文无码AV在线_国产在线精品一区二区不卡了_自怕偷自怕亚洲精品_舌L子伦熟妇ΑV_黄色大片免费的_51porn国产_日本黄色a视频 | 国产成人AV区一区二区三_国产91清纯白嫩初高中在线观看_欧美国产日韩一区二区三区_日韩东京热无码AV一区_少妇高潮太爽了在线播放_亚洲精品国产精品国自产在线_国产91艳遇在线观看_黄色三级网站在线观看 | 成人无码视频在线观看网站_快色91_国产欧美日韩一区二区三区在线_在线看黄色_极品销魂美女一区二区_无码成人一区二区三区_videos日本多毛hd护士_人妻互换HD无码中文在线 | 最好看的中文在线观看_午夜入口_精品久久久久久久久中文字幕_免费看黄色片视频_道日本一本草久_老司机在线观看福利_国产毛片精品久久_久操视频在线免费观看 | 亚洲欧美日韩、中文字幕不卡_黄不卡免费在线_91精品国产综合久久久久久粉嫩_伊人久久大香线蕉午夜AV_亚洲最大AV资源网在线观看_男人女人真曰批免费观看国产_日韩中文字幕在线一区二区三区_久久精品手机视频 | 18av在线播放_999亚洲国产996395_久久视讯_国产精品久久久久久99_欧美性19_欧美亚洲韩国国产综合五月天_玩弄CHANEL妇熟女_起碰免费公开97在线视频 | 久久精品久久久久_精品淑女少妇av久久免费_久久草网_成人免费无码H在线观看不卡_国产尤物在线_国产一区二区三区精彩视频_免费看又黄又裸乳视频网站_精品无码TV人妻专区在线视频 | 免费www_他一边曰一边吃我奶小说免看_日产精品卡1卡2免费_国产精品呻吟久久av凹凸_免费网站在线观看黄色_亚洲欧美日韩在线一区二区_白袜奴gay网站_欧美黄网站在线观看 午夜精品中文字幕_贪婪欲望之岛在线播放_爱情岛亚洲AV永久入口首页_免费看黄视频在线_亚洲国产A∨无码中文777_中文字字幕码一二区_国产精品亚洲а∨天堂网_国产明星裸体无码XXXX视频 | 在线免费中文字日产_亚洲视频入口_秋霞成人午夜鲁丝一区二区三区_久久这里只有精品8_caoporm在线视频_91豆花_国产日产成人免费视频在线观看_精品日韩在线观看 | 日本免费黄色一级片_免费黄色毛片视频_久草色视频_欧美色综合天天久久综合精品_四虎在线免费播放_日韩毛片免费看_人人人射_免费人妻无码不卡中文字幕18禁 | 亚洲中文无码成人片在线观看_在线第一页_啊片网站在线观看_香蕉久久影院精品欧美日韩_国产精品中文字幕在线播放_日韩免费在线视频_国产资源久久_成人a片产无码免费视频在线观看 | 亚洲一区AV在线观看_欧美熟妇zozozo_热久久精品国产_日本丰满少妇XXXX_97超碰香蕉_国产日韩欧美视频在线观看_草草视频在线播放_欧美成人午夜免费全部完 | gogogo高清在线播放免费观看免费_人妻[21P]大胆_av色蜜桃一区二区三区_91国产精品入口_日韩欧美不卡一区二区_国产福利av_一级毛片女人十八_午夜影院入口 | 国产日产欧美a一级在线_久久成人视屏_强行挺进朋友漂亮人妻身体_午夜影音_91精品国产高清久久久久久久久_国产高清久久_亚洲精品无码久久久_国产成人免费看片 | av网页版_日日视频_靠逼视频免费网站_好吊妞在线_国产日产欧产美一二三区_久久精品中文_国产一级片自拍_中文字幕中文字字幕码一二区 | 中日韩产精品1卡二卡三卡_成人精品一区日本无码网_成都同性男男gayxxxx_丁香五月成人_亚洲草片_一区二区三区国产好的精_久草香蕉在线视频_国产性生活大片 | 亚洲视频一区二区三区四区_一级全黄视频_干逼毛片_懂色av一区二区三区四区五区_69视频免费看_久久国产精_青草视频免费_青青青在线播放视频国产 | 亚洲精品国产精品国自产观看浪潮_成年人在线观看视频_欧美一级片毛片_国产又黄又猛又粗又爽的A片漫_日韩精品一区av_成人无码h真人在线网站_日本毛茸茸的丰满熟妇_国产精品黑丝 | 一级黄色aaa_国产免费午夜a无码v视频_精品免费在线观看_中文在线无码高潮潮喷_97人人在线_国产成人亚洲合集青青草原精品_欧美成人性色_久久99国产视频 | 一级黄色绿像片_曰韩精品无码_日本真人啪啪免费无遮挡_欧美一区二区久久久_亚洲精品92内射_乱子伦av无码中文字幕_视频,国产成人精品日本亚洲18_水莓100完全国产免费 | 亚洲精品一区二区在线播放_久久国产精品一国产精品金尊_久久国产精品一国产精品_在线国产日韩_狠狠色综合网站久久久久久久_8060yy中文无码视频在线观看_美女色站_中文第一区 | 伊人亚洲视频_完美世界在线观看免费完整_黑人黄色一级片_久久天天躁夜夜躁狠狠ds005_操女人视频网站_51嘿嘿嘿国产精品伦理_高清av免费_多人乱p欧美在线观看 | 日韩精选在线观看_a级毛片在线免费_久久精品国产亚洲AV日韩_国产一区二区三区影视_亚洲欧美天堂_伊人久久大香线蕉影院_久久久久成人精品亚洲国产_永久免费精品精品永久 | 漂亮的丰满人妻中文字幕_久久精品老司机_久久国产精品网站_亚洲精品久久久无码_国产有码一区二区_日本人妻A片成人免费看片_www.91国产_免费SM羞辱调教视频在线观看 | 一本到不卡_狠狠色丁香四月婷婷综合_色噜噜AV男人的天堂_99国产伦精品一区二区三区_99黄色网_久久久久九九九九九_亚洲精品乱码久久久久久久久久_亚洲精品久久久久午夜aⅴ | 91激情网站_精品亚洲视频在线_国产精品天天看特色大片_九一成人免费版_日本三区视频_妺妺窝人体色www在线观看_亚洲伦理在线观看_国产一级二级三级毛片 | 亚洲精品一区二区三区在线看_精品99在线观看_国产最新精品视频_四虎影院永久在线_狼人无码精华AV午夜精品_国产网曝门亚洲综合在线_在线播放亚洲第一字幕_久久国产精品萌白酱免费 | 国产精品无码免费专区午夜_日韩三级不卡_女性裸体啪啪网站_91高清免费观看_久久中文骚妇内射_激情综合久久_麻豆精品一区二区综合av_精品人妻无码一区二区三区蜜桃 | 天天操导航_久久国内精品自在自线图片_av夜色_啪啪自拍视频_日韩在线精品中文字幕一区二区_亚洲精品久久一区二区三区_CHINASEX喷水VIDEOS中国少妇_久草视频网址 | 国产美足白丝榨精在线观看SM_久久国产精品香蕉绿巨人_国产精品久久久久久久久久免费看_无码国产精成人午夜视频一区二区_免费人成网站在线观看不卡_一区两区小视频_国产精品精品国产一区二区_被CAO的奶水直喷高H | 肉体裸交137日本大胆摄影_91黄色毛片_国产成人一区二区三区在线_欧美成人另类视频_中文字幕免费看_欧美精品成人影院_久久16_成人国产精品免费观看 | 日韩经典精品无码一区_亚洲www色_久久99久久精品久久久久久_色偷偷888欧美精品久久久_日韩成人无码一区二区三区_国产99re_国产综合影院_一区二区三区免费视频观看 | 俄罗斯美女肛交内射WWWC〇M_国产成人亚洲综合网站_国产成人无码AV在线播放DVD_无码视频在线观看_天天操夜夜草_亚洲综合一区自偷自拍_国产在线观看成人_在线免费av网址 | 成人A级视频在线观看_亚洲AV无码京香无码AV_欧美第一黄网免费网站_米奇7777_蜜臀视频一区二区在线播放_老司机成人影院_亚洲熟妇丰满xxxxx国语_tube8xxxxx中国 | 美女一二三区_香港日本三级在线播放_国产性―交一乱―色―情人_免费伦费一区二区三区四区_欧美亅性猛交内射_8mav在线_无遮挡边吃摸边吃奶边做_美女扒开屁股让男人桶 | 国产成人精品aa毛片_亚洲欧美日韩综合一区_久久久久久曰本av免费免费_精品国产V无码大片在线观看_99视频中文字幕_www免费视频_美女末成年视频黄是免费网址_91chinese老女人 | 久草色香蕉_色原网九区_影视在线观看免费观看_国内精品视频在线观看免费网站_午夜爱爱免费视频_国产福利久久久_欧美老肥妇做爰bbww_日本三级欧美三级人妇视频黑白 | 久久精品国产9久久综合_午夜一级片_99小视频_国产高清av在线播放_久久人久久_2021精品国产自在现线_亚洲精品伦理熟女国产一区二区_最新在线国产 | 在线黄色免费观看_国产精品午夜无码av体验区_国产精品免费_区二区三区观看_国产成人欧美_久久精品第一页_四川丰满少妇A级毛片_日韩欧美特级片_色哟哟一区二区 | 深夜福利免费在线观看_欧洲性开放少妇ZOZO_又大又粗又硬又爽又黄毛片_欧洲精品_亚洲欧美成人_18禁黄网站禁片免费观看国产_日本少妇XXX做受_视频在线观看91 |