深入淺出西門子 WinAC_第1頁
深入淺出西門子 WinAC_第2頁
深入淺出西門子 WinAC_第3頁
深入淺出西門子 WinAC_第4頁
深入淺出西門子 WinAC_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

深入淺出WinAC目錄刖言第一章WinAC產(chǎn)品概述第二章WinAC站組態(tài)和硬件組態(tài)第三章WinACComputing和NETOPC第四章WinCC訪問WinAC第五章WinACODK第六章WinACMP附錄WinAC技術(shù)參數(shù)前言在工業(yè)和制造業(yè)的各個領域向規(guī)?;较虬l(fā)展的過程中,自動化程度的需求越來越廣泛,對自控系統(tǒng)的要求也越來越高。每年有大量的DCS系統(tǒng)和PLC系統(tǒng)裝備于各種設備以及自動化系統(tǒng)中。由于工業(yè)和制造業(yè)對電控、儀控一體化及管控一體化的需求,由于信息技術(shù)的發(fā)展和高集成度控制系統(tǒng)的需求,以及PC技術(shù)的完善使其性能價格比日益提高,為一種全新的自控系統(tǒng)解決方案——基于PC(PC-based)控制的快速發(fā)展提供了有利的條件和廣闊的前景,也為眾多用戶提供了除DCS和PLC以外的另一種選擇。PC-based控制技術(shù)是一種基于PC機,配合操作系統(tǒng)(例如Microsoft的Windows2000/XP)以及一套由不同廠家開發(fā)的基于PC的控制軟件,加上一些必要的I/O硬件設備組成的控制系統(tǒng)。該控制系統(tǒng)的開發(fā)運行環(huán)境放在PC機內(nèi),其中可包括集成的組態(tài)軟件、HMI(人機接口)、程序編譯運行環(huán)境以及必要的調(diào)試環(huán)境和驅(qū)動程序庫等?;赑C控制具有以下優(yōu)點:系統(tǒng)升?放性能好。軟件方面能夠支持各種開放性協(xié)議,例如:OPC、DDE、COM/DCOM.OLE等等。硬件方面不僅能夠支持各種運動控制產(chǎn)品,而且能夠支持各種現(xiàn)場總線系統(tǒng),例如:DeviceNet,PROF舊US等,還可通過EtherNet方便地進行網(wǎng)絡擴充。具有實時控制能力?;赑C的控制技術(shù)的實時性能主要有三種。一種稱為SoftPLC,即軟件PLC,它是利用其內(nèi)部軟件天確定掃描周期,達到實時控制目的。這種性能特點決定了運行PC除可完成控制任務外,還可處理大量的PC任務。這比較適合于對實時性和響應時間要求不高的系統(tǒng)。另一種是帶有實時擴展的實時性能,一般采用Windows提供的標準實時擴展解決方案——VenturCOM,這是一種針對確定性能的控制任務的解決方案。第三種被稱為硬實時引擎(HardReal-TimeEngine),它的控制始終處于最高的優(yōu)先級,其它的Windows任務是不能中斷控制任務的,而這就提供了與PLC相同的執(zhí)行特性和掃描特性?具有形式多樣的編程語言。與人機接口(HMI)集成。這樣使得上位監(jiān)控軟件與邏輯控制軟件結(jié)合起來,而且也提高了經(jīng)濟效益。數(shù)據(jù)處理能力強。交互方便,快速可靠,而且隨著PC機的進一步發(fā)展,這種能力的優(yōu)勢將會越來越突出。第一章WinAC產(chǎn)品概述1.1 WinAC產(chǎn)品分類SIMATICWinAC是西門子公司開發(fā)的基于PC控制的核心組件,它的出現(xiàn)擴展了SIMATICS7的控制范圍。WinAC是一個名副其實的控制中心,它將PLC控制、數(shù)據(jù)處理、通訊、可視化及工藝集成于一臺PC機上。SIMATICWinAC產(chǎn)品包括軟件型和插槽型兩大類,包括如下5種產(chǎn)品:WinACBasis(WinAC基本型)WinACBasis是低成本解決方案,用于對控制無精確時間要求,有大量、快速的數(shù)據(jù)處理與控制任務(控制任務指PLC的控制功能)相結(jié)合或其它PC任務的控制場合。WinACPN第一個支持PROFInet通訊標準的SIMATICCPU,性能與WinACBasis相似。WinACPN支持基于組件的自動化(CBA)和PROFInet通訊標準。基于組件的自動化和PROFInet提供了一個開放的標準,用于在復雜任務中療戚和系統(tǒng)單元之間的數(shù)據(jù)交換。數(shù)據(jù)交換通過SIMATICiMapT具來進行配置。WinACPN適應于以下任務:?來自整個復雜系統(tǒng)的機械和車間區(qū)域之間的協(xié)調(diào)和連接?控制系統(tǒng)單元或機械可被集成到一個全范圍的復雜系統(tǒng)WinACBasis4.1有一個選件WinACPN,帶有WinACPN選件的WinACBasis4.1支持PROFInet和CBA。WinACRTX(WinAC實時型)WinACRTX提供了Windows2000/XP的實時子系統(tǒng),具有“硬實時”和“抗死機”特性。適應于具有高速和精確時間要求的控制任務的場合,如運動控制、閉環(huán)控制等。WinACMPWinACMP基于WinCE操作系統(tǒng)和SIMATICMP370(一種多功能而板)硬件平臺。MP370為無硬盤、無風扇設計,WinCE具有實時特性,可實現(xiàn)嚴格的確定性動作■:WinACMP用在惡劣工業(yè)環(huán)境和有大量數(shù)據(jù)要處理的場合。WinACSlot412/416以板卡的形式插入在PC中,在板卡上已經(jīng)集成了用于控制任務的CPI;、存儲器等元件。它可獨立于PC進行控制操作。板卡上集成一個MPI/DP接口和一個DP□.WinACSlot適用于對安全性和穩(wěn)定性要求較高的場合。WinACSlot412/416在性能上與S7-412/416相近。1.2WinAC特性和適應場合由于其功能強大的升?放和靈活的接口,SIMATICWinAC成為基于PC自動化解決方案的理想平臺。

WinAC運行在基于Windows2000/XP操作系統(tǒng)卜的標準PC平臺中?與SIMATICS7有一致的代碼兼容性,統(tǒng)一的編程環(huán)境,生成的程序也可被SIMATICS7所使用?提供了OPC、ActiveX控件、DCOM接口等方法,與其它PC應用程序交換數(shù)據(jù)?為具有特殊工藝硬件軟件相結(jié)合的控制任務提供了開放的接口WinAC適用于以下任務:?由于空間和性能的原因,數(shù)據(jù)處理、通訊、可視化和控制任務必須集成在同一臺PC平臺上?需要有高性能數(shù)據(jù)處理的任務?在協(xié)調(diào)控制功能中必須有被執(zhí)行的特殊過程任務?存在特殊硬件軟件模塊集成的任務3WinACComputingWinACComputing是所有WinAC產(chǎn)品系列中的一個組件,并對數(shù)據(jù)處理提供了兩個重要的接口:WinACOPC服務器開放了WinAC對過程數(shù)據(jù)的訪問,用于數(shù)據(jù)處理和實現(xiàn)可視化ActiveX組件支持從生產(chǎn)過程到特殊軟件應用或辦公室應用的功能強大的連接WinACBasis/RTX4.1和WinACSlot3.4版本支持SIMATICS7控制器統(tǒng)一的SIMATICNETOPC服務器。4WinAC開放工具0DKWinACODK4.1包括三個組件:CCX(定制代碼擴展):將C/C++程序直接嵌入到WinACBasis/RTX的Step7程序中,可用于連接第三方軟件和硬件,由此可提供PLC任務所需的所有PC上的操作系統(tǒng)功能和系統(tǒng)資源?SMX(共享內(nèi)存擴展):支持與WinAC進行高速(速度是OPC交換速度的百倍以上)數(shù)據(jù)交換的應用程序的開發(fā),確保與技術(shù)功能應用的緊密協(xié)同。CMI(控制管理接口):使用CMI可使應用程序監(jiān)控和改變WinAC的特性。

第二章WinAC站組態(tài)和硬件組態(tài)本章主要介紹WinACBasis和WinACSlot的站組態(tài)和硬件組態(tài)。WinACRTX的組態(tài)與WinACBasis相類似,因此不做專門介紹。WinAC站組態(tài)在安裝好SIMATICNET、WinAC之后就可以進行WinAC站組態(tài)。如果WinACBasis需要連接外部I/O,至少需要一塊CP5611或CP5613通訊卡。下而的例子用到了如下的軟件和硬件:WinACBasisV4.1SIMATICNET6.2(隨WinACBasis4.1一起供貨)CP5613Step7V5.3Step7可以與WinAC裝在同一臺PC機上,也可以裝在不同的PC機上。如果WinAC與Step7安裝在同一臺PC機上,則除了Step7外不需要其它的編程軟件和硬件。如果Step7安裝在另外的PC機上,則裝有Step,的PC上還需要另外的設備,如CP5511o卜?而步驟描述的是WinAC與Step7安裝在不同的PC機上,兩臺PC機都有以太網(wǎng)卡(且兩網(wǎng)卡已物理連接好),硬件和程序的卜.我通過以太網(wǎng)進行。進行WinAC站組態(tài)的步驟如下:—,在"StationConfigurationEditor"中添加"WinLC”使用WinAC"StationConfigurationEditor"和“ConfigurationConsole”來配置WinAC的PC站。WinACBasis安裝好后,在aStationConfigurationEditorM中自動把“WinLC”加入到索引號為2的PC站中,如圖2.1所示。(如果沒有自動添加可從彈出式菜單中選擇“Add”,并從隨后出現(xiàn)的“AddComponent"對話框中選擇“WinLC”。)索引是PC站虛擬機架中一個帶編號的虛擬插槽(它與PC主板的實際PCI插槽順序無關(guān))。PC站為基于PC的自動化解決方案中的SIMATIC組件提供插槽。其中不僅包括WinLC和CP卡,而且包括SIMATICHMI和SIMATICNETOPC。

[StationConfigurationEditor-[ONLINE]Components|Diagnostic?|配置CP5613為組態(tài)方式按如下步驟來將CP5613卡配置為組態(tài)方式鼠標單擊“開始”->“SIMATIC”->“SIMATICNET”->“Settings”->aConfigurationConsoleM,打開組態(tài)控制臺。在“ConfigurationConsolew窗口中依次單擊“Modules”和“CP5613/CP5614”前的符號“+”后選擇“General”,在右邊數(shù)據(jù)窗口中將“Modeofthemodule"的列表框選為"Configuredmode”,列表框“index”選為4(可以為其它值),如圖2.2所示。圖2.2配置CP5613為組態(tài)方式

單擊按鈕"Apply"并關(guān)閉"ConfigurationConsole"程序。2dComponents|2dComponents|Diagnostics|重新打開"StationConfigurationEditorM,如圖2.3所示,我們看到CP5613位于索引號為4的PC站虛擬插槽中。將已設置為組態(tài)方式的C?5613設為WinLC的子模塊要使WinLC(WinACBasis的控制器)可以帶各種DP從站,將CP5613設置為組態(tài)方式后,還要將其設為WinAC的子模塊。每個WinLC最多有4個子模塊。在如圖2.3所示的站組態(tài)編輯器中,右鍵單擊索引號為2的行(即WinLC行),從快捷菜單中選擇"Edit”,打開"EditComponentn對話框,在此對話框中選擇"Properties…”,打開“WinLCProperties"對話框,在此對話框中右鍵單擊?索引號為IF1的行,并從快捷菜單中選擇“Add”,如圖2.4所示。圖2.4添加圖2.4添加WinLC的子模塊在打開的“AddCPModuletcWinLCInterfaceIF1”對話框中選擇CP5613。如圖2.5所示,單擊“OK",關(guān)閉"AddCPmoduleToWinLCInterfaceIF1”對話框,回到“WinLCProperties”窗口,我們看到CP5613/CP5614位于IF1索引號上,如圖2.6所示,單擊"0K”后。至此基本的WinACPC站組態(tài)完畢。當再次打開“StationConfigurationEditor"后,便發(fā)現(xiàn)CP5613已不在索引號為4的插槽上,這是因為CP5613已被作為WinLC的子模塊插入到WinLC的“插槽”中。圖2.5選擇CP5613作為WinLC的子模塊圖2.6添加子模塊后的WinLC屆性在PC站中添加實現(xiàn)其它功能的模塊上述的PC站只組態(tài)了WinAC,如果要使WinAC支持SIMATICNET0PC還應在PC站的插槽中插入"OPCServer"。再次打開"StationConfigurationEditor",右鍵單擊索引號為1的行從快捷菜單中選擇“Add”,打開“AddComponent"對話框,添加“OPCServer”,如圖2.7所示。如果不使用SIMATICNETOPC服務器,而只使用WinACOPC服務器則無需添加此項。

AddComponentType:ApplicationApplicationIndex:CP5611CP5G13CPU412-2PCICPU416-2PCIName:IEGeneralOPCServerParameterWinCCApplicationV/inCCApplication(stbyjV/inCCApplicationClient|DK| Cancel|Help圖2.7添加SIMATICOPC服務器如果需要使用以太網(wǎng)與其它S7控制進行通訊或使用以太網(wǎng)來下載Step7程序,在PC站的插槽中還應加入“IEGeneral"(使用此項功能需要一個Softnet的授權(quán))。按照同樣同樣的方法把“IEGeneral”添加在索引號為5的虛擬插槽中。最后的PC站組態(tài)如圖2.8所示。Components|Diagnostics|Station:|COC-SLOT34[StationConfigurationEditor-Components|Diagnostics|Station:|COC-SLOT34IndexNameJTypeRingStatusRun/StopConn1[jOPCServerOPCServerBO2IWinLCWinLC345>IEGeneralIEGeneral ITIMode: |RUN_P圖2.8忝加SIMATICOPC服務器和IEGeneral后的PC站至此,我們組態(tài)了一個PC站,它包括一個SIMATICNETOPC服務器、一個帶有CP5613子模塊的WinLC、一個可以與其它S7控制器或編程器進行通訊的以太網(wǎng)卡。上而步驟說明的如何組態(tài)WinACBasis.,由于WinACSlot不需要另外的CP卡,因此組態(tài)WinACSlot時不需要上述步驟的第二步、第三步。另外默認時WinACSlot位于索引號為3的插槽上。按照同樣的方法組態(tài)WinACSlot412如圖2.9所示[[StaticnljonfiguraUonEditor-[ONLINE] x|Components|Diagnostics|Station:COOSLOT34Mode: |RUM_PIndex|NameType Ring StatusRun/StopConn■1jOPCServer□PCServer 嚎923]CPU412-2PCCPU412-2PCI■孫45 :fIEGeneralIEGert&ral 腿06J.7圖2.9WinACSlot的PC站組態(tài)2.2用Step7進行WinAC的硬件組態(tài)對于WinAC,不能從PC站上上載正確組態(tài)信息到Step7中,必須手工在Step7中完成硬件組態(tài)。在STEP7創(chuàng)建的WinAC硬件組態(tài),它應和PC站組態(tài)編輯器中的組態(tài)相吻合?!?插入SIMATICPCStation啟動SIMATICManager,創(chuàng)建一個新的工程,并在此工程下插入一個“SIMATICPCStation,如圖2.10所示。圖2.10插入SIMATICPC站將默認名“SIMATICPCStation(l)改成圖2.8中的站名"C0C-SL0T34”。在SIMATICManager左邊瀏覽窗口中選擇站點“C0C-SL0T34”,雙擊右邊數(shù)據(jù)窗曰的“Configuration”,打開硬件組態(tài)編輯器。二.硬件組態(tài)在硬件組態(tài)窗口中選擇右邊的硬件目錄,并從中選擇WinLC4.1并把它拖放到左邊的第二個插槽上(插槽號對應PC站組態(tài)編輯器中的索引號),如圖2.11所示。

嘿HWConfig-嘿HWConfig-QC0C-SL0T34(Connguration)—demolJGIDqStationEdtInsertPLCViewOpbon?WindowHelp-!□!x|-|g|x|Find:□I涂|*忡I知目I匐危I血血I面旦[暨回Find:K〔0)FC2 &WinLCIF1IF2IF3IF4Profile: |Standard宙施-—SIMATICPCBasedControl300/400 32 &WinLCIF1IF2IF3IF4Profile: |Standard宙施-—SIMATICPCBasedControl300/400 3阻SIMATICPCStationH-OController:1+]ClCPU412-2PCI\畝仞CPU416-2PCI:I-I-1JWinLC卜|26ES7611-lFTOO-UrB7:l-lQ|6E576H-4FYOO-CrrB7_IndexUModule0refernum...Fi...M...12||]WinLC6ES76114V4.1IF1or-c5化]蘭](0)PCInsertionpossible;WindowsLogicControllerfoiJOO/xP;DPconnector(DP圖2.11添加WinLC4.1在圖2.11所示的硬件目錄中選擇V4.1卜的CP5613,并將它拖放到左邊WinLC卜?的IF1插槽上。接著自動彈出“Properties-PROFIBUSCP5613”對話框,為該CP5613卡選一個地址,并單擊此對話框上的“new”按鈕新建一PR0FIBUS總線,選擇此PR0FIBUS,單擊按鈕“Properties…”可設置總線的參數(shù)如通訊速率、協(xié)議類型、最大站點地址等。我們將上而三個參數(shù)分別設置成1.5M,DP,10。在右邊硬件目錄中選擇“OPCServer”(在“SIMATICPCStation”->“UserApplication”->“OPCServer"<),并將它拖放到左邊的第一個插槽中。打開WinAC所在PC機上的“ConfigurationConsolew,如圖2.12所示,記卜-這臺PC機的以太網(wǎng)卡的地址,圖上所示的以太網(wǎng)的MAC地址為“08-00-06-24-C4-E3”?;氐絊tep7所在的PC,在硬件組態(tài)窗口中選擇硬件目錄中的“IEGeneral”并將它拖放到第五個插槽中,彈出"Properties-EthernetinterfaceIEGerenaln對話框,單擊按鈕"new”添加一以太網(wǎng)絡,選口"SetMACaddress/useISOprotocol復選按鈕,輸入如圖2.12所示的MAC地址,取消“IPprotocolisbeingused"復選按鈕,結(jié)果如圖2.13所示,單擊“0K”關(guān)閉配置設置以太網(wǎng)卡屬性對話框。圖2.12WinAC所在PC機網(wǎng)卡的MAC地址圖2.13設置以太網(wǎng)卡屬性整個硬件組態(tài)結(jié)果如圖2.14所示根據(jù)實際硬件情況,選擇圖2.14中的PROFIBUS(l)總線,添加各種DP從站。單擊硬件組態(tài)窗口中的按鈕(或選擇菜單"Station->SaveandCompile)保存并編譯組態(tài)信息。在WinAC所在的PC機上啟動WinLCo在SIMATICManager程序中,選擇菜單“Options”->“SetPG/PCinterface"打開SetPG/PCinterface"對話框,將“S7ONLINE(Step7)”的訪問點設置成“ISOInd.Ethernet",如圖2.15所示,如果WinAC與Step7裝在同一臺PC機,也可將訪問點設置成“PCinternal(local)M,單擊“OK”關(guān)閉此對話框。圖2.15設置S7ONLINE訪問點

10.單擊硬件組態(tài)程序工具欄上的按鈕“曲”將硬件組態(tài)信息卜載到WinAC中。當把組態(tài)信息正確卜載到WinAC站后,便可.如S7-300/400-樣進行編程,可以添加各種0B塊、FB塊、FC塊、DB塊等,可以使用WinAC支持的各個SFB/SFC,叩使用SIMATICManager中的各種編程語言。2.3.網(wǎng)絡組態(tài)如果需要WinAC支持SIMATICNET0PC服務器或是WinAC需要與S7-300/400控制、其它WinAC等進行通訊,則還應進行網(wǎng)絡組態(tài),Step7使用軟件NetPr。網(wǎng)絡組態(tài)。下而的步驟描述了如何組態(tài)SIMATICNETOPC服務器到WinAC的連接,以及WinAC與S7-300建立連接。假定我們已在同一個工程下組態(tài)了一個S7-300站,此站上使用了一個CPU315-2DP和一個通訊處理器CP343-5?!?組態(tài)SIMATICNETOPCServer與WinAC的連接單擊SIMATICManager工具欄上的瞿按鈕,打升網(wǎng)絡組態(tài)程序“NetPro”°在網(wǎng)絡窗曰中選擇PC-Station站(此處是“COC-SLOT34”)上的OPCServer后將鼠標指向窗曰卜?部的連接區(qū),從快捷菜單中選擇44InsertNewConnectionn項,彈出**InsertNewConnectionw對話框,如圖2.16所示,選擇“WinLC”作為通訊伙伴,選擇連接類型為“S7圖2.16建立SIMATICNETOPCServer到WinAC的連接

connectionM,單擊"OK”?在隨后程序的"PropertiesS7Connectionw窗U中直接單擊“OK”退出連接窗口。通過上面的方法就已建立了0?CServer和WinAC的連接,可以使用SIMATICNET帶的程序OPCScout查看連接對象,可以編寫OPC客戶端程序訪問OPCServer服務器。二.組態(tài)WinAC到S7-300的連接在網(wǎng)絡組態(tài)的窗口中選擇CPU"WinLC”,單擊窗曰下部的網(wǎng)絡連接區(qū)的空白處,從彈出菜單中選擇“InsertNewConnection",在隨后出現(xiàn)的窗口中選擇通訊伙伴為“CPU315-2DP",連接類型為"S7connection**?單擊"OK",接著彈出"Propertiess7-connectionM對話框,如圖2.17所示。在WinAC與S7-315的連接中,WinAC上使用的通訊處理器為CP5613,此CP5613即作為WinLC的子模塊來連接WinAC的DP從站,又作為一個主站實現(xiàn)與S7-300的主-主通訊。而在S7-300±實現(xiàn)此次連接的通訊處理器為“CP343-5"。在連接屬性中還有一個參數(shù)稱為“BlockParameters",圖中為2,在編寫通訊程序時需要用到這個數(shù)值。點擊“0K”關(guān)閉此對話框。圖2.17WinLC與CPU315-2DP的連接屬性至此,我們已在OPCServer與WinAC之間建立了一個連接,在WinAC與S7-315之間也建立一個連接。連接后狀態(tài)如圖2.18所示。

透NetPro-透NetPro-[demol(Network)—C:\ProgramFiles\...\STEP7\s7proj\demo1]IIIUUSUIB匚UIDIIIDLPROFIBUS(1)PROFIBUSCOC-SLOT34OPCServerWnLCCPIE5613Genera1□□2CPU;DPCP315-2:343-5DP:□;■uSIMATIC300(1)2 45Localid12PartnerIDPartnerCOC-SLOT34/O.JS7conned|TypeSIMATIC300(1S7connect!HlReady_2/1from2selected[insertChg圖2.18WinLC與其它通訊伙伴的連接Find: IIIUUSUIB匚UIDIIIDLPROFIBUS(1)PROFIBUSCOC-SLOT34OPCServerWnLCCPIE5613Genera1□□2CPU;DPCP315-2:343-5DP:□;■uSIMATIC300(1)2 45Localid12PartnerIDPartnerCOC-SLOT34/O.JS7conned|TypeSIMATIC300(1S7connect!HlReady_2/1from2selected[insertChg圖2.18WinLC與其它通訊伙伴的連接Find: |SelectionofthenetworlEPROFIBUSDP邸PROFIBUS-PA畝“ClStationsffl'C~lSubnetsPROFIBU5-DPslavesI▼IandC7(distributedrack網(wǎng)絡組態(tài)好后,應編譯和存盤。要將所組態(tài)的連接信息卜-載到站點,可點擊菜單“PLC->Downloadtocurrentproject->ConnectionsandGatewaysw來完成。三通訊編程建立連接后,便可在程序中調(diào)用通訊類型的系統(tǒng)功能塊來實現(xiàn)WinAC與通訊伙伴間的數(shù)據(jù)交換??墒褂肂SEND(SFB12)、BRCV(SFB13)、USEND(SFB8)、URCV(SFB9)、GET(SFB14).PUT(SFB15)等系統(tǒng)功能塊。卜.表為這些通訊類型的簡要描述。通訊類型SFBs描述最大數(shù)據(jù)BSENDBRCVSFB12SFB13帶應答的數(shù)據(jù)傳送到遠程方。發(fā)送方必須執(zhí)行BSEND,接收方必須執(zhí)行BRCVo64KUSENDURCVSFB8SFB9不帶應答的數(shù)據(jù)傳送到遠程方。發(fā)送方必須執(zhí)行USEND,接收方必須執(zhí)行CRCV。400bytesGETSFB14從遠程CPU讀數(shù)據(jù),不需要在遠程CPU調(diào)用另外的通訊程序。400bytesPUTSFB15將數(shù)據(jù)寫到遠程CPU,不需要在遠程CPU調(diào)用另外的通訊程序。400bytesCONTROLSFC62S7通訊連接的查詢狀態(tài)N/A如何調(diào)用和使用這些系統(tǒng)功能塊,請參看相應的手冊。2.4WinAC操作面板無論是軟件型WinAC還是插槽型WinAC,安裝完成WinAC后,都出現(xiàn)一個WinAC操作面板,在此面板上包含菜單、按鈕、指示燈等。通過此而板,可監(jiān)控WinAC上的總線狀態(tài)、有無內(nèi)部和外部錯誤,以及顯示診斷緩沖區(qū)。圖2.19即為WinAC的操作面板,左半部分為WinACBasis的操作面板,右半部分為WinACSlot的操作而板。p]cPU412-2lFileCPUHelpSIEMENSPSp]cPU412-2lFileCPUHelpSIEMENSPS?ON?BA.TFINTFEXTF6BUSF1-BUSF2'?FRCE<RUNSTOPIRUN-Pol[RUN?lISTUP?IRUN-Pol[RUN?lISTUP?lIMRESI按鈕面板上有四個按鈕:RUN-P:將WinAC設置成運行狀態(tài),并可在線編程。RUN:設置WinAC為運行狀態(tài),不可編程。STOP:將WinAC設置成停止運行。MRES:清除控制器中的所有內(nèi)容,包括硬件組態(tài)信息、程序部分、數(shù)據(jù)部分。指示燈ON:表示控制器已上電。BATF:指示W(wǎng)inACSlot的外部目池狀態(tài),當電池失效時,顯示紅色。對于WinACBasis,BATF一直都是不亮。INTF:控制器內(nèi)部錯誤,如程序錯誤、定時器或計數(shù)器錯誤等。EXTF:控制器外部故障,如硬件故障、參數(shù)分配錯誤、通訊故障、I/O故障等。BUSF1-BUSF4:表示W(wǎng)inACBasis子模塊的通訊總線或WinACSlot集成通訊口的通訊總線上是否有總線故障,例如總線站點地址是否沖突,或不存在配置的站點地址等。WinACBasis可帶四個子模塊,而WinACSlot只有兩個集成的DP口。

FRCE:當在Step7±對變量進行強制(Force)時,此指示燈亮,呈黃色,對于WinACBasis此指示燈無效。RUN:常亮時表示W(wǎng)inAC已在運行狀態(tài)。STOP:常亮時表示W(wǎng)inAC已處于停機狀態(tài)。當STOP常亮,而RUN指示燈在閃爍時,表示程序運行到某一斷點處。菜單File:Archive:存儲當前控制程序,當前系統(tǒng)配置,以及當前DB塊的數(shù)值到.wld文件。Restore:重新裝載以前歸檔文件到控制器中,包括系統(tǒng)配置、控制程序以及當前DB塊的數(shù)據(jù)。注意:需將控制器設置成Stop工作方式時才能操作這兩個菜單項。Minimize:將窗曰最小化。Exit:退出。點itj-Exit按鈕時,WinACBasis和WinACSlot表現(xiàn)不同。WinACBasis:如果WinAC己上電,單擊此菜單項將使窗曰放置在Windows的托盤中,雙擊托盤上的圖標可重新打開窗口。如果WinAC已關(guān)機(已執(zhí)行“ShutDownController"),將退出程序和美閉窗口。WinACSlot:關(guān)閉窗口,不影響控制器的控制。CPU:RUN-P、RUN、STOP與MRES同面板按鈕功能相同。TuningPanel:打開/關(guān)閉CPU運行參數(shù)調(diào)節(jié)而板,可設置WinAC優(yōu)先級、最小睡眠數(shù)據(jù)等。顯示W(wǎng)inAC占用的CPU時間、WinAC執(zhí)行時間和循環(huán)時間等。WinACSlot無此項。DiagnosticBuffer:打升?/關(guān)閉診斷緩沖區(qū)窗口。StartController:將控制器上電。WinACSlot的對應菜單指令為PowerOn。ShutDownController:將控制器斷電。WinACSlot的對應菜單指令為PowerOff。RegisterControllerforStartatPCBoot:設置成在系統(tǒng)重啟時自動使控制器上電。UnregisterControllerforStartatPCBoot:PC重啟時將不會自動啟動WinACo以上兩項只有在控制器斷電肘才可操作,WinACSlot無此兩項。Option:定制WinAC操作和設置操作WinAC的密碼。第三章WinACComputing和NETOPCWinAC提供了一套組件:WinACComputing。WinACComputing提供了訪問WinAC控制器的接口,它包含如下的部分:一組ActiveX控件。它提供了對WinAC控制引擎中數(shù)據(jù)的訪問。一個0PC服務器。它允許0PC客戶端程序WinAC控制器進行數(shù)據(jù)交換。即WinAC支持兩種OPC服務器:WinACComputingOPC服務器和SIMATICNETOPC服務器。?個變量表編輯器TagFileConfigurator。借助TagFile,訪問WinAC控制器數(shù)據(jù)時可以使用符號名。一個設置程序。它用于對遠程訪問數(shù)據(jù)進行設置。?—個OLE容器ComputingSoftContainero盡管WinACComputing使用更簡單,但由于WinAC新版本支持SIMATICNETOPC,而且NETOPC具有更好的性能和更強的功能,我們推薦使用NETOPC來訪問WinAC控制器的數(shù)據(jù)。安裝WinACBasis4.1和WinACSlot3.4時,并不會自動安裝WinACComputing,如果需要安裝WinACComputing,可打開WinAC安裝盤上的“WinCP”文件夾,運行此文件夾卜?的"Setup.exe"進行安裝。1WinACComputing設置設置Computing的訪問接U使用WinACComputing前,應對Computing的訪問點進行設置。啟動SIMATICNET下的設置程序"ConfigurationConsolew?選擇“Accesspoints”?雙擊■右邊數(shù)據(jù)窗U的“Computing"行,從打開的對話框中選擇“PCinternal(local)M,單擊“OK”關(guān)閉對話框,結(jié)果如圖3.1所示。WinAC控制器和WinACComputinguf以安裝在不同的PC機上,以支持遠程訪問WinAC控制器的數(shù)據(jù)。不論WinAC控制器WinACComputing是否安裝在同一PC機上,都要將Computing的訪問接口設成"PCinternal(local)n?ComputingConfiguration使用WinACComputingOPCServer前應設置OPC服務器。點擊"start"->"Simatic"->"PCBasedControlw->“ComputingConfigurationM打開Computing的設置程序,在“OPC”選項卡上有一連接選擇項,選擇是通過變量文件連接還是直接連接,如圖3.2所示。如果通過標簽文件連接,在這之前還應使用“ComputingTagFileConfigurator"創(chuàng)建標簽文件。選擇直接連接有兩項內(nèi)容要求輸入:Computername:此處輸入的是被訪問的WinAC控制器的計算機名,也可以是計算機的IP地址,如果訪問本機WinAC控制器的數(shù)據(jù),“Computername”的值也可以是“〈Local〉”o?ControlEngine:WinAC控制器的類型。WinACBasis:輸入“WinLC”。WinACRTX:輸入“wcS7=2”。WinACSlot:輸入“wcS7=3”。圖3.1設置WinACComputing的訪問接口圖3.2設置OPC的連接選項圖3.2的設置值表示:通過ComputingOPC方式訪問WinAC數(shù)據(jù)時,它訪問的是本機上的WinACBasis控制器中的數(shù)據(jù)。wComputingConfiguration"程序的選項卡“Computing"在新的版本中已不使用。3.2組態(tài)標簽文件使用標簽文件不但可以采用符號的方式訪問WinAC控制器中的數(shù)據(jù),還可以使用OPC客戶端程序訪問多個WinAC控制器中的數(shù)據(jù)。我們舉一個例子,首先在Step7中定義了如圖3所示的符號表。滂口1昌|晶路僵9C||aIISymbols司%|W?Symbol/AddressData-typeComment1inc_button1 0.0BOOL2one_secjncMW10IhlT3one_sec_pulseM0.0BOOL4T1TIMER5豪SymbolEditor-[57Program(l)(Symbols)—demol\COC-5LOT34\WinL..^5H^3壁5ymbolTableEditInsertViewOptionsWindowHelp -沽|x|PressFltogetHelp. | |如圖3.3Step7的符號表然后,在WinAC中建立組態(tài)標簽。單擊"PCBasedControl"下的“ComputingTagFileConfigurator",打開WinAC的符號表編輯器,程序自動新建一個標簽文件。右鍵單擊此標簽文件視圖窗口的左邊,從彈出菜單中選擇“InsertProgram”,打開選擇step7源程序的對話框,從中選擇要進行WinAC符號標定的程序,單擊?按鈕一2將文件選入右邊窗口。結(jié)果如圖3.4的底層窗曰所示,從中可以看到Step7符號表中的變量已包含其中。右鍵單擊窗口左邊的文件“C0C-SL0T34_WinLC”,從菜單中選擇“Edit”,打開“controlEngineConfiguration"對話框,按照3.1節(jié)描述的方法設置計算機名和控制器,如圖3.4中的頂層窗口所示的。直|FileInsertControlEngineViewOptionsWindowHelp腿?遂1電Sym'bol]Addressq|直|FileInsertControlEngineViewOptionsWindowHelp腿?遂1電Sym'bol]Addressq|ixic_buttQn I 0.0Qione_Eec_inc 10苴]onesecpulse M 0.0Olone_sec_timer T 14」_點TagFileConfigurator-[TagSource1]ComputerMame|<Local>ControlEngine|tfinl£~ControlEngineSymbol|C0C-SL0r34VinLC~律ControlEngineConfigurationOK2004-10-26 14:42圖3.4組態(tài)標簽文件如有需要可以添加新的文件(在同一標簽文件下)并進行設置,完成后存盤退出。標簽文件的擴展名為.tsd。標簽文件創(chuàng)建后便可與圖3.2中的標簽源文件連接,之后可以通過符號的方式訪問WinAC控制器中的數(shù)據(jù)。為了說明本章后而部分的內(nèi)容,我們舉一個例子,其中系統(tǒng)組態(tài)同第二章。在Step7中編寫一段代碼,其完成的功能是:當10.0為l(true)時,每一秒鐘將mwlO的值加1。當mwl0=10000時,將mwlOO清零。0B1循環(huán)中的代碼:AI0.0ANM0.0LS5T*1SSDT1AT1=M0.0ANM0.0JCmOOlL1LMW10+1TMW10L10000<1JCmOOlL0TMW10mOOl:NOP03.3ComputingSoftContainerComputingSoftContainer為--OLE容器,在它的窗體上只能放置WinACComputing提供的ActiveX控件。使用ComputingSoftContainernJ以生成簡單實用的HMI界而窗口。

運行程序組"PCBasedControlw卜的程序ComputingSoftContainer。在ComputingSoftContainer的工具欄上除了常規(guī)的按鈕以外還有WinACComputing所帶的ActiveX控件圖標,這些ActiveX控件還可用在可作為OLE容器的程序上,如VisualBasic、WinCC等。S7WCPanel:WinAC操作面板控件。S7Data:WinAC控制器數(shù)據(jù)訪問控件。Dbuffer:診斷緩沖區(qū)。此外還有用于顯示和操作數(shù)據(jù)的控件。卜?而的步驟描述如何在窗體上顯示上節(jié)的iO.0和mwlO兩個數(shù)據(jù)。在窗體上添加一個S7Data,一個Button和一個Edit。雙擊窗體上的S7Datal對象,從彈出的窗口中選擇“Engine”選項卡。選中通過標簽文件進行連接,并選擇上節(jié)保存的文件名作為標簽文件。如圖3.5所刀<O選中Connections選項卡,分別設置對象Buttonl和Editl的value屬性值。這里我們將Buttonl的value設成uCOC-SLOT34_WinLC.inc_button(即10.0),將Editl的value值設成“COC-SLOT34_WinLC.one_sec_inc(即MW10)。結(jié)果如圖3.6所示。單擊“0K”退出設置窗口。圖3.5選擇連接方式為標簽連接

SiemensS7DataControlGeneral]EngineConnectionsjEvents|Name]-inix|-Ifflx|Controls:S7Soft1白?.S7Data1S-Buttonl=Value白“EditlValue」Delete|Filter...|Deadband:Automaticwritemode:0KSiemensS7DataControlGeneral]EngineConnectionsjEvents|Name]-inix|-Ifflx|Controls:S7Soft1白?.S7Data1S-Buttonl=Value白“EditlValue」Delete|Filter...|Deadband:Automaticwritemode:0KCancelApplj?|HelpPApplyfiltertopropertiesluesiynpTuararAssignedVariable:jCDOSLDT34_WinLC.one_$eG_inGErowse...||S7Data1OFF6,4圖3.6設置時象的value屬性值(5)鼠標單擊工具欄上的按鈕,,運行程序,結(jié)果如圖3.7所示。在Editl對象中顯示MW10的計數(shù)值,Buttonl對象表示10.0的狀態(tài),還可.以用鼠標操作改變10.0的狀態(tài),用鍵盤輸入更改MW10的值。其它控件的使用方法可參考WinACComputing手冊。圖3.圖3.7ComputingSoftContainer的運行效果3.4通過0PC方式訪問WinAC中的數(shù)據(jù)0PC即基于過程控制的OLE。從2.0版本開始,OLE基于微軟的COM(組件對象模型)技術(shù),所以0PC也基于COM技術(shù)。WinAC支持WinACComputing0PC和SIMATICNETOPC。編寫同一功能不同OPC服務器的0PC客戶端程序大體相同。SIMATICNET0PC提供DA(數(shù)據(jù)訪問)、A&E(報警和事件)服務;Computing0PC提供DA服務。SIMATIC的這兩個OPC服務器都支持定制接曰和自動化接口,定制接口只支持用C/C++編寫的客戶應用程序,自動化接口則支持更上層的應用,如VisualBasic以及Excel等支持VBA的所有應用程序。兩種接口的數(shù)據(jù)訪問服務都支持用同步和異步的方法讀取數(shù)據(jù)。在下面的三節(jié)中,我們將分別介紹如何使用WinACComputing控件,WinACNet0PC控件,以及通過編寫WinACComputing和WinACNetOPC客戶端程序代碼(不調(diào)用控件)訪問WinAC的數(shù)據(jù)。3.5在VisualBasic中使用WinACComputing的控件WinACComputing的ActiveX許多方法和屬性,在高級語言中可很容易的使用這些控件。本竹描述如何在VisualBasic6.0中使用WinAC的數(shù)據(jù)訪問控件。打開VisualBasic6.0,右祖單擊控件工具欄的空白處,從彈出菜單中選擇**ComponentM,打開uComponentsw對話框,選擇如圖3.8所示的Computing控件。ComponentsX1Controls|Designers|InsertableObjects|SiemensS7LabelControlHSiemensS7NumberControl05iemens57PanelControlSiemens57Pro5imControlSiemensS/ProSimPanelControl口5iemens57vbButtonControlSiemens57vb5liderControlSiemensS7wccetxControl口5iemens57WcinbxControl0Siemens5IMATICDataControl0SiemensSIMATICDiagnosticBufferControlSiemensSIMATICRecorder5iemens5IMATICUserControls4| 1SiemensSIMATICDataControl云三H屈同打.霆_j暨ODOODBrowse...廠SelectedItemsOnlyLocation:C:\...\SIEMEN5\Common\OCX\S7wcdatx.ocxOK|CanE|Apply圖3.8在VB口安裝ActiveX控件單擊“OK”關(guān)閉對話框后在控件欄上將添加剛才所選的控件。在窗體上添加一個S7Data對象,以及一些按鈕、文本框,和一個列表框來實現(xiàn)卜.列例子程序,設計窗體見圖3.9。在編寫代碼前,還必須設置S7Datal對象的屬性,在圖3.5所示的“Engine”選項卡上,我們這一次選擇直接連接。PCName設為“〈Local〉”,ControlEngine設為“WinLC”。圖3.9VB的設計窗體例1.讀變量的操作PrivateSubbtnRead_Click0Dimrl,statelAsLong'下面的語句為讀變量,第一參數(shù)為變量的地址,第二個參數(shù)存放結(jié)果rl=S7Datal.ReadVariable(vmwlO:int*,vl,statel,0)'txtRead為TextBox的對象txtRead.Text=vlEndSub例2.寫變量的操作PrivateSubbtnWrite_Click()DimrlAsLongvl=txtWrite.Text'第一參數(shù)為變量的地址,第二個參數(shù)存放結(jié)果rl=S7Datal.WriteVariableC^mwlO:int*,vl,0)EndSub例3.讀取多個在step?中有連續(xù)存儲位置的操作PrivateSubbtnArrayRead_Click()Dimrl,statelAsLong'讀3個實數(shù)rl=S7Datal.ReadVariable(vmdl00:real[3]*,vl,statel,0)Listl.ClearFori=0To2Listl.Additem("md"&100+i*4&"="&vl(i))NextiEndSub例4.讀取多個在step?中有連續(xù)存儲位置的操作PrivateSubbtnArrayWrite_Click()DimrlAsLongDimvl(3)AsVariantFori=0To2

vl(i)=txtArrayWrite.TextNexti'寫3個實數(shù)rl=S7Datal.WriteVariable(*mdlOO:real[3]vl,0)EndSub例5.一次讀多個不連續(xù)的變量PrivateSubbtnReadMul_Click(>Dimnamel(3)AsStringnamel(0)-*m0.0:bool*namel(1)="mwl0:int”namel(2)=*mdl00:real*'一次讀多個變量函數(shù)rl=S7Datal.ReadMultiVariables(namel,vl,statel)Listl.ClearFori=0To2Listl.Additem(namel(i)&*=*&vl(i))NextI例6.一次寫多個不連續(xù)的變量PrivateSubbtnWriteMu1_C1ick()DimrlAsLongDimvl(3)AsVariantDimnamel(3)AsStringnamel(0)="iO.0:bool"namel(1)="mwl0:int”namel(2)=*mdl00:real*vl(O)=Falsevl(l)=100vl(2)=9.999rl=S7Datal.WriteMultiVariables(namel,vl,statel)EndSub例7.變量有變化時作出反映步驟1.右鍵單擊窗體上的S7Datal對象,從彈出菜單中選擇“Properties"<>打開S7Datal對象的屬性設置對話框,選擇“Event”選項卡上的“S7Datal”,單擊按鈕“Add”,添加一變星的別名,回到“Event選項卡,選擇剛創(chuàng)建的變量別名,在窗口右邊的"AssignedVariable"編輯框中輸入要監(jiān)控變量的地址,如“mwl2”,如有需要可修改刷新時間和死區(qū)。按同樣的方法添加另一監(jiān)控的變量,結(jié)果如圖3.10所示。單擊“0K”關(guān)閉對話框。

圖3.10監(jiān)控變量值變化事件步驟2.在代碼窗曰的對象組合框中選擇“S7Datal”,事件組合框中選擇“ValueChanged”,添加事件處理程序代碼如下。PrivateSubS7Datal_ValueChanged(ByVaiPropertyAsString,ByVaiVarNameAsString,ByVaiValueAsVariant,ByVaiQualityAsInteger)IfVarName= ThenMsgBox"mwl2changed”ElselfVarName= ThenMsgBox"mwl4changed*EndIfEndSub3.6SIMATICNETOPC控件可以使用相同的接口來訪問S7-300/400和WinAC控制器,即SIMATICNET0PCo通過NETOPC來訪問WinAC的數(shù)據(jù)不需要另外的授權(quán)和硬件。NETOPC除了提供定制和自動化接口來訪問控制器的數(shù)據(jù)外,還提供一個ActiveX控件方便使用。SIMATICNET提供一個工具CPCScout,它是一個簡單的SIMATICOPC客戶端工具軟件,可瀏覽存在的SIMATICOPC服務器名稱、添加OPC組、添加項、監(jiān)控項值等功能。在圖3.8所示的添加控件窗曰中添加名稱為“SMIATICNETOPCDATA"控件。在窗體上添加一個DatCon對象DatConl以及若干按鈕、文本編輯框?qū)ο?、列表框。打開DatConl的屬性設置窗口,選擇“OPCServer”選項卡,Server編輯框中輸入OPC服務器名稱“OPC.SimaticNet”("OPC.SimaticNet”是SIMATICNET作為OPCSERVER的服務器主件的名稱),在Node編輯框中輸入計算名“COC-SLOT34",如圖3.11所示。

圖3.11設置NETOPCDATA控件的服務器和計算機名例1.讀數(shù)據(jù)PrivateSubbtnRead_Click()Dimrl,qlAsLongDimstrname(2)AsStringDimtimelAsDate'讀單個變量rl=DatConl.ReadVariable('S7:[S7connection_l]MINT10,1*,vl,ql,timel)Textl.Text=vl'讀多個變量strname(0)="S7:[S7connection_l]MINT10,3*strname(1)="S7:[S7connection_l]dbl,REALO,3*rl=DatConl.ReadMultiVariables(strname,v2,e2,q2,timel)fori=0to2forj=0to2listl.Addltem(v2(i)(j))NextjNextiEndSub讀取變量的格式為“S7:[連接名]數(shù)據(jù)區(qū)數(shù)據(jù)類型起始地址,數(shù)量”連接名在網(wǎng)絡組態(tài)時已確定,在圖2.18中的連接名為“S7connection-l"?!盨7:[S7connection_l]MINT10,3"表示讀取mwlO開始的3個整數(shù)值。”S7:[S7connection_l]dbl,REALO,3"表示讀取dbl.dbdO開始的3個浮點數(shù)值。例2.寫數(shù)據(jù)PrivateSubCommand2_Click()DimrlAsLongDime2,q2AsVariant

Dimstrname(2)AsStringDimv2(2)AsVariantstrname(0)=*S7:[S7connection_l]MINT10,1*strname(1)=*S7:[S7connection_l]DBl,REALO,1*v2(O)=100v2(l)=2.2rl=DatConl.WriteMultiVariables(strname,v2,e2)EndSub3.7編寫WinACComputingOPC和SIMATICNETOPC客戶端程序要編寫OPC客戶端程序,先引用OPC的DLL文件。單擊VisualBasic6.0菜單"Project"->uReference**,打開引用對話框,將"SiemensOPCDAAutomation2.0”選中。如圖3.12所示。如果這個組件沒有在列表框出現(xiàn),可能的原因是組件沒有注冊,可以使用Windows附帶的程序regsvr32.exe進行注冊,SIMENSOPC自動化組件包含在SOPCDAAuto.DLL庫中。編寫這兩種OPC的客戶端程序只有兩項不同,一個是服務器名稱,另一個是項名稱(可以認為是變昂名")。ComputingOPC的服務器名稱為"OPCServer.WinAC"。SimaticNETOPC的服務器名稱為“OPC.SimaticNET"。SimaticNETOPC的項名稱和在3.6廿中描述的類似,形如:SetItemObjl=GroupObj.OPCItems.Additem(*S7:[S7connection_l]MINT10*,1)SetItem0bj2二GroupObj.OPCItems.AddItemC*S7:[S7connection_l]DBl,REALO*,2)ComputingOPC的項名稱在3.5節(jié)有介紹,形如:SetItemObjl=GroupObj.OPCItems.AdditemCW10:INT*,1)SetItem0bj2=GroupObj.OPCItems.AddItem("DBl.DBDO:REAL",2)

圖3.12引用SIEMENSOPC數(shù)據(jù)訪問自動化組件在安裝SimaticNET的目錄下(如c:\programfiles\siemens\simatic.net\opc2\samples)下有如何編寫OPC客戶端程序的例子程序。第四章WinCC訪問WinAC4.1WinCC與WinAC安裝在相同的PC機上WinCC提供了專門的通道單元來訪問WinAC控制器中的數(shù)據(jù)。如果WinAC與WinCC安裝在同一臺PC機上,使用“SIMATICS7PROTOCOLSUITE”下的通道單元“SoftPLC”和“SlotPLC”,WinACBasis和WinACRTX使用SoftPIC通道,WinACSlot412/416使用SlotPLC通道。在WinCC建立與WinAC連接時,應該注意其屬性設置,由于WinCC與WinAC安裝在同一PC機上,它們是通過內(nèi)部通道進行通訊的,因此設置連接參數(shù)時與WinAC的站地址無關(guān)。在通道單元SoftPLC和SlotPLC連接屬性中的站地址和插槽號應相同,且都為WinAC在PC站中的虛擬插槽號(即StationConfigurationEditor中的索引號)。默認時,WinACBasis/RTX插在虛擬插槽2中,WinACSlot插在虛擬插槽3中。WinCC在默認情況卜,也已正確設置了站地址和插槽號。如圖4.1即為WinCC連接WinACBasis/RTX的設置,站地址與插槽號都設置成2,即WinAC在PC站中的虛擬插槽號2o圖4.1SoftPLC通道連接屬性參數(shù)

圖4.2%WinCC連接WinACSlot時的參數(shù)屬性,站地址與插槽號都為3,即WinACSlot在PC站中的虛擬插槽號。圖4.2SlotPLC通道連接屬性參數(shù)4.2WinCC與WinAC安裝在不同的PC機上WinCC與WinAC安裝在不同的PC機上時,根據(jù)這兩臺PC機的不同連接選擇不同的通道單元,這時可把WinAC當作一臺PLC站來處理。連接屬性中的插槽號為PC站的虛擬插槽號(即WinACBasis/RTX為2,WinACSlot為3)。站地址(對于PR0FIBUS和MPI而言)為WinAC站上與WinCC相連的CP卡的站地址。以太網(wǎng)地址或IP地址(對于以太網(wǎng)連接而言)為WinAC站上與WinCC相連的網(wǎng)卡的MAC地址或IP地址。WinAC與第三方HMI軟件的通訊方式可用那些適用于SIMATICS7控制器的通道,也可使用0PC通道。第五章WinACODKWinACODK4.1是一個專用于WinAC的開發(fā)工具,使用這個工具可以將C/C++程序經(jīng)編譯連接后嵌入到WinACBasis/WinACRTX的PLC程序中,還可以編寫應用程序與WinAC進行快速的數(shù)據(jù)交換、監(jiān)控WinAC狀態(tài)以及控制WinAC操作而板。WinACODK4.1包括三個組件:?定制代碼擴展(CCX)?共享內(nèi)存交換(SMX)?控制器管理接口(CMD定制代碼擴展(CCX:CustomCodeExtension)WinACODK提供了一個向?qū)В褂迷撓驅(qū)Э缮蒝isualC++6.0或Visual.NET的工程,在VisualStdio集成升發(fā)環(huán)境卜?編譯連接后,生成動態(tài)鏈接庫。在WinAC的Step7程序中利用2個系統(tǒng)功能塊SFB65001和SFB65002便可調(diào)用動態(tài)鏈接庫中的函數(shù)。該功能可用于軟件型WinAC(WinACBasis和WinACRTX),但不能用于插槽型WinACo卜.面將以例子來說明如何生成和調(diào)用。將SteP7中的數(shù)據(jù)mw20和mw22作為被加數(shù)和加數(shù)傳給動態(tài)連接庫,由動態(tài)連接庫中的函數(shù)將這兩個數(shù)相加后送回SteP7的mw24中。圖5.1應用程序類型和開發(fā)工具類型1.運行“PCBasedControl”程序組下的“WinACODKAppwizard",打開ODK動態(tài)鏈接庫生成向?qū)?,單擊“Next”,日現(xiàn)如圖5.1所示的項目信息窗口,在“Name”編輯框中輸入項目的工程名稱,“Directory”框中選擇工程存放目錄,應用程序類型選擇“CCX”,編譯器類型選擇“VisualC++6.0”,如圖5.1所作的選擇,單擊“Next”進入一步。在“CCXSubcommandsM窗口中,可創(chuàng)建函數(shù)給Step7調(diào)用,默認時只有一個函數(shù),根據(jù)實際需求可創(chuàng)建多個,創(chuàng)建時可以給函數(shù)名稱取一個有意義的名字。每一個函數(shù)都有函數(shù)索引號,Step7調(diào)用這些函數(shù)時必須輸入函數(shù)的索引號。在圖5.2上,我們建立名為"Addlnt”的函數(shù),它的函數(shù)索引號為0。iffCCXSubcommands-CCXCommands EachCCXobjectcanhavemultiplesubcommandsassociatedwithit.Pleaselistthesubcommandsandthecommandindexfore-achcommandyouwouldliketheapplicationwizardtogenerate.STEP7referencesthecorrmandsusingtheGommandindex.CommandListManne|CommandIndewAddAddlnt0Delete圖5.2添加函數(shù)單擊"Next"進入“AsynchronousProcessing"窗口,在此窗口中指明動態(tài)鏈接摩是否包含異步處理器,異步處理器是指在后臺運行的一個Windows線程,這個線程可以處理多個事件,多個事件在隊列中等待異步處理器的處理。當有一個事件產(chǎn)生時,如果異步處理器正在處理其它的事件,則當前產(chǎn)生的事件進入到事件隊列等待處理。某一個事件處理完,異步處理器就將該事件從隊列中刪除,并從隊列中取出下一個事件繼續(xù)處理。如果程序中有包含異步處理器,可?指定異步處理器線程的優(yōu)先級,以及創(chuàng)建多少個異步事件。比較耗時的非經(jīng)常性操作,如磁盤操作、數(shù)據(jù)庫查詢等放在異步處理器中執(zhí)行。本例不使用異步處理器。直接單擊“Next”進入下一步。在“AsynchronousMonitoringM窗口中,可'指明動態(tài)鏈接庫程序中是否要包含異步監(jiān)控,可以同時生成多個異步監(jiān)控,每個異步監(jiān)控都是在后臺運行的一個Windows線程,這些線程都是在后臺循環(huán)運行,它不影響0B1塊(或其它組織塊)的執(zhí)行時間。比較耗時的且要求循環(huán)執(zhí)行的操作放在異步監(jiān)控中執(zhí)行,如串口通訊、Socket通訊等。本例不使用異步處理器。直接單擊“Next”進入下一個窗口?!癡endorInformation"窗口中,我們不輸入任何內(nèi)容單擊“Next”后,在下一窗口中單擊“Finish”完成向?qū)У母鱾€步驟。在VisualC++6.0中打開剛才創(chuàng)建的工程,找到在第二步中添加的“Addlnt”函數(shù),如果工程名為demo1,"Addlnt"在demolfunc.cpp文件中。在此函數(shù)體中輸入如圖5.3所示的代碼。

demol-MicrosoftVisualC++-demol-MicrosoftVisualC++-[demo1Func.cpp]留)FileEditViewInsertProjectBuildToolsWindowHelp [刖x|管I思SSl匪@I4R-I匝回官I鈾「(Globals) 刁|(Allglob?members▼,拿Addlnt ^1*1Globals _±1..Activale(ODK_C?|Addlnt(CWinLCF0DeActivateODIIMain(HINSTZ1■ExecutefunsignODKCreateCyt&ODKCreateThr0ODK_DeleteCy(§ODKReadDataODKReadStatt1[ODKSchedule!^1■i?CL.|gR...HFi...//HandleP//thecont//Function//HandleF//canbea//theCWin//HandleP//thecont//Function//HandleF//canbea//theCWin|short|shortsummand,addend,sum;Output.0DK_ReadS7INT(0ysummand);Output.0DK~ReadS7INT(2,addend);sum=short(summand+addend);Output.0DK_WriteS7INT(4,sum);returnODK~SUCCESS; gReady |Ln203,Col4〕REC|COI|OVR〔READ影圖5.3在VisualC++中編寫的相加函數(shù)Addlnt函數(shù)中的參數(shù)Input,Output是與PLC程序進行數(shù)據(jù)交換時的對象變量,Input參數(shù)數(shù)據(jù)只能從Step7傳給C++,而Output參數(shù)數(shù)據(jù)既可以從Step7傳給C++,也可以從C++傳給Step7o圖中代碼的含義是:先定義三個短整數(shù)的變量,被加數(shù)從輸出緩沖區(qū)偏移地址為0處讀取,加數(shù)從輸出緩沖區(qū)偏移地址為2處讀取,輸入輸出緩沖區(qū)的偏移地址以字節(jié)為單位。將兩數(shù)相加后的

溫馨提示

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

評論

0/150

提交評論