国产精品视频一区二区三区四,亚洲av美洲av综合av,99国内精品久久久久久久,欧美电影一区二区三区电影

| 注冊(cè)| 產(chǎn)品展廳| 收藏該商鋪

行業(yè)產(chǎn)品

當(dāng)前位置:
上海亞津電子科技有限公司>>技術(shù)文章>>Pcomm 在數(shù)字汽車(chē)衡稱重軟件中的應(yīng)用

產(chǎn)品分類品牌分類

更多分類

Pcomm 在數(shù)字汽車(chē)衡稱重軟件中的應(yīng)用

閱讀:1494        發(fā)布時(shí)間:2017-11-28

  本文著重介紹在數(shù)字地磅稱重軟件中,用Pcomm實(shí)現(xiàn)數(shù)字傳感器與計(jì)算 機(jī)的高速數(shù)據(jù)通訊。

  在數(shù)字地磅稱重系統(tǒng)中,般是采用 485-232轉(zhuǎn)換器直接連接數(shù)字傳感器。用電腦代替儀表進(jìn)行稱重并完成數(shù)據(jù)管理。

  實(shí)際應(yīng)用中發(fā)現(xiàn),在Windows環(huán)境下進(jìn)行數(shù)據(jù)高速傳輸時(shí),使用些現(xiàn)成的控件存在嚴(yán)重的 數(shù)據(jù)丟失現(xiàn)象。而使用MOXA PcommPro提的 為異步通訊設(shè)計(jì)的AH函數(shù)庫(kù),就可以解決上述 冋題。本文介紹在C++builder中調(diào)用Pcomm.dll實(shí) 現(xiàn)上位機(jī)與數(shù)字傳感器通訊的過(guò)程。

  

云網(wǎng)客1.jpg

 

  從M0XA公司下載安裝包,安裝后得到 Pcomm.dll,用 C++builer 中的 Implib.exe 導(dǎo)出對(duì)應(yīng)的 靜態(tài)庫(kù),取名為Pcomm.lib,添加到工程中,同時(shí)在 安裝目錄下找到Pcomm.h文件,添加到工程中。

  在串口通訊過(guò)程中,主要使用的函式如下: int sio_open(int port) // 打開(kāi)串口,port 是串口號(hào) int sio_ioctl(int port,B9600,P_N()NE丨BIT_8 丨S ^1); //設(shè)置串口波特率,如9600,n,8,l

  int sio_cnt_irq(int port,char *p,l); II 設(shè)置中斷 函數(shù),port是串口號(hào),p是回調(diào)服務(wù)函數(shù)指針

  int sio_write(int port,char *p,int len); // 發(fā)送數(shù) 據(jù),*p發(fā)送內(nèi)容,len是長(zhǎng)度

  int sio_flush(int port,2); //清空串口緩沖區(qū),第二個(gè)參數(shù)清空緩沖區(qū)類型,2是同時(shí)清空輸人和輸 出緩沖區(qū)

  int sio_iqueue(int port); //獲得接收字節(jié)數(shù) int sio_read(int port,char *p,int len); II 讀取串

  口數(shù)據(jù),*p接收內(nèi)容

  int sio_close(int port); II 關(guān)閉串 口 主要程序代碼如下:

  void _stdcall cntirq(int port)// 聲明中斷服務(wù)函數(shù) void fastcall TForml::OPENClick (TObject *Sender); //打開(kāi)串口,設(shè)置中斷服務(wù)函數(shù) {

  port=StrToInt(ComboBoxl->Text); // 將要打開(kāi)的 串口號(hào)

  sio_open(port)// 打開(kāi)串口 sioJoctKporuBQGOaP.NEIBnLSISJ)//設(shè) 置此端口的通訊參數(shù),包括波特率,數(shù)據(jù)位,校 驗(yàn)位,停止位

  void _stdcall(*p)(int);// 回調(diào)函指針 p=cntirq ;

  int i=sio_cnt_irq(port,*p, 1); II 設(shè)置中斷函數(shù) }

  //中斷服務(wù)函數(shù),讀者手工編寫(xiě),用來(lái)處理 接收到的數(shù)據(jù),類似于MSC0MM中的接收事件

  void _stdcall cntirq(int port)

  {

  Sleep(20);//為了保證在和傳感器通訊時(shí),能進(jìn) 行其他操作,需要加人此函數(shù)

  unsigned char RecProBuf [1024]={‘\0’ }; int n=sio_iqueue(port); //獲取接收的字節(jié)數(shù) if(n>0)//有數(shù)據(jù)接收,無(wú)數(shù)據(jù)跳出

  sio_read(port,RecProBuf, 1024); II 讀取數(shù)據(jù) //讀到數(shù)據(jù)后,按協(xié)議解析,并顯示 }

  sio_write(port,SendData,7); II 發(fā)送數(shù)據(jù) //SendData為讀傳感器內(nèi)碼命令,7是發(fā)送長(zhǎng)度, 不同廠家協(xié)議不同

  sio_flush(port,2); II 刷新串 口 }

  void _fastcall TForm 1 ::SendClick (TObject lender)//點(diǎn)擊開(kāi)始發(fā)送命令,觸發(fā)中斷服務(wù) 函數(shù),以后在中斷服務(wù)函數(shù)中發(fā)送命令

  {

  char *SendData; //讀傳感器內(nèi)碼命令 sio_write(port,SendData,7); II 發(fā)送數(shù)據(jù) sio_flush(port,2);

  void 15 Sender)

  fastcall TF orm 1: :CloseClick (TObject

  sio_cnt_irq(port, N U LL,0);// 關(guān)中斷 sio_close(port);// 關(guān)串口

  Pcomm是建立在Win32通訊API函數(shù)的基礎(chǔ) 上的,并對(duì)其進(jìn)行了封裝,提了的調(diào)用接 口。在數(shù)字地磅稱重軟件的編寫(xiě)中,數(shù)據(jù)高速 可靠的傳輸非常重要。使用Pcomm通訊時(shí),可以 看到RS485-232轉(zhuǎn)換器的RXD和TXD狀態(tài)燈, 處于常亮狀態(tài)。

  

云網(wǎng)客2.jpg

 

  經(jīng)過(guò)連續(xù)長(zhǎng)時(shí)間運(yùn)行測(cè)試,工作正常,未發(fā)現(xiàn) 數(shù)據(jù)丟失現(xiàn)象。在計(jì)算機(jī)上同時(shí)進(jìn)行其他操作時(shí), 也未對(duì)稱重系統(tǒng)產(chǎn)生明顯妨礙。

  用于測(cè)試的計(jì)算機(jī)配置如下:

  1、CPU:C530 1.7G 內(nèi)存:1G 硬盤(pán):80G 操作 系統(tǒng):xp蕃前花園ghost版;

  2、CPU:In Core 2.2G 雙核內(nèi)存:1G 硬盤(pán): 160G操作系統(tǒng):xp蕃前花園ghost版。

  這是筆者近期開(kāi)發(fā)的《數(shù)字?jǐn)z像地磅稱重軟件》如圖2,應(yīng)用了文中相關(guān)的技術(shù)。

  

云網(wǎng)客3.jpg

收藏該商鋪

請(qǐng) 登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~
二維碼
汽车| 木里| 金平| 射阳县| 台湾省| 通城县| 休宁县| 临朐县| 开原市| 双鸭山市| 郎溪县| 荆州市| 界首市| 嘉荫县| 竹北市| 平利县| 北海市| 高平市| 竹山县| 莫力| 鄂尔多斯市| 丹阳市| 会同县| 阜新市| 新野县| 申扎县| 南开区| 邯郸县| 平陆县| 德保县| 遂平县| 涞源县| 芮城县| 哈巴河县| 根河市| 江达县| 神农架林区| 乌鲁木齐县| 康平县| 通州区| 大足县|