tia portal高級(jí)編程隨書socket通信復(fù)雜的modbus-tcp中文版_第1頁(yè)
tia portal高級(jí)編程隨書socket通信復(fù)雜的modbus-tcp中文版_第2頁(yè)
tia portal高級(jí)編程隨書socket通信復(fù)雜的modbus-tcp中文版_第3頁(yè)
tia portal高級(jí)編程隨書socket通信復(fù)雜的modbus-tcp中文版_第4頁(yè)
tia portal高級(jí)編程隨書socket通信復(fù)雜的modbus-tcp中文版_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

該規(guī)范的發(fā)展概 概 面向連 數(shù)據(jù)編 參考編號(hào)的解 隱含長(zhǎng)度基本原 一致性等級(jí)概 類型 類型 類型 協(xié)議結(jié) 一致性等級(jí)的協(xié)議參考 類型0指令詳 讀乘法寄存器(FC 寫乘法寄存器(FC 類型1指令詳 讀線圈(FC 讀離散輸入(FC 讀輸入寄存器(FC 寫線圈(FC 寫單一寄存器(FC 讀異常狀態(tài)字(FC 類型2指令詳 強(qiáng)制多點(diǎn)線圈(FC 讀一般參考值(FC 寫一般參考值(FC 掩模寫寄存器(FC 讀/寫寄存器(FC 讀FIFO隊(duì)列(FC 異常代 附 客戶機(jī)和服務(wù)器應(yīng)用指 客戶機(jī)設(shè) 服務(wù)器設(shè) 必需的及期望的性 非指令數(shù)據(jù)的編 指令字中的比特 多指令字變 984數(shù)據(jù)類 IEC-1131數(shù)據(jù)類 年月日 MODBUSMODBUS/TCPTCPMODBUSMODBUS/TCPMODBUS系列通MODBUSPLC’s,I/O模塊,以及連接其它簡(jiǎn)單域總線或I/O模塊的網(wǎng)關(guān)服務(wù)的。MODBUS/TCP協(xié)議是作為一種(實(shí)際的)自動(dòng)化標(biāo)準(zhǔn)的。既然MODBUS已經(jīng)廣為人知,該規(guī)范只將別處沒有收錄的少量信息列入其中。然而,力圖闡明MODBUSPLC’s的“多余部分”。于特殊設(shè)備如PLC’s的報(bào)文。力,而且在任一端只需要最小的信息。MODBUS/TCP處理兩種情況。連接在網(wǎng)絡(luò)協(xié)議層很容易被辨認(rèn),單一的連接可以支持多個(gè)獨(dú)立的事務(wù)。此外,TCP允許很大數(shù)量的并發(fā)連接,因而很多情況下,在請(qǐng)求時(shí)重新熟悉MODBUS的開發(fā)者會(huì)感到驚訝:為什向連接TCP協(xié)議比面向數(shù)據(jù)報(bào)的UDP要應(yīng)用廣泛。主要原因是通過封裝獨(dú)立的“事務(wù)”在接中,此連接可被識(shí)別,管理和取而且容許安全特色如和可以方便的添加。類似的推理被最初的網(wǎng)的開發(fā)者所采用他們選用TCP及端口80去實(shí)現(xiàn)一個(gè)作為單MODBUS采用“big-endian16bits0x12340x1232bits L0x120x340x56MODBUS將其數(shù)據(jù)模型建立在一系列具有不同特征的表的基礎(chǔ)之上。這四個(gè)基本表如I/O系統(tǒng)提供,只讀16輸入和輸出之間以及可尋址位和可尋址代碼的數(shù)據(jù)對(duì)象之間的差別并不意味著任何應(yīng)可以直接數(shù)據(jù)對(duì)象?,F(xiàn)在沒有可以利用這一特點(diǎn)的PLC設(shè)備。一個(gè)易造成的潛在來源是用于MODBUS功能的參考值和用于ModiconPLC’s的“寄存器值”之間的關(guān)系。由于歷史原因,用戶參考值使用從1開始的十進(jìn)制數(shù)表示。而MODBUS采用更普通的從0開始的無符號(hào)整數(shù)進(jìn)行軟件數(shù)據(jù)整理分析。于是,請(qǐng)求從0寄存器的Modbus消息將已知值返回建立在寄存器4:00001(類型4=輸出寄存器,參考值00001)中的應(yīng)用程序。ModbusTCP運(yùn)送,前綴中攜帶附加的長(zhǎng)度信息以便接收者識(shí)別消息的邊界,CRC-32檢錯(cuò)代當(dāng)從草稿開始定義一種新的協(xié)議,有可能加強(qiáng)編碼方式和闡述的一致性。MODBUS由MBS設(shè)備的連續(xù)的互用性。事實(shí)上,這就是當(dāng)前功能代碼的分級(jí)原則。讀乘法寄存器(fc3)(fc等級(jí)讀線圈(fc讀離散輸入(fc讀寄存器輸入(fc寫線圈(fc寫單一寄存器(fc讀異常狀態(tài)字(fc等級(jí)強(qiáng)制型多路線圈(fc15)(fc該功能可以處理并發(fā)的多個(gè)請(qǐng)求,而且能接收32位的參考數(shù)值。當(dāng)前的584(fc此功能可以處理并發(fā)的多個(gè)請(qǐng)求,也可接收32位的參考數(shù)值。當(dāng)前的584(fc讀/(fc則的帶有I/O模塊的狀態(tài)影象交換的最好辦法。如此,高性能的通用的裝置可以執(zhí)行功能3,16和23,從而把快捷的數(shù)據(jù)規(guī)則交換(23)和執(zhí)行特殊數(shù)據(jù)對(duì)象的需求詢問或更新的能力結(jié)合起來(3和16。FIFO(fc診斷(fc編程(484)(fc(484)(fc獲取通訊計(jì)數(shù)器值(Modbus)(fc獲取通訊記錄(Modbus)(fc(584/984)(fc輪詢(584/984)(fcIDfc(884/u84)(fc恢復(fù)通訊連接(884/u84)fc(原理(fc(fc(584/984)(fc(Modbus)(fcMODBUS/TCPMODBUS請(qǐng)求和或響應(yīng)封裝的一般格MODBUS串行端口-ASCII編碼MODBUSRTU二進(jìn)制)編碼MODBUSPLUS網(wǎng)絡(luò)–數(shù)據(jù)通道所有的請(qǐng)求通過TCP從寄存器端口502發(fā)出。端設(shè)備嘗試“流水線式”的請(qǐng)求。允許服務(wù)器以這種方式工作的技術(shù)在附錄A中闡述。關(guān)等設(shè)備的通訊,這些設(shè)備用單一IP地址來支持多個(gè)獨(dú)立的終接單元。byte0:事務(wù)處理標(biāo)識(shí)符–由服務(wù)器–通常為byte1:事務(wù)處理標(biāo)識(shí)符–由服務(wù)器–通常為byte2:協(xié)議標(biāo)識(shí)符byte3:協(xié)議標(biāo)識(shí)符byte4:(上半部分字節(jié))0256)byte5:長(zhǎng)度字段(下半部分字節(jié))=后面字節(jié)的數(shù)量byte6:(原“從站地址”)byte7:MODBUS功能代碼byte8on:請(qǐng)求:0000000000060903000400響應(yīng):00000000000509030200字段。而是采用TCP/IP和鏈路層(以太網(wǎng))校驗(yàn)和機(jī)制來校驗(yàn)分組交換的準(zhǔn)確性。refref000000len前面兩個(gè)字節(jié)的“refref”在服務(wù)器中沒有具體的值,只是為方便客戶端而從請(qǐng)求和響應(yīng)中逐字的過來。單客戶機(jī)通常將該值置為0。在這個(gè)例子中,請(qǐng)求和響應(yīng)的格式如下(例子是“讀寄存器”請(qǐng)求,詳述見后面部分0300000001=>030212設(shè)單元標(biāo)識(shí)符還是09)000000000006090300000000000000000509030212(所有的這些請(qǐng)求和響應(yīng)通過查詢ModiconQuantumPLC規(guī)范采用自動(dòng)工具來進(jìn)行校驗(yàn)讀乘法寄存器(FCByte0:FC=Byte1-2:Byte3-4:指令數(shù)(1-Byte0:FC=Byte1:(B=2x指令數(shù)Byte2-(B+1):RegisterByte0:FC=83Byte1:異常代碼01or0300000001=>030212寫乘法寄存器(FCByte0:FC=10Byte1-2:Byte3-4:(1-Byte5:(B=2xwordByte6-(B+5):Byte0:FC=10Byte1-2:Byte3-4:Byte0:FC=90Byte1:異常代碼01or1000000001021234=>10000000(FCByte0:FC=Byte1-2:Byte3-4:比特?cái)?shù)(1-2000)Byte0:FC=Byte1:(B=(比特?cái)?shù)Byte2-(B+1):比特值(最小意義位首先繞線圈Byte0:FC=81Byte1:exceptioncode=01or0100000001=>0101些指令不以16位為界排列,那么該請(qǐng)求將在從站得到計(jì)算強(qiáng)化。(FCByte0:FC=Byte1-2:Byte3-4:(1-Byte0:FC=Byte1:(B=(比特?cái)?shù)Byte2-(B+1):(最小意義位首先繞線圈Byte0:FC8216進(jìn)制Byte1:異常代碼01or0200000001=>0201些指令不以16位為界排列,那么該請(qǐng)求將在從站得到計(jì)算強(qiáng)化。(FCByte0:FC=Byte1-2:Byte3-4:(1-Byte0:FC=Byte1:(B=2x指令數(shù)Byte2-(B+1):Byte0:FC=84Byte1:異常代碼01or0400000001=>040212(FCByte0:FC=Byte1-2:Byte3:FF打開線圈=00Byte4:=Byte0:FC=Byte1-2:Byte3:FF打開線圈=00關(guān)閉線圈(回波Byte4:=Byte0:FC8516進(jìn)制Byte1:異常代碼01or050000FF00=>050000FF寫單一寄存器(FCByte0:FC=Byte1-2:Byte3-4:Byte0:FC=Byte1-2:Byte3-4:寄存器值Byte0:FC8616進(jìn)制Byte1:異常代碼01or0600001234=>06000012(FCMODBUS中允許最大的響應(yīng)速度。PLC’s8線圈Byte0:FC=Byte0:FC=Byte1:(8線圈的范圍Byte0:FC8716進(jìn)制Byte1:異常代碼01or07=>07(FCByte0:FC0F(16進(jìn)制Byte1-2:Byte3-4:(1-Byte5:(BByte6-(B+5):(=第一個(gè)線圈Byte0:FC0F(16進(jìn)制Byte1-2:Byte3-4:Byte0:FC8F(16進(jìn)制Byte1:異常代碼01or0F000000030104=>0F00000003且這些指令不以16位為界排列,那么該請(qǐng)求將在從站得到計(jì)算強(qiáng)化。(FCByte0:FC14(16進(jìn)制Byte1:(=7x組數(shù)Byte2:第一組的參考值類型=適合于6xxxx擴(kuò)展寄存外器的06Byte3-6:第一組的參考數(shù)值=適于6xxxx外器的器偏移=4xxxx32Byte7-8:(..Byte0:FC1416進(jìn)制Byte1:(=組數(shù)+組的總的字節(jié)數(shù)Byte2:(B1=12x指令數(shù)))Byte3:第一組的參考類型Byte4-(B1+2):ByteB1+3):(B2=12x指令數(shù)))Byte(B1+4):第二組的參考類型Byte(B1+5)-(B1+B2+2):..Byte0:FC9416進(jìn)制Byte1:異常代碼010203參考值為1時(shí)讀1擴(kuò)展寄存器:2(在Modicon984中外器1偏移量2)得到16140706000100020001=>1404030612(將來140E0400000000000104000000050002=>140A03041234050456789A于響應(yīng)太大而發(fā)送此消息將產(chǎn)生異常類型04。Byte0:FC1516進(jìn)制Byte1:Byte2:第一組的參考值類型=6xxxx擴(kuò)展寄存器器的06Byte3-6:第一組的參考數(shù)值=適于6xxxx外器的器偏移=4xxxx32Byte7-8:Byte9-(82xW1):(從字節(jié)2開始為其它組組的數(shù)據(jù)幀..Byte0:FC1516進(jìn)制Byte1:Byte2:第一組的參考值類型=6xxxx擴(kuò)展寄存器器的06Byte3-6:第一組的參考數(shù)值=6xxxx外器的器偏移=4xxxx32Byte7-8:Byte9-(82xW1):(從字節(jié)2開始為其它組組的數(shù)據(jù)幀..Byte0:FC9516進(jìn)制Byte1:異常代碼=010203參考值為1時(shí)寫1擴(kuò)展寄存器:2(在Modicon984中外器1偏移量2)得到161509060001000200011234=>15090600010002000112(將來15140400000000000112340400000005000256789A?15140400000000000112340400000005000256789A應(yīng)太大而發(fā)送此消息將產(chǎn)生異常類型04。(FCByte0:FC1616進(jìn)制Byte1-2:Byte5-6ORByte0:FC1616進(jìn)制Byte1-2:Byte3-4:ANDByte5-6ORByte0:FC9616進(jìn)制Byte1:01(AND用000F,OR用0004)160000000F0004=>160000000F00讀/(FCByte0:FC1716進(jìn)制Byte1-2:Byte3-4:(1-Byte5-6:Byte7-8:(1-Byte9:(B2x用于寫的指令數(shù)Byte10-(B+9):Byte0:FC1716進(jìn)制Byte1:Bytecount(B2x用于讀的指令數(shù)Byte2-(B+1)Byte0:FC9716進(jìn)制Byte1:012寄存器返回值00045678(16進(jìn)制)170000000200030001020123=>1704000456FIFO(FCByte0:FC1816進(jìn)制Byte1-2:Byte0:FC1816進(jìn)制Byte1-2:(B2+指令數(shù)Byte3-4:(FIFO中累積的指令數(shù)Byte5-(B+2):FIFOByte0:FC9816進(jìn)制Byte1:010212345678(16進(jìn)制180005=>1800060002123456不會(huì)象經(jīng)過FIFO操作所期望的回復(fù)為0。0312340001=>8301的功一種請(qǐng)求,例如配置而被要求返回寄存器值。02的數(shù)據(jù)地03的數(shù)據(jù)04的響應(yīng)長(zhǎng)生的多部分響應(yīng),如功能20和21。08器奇偶校驗(yàn)錯(cuò)0A于關(guān)聯(lián)ModbusPlus網(wǎng)關(guān),網(wǎng)關(guān)未能分配ModbusPlus路徑以處理請(qǐng)求。通常意味0B于關(guān)聯(lián)ModbusPlus網(wǎng)關(guān),從目標(biāo)設(shè)備未能獲得響應(yīng)。通常意味著設(shè)備沒有連接到廠商系統(tǒng)和網(wǎng)關(guān)去安裝MODBUS設(shè)備,遵從這些內(nèi)容將大大減小綜合的“疑難”。準(zhǔn)備一個(gè)MODBUS請(qǐng)求,用前面介紹的方法編碼。用RECV()響應(yīng)的前6個(gè)字節(jié),它將響應(yīng)消息的實(shí)際長(zhǎng)度。用RECV()響應(yīng)的剩余字節(jié)。TCP連接以使服務(wù)器的資源可以在間歇期為其它客戶機(jī)服務(wù)。允許向客戶機(jī)開放連接的最大時(shí)間是1秒。TCP默認(rèn)(設(shè)置)所能提供的功能。它也允的IP地址。MODBUS/TCP服務(wù)器應(yīng)設(shè)計(jì)的可以支持多個(gè)并發(fā)的客戶機(jī),甚至在計(jì)劃內(nèi)用戶只有單TCP協(xié)議組,減小接收和發(fā)送緩沖區(qū)的尺寸可以節(jié)省內(nèi)存資源。一個(gè)采用UNIX或NT的TCP服務(wù)器通常分配每個(gè)連接8K字節(jié)或的接收緩存以鼓勵(lì)從如多線程服務(wù)用LISTEN()等待引入到端口502的TCP連接。6MODBUS/TCPRECV(6)請(qǐng)求。不要在此設(shè)置超時(shí),而要分析這頭部。如果頻繁出現(xiàn),如協(xié)議字0或消息長(zhǎng)度超過256字節(jié),那么單方面關(guān)閉連接。這是服務(wù)器對(duì)隱含TCP編碼出錯(cuò)的情況的正常反應(yīng)。RECV(在服務(wù)器或是客戶端的TCP緩沖區(qū),并在當(dāng)前的的請(qǐng)求得到完全服務(wù)后選取。終,你或者擁有了一個(gè)有效的MODBUS消息,或者作為響應(yīng)的異常消息。為響應(yīng)產(chǎn)生MODBUS/TCP前綴,從請(qǐng)求的字節(jié)0和1“標(biāo)識(shí)符”字段,并SEND(Gobackandwaitforthenext6byteprefixrecord.最后,當(dāng)客戶端選擇關(guān)閉連接,6字節(jié)前綴的RECV()將失效。有序的關(guān)閉通常會(huì)使RECV()0RECV()返回的錯(cuò)誤。在任一情形下,關(guān)單線程服務(wù)一些嵌入式的系統(tǒng)和較老的操作系統(tǒng)如UNIX和MS-DOS鼓勵(lì)多連接的處理,采用現(xiàn)在,開始無限循環(huán)檢查“LISTEN”端口和多態(tài)計(jì)在收取端口,如果收到一個(gè)新的連接請(qǐng)求,用ACCEPT()接收它并且促使其中一個(gè)MODBUS/TCP這樣的設(shè)備包括Schneider公司的“Modbus+網(wǎng)橋以太網(wǎng)”,以及從MODBUS/TCP到MODBUS串行連接的各類設(shè)備。這些設(shè)備的使用意味著當(dāng)前MODBUS設(shè)備的性能和MODBUS/TCP的使用是一致的。請(qǐng)求作出反應(yīng),20該周期將在20毫秒和200毫秒之間變化。通過局域以太網(wǎng)掃描10I/O設(shè)備,將超時(shí)設(shè)定為30毫秒是合理的,每個(gè)設(shè)備再1毫能更合適,這兒正常的掃描序列在300毫秒內(nèi)完成。非時(shí)間的應(yīng)用系統(tǒng)經(jīng)常將超時(shí)設(shè)定值置為正常的TCP默許值,在主平臺(tái)幾秒鐘后個(gè)Modbus造成的。MODBUS上傳送大批量信息的最有效辦法是采用功能代碼3(讀寄存器),16(寫寄存器23(讀/寫寄存器。早期的MODBUS-capablePLC’s于使用“big-endian”體系結(jié)構(gòu)的計(jì)算機(jī)。大多數(shù)現(xiàn)代的PLC’s基于采用“l(fā)ittle-endian”體系結(jié)構(gòu)的微處理器。MODBUS潛在的被理器后被提出來。因此MODBUS上數(shù)據(jù)類型的表示法遵從了little-endian模式,含義150=15150=31150=47Modico

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論