資源描述:
《西門子s7-300系列plc與pc機的prodave通信》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、西門子S7-300系列PLC與PC機通信實現(xiàn)的研究1引言???西門子工控產(chǎn)品在我國有較高的市場占有率,它的通信及網(wǎng)絡(luò)產(chǎn)品有著引導(dǎo)世界工控技術(shù)潮流的作用,研究西門子工控產(chǎn)品及通信技術(shù)的實際應(yīng)用問題有著廣泛普遍的重要意義。本文通過對某市級煙草公司的卷煙配送分揀系統(tǒng)的研究,探討了在Windows環(huán)境下,用Delphi開發(fā)的數(shù)據(jù)庫應(yīng)用軟件與西門子S7-300之間通信的實現(xiàn)問題。該卷煙配送分揀系統(tǒng)計算機部分結(jié)構(gòu)如圖1所示。該系統(tǒng)管理計算機接收信息中心局域網(wǎng)發(fā)送來的各條送貨線路當天的訪銷信息數(shù)據(jù),在此基礎(chǔ)上管理計算機建立起以送貨線路為單位的配方數(shù)據(jù)庫,將配方數(shù)據(jù)分批次連續(xù)地下傳給PLC。PLC根據(jù)下
2、傳的配方數(shù)據(jù)對系統(tǒng)控制使其連續(xù)分揀和收集,同時系統(tǒng)工作狀態(tài)及工作數(shù)據(jù)通過PROFIBUS現(xiàn)場總線在兩個觸摸屏TP27-10得到動態(tài)顯示,最后在收集工位自動得到一箱對應(yīng)一個銷售網(wǎng)點的用戶配料。為了提高調(diào)系統(tǒng)試效率,我們在DELPHI和MicrosoftAccess數(shù)據(jù)庫平臺上編寫了用于PLC控制程序的調(diào)試軟件。???從上看出該系統(tǒng)能否研制成功必須要解決的問題是:西門子S7-300系列PLC通訊協(xié)議不公開,管理計算機和調(diào)試計算機上第三方軟件編制的程序如何實現(xiàn)PC機與西門子S7-300系列PLC信息交換?通過技術(shù)調(diào)研和實際調(diào)試,我們成功實現(xiàn)了在VB、DELPHI程序開發(fā)平臺上開發(fā)的管理程序及調(diào)
3、試程序與S7-300系列PLC通信,順利完成了系統(tǒng)研制任務(wù)。限于篇幅,本文以調(diào)試軟件的通信實現(xiàn)方法來討論第三方應(yīng)用軟件與西門子S7-300PLC的通信問題2調(diào)試軟件設(shè)計???根據(jù)PLC控制程序的調(diào)試要求,該調(diào)試軟件使用DELPHI的數(shù)據(jù)庫技術(shù)把事先設(shè)計的60個配方數(shù)據(jù)寫入數(shù)據(jù)庫,根據(jù)調(diào)試需要也可通過人機界面對數(shù)據(jù)庫中的數(shù)據(jù)進行任意修改,當執(zhí)行“下傳數(shù)據(jù)”命令時把數(shù)據(jù)庫中的數(shù)據(jù)字段進行一定數(shù)據(jù)處理后通過調(diào)用PRODAVES7軟件包寫入PLC中對應(yīng)的DB(DATABLOCKS)塊,其中一條記錄對應(yīng)一個DB塊,每條記錄的一個字段對應(yīng)該DB塊中的一個字。該調(diào)試軟件也可按一定順序讀PLC中各DB塊
4、中的字,并把讀取的數(shù)據(jù)經(jīng)過處理后寫入數(shù)據(jù)庫,以供調(diào)試人員檢查寫入數(shù)據(jù)的正確性。PC機與PLCCPU318-2DPMPI口之間的數(shù)據(jù)通信是通過PC/MPI適配器硬件連接實現(xiàn)的。3數(shù)據(jù)通信3.1通信軟件???實現(xiàn)PC機與PLC之間的數(shù)據(jù)通信是一個棘手的問題。西門子公司的PRODAVES7軟件包的動態(tài)鏈接庫(DLL)提供了大量的基于WindowsNT,Windows95/98,Windows3.11或MS-DOS的函數(shù),這樣就使用戶解決PLC與PC之間的數(shù)據(jù)交換和數(shù)據(jù)處理問題變?yōu)榭赡堋?.2通信函數(shù)???在DELPHI的ObjectPascal語言中,要訪問動態(tài)鏈接庫DLL(DynamicLi
5、nkLibrary)中的例程有兩種方式。一種是靜態(tài)引入方式;另一種是動態(tài)引入方式。???本軟件使用靜態(tài)引入方式,即在單元的Interface部分用External指示字列出要從DLL中引入的例程。如果要引入的例程比較多,就可以用一個專門的單元來集中聲明要引入的例程。PLC控制程序調(diào)試軟件用到的PRODAVE函數(shù)主要有:(1)load_toolPC機與PLC系統(tǒng)初始化鏈接;(2)unload_tool斷開PC機與PLC系統(tǒng)鏈接;(3)db_read從PLC的DB塊中讀數(shù)據(jù)字;(4)db_write向PLC的DB塊中寫數(shù)據(jù)字。3.3通信程序的實現(xiàn)???在該調(diào)試軟件中用一個專門的單元集中聲明要
6、引入的PRODAVES7動態(tài)鏈接庫的例程,然后在程序中在引用這個單元,即把引入單元“prodave”加到程序的Uses子句。該引入單元的代碼如下:unitprodave;interfacetypeTadr_table_type=recordadr:byte;segmentid:byte;slotno:byte;rackno:byte;end;functionload_tool(no:Byte;name:PChar;adr_table_type:PChar):Integer;stdcall;external"w95_s7.dll";functionunload_tool:Integer;s
7、tdcall;external"w95_s7.dll";functiondb_read(blockno:integer;no:integer;amount:pointer;buffer:pointer):integer;stdcall;external"w95_s7.dll";functiondb_write(blockno:integer;no:integer;amount:pointer;buffer:pointer):inte