新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Modbus 通信協議在分布式控制系統中的應用

        Modbus 通信協議在分布式控制系統中的應用

        作者: 時間:2012-06-09 來源:網絡 收藏

          2.2 網絡構成及硬件介紹

          網絡采用RS485串行接口,通信媒體由4芯屏蔽電纜連接主從設備,傳輸距離最大達1.5Km,全雙工,串口設定波特率19200,8位數據位、偶校驗、1位停止位。DCS通信部分采用橫河型號為ALR121的通信模塊,并配套橫河提供的Modbus通信軟件包,該通信模塊最大通信數據容量4000字。PLC通信部分則采用Omron的C200H-ASCII 21可編程特殊單元模塊(以下簡稱ASCII模塊),該模塊支持BASIC語言編程,內有200K字節的程序存儲區,配備RS232、RS485通信串口各一個。通過對該模塊的編程,可實現與外圍設備的各種通信。本系統通過ASCII模塊與DCS基于的通信,將DCS的讀、寫指令及數據做相應轉換,并與PLC的CPU單元進行數據存取交換,以實現上下位機控制信息的實時傳輸。如圖四所示。


        三、軟件實現

          1、 建立地址分配、對應表

          DCS人機監控界面(HMI)上面向現場儀表的圖形符號對象的監控,需通過DCS I/O物理地址對現場儀表信號的采集來實現。DCS對現場電氣執行、檢測機構的監控,則是由DCS通信I/O地址與PLC I/O物理地址一一對應完成的。為此,在編程前,需建立一張DCS通信I/O地址與PLC I/O地址的分配、對應表。由于PLC邏輯控制編程需要,不便直接將PLC I/O物理地址與DCS通信I/O地址對應,故采取了間接地址的方式。具體設計采用PLC的數據存儲區DM區作為間接地址區,與DCS通信I/O區建立聯系,再將DM區與PLC I/O區相對應。如將DCS的%WB000101位通信I/O地址與D0000.00位地址對應,D0000.00再對照PLC的I0000.00位物理輸入點,就能將現場電氣執行機構的運行狀態反饋到HMI上。按照這種方法就建立了一張上下位機地址分配、對應表,因篇幅所限,該表略。

          2、程序設計

          ASCII模塊支持BASIC語言編程,此外,又附加了多條系統及函數指令,如接收、發送緩沖區操作指令、信息傳輸差錯控制CRC、LRC校驗函數指令和與CPU單元數據交換的讀寫指令等。編程使用WINDOWS操作系統上附帶的Hyperterminal(超級終端)軟件,通過此軟件,PC機可與連接在網絡上的其它PC機或串口終端設備進行文本文件的傳輸及顯示。編程時,將PC機串口與ASCII模塊的RS232串口連接,運行該軟件,就能在其界面上對ASCII模塊進行程序編寫、上傳、下載和調試等工作。也可先通過WINDOWS系統的寫字板編寫程序,并保存為文本格式,然后再通過Hyperterminal將程序下載到ASCII模塊。通信程序的主工作流程見圖五。


          部分程序代碼如下:

          OPTION BASE 0 //定義數組

          DIM R(128),FC(128)

          R(48)=0:R(49)=1:R(50)=2:R(51)=3:R(52)=4:R(53)=5:R(54)=6:R(55)=7:R(56)=8

          R(57)=9:R(65)=h0a:R(66)=h0b:R(67)=h0c:R(68)=h0d:R(69)=h0e:R(70)=h0f

          R(97)=h0a:R(98)=h0b:R(99)=h0c:R(100)=h0d:R(101)=h0e:R(102)=h0f

          OPEN #2,"COMU:19200,8,E,1" //設定串口參數

          A%=LOC(2) //判斷接收緩沖區字符

          IF A%=8 THEN

          REX$=INPUT$(A%,#2)

          ……….

          ENDIF

        數字通信相關文章:數字通信原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安龙县| 磐安县| 阳东县| 盐城市| 广宗县| 菏泽市| 台北市| 贡觉县| 岚皋县| 石棉县| 蓬莱市| 运城市| 城固县| 松滋市| 德清县| 英吉沙县| 巫溪县| 福建省| 吴桥县| 揭阳市| 白朗县| 南安市| 修文县| 时尚| 玉环县| 崇州市| 丘北县| 富宁县| 崇信县| 乌拉特后旗| 牙克石市| 安化县| 汕尾市| 遂溪县| 石嘴山市| 永登县| 西宁市| 鱼台县| 柘荣县| 新巴尔虎左旗| 瑞安市|