亚洲爆乳成AV人在线视菜奈实_欧美一进一出抽搐大尺度视频 _日本十八禁免费看污网站_国产一区二区怡红院_6080YY新视觉影院_蜜臀AV无码人妻精品_成人影院YY111111在线_成人欧美一区二区三区1314_少妇饥渴偷公乱A级无码

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
基于VC++6.0的串口通信開發方法
北京世紀長秋科技有限公司
收藏本文     查看收藏
1 引言
在當今的工業控制領域,串口通信是計算機與其他設備進行數據通信時經常使用的方法,具有實現簡單、使用靈活、數據傳輸可靠等幾個優點,特別是在實時監控系統中得到廣泛應用,在我們使用的計算機上使用的串口一般是RS232,使用RS232接口只能進行一對一的通信,然而在工業控制領域往往是一臺工控機和多臺智能設備進行通信,并且要求傳輸距離遠,因為這些需求,在工控領域一般使用RS485。
在Win32下,可以使用兩種編程方式實現串口通信,其一是使用MScomm控件,這種方法程序簡單,但欠靈活。其二是調用Windows的API函數,這種方法可以清楚地掌握串口通信的機制,并且自由靈活。使用控件的方法在本質上也是使用API進行串口通信,控件只不過是對API的一個封裝處理,本文只介紹使用API進行串口通信編程的方法。
2 串口通信的一般步驟
2.1 打開串口
在32位Windows中,串口和其他通信設備(如磁盤等)都被作為文件進行處理,在使用前必須先將其打開,為保證串口通信數據傳輸的可靠性,串口一般以非共享模式打開,也就是在被串口打開后,其他程序不能在去打開此設備。
2.2 配置串口
在使用串口進行數據通信前必須對其進行正確的配置,串口需要配置的主要參數有波特率、數據位、停止位、奇偶校驗、收發數據緩沖區大小。除此之外還要對串口進行超時設置,以防止在串口通信時數據傳輸突然中斷而導致讀寫操作進入無限期等待的狀態,設置了超時,如果在指定時間內沒有完成所進行的操作,則此操作被自動放棄。
2.3 讀寫串口
在串口被打開并設置好后,就可以使用串口進行讀寫數據了,讀寫數據可以采用同步、異步及事件驅動等多種方式。
2.4 關閉串口
在使用完串口后應該將其關閉,如果沒有關閉,該串口會處于打開狀態,其他的應用程序便無法打開使用該串口。
3 利用API函數實現串口通信
3.1 打開串口
Win32系統把文件的概念進行了擴展。無論是文件、通信設備、命名管道、郵件槽、磁盤、還是控制臺,都是用API函數CreateFile來打開或創建的。該函數的原型為: 
HANDLE CreateFile(LPCTSTR lpFileName,
                  DWORD dwDesiredAccess,
                  DWORD dwShareMode,
                  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
                  DWORD dwCreationDistribution,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile);
各個參數說明如下:
lpFileName:將要打開的串口邏輯名,如“COM1”; 
dwDesiredAccess:指定串口訪問的類型,可以是讀取、寫入或二者并列;
dwShareMode:指定共享屬性,由于串口不能共享,該參數必須置為0;
lpSecurityAttributes:引用安全性屬性結構,缺省值為NULL;
dwCreationDistribution:創建標志,對串口操作該參數必須置為OPEN_EXISTING;
dwFlagsAndAttributes:屬性描述,用于指定該串口是否進行異步操作,該值為FILE_FLAG_OVERLAPPED,表示使用異步的I/O;該值為0,表示同步I/O操作;
hTemplateFile:對串口而言該參數必須置為NULL;
3.2 配置串口
在打開通訊設備句柄后,常常需要對串口進行一些初始化配置工作。這需要通過一個DCB結構來進行。DCB結構包含了諸如波特率、數據位數、奇偶校驗和停止位數等信息。在查詢或配置串口的屬性時,都要用DCB結構來作為緩沖區。在打開串口后,可以調用GetCommState函數來獲取串口的默認配置,該函數獲取一個DCB結構體,只要在該結構內對應該先修改DCB結構,然后再調用SetCommState函數以修改后的DCB結構設置串口。DCB主要有以下幾個重要的成員:
BYTE ByteSize; // 通信字節位數
BYTE Parity;   //指定奇偶校驗方法。此成員可以有下列值:
//EVENPARITY 偶校驗     NOPARITY 無校驗
//MARKPARITY 標記校驗   ODDPARITY 奇校驗
BYTE StopBits;  //指定停止位的位數。此成員可以有下列值:
//ONESTOPBIT   1位停止位   
//TWOSTOPBITS  2位停止位
//ONE5STOPBITS 1.5位停止位
除了使用BCD設置串口的一些基本參數外,一般還需要設置串口收發數據緩沖區的大小和超時,超時的作用是在指定的時間內沒有讀入或發送指定數量的字符,讀寫操作仍然會結束。Windows用I/O緩沖區來暫存串口輸入和輸出的數據,如果通信的速率較高,則應該設置較大的緩沖區。我們可以使用API函數SetupComm設置串口的輸入和輸出緩沖區的大小,其原型如下:
BOOL SetupComm(
    HANDLE hFile,          // 串口句柄 
    DWORD dwInQueue,      // 輸入緩沖區的大。ㄗ止潝担 
    DWORD dwOutQueue );   // 輸出緩沖區的大。ㄗ止潝担
關于讀寫串口的超時設置,windows給我們提供一個專門的結構體COMMTIMEOUTS,其定義如下:
typedef struct _COMMTIMEOUTS {
     DWORD ReadIntervalTimeout;         //讀間隔超時
    DWORD ReadTotalTimeoutMultiplier;   //讀時間系數
    DWORD ReadTotalTimeoutConstant;    //讀時間常量
    DWORD WriteTotalTimeoutMultiplier;   //寫時間系數
    DWORD WriteTotalTimeoutConstant;    //寫時間常量
} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
COMMTIMEOUTS結構的成員都以毫秒為單位?偝瑫r的計算公式是:
總超時=時間系數×要求讀/寫的字符數+時間常量
例如,要讀入10個字符,那么讀操作的總超時的計算公式為:
讀總超時=ReadTotalTimeoutMultiplier×10+ReadTotalTimeoutConstant
通過該結構體windowsAPI為我們提供兩個函數:GetCommTimeouts和SetCommTimeouts,前者獲取當前的超時設置,后者使用修改后的COMMTIMEOUTS設置超時,與設置串口闡述類似。
在讀寫串口之前,還要用PurgeComm(…)函數清空緩沖區,該函數原型: 
BOOL PurgeComm( 
    HANDLE hFile,      //串口句柄
    DWORD dwFlags );   //需要完成的操作
參數dwFlags指定要完成的操作,可以是下列值的組合: 
PURGE_TXABORT  中斷所有寫操作并立即返回,即使寫操作還沒有完成。
PURGE_RXABORT  中斷所有讀操作并立即返回,即使讀操作還沒有完成。
PURGE_TXCLEAR  清除輸出緩沖區
PURGE_RXCLEAR  清除輸入緩沖區
3.3 讀寫串口
讀寫串口使用ReadFile和WriteFile兩個函數,其原型如下:
BOOL ReadFile(
    HANDLE hFile,                     //串口的句柄
    LPVOID lpBuffer,                  //保存讀入數據的指針
DWORD nNumberOfBytesToRead,     //要讀入的數據的字節數
LPDWORD lpNumberOfBytesRead,   //實際讀入的字節數
    LPOVERLAPPED lpOverlapped );    //OVERLAPPED,同步為NULL
BOOL WriteFile(
  HANDLE hFile,                    //串口的句柄
  LPCVOID lpBuffer,                 //要寫入數據的地址
  DWORD nNumberOfBytesToWrite,    //要寫入數據的字節數
  LPDWORD lpNumberOfBytesWritten,  //實際寫入的字節數
  LPOVERLAPPED lpOverlapped);      //OVERLAPPED,同步為NULL 
在進行同步操作時,讀寫函數要等到執行完才返回,而在異步操作時函數立即返回,但不保證讀寫操作完成,這時候就需要使用OVERLAPPED結構進行異步控制,該結構體有一個重要的成員hEvent,該成員是windows事件對象的句柄在控制線程同步及異步操作時常用到,如果是異步操作,我們可以使用CreateEvent(…)創建事件對象并將返回值賦給hEvent,然后使用WaitForSingleObject或GetOverlappedResult等待讀寫操作完成,進而達到控制異步操作的目的。
3.4 關閉串口
在不使用串口的時候應該將其關閉,以釋放windows的資源供其他程序使用,關閉串口只需調用CloseHandle(hComm/*串口句柄*/)即可。
4 串行通信在世紀星組態軟件中的應用
作為通用的組態軟件,世紀星要與其他PLC、智能儀表等設備進行通信,串行通信是主要的方式之一,基于前面所述使用API進行串行通信開發的優點,并考慮程序開發的便捷和可重用等,在世紀星中,我們將串行通信API進行封裝,以類的方式對串口進行操作,其中打開串口及配置串口參數的操作我們通過可視化窗口進行設定,然后在封裝類中實現,相關的操作處理讀寫數據外基本都已實現,因為不同的設備有不同的協議,因而讀寫串口的操作在驅動程序中完成,這樣我們的開發人員就不必關注太多其他的相關操作,只需根據實際設備重寫讀寫串口的成員函數即可。
5 結論
    Windows是當前應用程序開發的主流平臺,VC++6.0是該平臺強大的開發工具,使用windowsAPI開發串口通信的程序可使我們更加清晰的了解串口通信的機制,并且開發人員可以根據需要使用API進行靈活的程序設計,在SCADA中串行通信是必不可少的技術,所以掌握串行通信的開發方法具有現實意義。
 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 北京世紀長秋科技有限公司
聯 系 人: 徐向農
電  話: 010-84645656
傳  真: 010-84646515
地  址: 北京市朝陽區惠新東街8號設計大廈14層
郵  編: 100029
主  頁:
 
該廠商相關技術文摘:
世紀星油庫進出油量監測方案
《世紀星組態軟件》的獨特功能
世紀星:罐區安全 全面監控
世紀星實現彈簧按鈕功能升級
世紀星控件DBComm:小塊兒有大“智慧”——DBComm.OCX控件 實現PID控制
世紀星組態軟件完美的時間轉換函數:DateTimeConvert
世紀星組態軟件強大的數據庫查詢函數
建立完美通信:世紀星與西門子S7-200以太網
怎樣通過OPC Client與世紀星交互
世紀星與硬件設備的連接秘笈
世紀星組態軟件新技術:短息報警功能
世紀星組態軟件的數據存儲策略
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

中文字幕人妻互换激情| 奇米精品视频一区二区三区| 欧美人妻一区二区三区| 人妻丰满熟妇岳av无码区HD| 日韩高清国产一区在线| 天堂资源中文WWW| 亚洲AV极品熟妇一品二品三品| 亚洲VA综合VA国产产VA中| 亚洲中文字幕人妻| 中文字幕无码毛片免费看| Y1111111少妇影院无码| 多毛丰满日本熟妇| 国产免费观看久久黄AV片| 精品国产一区二区三区国产区| 浪潮AV激情高潮国产精品| 欧美片内射欧美美美妇| 日日噜噜夜夜狠狠视频无码| 无码人妻av免费一区二区三区| 亚洲AV中文无码乱人伦下载| 一本大道在线无码一区| 99精品国产一区二区电影| 超碰97人人做人人爱2020| 国产成人无码区免费网站 | 大荫蒂又大又长又硬又紧又粗| 国产精品久久久久久AV| 娇喘潮喷抽搐高潮在线观看视频 | А√天堂中文在线| 国产AⅤ精品一区二区三区久久| 国产午夜高清高清在线观看| 久久国产精品亚洲艾草网| 男女啪啪进出阳道猛进| 日本久久夜夜一本婷婷| 无码中文字幕日韩专区| 亚洲区激情区无码区| 69无人区码一二三四区别| 纯肉的日本动漫 在线看| 国产熟女高潮精品视频区| 精品久久久无码中文字幕天天| 美女直播全婐APP免费| 日本高清无卡码一区二区| 无码人妻少妇久久中文字幕蜜桃| 亚洲精品无码午夜福利理论片| 18禁超污无遮挡无码免费动态图| 成人午夜福利视频后入| 国产免费无码一区二区三区| 久久精品国产亚洲AV香蕉| 欧美黑大粗无码免费视频| 熟女俱乐部 五十路 六十路| 亚洲成av人在线观看| 中文字幕无线码中文字幕免费| 成人区人妻精品一区二区三区 | 热久久美女精品天天吊色| 甜性涩爱在线播放| 亚洲欧美日韩综合久久| 99热这里只有精品免费播放| 国产成人AV区一区二区三| 精品久久久久久中文字幕无码软件 | 亚洲综合日韩久久成人AV| YOUJIZZ丰满熟妇| 国产精品视频免费播放| 久久久久亚洲AV无码专区喷水| 青草久久久国产线免观蜜芽| 无码熟熟妇丰满人妻PORN| 亚洲最大AV网站在线观看| 八戒八戒手机在线高清观看WWW| 国产美女精品自在线拍免费| 久久一本精品久久精品66| 日本边添边摸边做边爱小视频| 学生无码AV一区二区三区| 又黄又无遮挡AAAAA毛片| 成人免费无遮挡无码黄漫视频 | 欧美人与动牲交A免费观看| 天天做天天摸天天爽天天爱| 亚洲一卡2卡3卡4卡5卡6卡| YASEE在线2021| 国产目拍亚洲精品一区| 老熟妇一区二区三区啪啪| 日韩精品无码一区二区三区不卡| 亚洲AV日韩AV无码AV| 专干日本熟妇人妻| 国产AV成人一区二区三区| 久久不见久久见免费影院国语| 欧美性狂猛BBBBBBXXXX| 午夜影视啪啪体验区入口| 雨后小故事完整版| 东北往事之黑道风云20年第二部| 极品JK撕破丝袜自慰喷水| 欧美乱妇高清无乱码免费| 无码专区狠狠躁天天躁| 真实的国产乱XXXX在线| 国产AV永久无码精品网站| 久久久久久精品免费免费| 日韩国产女人久久久| 亚洲精品AV中文字幕在线| YW.1CNC爆乳尤物未| 国产曰的好深好爽免费视频| 妺妺窝人体色WWW在线一| 我趁老师睡觉偷偷的脱她内裤 | 丰满岳乱妇三级高清| 久久AV无码AⅤ高潮AV喷吹| 日本入室强伦姧BD在线观看| 亚洲大尺度专区无码| JIZZJIZZ国产精品久久| 国内精品乱码卡一卡2卡三卡| 欧美老熟妇又粗又大| 新CHINESE无套小帅KTV| 99久久精品国产免费看| 国产毛片久久久久久国产毛片| 免费A级毛片在线看| 无码一区二区三区AⅤ免费麻豆| 中文字幕少妇人妻av护士人妻| 国产精品白丝AV嫩草影院| 毛片TV网站无套内射TV网站| 我和闺蜜在KTV被八人伦| 中文无码乱人伦中文视频在线| 国产精品 视频一区 二区三区| 麻花传媒网站永久入口视频 | 三个人C了我半小时| 亚洲熟悉妇女XXX妇女AV| 粉嫩Av网站在线观看| 久久久久久亚洲精品成人| 熟女少妇丰满一区二区| 又大又粗又爽A级毛片免费看| 国产成人精品亚洲一区二区三区| 麻豆精品传媒卡一卡二老狼| 无码国产成人午夜电影在线观看| 综合图区亚洲欧美另类图片| 国产人澡人澡澡澡人碰视频| 欧美日韩在线视频| 亚洲成在人线AV| 成人免费无码A毛片| 久久精品无码一区二区日韩AV | 亚洲一区二区无码偷拍| 公车上玩弄白嫩少妇| 旅人蕉天堂鸟的区别视频| 无码人妻精品一区二区| 92成人午夜福利一区二区| 国产综合AV一区二区三区无码| 欧亚成年男女深夜百度网盘| 亚洲精品无码久久久久久久| 敌伦交换第21部分剧情介绍 | 天天躁夜夜躁很很躁| 18禁裸乳啪啪无遮裆网站| 国内精品久久久久久无码不卡 | 高清欧美性猛交XXXX黑人猛交| 裸体欣赏ⅤIDE0SPH0TO| 性色AV一区二区三区无码| VPSWINDOWS另类精品| 精品少妇人妻AV免费久久洗澡| 少妇被又大又粗又爽毛片久久黑人| 中国老太太WBBHD| 国产亚洲精久久久久久无码777| 人妻少妇久久久久久97人妻| 亚洲一区二区三区小说| 国产成人丝袜视频在线观看 | 浪货趴办公桌~H揉| 午夜无码伦费影视在线观看果冻| JK制服白丝自慰无码自慰网站| 精品免费AV一区二区三区| 少妇伦子伦精品无码STYLES| 最新国产AⅤ精品无码| 国色天香卡一卡二乱码| 日韩精品无码一区二区三区视频| 在人线AV无码免费高潮喷水| 国产亚洲精品第一综合另类| 日本人妻丰满大屁股a v| 永久黄网站色视频免费直播| 国产午夜福利精品久久2021| 人人妻人人澡人人乐DVD| 伊人依成久久人综合网| 国产午夜片无码区在线观看爱情网| 日本丰满少妇XXXX| 樱桃空空人妻无码内射| 国产亚洲精品精华液好用吗| 日本成熟少妇喷浆在线观看| 天天躁夜夜躁很很躁| BGMBGMBGM老太太水太多| 久久大蕉香蕉免费| 精品人妻少妇一区| 熟妇高潮一区二区麻豆Av渉谷| 99精品又大又爽又粗少妇毛片| 九九九九精品视频在线观看| 我和公发生了性关系公| 八戒八戒视频在线WWW观看| 老男人把舌头伸进我下面| 亚洲AV无码麻豆一区二区三区 | 波多野结衣乳喷高潮视频| 局长趴在雪白的身上耸动| 亚洲AV无码专区在线| 丰满人妻熟妇乱偷人无码出轨| 欧美成人精品高清在线播放 | 豆国产96在线 | 亚洲| 欧美成人精品高清在线播放| 亚洲最大的成人网站| 国产偷国产偷亚洲清高APP| 肉丝超薄少妇一区二区三区| 99久久人妻无码精品系列| 久久久久亚洲精品中文字幕 | GV天堂GV无码男同在线观看| 久久影院午夜理论片无码|