<dfn id="u2o6b"><rp id="u2o6b"></rp></dfn>
<wbr id="u2o6b"><fieldset id="u2o6b"><menu id="u2o6b"></menu></fieldset></wbr>

  • <output id="u2o6b"><big id="u2o6b"></big></output>
    1. <center id="u2o6b"><tbody id="u2o6b"></tbody></center>
    2. <menuitem id="u2o6b"><sup id="u2o6b"></sup></menuitem>
        <rt id="u2o6b"></rt>
        女人色熟女乱,国产精品国产三级国av,色综合久久中文综合网,精品一区二区三区日韩版,无码精品人妻一区二区三区中,又粗又硬又黄a级毛片,四虎国产精品永久在线下载,色综合视频一区二区三区
      1. 利用PG2000 的幀驅動器實現MODBUS通信———利用PG2000 的幀驅動器實現MODBUS通信
        貝加萊工業自動化(上海)有限公司

        1  引言
          隨著計算機技術、通信技術、自動控制技術的發展,傳統的PLC已經發展到集3C 技術為一體的新型工業控制裝置PCC ,它更能勝任大型的集散控制和復雜的過程控制。奧地利貝加萊工業自動化公司的B&R2005 就是這一裝置。B&R2005 具有強大的網絡通信能力,可以實現遠程I/O ,CANBUS ,PROFIBUS ,以太網等網絡通信。并且提供了與第三方設備之間進行通信的幀驅動器。我們的項目中需要PCC 與阿爾斯通儀表進行通信,讀取阿爾斯通儀表中數據,而阿爾斯通儀表采用MODBUS 通信協議,所以我們利用幀驅動器實現工業控制中普遍采用的MODBUS 協議通信程序。

        2  MODBUS 通信協議
          MODBUS 是一種工業通信和分布式控制系統協議,由美國著名的可編程控制器制造公司莫迪康公司(MODICON INC) 提出,已廣泛地應用于工業控制中。MODBUS 是一種主從協議,允許一臺主機與多臺從機通信。MODBUS 通信協議主要包括寄存器讀寫,開關量I/ O 等命令。采用命令/ 間答方式,每一種命令幀都對應著一種應答幀,命令幀由主機發出,當從機收到后,應發出相應的應答幀。每個從機有一個唯一的地址,只有被訪問的從機才會響應包含它的地址的查詢。也可以采用廣播方式,在廣播方式中使用地址0 ,所有的從機把它當作一條指令執行,但不發回應答幀。在MODBUS 中有兩種有效的數據傳送方式,即ASCII 碼和RTU 方式。我們采用RTU 方式,這種方式的主要優點是:在同樣的波特率下,可比ASCII 碼方式傳送更多的數據。其格式如下:

          從機地址即主機要訪問的設備的地址。功能代碼即從機要執行的功能。數據即附屬于功能代碼的數據。CRC 校驗數據即對前三種數據進行CRC 校驗算法,所得到的CRC 校驗值,用來校驗傳輸數據的正確性。
          例如我們要讀取(03功能) 地址為11(16進制)的從機寄存器的值,我們要發送如下數據幀:

          這條指令的意義是讀取起始地址為006BH開3個字的內容。
          從機收到命令后即可響應,發回如下數據幀:

          這樣即可取得所需數據。每種MODBUS 功能都有固定的命令幀和應答幀格式,共十六種。

        3  幀驅動器
          幀驅動器是貝加萊公司為實現與第三方設備之間進行通信而設計的軟件工具箱。通常數據通信,對數據進行讀寫操作,用戶必須對端口的細節了解很清楚,才能通過編程實現對接口各管腳進行操作。而幀驅動器將這些操作集中起來,用戶不必知道接口的細節,就可以通過幀驅動器命令直接傳輸讀寫數據。其提供的函數如下:
        FRM_XOPEN:初始化端口,為幀驅動器分配緩存,安裝中斷處理程序
        FRM_READ:把數據讀入讀緩存區
        FRM_RBUF:釋放讀緩存區
        FRM_GBUF:申請寫緩存區
        FRM_WRITE:將數據寫入寫緩存區
        FRM_ROBUT:釋放寫緩存區
          在初始化接口后,用戶就可以發送和接收數據了。發送數據基本過程是這樣的,向幀驅動器申請一個緩存區,然后將要發送的數據寫入申請得到的緩存區中,命令幀驅動器傳輸數據。
        FRM_GBUF(1 ,IDENT,GSTATUS ,OUTBUFADR ,OUTBUFLNG);申請緩存區
        IF(GSTATUS = -) THEN
          MEMCPY (OUTBUFADR ,ADR(SENDFRAME) ,LEN);將數據寫入寫緩存區
        FRM_WRITE(1 ,IDENT,OUTBUFADR ,LEN ,WDSTATUS);要求幀驅動器傳輸數據
          IF(WDSTATUS < >0) THEN
         FRM_ROBUF(1 ,IDENT,OUTBUFADR ,LEN ,ROSTATUS)ENDIF
        ENDIF
          接收數據的過程與發送的過程基本相反,其過程是這樣的:命令幀驅動器從接口讀一幀數據并把它存入一個緩存區中,將數據從緩存區中拷貝到工作區中,釋放緩存區
        FRM_READ(1 , IDENT,RSTATUS , INBUFADR , INBUFLNG);接收數據
        IF (RSTATUS =0) THEN
          MEMCPY (ADR(BUFFER[0]) , INBUFADR , INBUFLNG);接收數據存入工作區
        FRM_RBUF(1 ,IDENT,INBUFADR ,INBUFLNG,RBSTATUS);釋放讀緩存區
        ENDIF

        4  程序設計實現
          為了使操作命令組織結構清晰,合理。我們采用數據表格方式。我們把MODBUS 命令組織成命令表,表格中的每一行對應于一條MODBUS 命令,其格式如下:

         

          此例就是讀取從機地址為11 ,起始地址為006B ,長度為3個字的內容,并把其放入地址為REBUFADR 開始的單元中。
          整個程序由三部分組成: (1) 主程序。(2) CRC 校驗功能塊。(3) 數據表格。程序的設計思路是這樣的,主程序為一個TC#4任務,它每10ms 執行一次,確保實時快速地與從機通信。程序循環讀取表格中每一行的數據,然后調用CRC 校驗函數,計算出CRC 校驗碼,然后將其組織成MODBUS 命令幀發送出去。從機得到命令幀后,發回響應數據,主程序讀取返回數據,計算CRC 校驗碼,判斷返回數據是否有效,把其存放在記錄中。當有事件發生時,主程序立即讀取地址3600h開始的9個字,把其放在相應的事件記錄中,直至事件觸發標志無。為了使程序適應現場要求,對每種MODBUS 命令設有三種操作模式:模式0(不執行此條MODBUS命令) 、模式1(對此條MODBUS 命令只執行一次) 、模式2(常執行此條MODBUS 命令) 。

          該程序裝入貝加萊B&R2005PCC 中,經運行,該程序能實時、準確,可靠地讀取阿爾斯通儀表的數據,很好地與阿爾斯通儀表進行通信,實現了MODBUS 的各種命令,完成了對阿爾斯通儀表的操作與控制。

         
         
        網站首頁  |  關于我們  |  聯系我們  |  廣告服務  |  版權隱私  |  友情鏈接  |  站點導航
         
        主站蜘蛛池模板: 精品国内自产拍在线观看| 国产黄色电影| 亚洲va中文在线播放免费| 亚洲精品中国国产嫩草影院美女 | 石原莉奈日韩一区二区三区| 久热最新精品在线视频| 亚洲综合无码精品| 亚洲日本视频一区二区三区| www.国产在线| 一本精品99久久精品77| 日韩V欧美V中文在线| 国产精品一区二区三区黄色| 赞皇县| 国产成人亚洲精品2020| 看全黄大色黄大片视频| 中文字幕日韩欧美就去鲁| 99久久免费精品国产色| av不卡在线观看| 欧美v亚洲v日韩v最新在线| 一区二区日韩视频| 亚洲日韩一区精品射精| 亚洲无码21| 乱码视频午夜在线观看| 亚洲中文字幕一区二区| 亚洲欧洲制服| 亚洲综合av一区二区三区| 国产粉嫩粉嫩的18在线播放91| 白浆出来无码视频在线| 天堂av在线一区二区| 日韩a∨精品日韩在线观看| 午夜中文在线| 制服丝袜在线二区| 【_undefined?-?P站免费版?-?永久免费的福利视频平台】https://17630364268551281430832.nx37lbnqvd.com/column/all/show?t=&tags=%E5%90%8E%E5%85%A5%E9%AA%91%E9%A9%AC&page=2&orderBy=createTime&expanded=1 | 免费AV片在线观看网址| 国产一区二区三区AV在线无码观看| 18禁网站| 国产综合成人网| 国产精品VA在线观看老妇女| 中文字幕天天色色干干| 成年视频人免费网站动漫在线| 国产成人精品无人区一区|