国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Modbus_RTU的遠程輸入輸出接口設(shè)備的設(shè)計

2014-10-21 12:55謝印釗
電子世界 2014年23期
關(guān)鍵詞:抗干擾遠程單片機

【摘要】介紹了Modbus通信協(xié)議的特點,簡述了遠程輸入輸出接口設(shè)備在分布式控制系統(tǒng)中的作用,提出了一種具有Modbus_RTU接口的遠程輸入輸出接口設(shè)備的設(shè)計,并對軟硬件設(shè)計進行了詳細闡述,該設(shè)計利用了Modbus_RTU協(xié)議的開放性和易用性,在單片機運行、端口隔離等方面進行了抗干擾設(shè)計,對完善分布式控制系統(tǒng)功能具有促進作用。

【關(guān)鍵詞】遠程;Modbus;輸入輸出;單片機;抗干擾

引言

Modbus通信協(xié)議是Modicon公司開發(fā)的一種通信協(xié)議,它采用主從問答方式工作,是一種真正開放、標準的、免收許可費的網(wǎng)絡(luò)通信協(xié)議[1]。Modbus通信協(xié)議廣泛應(yīng)用于過程控制系統(tǒng),是實現(xiàn)控制主站(例如可編程控制器)與分站(例如遠程輸入輸出接口)、傳感器通信的一種常用協(xié)議。在分布式控制系統(tǒng)中,控制主站實現(xiàn)邏輯控制功能,但系統(tǒng)中存在遠程的數(shù)據(jù)采集點和遠程控制輸出點,需要通過現(xiàn)場總線的方式實現(xiàn)數(shù)據(jù)互聯(lián),由于Modbus協(xié)議簡單開放的特點,在這種情況下經(jīng)常應(yīng)用。遠程輸入輸出接口是分布式控制系統(tǒng)的一個重要組成部分,兼容Modbus接口能夠很好地提高設(shè)備的易用性和性價比。Modbus通信模式分為ASCII和RTU兩種,RTU是最常用的模式,本文提出了一種具有Modbus_RTU通信接口的遠程輸入輸出接口的設(shè)計方法,能夠滿足分布式控制系統(tǒng)的應(yīng)用需求。

1.Modbus協(xié)議簡介

Modbus通信協(xié)議具有開放性好、易實現(xiàn)、擴展性好、可靠性高等優(yōu)點, 因而具有廣闊的應(yīng)用前景,被越來越多的設(shè)備廠商所支持。不同廠商生產(chǎn)的控制設(shè)備可以連成Modbus工業(yè)網(wǎng)絡(luò),由Modbus通信的主站對 現(xiàn)場設(shè)備和儀表進行遠程監(jiān)控,實現(xiàn)非常好的監(jiān)控效果和系統(tǒng)性能[2]。

Modbus沒有規(guī)定物理層,它只規(guī)定了可以被通信節(jié)點識別的數(shù)據(jù)結(jié)構(gòu)[3]。Modbus規(guī)定了數(shù)據(jù)的結(jié)構(gòu)、命令和應(yīng)答的形式,數(shù)據(jù)通信采用主從方式,主站可以向特定的從站發(fā)起讀寫命令,也可以向所有從站發(fā)起廣播命令。在同一個通信網(wǎng)絡(luò)中,所有通信節(jié)點(包括主站和從站)都必須設(shè)置相同的通信參數(shù),包括波特率、數(shù)據(jù)位、停止位和校驗位,而字符超時、回復(fù)超時等保護參數(shù)每個通信節(jié)點可以不盡相同。

Modbus通信模式分為ASCII和RTU兩種,兩者的不同主要在于數(shù)據(jù)格式,兩者的數(shù)據(jù)格式分別如表1和表2所示。

表1

位置 起始位 設(shè)備地址 功能碼 數(shù)據(jù) LRC校驗 結(jié)束符

字符個數(shù) 1 2 3 n 2 2

表2

位置 起始位 設(shè)備地址 功能碼 數(shù)據(jù) CRC校驗 結(jié)束符

位數(shù) 靜止時段 8bit 8bit N*8bit 2*8bit 靜止時段

Modbus功能碼可以是1-255范圍內(nèi)任何整數(shù)值,有些功能碼適用于所有的通信設(shè)備,有些則只適用于特定的控制器,還有一些用于功能的擴展。

主站通過時間間隔的方式判斷的通信幀的結(jié)束,從站在收到主站的命令后,需要至少間隔3.5個字符周期才能回復(fù)數(shù)據(jù),如果時間間隔不夠,主站將無法區(qū)分主站的數(shù)據(jù)幀和從站的數(shù)據(jù)幀。如果一幀數(shù)據(jù)在完成之前有一個1.5字符周期的停頓,則接收端會認為數(shù)據(jù)損壞而丟棄數(shù)據(jù)。尤其當通信波特率不大于19.2kbps時,對1.5字符周期和3.5字符周期有嚴格要求,當通信波特率大于19.2kbps時,1.5字符周期固定為750us,3.5字符周期固定為1.75ms。從機必須保證同步主機的時序,否則無法正確接受主機的數(shù)據(jù)。同時,從機還要有合理的收發(fā)轉(zhuǎn)換時間,間隔至少3.5字符周期,否則會導(dǎo)致主機和其他從機誤判,但收發(fā)轉(zhuǎn)換周期也不能超過主機的回復(fù)超時時間,否則主機會做出超時判斷。

2.硬件設(shè)計

基于Modbus_RTU的遠程輸入輸出接口的硬件電路框圖如圖1所示。硬件電路主要包括處理器(單片機)、輸入輸出隔離器件和RS485收發(fā)器三個部分。

圖1 硬件電路框圖

單片機是輸入輸出接口設(shè)備的核心,其接收來自總線的數(shù)據(jù)命令,根據(jù)命令的形式,控制相應(yīng)的端口輸出或?qū)⒉杉降亩丝谛畔⑦M行回復(fù)。單片機的電路部分又可以分為電源、晶振、看門狗三個部分,電源是數(shù)字電路工作的必須部分,通常單片機的電源是一個降壓穩(wěn)壓電路,通用單片機的工作電壓一般為3.3V或5V,而普通開關(guān)電源或AC-DC模塊的輸出電壓一般為12V或24V,所以需要降壓。為了保證單片機工作的穩(wěn)定,需要在降壓器件的輸出側(cè)加穩(wěn)壓二極管和電容,以保證電壓的穩(wěn)定和降低紋波。晶振為單片機工作提供時基,晶振分為內(nèi)部晶振和外部晶振兩種,外部晶振具有更好的精度和穩(wěn)定性。單片機工作在工業(yè)環(huán)境中,容易受到各種干擾,會導(dǎo)致控制程序出現(xiàn)異常,看門狗電路可以將出現(xiàn)異常的程序及時拉回到正常狀態(tài),防止出現(xiàn)事故??撮T狗的原理是定時接收單片機發(fā)出的周期信號,當一定時間內(nèi)沒有收到周期信號后,將單片機熱復(fù)位,讓程序重新運行,而這個過程單片機的RAM不會發(fā)生改變,保證控制功能可以繼續(xù)。

在工業(yè)控制環(huán)境中,各種干擾會沖擊傳輸線路,這就需要對單片機的端口進行隔離,將干擾阻擋在隔離器件之外,首先保證單片機的安全。常用的隔離器件有光耦和磁耦,光耦傳輸速率相對較低,可以在輸入輸出端口隔離中使用,磁耦的傳輸速率相對較高,可以在通信隔離中使用。

單片機的串口一般只支持TTL電平,如果需要連接Modbus總線(物理層為RS485),則需要RS485總線收發(fā)器,RS485收發(fā)器將接收到的RS485差分信號轉(zhuǎn)換為單片機可以識別的TTL電平信號,將單片機發(fā)出的TTL電平信號轉(zhuǎn)換為RS485差分信號,以實現(xiàn)Modbus總線與單片機信號的互聯(lián)。

3.軟件設(shè)計

軟件設(shè)計流程圖如圖2所示。初始化部分主要完成單片機的初始配置,包括晶振的設(shè)置、定時器的設(shè)置、Modbus_RTU協(xié)議棧的設(shè)置和端口的輸入輸出設(shè)置。采集端口信息部分完成對單片機輸入端口的電平采集,端口的電平狀態(tài)需要進行濾波,防止狀態(tài)出現(xiàn)頻繁跳動,濾波采用平均濾波法,即在一定時間內(nèi)采集數(shù)次端口的電平,數(shù)次電平一致,則認為電平已穩(wěn)定,將穩(wěn)定的電平值定期存儲在Modbus_RTU寄存器中,以備Modbus主站讀取。Modbus數(shù)據(jù)處理部分采用中斷的形式,當總線上收到來自主站的命令時,觸發(fā)一次中斷,置中斷標識。在中斷處理程序中,首先判斷收到的命令是讀命令還是寫命令,如果是讀命令,則根據(jù)Modbus_RTU協(xié)議規(guī)則,把主站想要讀取的寄存器的值回復(fù)給主站,如果是寫命令,則改變相應(yīng)的寄存器的值,進而根據(jù)內(nèi)部寄存器與外部端口的映射關(guān)系,將相應(yīng)的單片機端口置位。整個軟件設(shè)計實現(xiàn)了主站對遠程輸入輸出接口設(shè)備的輸入口信息的采集和主站對遠程輸入輸出接口設(shè)備的輸出口的控制,主站具有總線控制權(quán),可以隨時采集端口信息和控制端口輸出。

圖2 軟件流程圖

4.結(jié)語

按照上述方法設(shè)計的遠程輸入輸出接口設(shè)備能夠?qū)崿F(xiàn)控制主站對遠端輸入端口的數(shù)據(jù)采集,同時控制主站可以實時控制遠端執(zhí)行機構(gòu)動作,軟硬件設(shè)計均進行了抗干擾處理,能夠有效應(yīng)對復(fù)雜的工業(yè)控制環(huán)境。此設(shè)計已在實際應(yīng)用中得到驗證,對完善分布式控制系統(tǒng)功能具有促進作用。

參考文獻

[1]呂國芳,唐海龍,李進.基于Modbus RTU的串口調(diào)試軟件的實現(xiàn)[J].計算機技術(shù)與發(fā)展,2009,19(9):236-238.

[2]何志勇,張茂青,錢偉清.PLC主站對Modbus網(wǎng)絡(luò)的監(jiān)控方法[J].計算機網(wǎng)絡(luò)與通信,2007,29(2):26-28.

[3]舒凱.基于MODBUS-RTU協(xié)議的PLC多路數(shù)據(jù)采集系統(tǒng)[J].水電自動化與大壩監(jiān)測,2008,32(2):66-69.

作者簡介:謝印釗(1988—),男,黑龍江鶴崗人,主要研究方向:電氣自動化。

猜你喜歡
抗干擾遠程單片機
河南遠程醫(yī)療將覆蓋所有鄉(xiāng)鎮(zhèn)衛(wèi)生院
遠程訪問
艦載雷達面臨的電子對抗威脅及防范措施分析
變頻器控制回路抗干擾措施及調(diào)試故障處理
異步電動機節(jié)能控制方法及抗干擾技術(shù)
C8051F020與80C51單片機的異同點
單片機I/O口模擬串行通訊的C51實現(xiàn)方法
單片機調(diào)試方法的探討
用PIC單片機制作的時間繼電器
波音757-300中遠程客機
卓资县| 巨鹿县| 通化县| 泰来县| 榕江县| 牡丹江市| 昌江| 安溪县| 康乐县| 浦东新区| 鄱阳县| 即墨市| 博罗县| 澄江县| 华蓥市| 邵阳市| 建德市| 乌兰浩特市| 井冈山市| 兴山县| 启东市| 丁青县| 高安市| 日土县| 西乌珠穆沁旗| 明星| 东兰县| 永清县| 双牌县| 唐海县| 子长县| 方山县| 盐亭县| 二连浩特市| 尼玛县| 宣武区| 大洼县| 宜兴市| 林西县| 房山区| 班玛县|