用西門子CP341實現Modbus RTU通訊
1 概述
CP341模塊是西門子S7—3001400系列PLC中的串行通訊模塊。該模塊具有1個串行通訊口(RS232C或 TTY或RS485/422),RS422/485的通訊zui大距離位1200m。支持以下協議ASCII,ModbusRTU遠程終端,Data Highway(DF1協議),電氣接口為15針D型孔接頭。可以使用這種通訊模塊實現S7300/400與其它串行通訊設備的數據交換。例如打印機、掃描儀、儀表、Modbus主從站、Data Highway站、變頻器。USS站等。CP341模塊可以同時與多臺串行通訊設備進行通訊。如同時連接多個變頻器、連接多個智能儀表等。如果采用RS422/485 modbus RTU通訊方式,需要在發送的數據包中包括站號、數據區、讀寫指令等信息。供CP341模塊所連接的從站設備鑒別數據包是發給哪個站的。以及該數據包是對那個數據區進行的讀或寫的功能。
Modbus協議是應用于電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它已經成為一通用工業標準,有了它,不同廠商生產的控制設備可以連成工業網絡,進行集中監控。此協議定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的。它描述了一控制器請求訪問其它設備的過程。如回應來自其它設備的請求,以及怎樣偵測錯誤并記錄等。它制定了消息域格式和內容的公共格式。MODBUS為單主站網絡協議,所以系統中只能夠有一個Modbus主站,所有通信都由它發出并且只能夠實現主站和從站的數據交換,從站之間不能進行數據交換,Modbus可支持247個之多的遠程從屬控制器。但實際所支持的從機數要由所用通信設備決定。采用這個系統。各PC可以和中心主機交換信息而不影響各PC執行本身的控制任務。CP341插人MODBUS主站Dongle(狗)或插入從站Dongle,就可以作為MODBUS主站。或者作為MODBUS從站。在ModBus系統中有兩種傳輸模式編碼可選擇,一種模式是ASCII(美國信息交換碼),另一種模式是RTU(遠程終端設備),由這兩種模式定義這兩種傳輸模式與從機PC通信的能力是同等的。選擇時應視所用ModBus主機而定。每個ModBus系統只能使用一種模式。不允許兩種模式混用。
2 RTU幀結構
使用RTU模式,消息發送至少要以3.5個字符時間的停頓間隔開始。在相同的網絡波特率下采用多個的字符時間,這是zui容易實現的。傳輸的*個域是設備地址,可以使用的傳輸字符是十六進制的0...9,A...F。網絡設備不斷偵測網絡總線,包括停頓間隔時間內。當*個域(地址域)接收到后,每個設備都進行解碼以判斷是否發往自己的,在zui后一個傳輸字符之后,一個至少3.5個字符時間的停頓標定了消息的結束.一個新的消息可在此停頓后開始。整個消息幀必須作為一連續的流轉輸,如果在幀完成之前有超過1.5個字符時間的停頓時間,接收設備將刷新不完整的消息并假定下一字節是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內接著前個消息開始,接收的設備將認為它是前一消息的延續,這將導致一個錯誤,因為在zui后的CRC域的值不可能是正確的。一典型的消息幀如下所示:
起始位:T1-T2-T3-T4
設備地址:8 Bit
功能代碼:8 Bit
數據:N個8 Bit
CRC校驗:16 Bit
結束符:T1-T2-T3-T4
3 RS422/485網絡工作過程
基于Modbus主從式工作的主站以廣播式的向所有從站發送請求數據的數據包.其數據包中包含從站地址、功能代碼(即讀取的寄存器類型)、要讀取 字串2
的寄存器的起始地址、該次要讀取的寄存器個數。并等待從站的響應;掛在同一條RS485總線上的所有從站被動的接收到主站的廣播包.然后解開這個廣播包把這個包中的從站地址與自己的地址對照.如果地址相同.該從站馬上把自己相應寄存器中的數據發送到總線上去:主站中的接收程序始終處于待命狀態.等待總線上從站發送來的響應數據包,并把響應包中的數據序列化到自己的接收數據塊中。從站檢測到包中的從站地址與自己的地址不符時,則直接銷毀該包.就不做任何響應。到此完成一個發送接收數據的過程。
4 CP341驅動配置
在您的計算機上首先安裝STEP7 5.x軟件和CP34x模板所帶的軟件驅動程序.模板驅動程序包括了對CP341進行參數化的窗口(在STEP7的硬件
組態界面下可以打開)、用于串行通訊的FB程序塊。當系統上電,CP34x模板初始化完成后,CP34x上的sF燈點亮:
在硬件組態窗口中雙擊CP341模板,打開CP341模板的屬性窗口,選擇通訊協議modbus,網絡工作方式設置為半雙工,請記錄下模板的硬件地址
以便在編程序時用到。雙擊CP341模板屬性窗口中的protocol 協議圖標進行協議參數設置,這里我們使用默認值:96oo bit,s, 8 data bits, 1 stop bit,even parity。對的硬件組態存盤編譯,下載硬件組態.如果此時sF燈亮.請將通訊電纜與另一個通訊伙伴進行連接后.SF燈熄滅,說明硬件組態正確。
5 程序編寫
(1)CP341發送模塊的設計而發送程序主要是通過調用功能塊FB8來實現,FB8是基于上升沿觸發工作的.來一個上升沿FB8工作一次向總線上發
送一個請求數據包,所以在程序中一定要設計一個觸發代碼段,來不斷的使REQ:=M50.0循環往復的置“1”置“0”,這樣FB8就可以正常運行了。
在設計程序時一定要注意FB8的參數SF:=‘S’及R_TYP:=‘X’的值都是大寫否則程序調試不成功。FB8需要一個背景數據塊.這一背景數據塊一般由系統自動生成.以上程序中為DB3;對于通過CP34 1的Modbus Master驅動通訊的發送模塊需要設計發送數據塊DB塊.用來對主站發送參數進行設置和初始化。
Modbus能夠實現的功能代碼共有10個.分別針對不同的寄存器讀寫功能設置.功能代碼Initial value:B#16#4的功能是讀從站的輸出數據寄存器
整數型、狀態字或浮點型數據:寄存器的起始地址Initial value:W#16#0是功能代碼規定的寄存器的起始地址;讀取寄存器的數目Initial value:4的意義是從起始地址開始總共讀取4個寄存器。
(2)CP341接收程序的設計
接收程序是調用FB7來實現的,由于CP341可以處理接收程序的細節部分.因此對于設計者來說只需要進行簡單的設計就可以實現數據的接收。接
收程序同樣也需要設計背景數據塊本例中為Db44塊和接收數據塊本例中為DB5塊。
(3)裝載設計好的發送接收程序FC 1與FC2。
6 參數化遠程從站RTU .
以上介紹的是Modbus主站的應用與程序設計,沒有對遠程終端RTU從站進行介紹.其實在進行程序調試時必須對從站進行一些參數設置使其參
數與主站要求的一致,包括協議類型、從站地址、寄偶校驗、傳輸超時等,否則通訊很難成功。
7 總結
隨著儀表自動化技術的提高,帶各種通訊接口設備和現場總線設備將被大量應用到工業現場領域,使全數字化、串行、雙向、互操作多快好省的遠距離大數據量通訊成為可能.為數據監控和管理中心監控現場數據及現場設備工作狀態和分析挖掘數據關系提供了方便。Modibus RTU通訊是現場總線實現的一個簡單例證,成功的解決了現場儀表數據和PLC通訊問題,節省了因標準儀表信號布線所需的大量電纜,并且可靠性得到了大幅度提高。是我們今后現場信號采集通訊值得借鑒的一個典型代表。
上一篇:西門子PLC停機軟件原因綜述
下一篇:智能電表電源管理及PLC方案
免責聲明
- 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.xashilian.com。違反者本網將追究相關法律責任。
- 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
- 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
2025長三角國際智能儀表/線纜產業博覽會
展會城市:滁州市展會時間:2025-11-11