高清欧美性猛交XXXX黑人猛交,98午夜福利一区二区三区,日韩精品无码视频免费专区,国产一区二区三区97AV一区

康明斯動(dòng)力(深圳)有限公司

  • 產(chǎn)品規格搜索
  • 技術(shù)文章搜索
行業(yè)新聞/柴油發(fā)電機組
柴油發(fā)電機RS485接口連接和MODBUS通訊協(xié)議
發(fā)布時(shí)間:2023-09-04 21:32:57  ▏閱讀:

 

新聞主題

柴油發(fā)電機RS485接口連接和MODBUS通訊協(xié)議

 

摘要:隨著(zhù)計算機技術(shù)、通信技術(shù)、電子集成電路技術(shù)的發(fā)展,在樓宇、電信配套設備中,采用中央集中監控已成為必須的要求,因此作為應急電源的柴油發(fā)電機組提供遠程通信接口成為必備的能力。本文就柴油發(fā)電機組自動(dòng)控制器實(shí)現遠程通信接口的軟硬件方案進(jìn)行探討;并論述了康明斯柴油發(fā)電機組自動(dòng)控制器通信接口的硬件、軟件設計,重點(diǎn)介紹了RS485接口硬件和MODBUS協(xié)議軟件設計。

 

一、通信接口和通信協(xié)議

 

      目前在智能發(fā)電機組中,常用的通信接口方式有RS232、RS485、CAN總線(xiàn)及光纖等。

1、RS232接口

      通用性強,應用廣泛,但由于傳輸距離僅在15M內且為點(diǎn)對點(diǎn)通信,因此在中央監控系統中受到限制,通常需增加接口轉換器,將其轉換成其它適應長(cháng)距離通信的接口,因此在針對應用于中央監控的設備上,不宜采用該接口。

2、RS485接口

     采用差動(dòng)傳送模式,有效傳輸絡(luò )可達到1200M,傳送波特率可達到100KB/S,可以總線(xiàn)方式工作,且接口硬件簡(jiǎn)單,在自動(dòng)控制領(lǐng)域得到廣泛應用,適用于數據傳輸量不大,實(shí)時(shí)性要求不高的場(chǎng)合。

3、其他模式

      CAN總線(xiàn)、光纖等通信模式,具有高速、長(cháng)距離傳輸的特點(diǎn),但相應硬成本較高,軟件編程復雜。

      通過(guò)上述分析對比,發(fā)電機組的通信接口采用RS485最為合適。

 

柴油發(fā)電機組控制器通訊接口框圖png

柴油發(fā)電機組控制器通訊接口框圖

柴油發(fā)電機RS485系統結構框圖.png

柴油發(fā)電機RS485系統結構框圖

二、硬件設計

 

      硬件結構主要由PIC18F8680單片機RS485總線(xiàn)驅動(dòng)模塊組成。

(1)PIC18F8680內置了一個(gè)的獨立增強型USART:支持RS-485和RS-232、4個(gè)定時(shí)器模塊等,因此可方便、簡(jiǎn)化通信軟件;RS485總線(xiàn)驅動(dòng)模塊采用MAX1483,MAX1483工作于半雙工模式,內部包含一個(gè)發(fā)送器和一個(gè)接收器,在工作時(shí)需要通過(guò)使能端來(lái)控制“收”和“發(fā)”,將其使能端RE和DE連接到一起,然后接到單片機的RE4,在軟件中對RE4置1和0控制MAX1483的“收”和“發(fā)”。

(2)RS485標準采用差分傳輸,本身已具有一定的抗干擾能力,在其傳輸電路上并一個(gè)壓敏元件SA13CA,可有效提高對高能量電磁干擾的防護能力。

 

柴油發(fā)電機RS485主程序流程.png

柴油發(fā)電機RS485主程序流程

柴油發(fā)電機RS485接收PC端軟件主界面.png

柴油發(fā)電機RS485接收PC端軟件主界面

 

 

三、通信協(xié)議的制定

 

      MODBUS通信協(xié)議是通用工業(yè)標準的通信協(xié)議,是應用于電子控制器上的一種通用語(yǔ)言。通過(guò)此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò )(例如RS485網(wǎng))和其它設備之間可以通信,不同廠(chǎng)商生產(chǎn)的控制設備可以連成工業(yè)網(wǎng)絡(luò ),進(jìn)行集中監控。

1、通訊方式

      MODBUS通信方式為主--從方式,報文形式為請求/響應幀方式。主機初始化和控制所有在RS485通信回路上傳遞的信息,每次通信均由主機發(fā)起,不需求握手。主機發(fā)出請求幀后,等待從機返回響應幀直至響應超時(shí)。對于廣播報文不返回響應幀。在RS485等允許多個(gè)站點(diǎn)的網(wǎng)絡(luò )中,只能有一個(gè)從站響應主站的請求;所有RS485環(huán)路上的通信都以“打包”方式發(fā)生。一個(gè)包裹中最多可含255個(gè)字節。組成這個(gè)包裹的字節構成標準異步串行數據,并按8位數據位,1位停止位,無(wú)校驗位的方式傳遞。串行數據流由類(lèi)似于RS232C中使用的設備產(chǎn)生;主站發(fā)送包裹稱(chēng)為請求幀,從站發(fā)送包裹稱(chēng)為響應幀。

      MODBUS協(xié)議可以采用ASCII或者RTU兩種數據模式傳送數據。本設計采用RTU模式,在此模式下,發(fā)送消息至少要以3.5個(gè)字符時(shí)間的間隔開(kāi)始,整個(gè)消息幀必須作為一連續的流傳輸。

      其中設備地址用于確定目的站從機,其在網(wǎng)絡(luò )中各子站的唯一標識號,有效的從站地址范圍從1~247:MODBUS功能代碼用來(lái)命令從設備響應行為,有關(guān)功能碼見(jiàn)表1:CRC(循環(huán)冗長(cháng)檢測)用于檢測接收到的幀是否錯誤。本設計使用了功能號為03、16和06,功能號為03的用于遙信和遙測,功能號為06的用于遙控,功能號為16的用于設置參數。

表1    MODBU功能碼

功能號
MODBUS規約功能
01
讀取輸出線(xiàn)圈狀態(tài)(位序列操作
02
讀取輸入點(diǎn)狀態(tài)(位序列操作)
03
讀取內部寄存器狀態(tài)
04
讀取輸入寄存器狀態(tài)
05
強制單個(gè)輸出線(xiàn)圈
06
刷新單個(gè)寄存器內容
07
讀取異常事件狀態(tài)
08
診斷追憶測試(檢查通信連接)
11
讀取通信事件計數器和狀態(tài)字
12
讀取通信事件記錄
15
強制多個(gè)輸出線(xiàn)幽
16
刷新多個(gè)寄存器內容

 

2、通信協(xié)議幀的數據結構

(1)功能碼03請求幀:

      起始寄存器地址:期望讀取的寄存器順序序列中的第一個(gè)寄存器地址;

      寄存器數:期望讀入的寄存器序列的寄存器數目。

(2)功能碼03響應幀:

      字節數:隨后寄存器數據域的字節總長(cháng)度;

      寄存器數據(N):從機響應讀取的N個(gè)寄存器內容數據,寄存器數據以字為單位。

(3)功能碼16請求幀:

      寫(xiě)入的寄存器內容數據(N):主機寫(xiě)入從機的N個(gè)寄存器內容數據,寄存器數據以字為單位。

(4)功能碼16響應幀與功能碼03請求幀結構相同,內容與請求幀的對應內容相同。

(5)功能碼06請求幀:

      寄存器地址:期望寫(xiě)入的寄存器地址;

      寫(xiě)入寄存器內容數據:主機寫(xiě)入從機單個(gè)寄存器內容數據,寄存器數據以字為單位。功能碼06響應幀與功能碼06請求幀相同。

 

柴油發(fā)電機MODBUS的RS485通信數據流圖.png

柴油發(fā)電機MODBUS的RS485通信數據流圖

柴油發(fā)電機組RS458通信電路示意圖.png

柴油發(fā)電機組RS458通信電路示意圖

 

 

 

 

四、軟件編程

 

      軟件采用C語(yǔ)言混合匯編語(yǔ)言編制,主要包括初始化程序、USART接收中斷服務(wù)程序、主程序等,程序流程框圖見(jiàn)圖3。USART接收中斷服務(wù)程序主要用于接收來(lái)自RS485總線(xiàn)的串行數據。在主程序中,當檢測到有一幀接收完成標志置位,則對該幀進(jìn)行處理,首先計算CRC校檢是否正確,若正確再判斷地址域是否為本機地址,若是本機地址,則按上位機的命令組成響應幀,并利用發(fā)送中斷發(fā)送響應幀。 

初始化程序:

TRISC=0xC0://設置C口方向

TRISE=0:// RE4為輸出

PORTEbits.RE4=0:CommTimeOut=0://用于檢測接收字符時(shí)間間隔

//5ms計時(shí)器TMR1H=0xEC:TMR1L=0x86;

T¹CON=0x81://主計時(shí)器,5ms 

JSTime1=40://

IPR1bits.TMR1IP=0://計時(shí)器中斷低優(yōu)先級

PIE1bits.TMR1IE=1:使能計時(shí)器中斷

SPBRG=25://波特率設為9600 BPS;

TXSTA=0x24://使能串口發(fā)送,選擇高速波特率

RCSTA=0x90://使能串口工作,連續接收

IPR1bits.RCIP=1://串口中斷高優(yōu)先級

IPR1bits.TXIP=1:PIE1bits.RCIE=1://使能接收中斷

RCONbits.IPEN=1://使能中斷優(yōu)先級

INTCONbits.GIEL=1:開(kāi)放低優(yōu)先級中斷

INTCONbits.GIEH=1:開(kāi)放高優(yōu)先級中斷

USART接收中斷服務(wù)程序

void Highlnt()

OldBsr2=BSR;

BSR=0;

if(PIRIbits.RCIF)//判斷是否為串口接收中斷

CommBuffer[CommPoint]=RCREG://接收數據并存儲CommPoint++;

CommTimeOut=2://接收字符時(shí)間間隔為2*5ms=10ms

if((PIR1bits.TXIF)&&(bRTE))//判斷是否為串口發(fā)送中斷

if(CommPoint>CommTXCounter)//如果發(fā)送完成

{ PIE1bits.TXIE=0://禁止發(fā)送中斷PORTEbits.RE4=0://置接收狀態(tài)CommPoint=0;

else如果發(fā)送未完成

TXREG=CommBuffer[CommPoint];

發(fā)送數據

CommPoint++;

BSR=OldBsr2;

定時(shí)中斷服務(wù)程序

void LowInt()

OldBsr1=BSR;

BSR=0;

if(PIRIbits.TMR1IF==1)

PIRIbits.TMR1IF=0;

TMR1H=0xEC;

TMR1L=0x86;

_asm//匯編開(kāi)始

//通信接收時(shí)間間隔=0轉Lab5,不等0就減1:減1后如不等0轉Lab5,如等0則TSTFSZ CommTimeOut,1

DECFSZ CommTimeOut,0x1,0x1//BRA Lab5

BCF PIE1,5,0///禁止接收中斷BSF STime2,0,1 //置位一幀接收

完成標志,在主程序中處理

MOVFF CommPoint,DataLen //接收字符數賦值

CLRF CommPoint,1 //

BSF PIE1,5,0//使能接收中斷

Lab5:

endasm//匯編結束

BSR=OldBsr1;

 

總結:

      通信協(xié)議是實(shí)現智能設備間通信的軟件接口,通用、開(kāi)放、標準的通信協(xié)議,能方便用戶(hù)中央集中監控軟件的編制。目前,MODUS協(xié)議已成為世界設備廠(chǎng)家所接受的標準協(xié)議,因此我們采用MODBOS協(xié)議作為康明斯柴油發(fā)電機組的通信協(xié)議。采用基于MOSBOS協(xié)議的柴油發(fā)電機組控制器,由于其硬件簡(jiǎn)單,協(xié)議通用、開(kāi)放的特點(diǎn),已廣泛應用于樓宇集中監控,電信基站,軍隊設施等各種場(chǎng)合,得到了客戶(hù)認可。 

 

 


----------------
以上信息來(lái)源于互聯(lián)網(wǎng)行業(yè)新聞,特此聲明!
若有違反相關(guān)法律或者侵犯版權,請通知我們!
溫馨提示:未經(jīng)我方許可,請勿隨意轉載信息!
如果希望了解更多有關(guān)柴油發(fā)電機組技術(shù)數據與產(chǎn)品資料,請電話(huà)聯(lián)系銷(xiāo)售宣傳部門(mén)或訪(fǎng)問(wèn)我們官網(wǎng):http://www.aticodonostia.com
  • 中國區授權服務(wù)商

  • 康明斯動(dòng)力(深圳)有限公司

  • 地址:深圳市龍崗區坪地街道龍崗大道4129號

  • +86-755-84065367 84214948

  • 13600443583    

  • 網(wǎng)址:http://www.aticodonostia.com

  • 企業(yè)二維碼

  • 名片二維碼