<big id="ferl7"></big>

        <label id="ferl7"><sub id="ferl7"><rt id="ferl7"></rt></sub></label>

          DELPHI開(kāi)發(fā)環(huán)境下PC機應用軟件與PLC的數據通

          摘要 本文主要介紹了在DELPHIMicrosoft Access數據庫開(kāi)發(fā)環(huán)境下,PC機應用軟件與西門(mén)子S7-300 系列PLC的數據通信的實(shí)現方法。并把此方法應用于復雜控制系統的調試及PC機管理系統與PLC控制系統的信息交換中。

          關(guān)鍵字 DELPHI,PRODAVE,數據通信,可編程序控制器,MPI

          ABSTRACT This paper introduces data communication method between PC applications ,which take DELPHI and Microsoft Access as their programming language, and SIMENTIC S7-300 PLC (programmable Logic Controller). And the method is applied to debugging of complicated system and data traffic between management system and PLC system.

          KEY WORDS PRODAVE; PLC; Data communication; MPI; DELPHI


          引言

          西門(mén)子工控產(chǎn)品在我國有較高的市場(chǎng)占有率,它的通信及網(wǎng)絡(luò )產(chǎn)品有著(zhù)引導世界工控技術(shù)潮流的作用,研究西門(mén)子工控產(chǎn)品及通信技術(shù)的實(shí)際應用問(wèn)題有著(zhù)廣泛普遍的重要意義。本文通過(guò)對某市級煙草公司的卷煙配送分揀系統的研究,探討了在Windows環(huán)境下,用Delphi開(kāi)發(fā)的數據庫應用軟件與西門(mén)子S7-300之間通信的實(shí)現問(wèn)題。該卷煙配送分揀系統計算機部分結構如圖1所示。

          該系統管理計算機接收信息中心局域網(wǎng)發(fā)送來(lái)的各條送貨線(xiàn)路當天的訪(fǎng)銷(xiāo)信息數據,在此基礎上管理計算機建立起以送貨線(xiàn)路為單位的配方數據庫,將配方數據分批次連續地下傳給PLC。PLC 根據下傳的配方數據對系統控制使其連續分揀和收集,同時(shí)系統工作狀態(tài)及工作數據通過(guò)PROFIBUS 現場(chǎng)總線(xiàn)在兩個(gè)觸摸屏TP27-10得到動(dòng)態(tài)顯示,最后在收集工位自動(dòng)得到一箱對應一個(gè)銷(xiāo)售網(wǎng)點(diǎn)的用戶(hù)配料。為了提高調系統試效率,我們在DELPHIMicrosoft Access數據庫平臺上編寫(xiě)了用于PLC控制程序的調試軟件。

          從上看出該系統能否研制成功必須要解決的問(wèn)題是:西門(mén)子S7-300系列PLC通訊協(xié)議不公開(kāi),管理計算機和調試計算機上第三方軟件編制的程序如何實(shí)現PC機與西門(mén)子S7-300系列PLC信息交換?通過(guò)技術(shù)調研和實(shí)際調試,我們成功實(shí)現了在VB、DELPHI程序開(kāi)發(fā)平臺上開(kāi)發(fā)的管理程序及調試程序與S7-300系列PLC通信,順利完成了系統研制任務(wù)。限于篇幅,本文以調試軟件的通信實(shí)現方法來(lái)討論第三方應用軟件與西門(mén)子S7-300 PLC的通信問(wèn)題。

          2調試軟件設計

          根據PLC控制程序的調試要求,該調試軟件使用DELPHI的數據庫技術(shù)把事先設計的60個(gè)配方數據寫(xiě)入數據庫,根據調試需要也可通過(guò)人機界面對數據庫中的數據進(jìn)行任意修改,當執行“下傳數據”命令時(shí)把數據庫中的數據字段進(jìn)行一定數據處理后通過(guò)調用PRODAVE S7軟件包寫(xiě)入PLC中對應的DBDATA BLOCKS)塊,其中一條記錄對應一個(gè)DB塊,每條記錄的一個(gè)字段對應該DB塊中的一個(gè)字。該調試軟件也可按一定順序讀PLC中各DB塊中的字,并把讀取的數據經(jīng)過(guò)處理后寫(xiě)入數據庫,以供調試人員檢查寫(xiě)入數據的正確性。PC機與PLC CPU318-2DP MPI口之間的數據通信是通過(guò)PC/MPI適配器硬件連接實(shí)現的。




          3
          數據通信

          3.1 通信軟件

          實(shí)現PC機與PLC之間的數據通信是一個(gè)棘手的問(wèn)題。西門(mén)子公司的PRODAVE S7軟件包的動(dòng)態(tài)鏈接庫(DLL)提供了大量的基于Windows NT,Windows95/98,Windows3.11MS-DOS的函數,這樣就使用戶(hù)解決PLCPC之間的數據交換和數據處理問(wèn)題變?yōu)榭赡堋?/span>

          3.2 通信函數

          DELPHIObject Pascal語(yǔ)言中,要訪(fǎng)問(wèn)動(dòng)態(tài)鏈接庫DLLDynamic Link Library)中的例程有兩種方式。一種是靜態(tài)引入方式;另一種是動(dòng)態(tài)引入方式。

          本軟件使用靜態(tài)引入方式,即在單元的Interface部分用External指示字列出要從DLL中引入的例程。如果要引入的例程比較多,就可以用一個(gè)專(zhuān)門(mén)的單元來(lái)集中聲明要引入的例程。

          PLC控制程序調試軟件用到的PRODAVE函數主要有:

          (1)load_tool PC機與PLC系統初始化鏈接;

          (2)unload_tool 斷開(kāi)PC機與PLC系統鏈接;

          (3)db_read PLCDB塊中讀數據字;

          (4)db_write PLCDB塊中寫(xiě)數據字。

          3.3 通信程序的實(shí)現

          在該調試軟件中用一個(gè)專(zhuān)門(mén)的單元集中聲明要引入的PRODAVE S7動(dòng)態(tài)鏈接庫的例程,然后在程序中在引用這個(gè)單元,即把引入單元“prodave”加到程序的Uses子句。該引入單元的代碼如下:

          unit prodave;

          interface

          type

          Tadr_table_type=record

          adr:byte; segmentid:byte;

          slotno:byte; rackno:byte;

          end;

          function load_tool(no:Byte;name:PChar;adr_table_type:PChar):Integer;stdcall;external "w95_s7.dll";

          function unload_tool:Integer;stdcall;external "w95_s7.dll";

          function db_read(blockno:integer;no:integer;amount:pointer;buffer:pointer):integer;stdcall;external "w95_s7.dll";

          function db_write(blockno:integer;no:integer;amount:pointer;buffer:pointer):integer;stdcall;external "w95_s7.dll";

          ……

          implementation

          end.

          在調試軟件的主程序中調用該引入單元前,須將軟件包prodave.pas文件加到工程中。這樣才能在主程序中調用w95_s7.dll中的函數,具體程序調用實(shí)現如下:

          implementation

          uses prodave;

          {$R *.DFM}

          ……

          begin

          plc_adr_table[0> := 2; {address} plc_adr_table[1> := 0; {segment id}

          plc_adr_table[2> := 2; {slotno} plc_adr_table[3> := 0; {rackno} plc_adr_table[4> := 0;

          res := Load_tool(1,"S7ONLINE",@plc_adr_table); //初始化鏈接

          函數load_tool的作用在于初始化適配器,初始化參數的地址以及激活選定的界面。程序在讀寫(xiě)PLC數據前應該用該函數初始化PC機與PLC的連接。

          此函數傳送以下3個(gè)參數:

          no:此參數設置可激活連接的數量,連接個(gè)數可以達到16個(gè)。此例中,no=1;

          device:用戶(hù)驅動(dòng)設備名稱(chēng),如MPI驅動(dòng)器的設備名為“S7ONLINE”;

          plc_adr_table:連接部分的地址列表指針。

          如果沒(méi)有錯誤,此函數返回0,否則返回錯誤信息的相應十六進(jìn)制代碼。下面給出數據下載程序:

          begin

          error:=false;

          table1.first; //定位到配方表的首記錄

          for i:=2 to 61 do //60個(gè)配方數據寫(xiě)到DB2-DB61

          begin

          for j:=1 to 42 do //42個(gè)庫位的自動(dòng)配煙數的值高低字節調換位置存入buffer數組

          begin

          c0:=table1.fields.fields[j>.asinteger;

          clow:=c0 shl 8;

          chigh:=c0 shr 8;

          cdate:=clow xor chigh;

          buffer[j-1>:=cdate;

          end;

          anzahl:=42;

          dbno:=i; //DB

          dwno:=1; //1個(gè)數據字,即DW2

          res := db_write(dbno,dwno,@anzahl,@buffer);

          函數db_write()的作用是從PC機的數組變量“buffer”中給PLC的第“dbno”個(gè)數據塊中從“dwno”個(gè)數據字開(kāi)始寫(xiě)“anzahl” 個(gè)數據字。如果數據塊不存在,將返回錯誤信息的代碼。如果要寫(xiě)的數據字數目的長(cháng)度超過(guò)了數據塊的長(cháng)度,要寫(xiě)的數據字的長(cháng)度將得到更正,同時(shí)此函數還返回303H的錯誤信息。

          需要特別注意的是:數據在緩沖區存放的順序是從高字節到低字節。而Object Pascal語(yǔ)言中,變量類(lèi)型為word的變量,它的數據存放順序是從低字節到高字節。因而,在對所讀取的數據進(jìn)行操作時(shí)或給PLC數據塊中寫(xiě)數據字時(shí)要進(jìn)行相應的處理。

          結束程序之前,必須調用適配器函數unload_tool斷開(kāi)PC機與PLC的連接。否則,將引起PC機死機,或者系統紊亂。

          由于數據上傳與數據下載的實(shí)現方法相近,限于篇幅,數據上傳實(shí)現的方法本文不予介紹,請讀者參考數據下載實(shí)現方法部分。

          4結束語(yǔ)

          運用DELPHI開(kāi)發(fā)環(huán)境編寫(xiě)的PLC控制程序調試軟件,具有界面友好、人機交互功能方便、數據庫功能強大靈活的優(yōu)點(diǎn),具有一定的通用性和實(shí)用性。而且通過(guò)調用PRODAVE S7軟件包的動(dòng)態(tài)鏈接庫實(shí)現PC機對PLC CPU318-2DP數據的讀寫(xiě)操作,不但數據傳輸數率快,而且數據傳輸正確率高。在對PLC控制系統的調試過(guò)程中,可以大大縮短調試周期,提高工作效率。此通信技術(shù)的實(shí)現對西門(mén)子工控產(chǎn)品的應用及PROFIBUS現場(chǎng)總線(xiàn)的推廣應用有著(zhù)廣泛普遍的重要意義。


          參 考 文 獻

          1 SIEMENS.Toolbox for Data Link PGs/PCs to SIMATTIC S7

          2 SIEMENS.SIMATIC S7 Configuring Hardware and Communication Connections STEP 7 V5.0 Manual.

          3 毛棱,孟祥文,王淑芬等.DELPHI 5數據庫開(kāi)發(fā)技術(shù). 北京:機械工業(yè)出版社.2000.

          附錄:作者情況:

          第一作者:姜建芳

          職稱(chēng):高級工程師

          單位:南京理工大學(xué)自動(dòng)化系

          聯(lián)系地址:南京理工大學(xué)1002教研室

          国产AV无码专区亚洲AV|欧美色中文字幕在线|欧美a级毛欧美|亚洲国产激情一区二区|亚洲gv天堂gv无码男同
          <big id="ferl7"></big>

              <label id="ferl7"><sub id="ferl7"><rt id="ferl7"></rt></sub></label>