下載手機汽配人

vb和西門子s7-200 plc的通訊 監(jiān)控

做畢業(yè)設(shè)計!要通過vb做上位機監(jiān)控!對plc控制!好像西門子的通訊協(xié)議不公開 還要下東西時把?想請問高手關(guān)于通訊方面vb和plc部分的程序 以及實現(xiàn)方法??!帶詳細(xì)說明的外加50分!?。?/dt>
提問者:網(wǎng)友 2017-11-07
最佳回答
1、可以寫入、讀出寄存器的數(shù)值(字節(jié)、字、雙字); 2、可以進行元件(V、M、S、Q、I)的置、復(fù)位操作; 3、可以讀取元件(V、M、S、Q、I)的ON/OFF狀態(tài)。 4、可以控制PLC的運行、停止。公布現(xiàn)在網(wǎng)上流行的PPI協(xié)議,此協(xié)議雖然有些錯誤,但是思路沒問題。西門子S7-200 PLC之間或者PLC與PC之間通信有很多種方式:自由口,PPI方式,MPI方式,Profibus方式。使用自由口方式進行編程時,在上位機和PLC中都要編寫數(shù)據(jù)通信程序。使用PPI協(xié)議進行通信時,PLC可以不用編程,而且可讀寫所有數(shù)據(jù)區(qū),快捷方便。但是西門子公司沒有公布PPI協(xié)議的格式。用戶如果想使用PPI協(xié)議監(jiān)控,必須購買其監(jiān)控產(chǎn)品或第三方廠家的組態(tài)軟件。這樣給用戶自主開發(fā)帶來一定困難,特別是自行開發(fā)的現(xiàn)場設(shè)備就不能通過PPI協(xié)議接入PLC。其它通訊方式編程也存在編程復(fù)雜,需要購買軟件和授權(quán)等局限性(1)。通過數(shù)據(jù)監(jiān)視、分析的方法,我們找出了PPI協(xié)議的關(guān)鍵報文格式,可用于上位機、現(xiàn)場設(shè)備與S7-200 CPU之間通訊。分析方法西門子的Step 7 Micro/Win32 是用于S7-200系列PLC的開發(fā)工具,它使用PC機上的COM口通過一條PC/PPI編程電纜連到PLC的編程口上。這說明,PC實際上是可以通過串口同S7-200 CPU通訊。只是我們不知道通訊協(xié)議而已。通過截獲PC機串口上的收發(fā)數(shù)據(jù),對照Step 7軟件發(fā)出的指令,我們就有可能分析出有關(guān)指令的報文和通訊方式;然后,直接通過串口向PLC發(fā)送報文,以驗證這些指令報文是否正確。本著這一思想,我們采用以下步驟獲得這些報文。首先制作一個串口的分支器,COM1的RX、TX分別接到COM2的TX、RX,即交叉接線,使得COM1發(fā)的數(shù)據(jù)COM2能收到。PC/PPI編程電纜接在COM1上,這樣,Step7 Micro/Win32發(fā)給PLC的報文就可以在COM2上接收了。我們按S7-200系統(tǒng)手冊設(shè)置好兩個串口,參數(shù)要一樣,均為9600,8,偶校驗,1位停止位。然后設(shè)置好Step7軟件,使之能與S7-200 CPU正常通訊。從Step7軟件中發(fā)出一個明確指令,COM2上的監(jiān)視軟件就能顯示這條報文了(用16進制顯示)。通過與Profibus標(biāo)準(zhǔn)的類比(2)我們就可以得到一些關(guān)鍵的報文了。這種方法比分析PLC中NETR,NETW指令要直接、全面(3)。3 PPI協(xié)議分析PC與PLC采用主從方式通訊,PC按如下的格式發(fā)讀寫指令,PLC作出接收正確的響應(yīng)(返回應(yīng)答數(shù)據(jù)E5H或F9H見下文分析),上位機接到此響應(yīng)則發(fā)出確認(rèn)命令(10 02 5C 5E 16),PLC再返回給上位機相應(yīng)數(shù)據(jù)。SD LE LEr SD DA SA FC DSAP SSAP DU FCS EDSD:開始符(68H) LE、Ler:長度(從DA到DU)DA:目的地址 SA:源地址FC:功能碼 (6CH) DSAP:目的服務(wù)存取點SSAP:源服務(wù)存取點 DU:數(shù)據(jù)單元FCS:校驗和 ED:結(jié)束符(16H)3.1 讀命令分析一次讀一條數(shù)據(jù)對于一次讀取一個數(shù)據(jù),讀命令都是33個字節(jié)。前面的0—21字節(jié)是相同的,為 :68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10因為是PC上發(fā)的讀PLC數(shù)據(jù)的命令,SA=00,DA=02,如果有多個站,DA要改成相應(yīng)的站號。讀命令中從DA到DU的長度為1B即27個字節(jié)。從22字節(jié)開始根據(jù)讀取數(shù)據(jù)的類型、位置不同而不同。表一是讀不同存儲器命令的Byte22—32。字節(jié) 22 23 24 25 26 27 28 29 30 31 32功能 讀取長度 數(shù)據(jù)個數(shù)* 存儲器類型 偏移量 校驗 結(jié)束讀q0.0 01 00 01 00 00 82 00 00 00 64 16讀m0.0 01 00 01 00 00 83 00 00 00 65 16讀M0.1 01 00 01 00 00 83 00 00 01 66 16讀SMB34 02 00 01 00 00 05 00 01 10 F9 16讀VB100 02 00 01 00 01 84 00 03 20 8B 16讀VW100 04 00 01 00 01 84 00 03 20 8D 16讀vd100 06 00 01 00 01 84 00 03 20 8F 16讀i0.5 01 00 01 00 00 81 00 00 05 68 16"讀i0.7 01 00 01 00 00 81 00 00 07 6A 16"表 一 讀命令的Byte22-32從表中我們可以得出以下結(jié)果:Byte 22 讀取數(shù)據(jù)的長度01:1 Bit 02:1 Byte 04:1 Word 06:Double WordByte 24數(shù)據(jù)個數(shù),這里是01 ,一次讀多個數(shù)據(jù)時見下面的說明。Byte 26 存儲器類型,01:V存儲器 00:其它Byte 27 存儲器類型04:S 05:SM 06:AI 07:AQ 1E: C81:I 82:Q 83:M 84:V 1F: TByte 28,29,30存儲器偏移量指針(存儲器地址*8),如:VB100,存儲器地址為100,偏移量指針為800,轉(zhuǎn)換成16進制就是320H,則Byte 28—29這三個字節(jié)就是:00 03 20。Byte 31 校驗和,前面已說到這是從(DA+SA+DSAP+SSAP+DU) Mod 256 。一次讀多條數(shù)據(jù)對于一次讀多個數(shù)據(jù)的情況,前21Byte與上面相似只是長度LD,LDr及Byte 14不同:Byte 14 數(shù)據(jù)塊占位字節(jié),它指明數(shù)據(jù)塊占用的字節(jié)數(shù)。與數(shù)據(jù)塊數(shù)量有關(guān),長度=4+數(shù)據(jù)塊數(shù)*10,如:一條數(shù)據(jù)時為4+10=0E(H);同時讀M,V,Q三個不同的數(shù)據(jù)塊時為4+3*10=22(H)。Byte 22 總是02 即以Byte為單位。Byte 24 以字節(jié)為單位,連續(xù)讀取的字節(jié)數(shù)。如讀2個VD則Byte24=8Byte 19---30 按上述一次讀一個數(shù)據(jù)的格式依次列出,Byte 31---42 另一類型的數(shù)據(jù),也是按上述格式給出。以此類推,一次最多讀取222個字節(jié)的數(shù)據(jù)。3.2 寫命令分析一次寫一個Double Word類型的數(shù)據(jù),寫命令是40個字節(jié),其余為38個字節(jié)。寫一個Double Word類型的數(shù)據(jù),前面的0—21字節(jié)為 :68 23 23 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10寫一個其它類型的數(shù)據(jù),前面的0—21字節(jié)為 :(與上面比較,只是長度字節(jié)發(fā)生變化)68 21 21 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10從22字節(jié)開始根據(jù)寫入數(shù)據(jù)的值和位置不同而變化。表二是幾個寫命令的Byte22—40。字 節(jié) 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40寫入位置及值 長度 個數(shù) 類型 偏移量 位數(shù) 值、校驗碼、結(jié)束符M0.0=1 01 00 01 00 00 83 00 00 00 00 03 00 01 01 00 71 16 M0.0=0 01 00 01 00 00 83 00 00 00 00 03 00 01 00 00 70 16 M0.1=1 01 00 01 00 00 83 00 00 01 00 03 00 01 01 00 72 16 vb100=10 02 00 01 00 01 84 00 03 20 00 04 00 08 10 00 AE 16 vb100=FF 02 00 01 00 01 84 00 03 20 00 04 00
回答者:網(wǎng)友
產(chǎn)品精選
搜索問答
還沒有汽配人賬號?立即注冊

我要提問

汽配限時折扣

本頁是網(wǎng)友提供的關(guān)于“vb和西門子s7-200 plc的通訊 監(jiān)控”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準(zhǔn)確性。