前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇modbus協議范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
關鍵詞:STC89C52 通訊協議 Delphi Firbird
1節點設計以及網絡組成
1.1本系統主控芯片采用宏晶科技STC89C52單片機,與其它CPU芯片相比,具有顯著特點,加密性強,超低功耗,速度快,可靠性高,驅動能力強,抗靜電和抗干擾能力強。
1.2DS18B20傳感器
DS18B20是美國DALLAS公司生產的一線式數字式溫度計芯片,它具有結構簡單,不需外接元件,測量溫度范圍在-55°C—+125°C之間。采用一根I/O數據線既可供電又可傳輸數據、并可由用戶設置溫度報警界限等特點,可廣泛用于食品庫、冷庫、糧庫等需要控制溫度的地方。
1.3網絡節點設計
網絡節點結構示意圖
1.4網絡組成
該控制網由PC機和若干分節點組成,PC機主要負責輪詢各分站點數據,發送請求數據包和控制數據包,然后分節點判斷數據包,根據相應的指令通過RS232接口把數據發送給PC機,最大站點數可設50個節點,PC機對采集的數據進行分析處理。
2 控制網絡通訊協議
2.1簡單節點流程示意圖
本控制網采用同一程序,通過面板按鍵設置本機的分節點地址,節點開始上電,CPU開始初始化I/O、串口等模塊,接著根據設置的參數讀取操作站點,從而執行相應的程序并分析數據,數據正確,進行正常顯示,否則PC機根據不同的報警信息發出聲光報警。
簡單節點流程示意圖如下
2.2數據包格式
通訊參數:波特率:1200,數據位為1,數據位為8,停止位為1,校驗位為1,方式采用主從式通訊,計算機為主機,各下位分機為從機。主機先發數據請求命令,只有符合地址條件的從機才回傳或接收數據,在數據傳輸中,為提高系統的可靠性和實用性,要求傳送的數據包盡可能短,并且傳送的信息量要大。
2.2.1請求數據包
本數據包用于PC機向分節點請求數據使用。請求數據包格式如下:長度為4個字節數,首位碼、讀標志、目的地址、數據量均為一個字節數。
2.2.2回送數據
本數據包用于分節點發送PC機所請求的數據,回送的數據包長度可以根據發送的指令而變,根據PC機發送的請求,數據包回送PC機所請求的數據。
回送數據包格式如下:首位碼、地址均為1個字節數,回送數據根據發送指令確定字節數,備用字節、校驗碼為兩個字節數。
2.2.3控制數據包
本數據包主要用于PC機向分節點發送數據使用。控制數據包格式如下:長度為5個字節數,首位碼、寫標志、目的地址均為1個字節數,數據量為2個字節數。
2.2.4協議的實現及應用
在設計基于RS-485的分布式測控系統時,在上位機呼叫下位機地址之后就可以利用本協議的規范來設計具體的通信流程。 基于本協議的通信可以有兩種機制。一種是面向握手的,即每發出一幀,總是要等待確認幀,否則將認為是通信出錯。這是一種可靠的通信方式,適合傳輸系統命令和一些非常重要的系統參數。另一種是無握手的,即發送方假設接收方總是接收正確,從而無須等待確認幀就不停地發送,適合大量前端采集數據的發送。這種機制的優點是發送過程簡 單、快速,缺點是不能保證傳輸過程的可靠性。
本協議利用握手通訊方式已經成功地運用到多個冷庫、糧庫監測系統中,不僅簡化了通信程序的設計,而且保證了通信的高效和可靠。下位機負責現場的溫度的采樣和存儲,上位機負責循環呼叫下位機,以了解現場情況是否正常,并且每隔一定時間收集下位機存儲的數據并對數據進行分析管理。
2.3通訊的可靠性
本系統采用主從結構,利用PC機輪詢各節點,能有效解決網絡沖突問題。傳輸數據增加了冗余,并且在所傳送的數據中進行了硬件的循環冗余校驗。
3 結束語
本系統上位機軟件采用Delphi開發,數據庫采用Firbird,上位機設計分為組態部分和監控運行部分,可視化直觀的界面操作,組態方便,可根據分節點所接傳感器數量不同,自由分配通道,利用上位機強大的數據處理能力,進行數據分析和處理,可對各節點進行數據顯示、上下限報警、實時趨勢顯示,具有很大的實際應用價值。
參考文獻:
[關鍵詞] Modbus; 監控; 功能碼
1 引言
在油庫和各種石化單位,定量裝車作業十分繁忙,裝車操作過程又要求相對精確。更加重要的是,涉及石化產品具有一定危險性。為了提高了裝車精度和效率,降低損耗,減輕工人的勞動強度,同時盡可能保證安全作業,本文設計了基于Modbus協議的定量裝車自動監控系統,并交付某公司使用。實際應用表明系統監控畫面直觀,人員操控方便,具備一定的主動安全保障能力。
2 Modbus協議
Modbus通信協議是美國Modicon公司開發的一種通信協議,它采用Master/Slave方式工作,一個主站可以連接多個從站,從站只能根據主站的請求作出相應的應答。它是一種開放、標準、免收許可費的通信協議。目前該協議已經廣泛應用于自動化控制和測控儀表,并且已經成為我國工業自動化網絡協議規范的國家標準之一。
Modbus協議有2種傳輸模式,即RTU模式和ASCII模式,相對于ASCII模式,RTU模式表達相同的信息需要較少的位數,且在相同通信速率下具有更大的數據流量,因此本系統選用該模式完成設計與實現。
Modbus協議的采用LRC和CRC兩種校驗模式來保證控制命令傳輸無誤。本文采用CRC-16校驗方式,該方式會根據當前發送或接收的命令字節碼,計算對應的2個字節的CRC校驗碼。并將其加到命令字節碼之后一并發送,組合之后的命令字節碼格式為:
系統在實現過程中,考慮到最終將會采用普通的X86系列PC機作為監控終端,而該型機都是big-endian方式做多字節數據存儲,與Modbus協議要求的little-endian剛好相反, CRC的計算結果必須滿足這一要求。本文稍微調整了CRC-16校驗碼的產生方式如下:
Step1:將0xFFFF裝入CRC寄存器;
Step2:將命令字節碼的第一個字節與CRC寄存器異或,結果存放在CRC寄存器中;
Step3:CRC寄存器右移1位,高位填充0;
Step4:檢查CRC寄存器的最低有效位,如果該位為0,則重復Step3;如果該位為1,則將CRC寄存器的值與0xA001異或;
Step4:重復Step3和4,直到完成8次移位之后,完成命令字節碼中的對一個字節的處理;
Step5:對命令字節碼的下一個字節重復Step2到Step5的處理,直到所有的字節都處理完成為止;
Step6:最終CRC寄存器中的內容就是該條命令字節碼對應的CRC校驗值;
例如,某命令字節數據[ 1 | 15 | 0 25 | 0 12 | 2 | 168 3 | 216 120 ]的含義為:給1號地址設備15號命令(寫多個線圈),從它的25號起始地址開始(0 25),連續寫12個線圈(0 12),寫入內容為命令數據區的1010 1000 0011(168 3),根據命令計算出CRC校驗碼為(216 120)。
3 系統工作原理
本系統采用典型的RS232/485總線將上位機服務器端、上位機客戶端以及各個下位機組成一個工業可控以太網,各下位機選取符合Modbus plus規范的相關設備,便于直接獲取的操作過程中的各種數據信息,并封裝成協議標準進行傳輸和通訊。主操作界面如圖1所示。
系統工作原理框架如下:
(1)下位機通過傳感器采集溫度計、流量計、比重計等相關數據,并封裝成Modbus協議格式數據供上位機客戶端查詢。
(2)上位機客戶端通過串口和橋接器連接各個下位機,利用多線程串口讀取函數主動進行數據收集,下位機按照上位機客戶端的要求回傳相應數據。然后,上位機客戶端將收到的數據按功能碼進行解析,并以圖例、表格、文本等多種形式實時顯示和記錄。
(3)上位機服務器端通過TCP/IP網絡與各個上位機客戶端相連,對多個上位機客戶端的狀態信息進行收集、分析和存檔,并通過主動發送命令的方式給上位機指令,進而通過上位機客戶端給下位機下達控制命令,達到“監視――控制”雙功能。
4 軟件系統設計
上位機服務器通過接收Modbus請求,與上位機客戶端進行交互,并對操作過程實時監控,利用成熟的數據庫管理系統,接收、存儲、處理和備份整個過程中產生的所有數據,為客戶提供服務,并為進一步的數據分析提供歷史依據。上位機服務器端主要功能包括:
(1)系統管理:該模塊包括了各類管理員,操作人員的用戶注冊,授權和管理等等,防止非法操作人員惡意登錄造成操作失誤,也避免非授權操作員隨意更改系統工作參數可能造成系統運行偏差。
(2)數據庫管理:該部分模塊選擇成熟的數據庫管理系統SQL Server2005對整個系統運行過程中所需要記錄的所有數據信息就行存儲和管理,為整個系統的運行和監控提供可靠的數據支持;
(3)系統工作狀態顯示:該模塊負責以圖像模擬顯示多種數據狀態,有利于管理人員實時監控各下位機客戶端的操作情況。并且提供多種顯示圖像幫助管理人員分析各種操作情況,這是系統的核心功能之一, 在實現獲取個下位機狀態之后,對下位機進行直接控制是系統必需的核心功能之一,雖然在實際裝車控制中主要使用的功能碼只有2、4、15、16號命令,但是本系統實現了全部Modbus功能碼,便于今后對新設備的擴充。。
(4)Modbus協議命令:該模塊能夠按照標準的Modbus協議,接收來自上位機客戶端傳送來的Modbus請求,完成數據采集、數據分析和數據存儲工作,是系統工作狀態顯示實現的基礎;
(5)安全警報功能:授油工作本身是具備一定危險性的工作,安全責任事故問題必須引起足夠的重視。可以根據各種系統狀況進行報警處理,保證系統工作狀態安全可靠,避免業務事故的發生,并且具備自動報警信息記錄功能,收集歷史上曾經出現的安全事故信息,為安全人員分析發現安全事故規律,查找安全隱患提供數據支撐。
上位機客戶端能有效地按照預定訂單號自動完成裝車作業,或者在操作員的控制下,進行控制參數設置,定量控制、數據采集、業務受理和報表打印等具體業務。上位機客戶端主要功能包括:
(1)實時授油監視:該模塊負責實時動畫模擬顯示整個下位機控制分組內所有鶴管的出油狀況,及相關關鍵參數數值顯示。例如:發油訂單號、車號、油品類型、參數設定、誤差范圍等等;
(2)強制發油控制:該模塊在特殊情況下,可以人為指定操作指令,以取代自動發油過程,控制啟動發油、暫停發油、恢復發油、強制結束等方式來進行特殊操作,擴展控制功能,更加適應實際操作的變化;
(3)業務計劃管理:該模塊下,客戶可以根據預約過的訂單號,自動完成裝車過程。也可以在沒有訂單號的情況下,有操作人員生成新的裝車業務,并進行結算;
(4)業務查詢:該模塊按照操作員和客戶要求的方式(諸如進行訂單號、裝車時間、油品類型、裝車單位、操作員編號等等)進行多種關鍵字查詢和統計功能,并且自動生成相關聯報表。
(5)打印功能:其自定義打印功能,更加貼近實用,可以由用戶自主選擇打印;
5 結論
本設計采用OOAD思想,用UNL建模,并使用Borland C++作為開發工具,規范化的設計和編程過程,以及大量集成的成熟控件足以支撐本軟件系統的快速開發。結果表明,軟件系統既可以對標準Modbus功能碼進行調試,也可以對自定義功能碼進行設置,還可以實時監測和控制下位機狀態,并結合數據庫功能記錄所有關鍵操作和核心設備配置參數信息,保障差錯恢復。系統運行穩定可靠,使用簡明方便,很好地滿足項目要求。
[參考文獻]
[1] AEG Schneider Automatic Inc. Modicon IBM host based devices user’s guide Apr.1996
[2] 張克涵,張呼和,顧李馮.VC環境下的電機狀態監測軟件設計[J].測控技術2012年第31卷第2期
[3] 呂國芳,唐海龍,李進.基于ModbusRTU的串口調試軟件的實現[J].計算機技術與發展 2009年第19卷第9期
[4] 袁輝,李延香.基于Modbus通訊協議數據采集系統的設計[J].科技咨詢導報 2007 No.19
[5] 陳柏金.通過串行口訪問modbus現場控制網絡[J].微計算機信息 2003.19(1)
[6] 王念春.基于Modbus的PC與下位機PLC間的通信程序[J].自動化儀表 第22卷第8期 2001年8月
[7] 徐濤,閆科.基于Modbus協議的串行接口實現與DCS通訊[J].工業控制計算機 2002年4月
[8] 羅朝霞,張高記.基于TMS320F240TA DPS的Modbus通信協議的實現[J].微計算機信息2005.21(72)138-139
[9] 房傳禮,李建華.基于Modbus協議的大屏幕在線監視系統設計[J].自動化與儀表 2010年7月
[10] 盧文俊,冷杉.基于Modbus協議的控制器遠程監控系統[J].電力自動化設備 2003年第23卷第6期
[11] 甑君,衛強,于耀.應用多線程技術實現串行通信與信號采集識別的同步[J].計算機工程 2003(10)196-197
[12] 李俊,徐紅兵.基于Modbus協議的汽輪機保護系統通訊設計[J].自動化與儀表 2006年7月
[13] 方羽,梁廣瑞.基于uCOS的Modbus協議的實現.裝備制造技術[J] 2009年第1期
關鍵詞:MODBUS PLC 變頻器
中圖分類號:TP273 文獻標識碼:A 文章編號:1007-9416(2012)02-0072-02
1、引言
MODBUS作為一種簡單易用的通訊協議已經越來越多的應用在各類儀器儀表中,下面筆者以西門子公司的S7200PLC通過自由口與ABB公司的ACS510變頻器使用MODBUS協議進行通信為例,對MODBUS通訊的應用進行敘述,以期達到拋磚引玉的效果。
2、硬件配置
圖1給出了SIMATIC S7-200CPU與四臺ABB ACS510變頻器構成的MODBUS網絡。S7-200CPU為主工作站。變頻器1、變頻器2,變頻器3和變頻器4為從工作站。設置變頻器的通訊協議參數9802均為1,即變頻器通過RS485串行通訊口和MODBUS總線相連。設置通訊速率參數5303為19.2kb/s。設置校驗方式參數5304為偶校驗,1個停止位。設置控制類型參數5305為 ABB傳動簡版。從左到右變頻器1、2、3和4的站地址參數5302分別設置為3、4,5和6,并將變頻器4的總線終端電阻DIP開關置ON。在對變頻器以上參數設置完成后應對傳動重新上電激活,使新地址及通訊協議生效。
變頻器控制要求:
變頻器分現場和遠程兩種控制模式,現場控制柜設置三位置模式選擇開關,分別為停止、本控和遠程。在本控模式下啟動/停止命令由現場開關觸發數字輸入DI1控制,頻率由現場的電位器改變模擬輸入AI1的輸入電壓進行調節。當選擇遠程模式時,數字輸入DI2接通,通知PLC現變頻器已經處于遠程控制模式。為能夠實現以上功能并在人機界面能夠觀察到變頻器的運行頻率和通過模擬輸入AI2輸入的實際流量,還需要對變頻器其他部分參數進行設置,見表1。
3、程序設計
3.1 通訊內容
主工作站輪流發送請求報文到每個變頻器從工作站,隨之每個從工作站產生響應報文。PLC主工作站分別對每個變頻器從工作站進行如下操作:
(1)對每個變頻器的輸出線圈1~3的狀態進行查詢;
(2)查詢變頻器狀態寄存器40004狀態字、40005實際值、40006實際值和40007實際值。40005~40007數據值對應于表1中變頻器參數5310、5311和5312中的實際值。
(3)寫變頻器控制字,對變頻器的遠程啟停進行控制。
(4)寫變頻器寄存器,對變頻器的外部2給定進行控制。
對一個變頻器的數據全部讀寫完成后,開始對下一站號變頻器的數據進行讀寫。當所有變頻器的數據讀寫完成后,主工作站重新開始對最小站號變頻器的數據進行讀寫。數據的傳輸及接受采用PLC自由通訊口模式進行,報文按照modbus的協議組織。
3.2 通訊格式
MODBUS請求報文格式如表2。
因在S7-200PLC發送指令XMT中,發送緩沖器的第一個字節指定的是數據傳輸的字節數,從第二個字節以后的數據為需要發送的數據。因此,結合MODBUS請求報文格式,PLC發送數據的格式如表3。
在整個網絡通信過程中,主工作站輪流發送請求報文到每個從工作站,隨之每個從工作站必須產生響應報文返回到主工作站。當主工作站向從工作站發送請求報文和接受從工作站返回的響應報文時,在主工作站儲存區開辟了發送緩沖區和接受緩沖區。主工作站向從工作站發送請求報文時,首先對相應從工作站輸出緩沖區的數據進行CRC運算生成校驗碼,并將校驗碼疊加在輸出緩沖區的數據之后再傳送到發送緩沖區,然后再由發送指令發出。建立一個遠程循環結束標志位,當響應報文全部接受完成,置該位為ON。主工作站在接受從工作站的響應報文時,先把響應報文輸入到接受緩沖區,再把接受緩沖區中的數據傳送到輸入緩沖區。為此,在主工作站中要留有兩個數據存儲區,一個作為報文請求(輸出緩沖區),另一個作為報文響應(輸入緩沖區)。
在MODBUS RTU通訊協議中都必須要求有CRC循環冗余校驗。CRC循環冗余校驗為兩個字節,附加在報文后面的CRC的值由發送設備計算,當放置CRC 值于報文時,高低字節必須交換。首先發送低位字節,然后再發送高位字節。故此在發送緩沖區中的數據要比輸出緩沖區的數據多兩個CRC循環冗余校驗字節。接收設備在接收報文時重新計算CRC的值,并將計算結果于實際接收到的CRC值相比較。如果兩個值不相等,則傳送的數據為錯誤。
3.3 程序描述
SBR0子程序:在PLC上電初始化階段,設置通訊口為自由口通信方式,并設置波特率及校驗方式,允許全部中斷時件,并設置定時中斷的時基為20毫秒。在這里設置波特率為19.2KB/S,偶校驗,每字符8個數據。注意必須與從工作站的通訊參數相同。為輸出和輸入緩沖區的數據地址建立間接尋址指針。并設置請求報文的剩余數目為4,設置從工作站的查詢剩余數目為4。
將輸出緩沖區指針中指出的地址為起始地址的12個字節通過塊傳送命令傳送到發送緩沖區單元中。并復位遠程循環結束標志位。
對發送緩沖區中的報文進行運算生成CRC,交換CRC 寄存器中的高低字節,并將交換完成的CRC 寄存器疊加到發送緩沖區中。
啟動定時中斷和發送中斷,并通過發送指令將發送緩沖區中的請求報文發送。
建立跳轉入口,標號1。
若循環未結束,跳轉到標號1。程序不向下執行,直至遠程循環結束,標志位為ON。
遠程I/O更新完成,將接受的報文通過塊傳送命令傳送到接受緩沖區指針指出的接受緩沖區中。
修改發送緩沖區和接受緩沖區指針值,指向下一個輸出和輸入緩沖區字節地址。將請求報文的剩余數目減1。
當請求報文的剩余數目為零時,重新設置請求報文的剩余數目為4,將從工作站的查詢剩余數目減1。
當工作站的查詢剩余數目為零時,重新設置從工作站的查詢剩余數目為4,為輸出和輸入緩沖區的數據地址重新建立間接尋址指針。
INT_0中斷程序:在接受報文超時情況下,禁止接受中斷和接受定時中斷,置遠程循環結束標志位為ON。
INT_1中斷程序:在發送超時情況下禁止發送中斷和發送定時中斷,置PLC為STOP模式。
INT_10中斷程序:禁止發送完成中斷,啟動接受定時中斷INT_0和接受數據中斷程序INT_11。
INT_11中斷程序:若接受的首字符(從工作站地址)為從工作站的正確地址,則建立一個接受字符的地址指針。并把接受到的字符裝入到接受字符指針指出地址中。增加指針的數值,指向下一個地址。并啟動中斷程序INT_12。
INT_12中斷程序:把接受到的第二個字符(功能碼)裝入到接受字符指針指出地址中,增加指針的數值,指向下一個地址。啟動中斷程序INT_13。
INT_13中斷程序:把收到的第三個字符(字節數)裝入到接受字符指針指出地址中,并修改指針值。第三個字符為接受的不含CRC校驗碼字符的總數目,剩余接受字符數目為將字節數加2,若反饋的功能碼為十六進制數0F,全部剩余字符數目為5。將全部剩余字符數目置入到累加器AC1中,當累加器AC1為零時,接收字符也就完成。啟動中斷程序INT_14。
INT_14中斷程序:將接受到的字符裝入接受字符指針指出地址中,并修改地址指針值和將將累加器AC1數值減一。若累加器AC1的數值為零。則關閉字符接受中斷和定時中斷,并將遠程循環結束標志位置ON。
4、結語
該系統自投入在線運行以來,系統調節迅速且運行穩定,并取得了良好的經濟效果,在助劑添加中具有較高的推廣價值。
參考文獻
[1]殷洪義.可編程序控制器選擇、設計與維護.機械工業出版社,2002年.
[2]S7-200可編程控制器系統手冊.2004年.
關鍵詞:modbus協議;溫度采集;水泵房;S7-300PLC
中圖分類號:TN915 文獻標識碼:A
0.前言
錢家營礦的涌水量比較大,共設置了3個水平的泵房,伴隨著全自動化礦井的建設,需要對-600水泵房和-850水泵房進行升級改造,水泵和電機的溫度參數保證著水泵的安全運行,每個水泵房共設置10臺排水泵,每臺水泵通過YBD-200溫度巡檢儀進行溫度采集,該儀表采用的是modbus協議通過RS485總線接口傳輸到PLC,經過PLC處理,傳輸到地面上位機實時顯示。
1.溫度巡檢儀通信協議
YBD200型儀表采用的是標準modbus協議,RTU傳輸模式。Modbus協議是一種主-從通信協議。任何時刻只有一個設備能夠在線路上進行發送。由主站點管理信息交換,且只有它能發起。它會相繼對從站進行輪詢。除非被主站批準,否則任何從站都不能發送消息。從站之間不能進行直接通信。協議幀中不包含任何消息報頭字節或消息字節結束符。
1.它的定義如下(見表1):
從站地址:消息中的地址包含一個字節,從站地址范圍是1…255。主設備通過將要聯絡的從設備的地址放入消息中的地址域來選通從設備。當從設備發送回應消息時,它把自己的地址放入回應的地址域中,以便主設備知道是哪一個設備做出回應。數據:以二進制代碼傳輸。CRC16:循環冗余錯誤校驗。采用的是9600bps的波特率。字節數據格式:一位起始位,八位數據位,一位偶校驗位,一位停止位。從站地址編號:儀表地址必須在1~255之間,且同一總線上,每個儀表的地址不可重復。當字符間隔時間長于或等于3.5個字符時,即作為檢測到幀的結束。
2.讀取寄存器
主站請求(表2):
從站響應(表3):
例如溫度巡檢儀的地址為10,利用串口調試軟件Com Monitor,進行發送數據:0A 03 00 00 00 07 05 73得到的數據為:0A 03 0E 00 C6 00 BA 01 0B 01 3C 01 8F 01 8F 01 8F DC ED,表示該儀表通信正常。
3.硬件組成和接線
水泵的電控系統主要由一臺集控柜和10臺就地柜等組成,集控柜安裝有315-2DP的CPU模塊和CP343-1的以太網模塊、CP340-RS422/RS485通信模塊以及數字量、模擬量輸入輸出模塊等,溫度探頭選用的是Pt100鉑電阻類型的,把7點的溫度數據接到YBD-200型溫度巡檢儀對應的端子上,一共采集10臺水泵的溫度數據,每塊溫度巡檢儀均通過RS485總線接至集控柜中CP340-RS422/RS485的接口上,把10塊溫度巡檢儀的A端并聯的一起接到CP340-RS422/RS485的1#端子,B端并聯的一起接到CP340-RS422/RS485的2#端子即可,并且需要把CP340-RS422/RS485的5#端子進行接地處理,抗干擾能力強。
4. PLC程序的編寫
現場使用YBD-200型溫度巡檢儀的地址編號為4-13,為了防止數據的讀取錯誤,編寫主站PLC程序時,可通過增計數器進行從站地址4-13的輪詢,并設置0.5s時鐘寄存器進行控制。為了保證發送報文的準確性,發送報文之前先利用事先編好CRC校驗子程序檢驗一下,CRC校驗子程序采用的是CRC16算法。
PLC與溫度巡檢儀主要通過調用FB2、FB3系統塊實現主從站的請求和讀取功能。需要注意的是,調用FB2、FB3時,地址為CP340-RS422/RS485硬件組態時的地址352;主站請求時從DB3數據塊中的DBB0字節開始調用,字長為8。主站讀取從站數據時,從DB8數據塊中的DBB0字節開始寫入,DB8塊數據先進行CRC子程序檢驗其正確性,然后再編程實現分組對應到DB7數據塊中,從DB7.DBD0字節定義存儲溫度巡檢儀4#地址數據,依次是電機前軸、電機后軸、泵前軸、泵后軸、定子A相、定子B相、定子C相。依次類推,從DB7.DBD28開始存儲5#地址的7點溫度數據,一共存儲10臺水泵的溫度參數。
通過CP343-1以太網模塊將PLC中的數據可以全部接入全礦自動化平臺進行數據共享,上位機利用西門子公司的wincc6.2進行編寫繪制,通過編程實現將DB7中的溫度數據全部讀取到wincc中,同時也可以增加其他的故障信息。
結語
本文通過modbus協議RS485總線技術實現了現場溫度的采集,但在現場使用中發現,溫度巡檢儀的地址是固化的,如若巡檢儀損壞后,互換性較差,先已進行溫度巡檢儀的升級,使每臺溫度巡檢儀的地址可在0~255之間任意調整,并將溫度巡檢儀使用的RS485總線模塊更換為MAX485具有光電隔離功能,大大增加了設備的安全性和穩定性。
參考文獻
[1]史運濤,孫德輝,李志軍,等.基于Modbus協議的通信集成技術研究[J].化工自動化及儀表,2010,37(4):67-72.
關鍵詞:PLC,modbus,自動化
1、引言
Modbus 協議是應用于電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它已經成為一通用工業標準。論文參考,modbus。
此協議定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的。它描述了一控制器請求訪問其它設備的過程,如果回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內容的公共格式。
因此,Modbus協議具有適用性廣泛,使用靈活,同時還具備實時糾錯等多種優點,應用在打印適配板與PLC通訊中可以自如的設定其數據格式,并有效防止打印亂碼等打印故障的產生。
2、設計方法
本設計采用打印適配板作為主站,S7-200 PLC做從站的方式,由打印適配板主動讀取PLC中的數據,并根據數據內容來決定打印的格式、時間、打印字符內容。
2.1 modbus通訊幀的結構
本設計采用消息幀采用RTU模式,其結構如下:
① 因其消息發送至少要以3.5個字符時間的停頓間隔開始,所以其起始位為T1-T2-T3-T4。
② 設備地址標示主機下從站的地址,如可以將從站S7-200地址 設為16(如右圖)。
③ 功能代碼為該消息所要實現的功能
例如:一從主設備發往從設備的消息要求讀一組保持寄存 器,將產生如下功能代碼:
0 0 0 0 0 0 11 (十六進制03H)
對正常回應,從設備僅回應同樣的功能代碼。對異議回應,它返回:
1 0 0 0 0 0 11 (十六進制83H)
除功能代碼因異議錯誤作了修改外,從設備將一獨特的代碼放到回應消息的數據域中,這能告訴主設備發生了什么錯誤。
④從主設備發給從設備消息的數據域包含附加的信息:從設備必須用于進行執行由功能代碼所定義的所為。這包括了象不連續的寄存器地址,要處理項的數目,域中實際數據字節數。
⑤當選用RTU模式作字符幀,錯誤檢測域包含一16Bits值(用兩個8位的字符來實現)。錯誤檢測域的內容是通過對消息內容進行循環冗長檢測方法得出的。CRC域附加在消息的最后,添加時先是低字節然后是高字節。故CRC的高位字節是發送消息的最后一個字節。
2.2 modbus協議的通訊周期
查詢消息中的功能代碼告之被選中的從設備要執行何種功能。數據段包含了從設備要執行功能的任何附加信息。論文參考,modbus。論文參考,modbus。
如果從設備產生一正常的回應,在回應消息中的功能代碼是在查詢消息中的功能代碼的回應。
2.3 PLC modbus庫初始化的設置
其中:
Mode: 輸入數值1將端口0指定給Modbus協議并啟用協議;將輸入數值0指定給PPI,并禁用Modbus協議。
Addr:S7-200作為從站的地址。論文參考,modbus。
Baud:通訊的波特率。
Parity: 0-無奇偶校驗,1-奇數奇偶校驗,2-偶數奇偶校驗。
Delay: 數通過將指定的毫秒數增加至標準Modbus訊息超時的方法延長標準Modbus訊息結束超時條件。
MaxIQ: 參數將供Modbus地址00xxxx和01xxxx使用的I和Q點數設為0至128之間的數值。數值0禁用所有向輸入和輸出的讀取。
MaxAI: 參數將供Modbus地址03xxx使用的字輸入(AI)寄存器數目設為0至32之間的數值。數值0禁用模擬輸入的讀數。
MaxHold: 參數設定供Modbus地址04xxx使用的V內存中的字保持寄存器數目。
HoldStart:即打印適配板存取V內存中保持寄存器的起始地址。設置為&VB100,而MaxHold為25,所以VB100-VB200將被打印適配板所使用,編程時需避免與其沖突。
2.4 打印適配板的控制
打印適配板會持續讀取VB100-200中所儲存的信息,以做出其動作判斷。因此,向規定地址中寫入數據,就可以控制打印系統的運行。
如將”20”送入VB125,即可啟動打印板的數據記錄
VD136,VD140,VD144即為數據被打印適配板所讀取的地址。
打印適配板將打印報表的格式固化在打印板中,接受到數據采集結束信號以后,會將本次數據儲存,并在接到打印信號以后將其打印在報表的固定位置。論文參考,modbus。
3、結束語
Modbus工業協議因其適用性廣泛、簡單易用,通訊較為可靠等優點,在現代自動化設備與工業控制領域得到了廣泛的應用。而在傳統的PLC數據打印方式中,數據受到干擾時微打無法判斷接收的是否正確,經常造成打印異常,表現為亂碼、微打不打印等故障。論文參考,modbus。采用Modbus協議以后,就可以有效的避免這些問題的產生,使得需嚴格數據保存的自動化設備的可靠性得以保證。
參考文獻
[1]SIEMENSSIMATICS7-200可編程序控制器
[2]MODBUSoverseriallinespecificationandimplementationguideV1.0modbus.org
[3]華镕編著從Modbus到透明就緒—施耐德電氣工業網絡的協議、設計、安裝和應用機械工業出版社2009
[4]中國國家標準化管理委員會基于Modbus協議的工業自動化網絡規范中國標準出版社2004