无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
VFP環境下實時數據采集的實現
中華工控網
收藏本文     查看收藏
VFP 環 境 下 實 時 數 據 采 集 的 實 現 <BR> 東 南 大 學 熱 能 所(210096)---- 周 衛 平 </P><P> --- VFP 作 為 新 一 代 數 據 庫 管 理 系 統, 在 數 據 的 存 取、 編 輯、 顯 示、 處 理 等 方 面 具 有 強 大 和 豐 富 的 工 具, 在 國 內 外 得 到 了 廣 泛 應 用。 在 許 多 工 業 應 用 中, 往 往 要 對 現 場 模 擬 數 據 進 行A/D 轉 換 且 實 時 處 理, 由 于VFP 不 能 對 端 口 進 行 直 接 訪 問, 因 而 無 法 實 現 數 據 采 集。 幸 好VFP 提 供 了DDE 功 能。DDE 是Windows 應 用 程 序 之 間 進 行 動 態 信 息 傳 遞 和 共 享 的 一 個 消 息 協 議, 利 用DDE 可 實 現Windows 的 服 務 程 序 和 客 戶 程 序 的 相 互 獨 立 運 行, 具 有 很 好 的 實 時 性。 在 實 踐 中, 我 們 利 用 高 級 語 言BorLand C++ for Windows 實 現96 路A/D 數 據 采 集, 并 以 此 為 服 務 程 序; 在VFP 環 境 下 建 立 客 戶 程 序, 將 服 務 程 序 傳 遞 過 來 的 數 據 及 時 進 行 運 算 處 理 后, 存 入 數 據 庫, 并 作 為 各 種 表 單、 報 表、 曲 線 的 數 據 源。 該 方 法 在VB 或ACCESS 97 環 境 下 同 樣 適 用, 只 要 將 客 戶 程 序 稍 加 修 改 即 可。 下 面 就 如 何 實 現VFP 環 境 下 的 實 時 數 據 采 集 作 一 介 紹。 <BR> 1. 建 立 數 據 采 集 服 務 程 序 <BR> ---- 服 務 程 序 包 括 二 個 基 本 部 分: 其 一 是WinMain 入 口 函 數, 它 主 要 完 成 一 此 初 始 化 任 務, 建 立 一 個 名 為hwnd 的 原 始 數 據 顯 示 窗 口, 服 務 程 序 名 為PFBCdas。 其 二 是 應 用 程 序 功 能 函 數MainWndProc。 下 面 是 程 序 清 單( 因 篇 幅 關 系, 在 此 省 去WinMain 函 數)。 <BR> #define AD_Interval 1000 //采樣周期為 1000ms<BR> #define base 0x280 // A/D采樣板基地址<BR> /* base+k (k=1,2,…14)為A/D板各寄存器地址 */<BR> #include <BR> #include <BR> #include <BR> #include <BR> #include <BR> #include <BR> #include <BR> #include <BR> #include <BR> int i, j, k , AD_Status, idTimer;<BR> int AD_Data[8][16]; // A/D數據存儲單元 <BR> int DdeAdviseStatus=0;<BR> char buf[64], DDEbuf[2048]; //數據暫存緩沖器 <BR> char szAppName[]="PFBCdas"; //服務程序名<BR> char szDdeTopic[]="AD001"; //主題名 <BR> char szDdeItem[]="DATA"; // 數據項名<BR> long FAR PASCAL _export MainWndProc(HWND, UINT, UINT, LONG) ;<BR> long FAR PASCAL _export MainWndProc (HWND hwnd, UINT message, UINT <BR> wParam, LONG lParam) <BR> //應用程序功能函數 <BR> {<BR> ATOM aAppName,aTopic;<BR> ATOM aItem;<BR> GLOBALHANDLE hDdeData;<BR> DDEDATA FAR *lpDdeData;<BR> static HWND hwndClient;<BR> switch (message)<BR> { <BR> case WM_CREATE:<BR> idTimer=SetTimer(hwnd,NULL,AD_Interval,NULL); <BR> //打開定時器<BR> outportb(base+11,0x10); //選擇軟件觸發方式<BR> outportb(base+9,1); //選擇輸入信號放大倍數為10<BR> outportb(base+14,0);<BR> outportb(base+13,0); //清A/D完成位<BR> outportb(base+10,0); //選擇通道0<BR> return 0;<BR> case WM_TIMER:<BR> for(i=0;i<6;i++)<BR> for(j=0;j<16;j++) //采樣點為6*16=96個<BR> {<BR> outportb(base+13,j); <BR> outportb(base+10,i); <BR> outportb(base+12,0); //啟動A/D轉換<BR> do AD_Status=inportb(base+5);<BR> while ((AD_Status&0x10)==0x10); <BR> //判轉換是否結束? <BR> AD_Data[i][j]=(inportb(base+5)&0x0f)*256+inportb(base+4); <BR> /* 讀A/D轉換后的數字值 */<BR> }<BR> _strdate(buf); //取采樣日期<BR> strcpy(DDEbuf,buf);<BR> strcat(DDEbuf,",");<BR> _strtime(buf); //取采樣時間<BR> strcat(DDEbuf,buf);<BR> strcat(DDEbuf,",");<BR> for(i=0;i<6;i++)<BR> for(j=0;j<16;j++)<BR> {<BR> char temp[32];<BR> strcat(itoa(AD_Data[i][j],buf,10),",");<BR> /*各采樣數據之間以逗號分隔*/<BR> strcat(DDEbuf,buf);<BR> }<BR> if(DdeAdviseStatus!=0) //如果建立了DDE服務<BR> {<BR> aItem = GlobalAddAtom (szDdeItem) ;<BR> //添加DDE數據項為全局原子<BR> hDdeData = GlobalAlloc (GHND | GMEM_DDESHARE,<BR> sizeof (DDEDATA) + strlen (DDEbuf)) ;<BR> /*給采樣數據分配全局內存塊*/<BR> lpDdeData = (DDEDATA FAR *) GlobalLock (hDdeData) ;<BR> lpDdeData->fResponse = 0 ;<BR> lpDdeData->fRelease = 1 ;<BR> lpDdeData->fAckReq = 0 ;<BR> lpDdeData->cfFormat = CF_TEXT ;<BR> //采樣數據為文本格式<BR> lstrcpy ((LPSTR) lpDdeData->value,DDEbuf) ;<BR> /*將采樣數據從緩沖器放至DDE內存*/<BR> GlobalUnlock (hDdeData) ;<BR> if(!PostMessage(hwndClient,WM_DDE_DATA,hwnd,<BR> MAKELONG(hDdeData,aItem))) //發送DDE數據<BR> {<BR> GlobalFree(hDdeData); <BR> //若發送失敗,則釋放資源<BR> GlobalDeleteAtom(aItem); <BR> }<BR> }<BR> return 0;<BR> case WM_DDE_INITIATE: //DDE初始化<BR> hwndClient=wParam;<BR> hdc=GetDC(hwnd);<BR> aAppName=GlobalAddAtom(szAppName);<BR> aTopic=GlobalAddAtom(szDdeTopic);<BR> if ((LOWORD (lParam) == NULL || LOWORD (lParam) == aAppName)<BR> && (HIWORD (lParam) == NULL || HIWORD (lParam) == aTopic))<BR> { // 發送服務程序名和主題名<BR> SendMessage(hwndClient,WM_DDE_ACK,hwnd,<BR> MAKELONG(aAppName,aTopic));<BR> } <BR> else<BR> {<BR> GlobalDeleteAtom (aAppName) ;<BR> GlobalDeleteAtom (aTopic) ;<BR> }<BR> return 0 ;<BR> case WM_DDE_TERMINATE: //關閉DDE服務<BR> hwndClient=wParam; <BR> PostMessage (hwndClient, WM_DDE_TERMINATE, hwnd, 0L) ;<BR> return 0 ;<BR> case WM_DDE_ADVISE: //建立DDE服務<BR> DdeAdviseStatus=1; //已建立DDE服務標志<BR> hwndClient=wParam;<BR> aItem=HIWORD(lParam);<BR> if(!PostMessage(hwndClient, WM_DDE_ACK, hwnd,<BR> MAKELONG(0x8000,aItem))) //發送DDE應答<BR> {<BR> GlobalDeleteAtom(aItem);<BR> }<BR> return 0;<BR> case WM_DESTROY: //程序失敗處理<BR> PostQuitMessage (0) ;<BR> return 0 ;<BR> }<BR> return DefWindowProc (hwnd, message, wParam, lParam) ;<BR> }</P><P> 2. 建 立VFP 環 境 下 的 客 戶 端 程 序 <BR> ---- 首 先 建 立 和 服 務 程 序 之 間 的 通 道, 然 后 將 服 務 程 序 傳 遞 來 的 數 據 放 至 字 符 串DATA 內, 再 通 過 自 定 義 函 數recdata 將 采 樣 數 據 存 入 數 據 庫 中 待 用。 下 面 是 客 戶 程 序 清 單。 <BR> PROCEDURE getdata<BR> PUBLIC mchannel<BR> mchannel = DDEInitiate('PFBCdas','AD001') <BR> &&建立客戶程序和服務程序間的通道 <BR> IF mchannel !=-1<BR> =DDEadvise(mchannel,'DATA','recdata',2)<BR> &&建立DDE熱連接,數據項為DATA<BR> ENDIF<BR> RETURN</P><P> PROCEDURE recdata &&用戶自定義函數<BR> PARAMETERS channel,action,item,data,format,status<BR> PRIVATE newdata<BR> newdata=""<BR> IF action='ADVISE' &&若連接成功<BR> newdata=DATA &&將采樣數據傳遞至newdata<BR> do process with newdata &&調用數據處理程序 <BR> ELSE<BR> IF action='TERMINATE' <BR> = DDETerminate(mchannel) &&關閉通道<BR> ENDIF<BR> ENDIF<BR> RETURN</P><P> PROCEDURE process<BR> PARAMETER newdata<BR> PRIVATE i,loc1,loc2<BR> DIMENSION gdata(98)<BR> * 從字符串 newdata中取采樣值<BR> gdata(97)=CTOD(left(newdata,8)) &&取日期值<BR> gdata(98)=SUBSTR(newdata,10,8) &&取時間值<BR> * 從字符串newdata的相鄰逗號間取采樣值,<BR> 并將采樣值轉化為毫伏值<BR> FOR i=3 TO 98<BR> loc1=ATC(",", newdata, (i-1))<BR> loc2=ATC(",", newdata, (i))<BR> gdata(i-2)=VAL(SUBSTR(newdata,(loc1+1),(loc2-loc1)))<BR> *0.024414062<BR> ENDFOR<BR> IF USED("onedata")<BR> SELECT onedata<BR> ELSE<BR> SELECT 0<BR> USE onedata ALIAS onedata<BR> &&打開數據庫onedata<BR> ENDIF<BR> APPEND FROM ARRAY gdata<BR> &&將數組gdata中的轉換數據添加到數據庫中 <BR> RETURN </P><P> ---- 聯 系 地 址: 南 京 市 東 南 大 學 熱 能 工 程 研 究 所 <BR> ---- 郵 編:210096 <BR> ---- 聯 系 人: 周 衛 平 <BR> ---- 電 話:(025)3794191 <BR> ---- EMAIL 地 址:qhye@seu.edu.cn
 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 中華工控網
聯 系 人: 客服中心
電  話: 0755-26546361
傳  真: 0755-26585268
地  址: 深圳市南山區創業路現代城華庭1棟6A
郵  編: 518054
主  頁:
 
該廠商相關技術文摘:
智能儀器儀表的發展特點與前景分析
電動機性能虛擬儀器測試系統設計與實現
視頻監控護航高鐵安全運營
基于PLC,觸摸屏及變頻器對吹膜機的改造
永宏PLC應用于自助圖書借還終端機
基于永宏PLC的GSM通訊原理及其應用
改善汽車生態學、安全性和舒適性,四大測試分析是關鍵
改善汽車生態學、安全性和舒適性,四大測試分析是關鍵
數控技術的發展趨勢及產業化
數控技術發展戰略與發展途徑的思考
用Energid 的軟件進行機器人的抓取和操作
如何借助RFID技術升級企業信息管理水平
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

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

无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频
国产一区二区久久久久| 国产精品日本一区二区三区在线| 日韩欧美二区| 亚洲欧美不卡| 91亚洲成人| 一区二区91| 久久久久久久久久久妇女| 91伊人久久| 丝袜美腿亚洲一区二区图片| 97精品国产一区二区三区 | 国产另类在线| 欧美.日韩.国产.一区.二区 | 国产欧美欧美| 亚洲成人精选| 97精品一区| 国产福利一区二区精品秒拍| 91久久在线| 福利一区在线| 综合一区在线| 婷婷中文字幕一区| 国内精品麻豆美女在线播放视频| 在线国产日韩| 亚洲欧美高清| 激情偷拍久久| 日韩精品网站| 午夜精品成人av| 国产999精品在线观看| 日韩超碰人人爽人人做人人添| 日韩一区二区久久| 久久婷婷亚洲| 精品日韩视频| 麻豆国产在线| 日韩不卡免费高清视频| 国产精品v日韩精品v欧美精品网站 | 国产欧美日韩一区二区三区在线| 日韩视频精品在线观看| 久久久水蜜桃av免费网站| 欧美激情福利| 国产成人77亚洲精品www| 久久激情五月激情| 免费看一区二区三区| 日本不卡视频在线观看 | 欧美在线观看视频一区| 日韩免费小视频| av中文资源在线资源免费观看| 精品久久免费| 在线天堂中文资源最新版| 一区二区三区四区日本视频| 国产96在线亚洲| 久久国产小视频| 欧美成人亚洲| 久久香蕉精品| 日韩手机在线| 国产日产精品一区二区三区四区的观看方式 | 99热精品在线观看| 中文视频一区| 欧美精品国产| 久久一区亚洲| 91精品韩国| 免费观看在线综合| 欧美在线91| 中文字幕在线视频网站| 亚洲高清不卡| 亚洲精品人人| 精品美女在线视频| 欧美日韩一二三四| 激情91久久| 欧美一区二区三区久久精品| 欧美国产美女| 在线视频免费在线观看一区二区| 日韩av中文在线观看| 日韩成人精品一区| 欧美综合国产| 国产精品极品国产中出| 亚洲国产欧美日本视频| 欧美日韩精品一本二本三本| 青青在线精品| 日韩一级精品| 91综合视频| 日本中文字幕不卡| 久久久精品久久久久久96| 亚洲精品女人| 欧美精品一区二区三区精品| 午夜欧美精品久久久久久久| 国产精品mv在线观看| 99国产一区| 97精品视频在线看| 欧美日韩夜夜| 免费在线观看视频一区| 精品72久久久久中文字幕| 99国产精品久久久久久久成人热| 日韩av一级片| 午夜国产欧美理论在线播放| 欧美激情福利| 亚洲午夜免费| 亚洲成人日韩| 国产成人免费| 国产伦精品一区二区三区在线播放| 国产99精品| 成人精品视频| 你懂的亚洲视频| 日韩高清一区二区| 婷婷成人综合| 欧美日韩一区二区三区视频播放| 另类综合日韩欧美亚洲| 中文字幕亚洲影视| 日韩av福利| 国产不卡一区| 国产精品亚洲一区二区在线观看| 夜久久久久久| 久久久久蜜桃| 国产精品草草| 91精品在线免费视频| 日韩欧美在线精品| 日韩欧美久久| 欧美日本三区| 日韩1区2区日韩1区2区| 一区二区三区国产盗摄| 一区二区国产精品| 在线观看一区| 欧美精品中文字幕亚洲专区| 蜜桃视频在线观看一区| 六月婷婷一区| 老司机精品久久| 日本成人在线不卡视频| 欧美一区91| 日韩av网站在线免费观看| 欧美午夜三级| 青青草精品视频| 久久尤物视频| 亚洲人成在线网站| 99久久九九| 午夜亚洲精品| 国产日本精品| 久久亚洲黄色| 中文另类视频| 99在线精品免费视频九九视| 99香蕉国产精品偷在线观看| 视频一区视频二区在线观看| 一区二区91| 你懂的国产精品| 久久久久久色| 国产欧美成人| av高清不卡| 亚洲成人日韩| 国产欧美日韩精品一区二区免费| 欧美xxxx中国| 日韩视频精品在线观看| 日韩av在线免费观看不卡| 精品国产乱码| 国内激情久久| 欧美日韩一区二区国产| 久久久夜精品| 日韩一区二区三免费高清在线观看| 久久69成人| 好看不卡的中文字幕| 99国内精品| 久久99国产精品视频| 91精品国产调教在线观看| 亚洲精品电影| 蜜桃精品视频| 9色国产精品| 免费在线日韩av| 亚洲无线一线二线三线区别av| 亚洲精品字幕| 日本在线精品| 国产欧美啪啪| 日韩影院在线观看| 国产成人精品免费视| 视频一区二区不卡| 精品国产不卡一区二区| 91精品电影| 视频在线不卡免费观看| 快she精品国产999| 日本少妇一区| 精品视频高潮| 最新国产精品| 国产精品88久久久久久| 蜜桃久久久久| 日本伊人久久| 亚洲一区免费| 日韩精品永久网址| 久久精品国产99国产| 日韩欧美中文字幕电影| 99久久亚洲精品蜜臀| 色乱码一区二区三区网站| 亚洲精品一级二级三级| 999国产精品| 日本久久黄色| 久久97视频| 日韩av二区在线播放| 欧美成人亚洲| 久久男女视频| 高清av一区| 欧美激情精品| 精品亚洲成人| 精品国产中文字幕第一页| 日韩中文字幕| 日韩视频1区| 久久亚洲欧美|