串口通訊,又經(jīng)常被稱為點(diǎn)對(duì)點(diǎn)通訊或者PtP通訊,是工業(yè)設(shè)備中的一種非常通用的通訊方式,常用于獲取相對(duì)遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。
串行通信,通常利用RS232C或者RS485電氣接口,實(shí)現(xiàn)ASCII碼或者M(jìn)odbus通訊;其特點(diǎn)是通信線路簡(jiǎn)單,成本較低,用于解決不同廠商產(chǎn)品之間節(jié)點(diǎn)少、數(shù)據(jù)量小、通訊速率低、實(shí)時(shí)性要求不高的場(chǎng)合,如過(guò)程儀表、變頻器、連接掃描儀、條碼閱讀器等帶有串行通訊接口的設(shè)備,CP卡加載通訊協(xié)議后,還可以和支持Modbus協(xié)議的現(xiàn)場(chǎng)儀表通訊。
為了實(shí)現(xiàn)設(shè)備相互通訊,通訊雙方的通訊接口和通訊協(xié)議要一致,最基本的串行通訊的數(shù)據(jù)幀格式和波特率也要匹配。
西門(mén)子串行通訊支持的數(shù)據(jù)幀格式:
凡是符合這些格式的串行通信設(shè)備,理論上都可以相互通信。
常用的串行數(shù)據(jù)接口有:RS232C 和 RS485/422。RS-232C、RS-422/485 標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。
注意: 接口和協(xié)議是兩個(gè)概念。
RS-232C 是低速率的單端串行通訊,RS-232C 采取不平衡傳輸方式,即所謂單端通訊。
1.RS232C 通訊接口特點(diǎn)
2. RS232C 接口定義
RS232C并未定義連接器的物理特性,不同類(lèi)型的連接器引腳定義也各不相同,其中9針和25針的引腳定義對(duì)照,如圖 1 所示。
圖1 RS232C 串口管腳定義
最為簡(jiǎn)單且常用的是三線制接法,即Txd,Rxd和地線三根,如上圖中紅色(2,3)和紫色(5)三個(gè)針腳。
RS-422/485 改進(jìn) RS-232 通信距離短、速率低的缺點(diǎn)。
1.RS422/485接口特點(diǎn)
2.RS422/485接口定義
RS422/485 的端口有9針、15針,CP340/341/440/441的接口是15針,如圖 2 所示。
圖2 RS422/485 串口管腳定義
常用的協(xié)議類(lèi)型
ASCII 協(xié)議通過(guò)通訊處理器和通訊伙伴之間的點(diǎn)對(duì)點(diǎn)連接控制數(shù)據(jù)傳輸。
由于消息的結(jié)構(gòu)完全由用戶定義,用戶可以以 ASCII 協(xié)議為基礎(chǔ)開(kāi)發(fā)自己的消息。在接收方只需要定義接收消息的結(jié)束方式,發(fā)送接收雙方協(xié)商一致。
ASCII 驅(qū)動(dòng)程序允許發(fā)送和接收任何結(jié)構(gòu)的數(shù)據(jù)(所有可打印的 ASCII 碼表字符符以及從 00 到 FFH [帶有 8 個(gè)數(shù)據(jù)位字符幀] 的所有其它字符或從 00 到 7FH [帶有 7 個(gè)數(shù)據(jù)位字符幀]的所有其它字符)。
ASCII協(xié)議適用于與支持串行通信的智能儀表、條形碼閱讀器、掃描儀、打印機(jī)等設(shè)備進(jìn)行通訊。
MODBUS RTU 通信協(xié)議是以主從的方式進(jìn)行數(shù)據(jù)傳輸?shù)模鲃?dòng)方發(fā)送請(qǐng)求,被動(dòng)方響應(yīng)請(qǐng)求,應(yīng)答的方式。
在傳輸?shù)倪^(guò)程中主站是主動(dòng)方,即主站發(fā)送數(shù)據(jù)請(qǐng)求報(bào)文到從站;從站是被動(dòng)方,即如果正常從站返回正常響應(yīng)報(bào)文,如果故障從站返回異常響應(yīng)報(bào)文,如圖 3 所示。
圖3 MODBUS 請(qǐng)求響應(yīng)報(bào)文格式
MODBUS 系統(tǒng)中,數(shù)據(jù)交換需要通過(guò)功能代碼(Function Code)來(lái)控制的,具體分以下兩類(lèi)。
有些功能碼是對(duì)位操作的,通信的用戶數(shù)據(jù)是以位為單位的:
有些功能碼是對(duì)16位寄存器操作的,通信的用戶數(shù)據(jù)是以字為單位的:
這些功能碼是對(duì)四個(gè)數(shù)據(jù)區(qū)位輸入、位輸出、寄存器輸入、寄存器輸出進(jìn)行訪問(wèn)的,如圖 4 所示。
圖4 訪問(wèn)的數(shù)據(jù)區(qū)
Modbus地址由起始的數(shù)據(jù)類(lèi)型代號(hào)和地址偏移量組成。功能碼決定對(duì)Modbus地址進(jìn)行操作類(lèi)型,其可根據(jù)需要傳輸?shù)臄?shù)據(jù)類(lèi)型和個(gè)數(shù)來(lái)決定,如圖 5 所示。
圖5 MODBUS 地址對(duì)應(yīng)關(guān)系
注意:在傳輸消息楨中,用戶使用的地址是0為基準(zhǔn),而對(duì)應(yīng)的Modbus地址是1為基準(zhǔn),如FC16功能碼時(shí)以16進(jìn)制的0000為起始地址,對(duì)應(yīng)的寄存器是從40001開(kāi)始。
MODBUS RTU 傳輸模式:消息楨中的每個(gè)8位分成2個(gè)4位16進(jìn)制的字符。
每個(gè)字符幀格式(11位),如圖 6 所示。
圖6 字符幀格式
注意:如果無(wú)奇偶校驗(yàn)位,停止位是2位。
消息幀格式,如圖 7 所示。
圖7 消息幀格式
電話:15721373211
郵箱:15721373211@139.com
網(wǎng)址:http://openxml.net/
地址:上海青浦區(qū)北青公路7171號(hào)111-112室