wincc-c語言基礎(chǔ)課件_第1頁
wincc-c語言基礎(chǔ)課件_第2頁
wincc-c語言基礎(chǔ)課件_第3頁
wincc-c語言基礎(chǔ)課件_第4頁
wincc-c語言基礎(chǔ)課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本章主要內(nèi)容

2.1C腳本的開發(fā)環(huán)境

2.2變量

2.3運(yùn)算符和數(shù)學(xué)函數(shù)

2.4指針

2.5循環(huán)和條件語句

2.6函數(shù)

2.7結(jié)構(gòu)

2.8WinCCAPI2.9

2.10WindowsAPI2.11標(biāo)準(zhǔn)對話框

2.12

1wincc_c語言基礎(chǔ)2.1C腳本的開發(fā)環(huán)境圖形編輯器的動(dòng)作編輯器用于在對象處創(chuàng)建C動(dòng)作。創(chuàng)建C動(dòng)作的步驟如下:1)打開圖形編輯器。2)選擇期望的屬性或事件。3)編寫執(zhí)行期望計(jì)算的函數(shù)主題、動(dòng)作。4)翻譯已完成的函數(shù)。5)對于為對象屬性創(chuàng)建的C動(dòng)作,必須定義觸發(fā)器。對于為對象事件創(chuàng)建的C動(dòng)作,由于事件本身就是觸發(fā)器,所以不用再定義觸發(fā)器6)通過單擊動(dòng)作編輯器的確定按鈕,可將已編寫的C動(dòng)作放置在期望的屬性或事件處。通過C動(dòng)作動(dòng)態(tài)化的屬性或事件將用綠色箭頭標(biāo)記。2wincc_c語言基礎(chǔ)全局腳本編輯器全局腳本編輯器用于創(chuàng)建項(xiàng)目函數(shù)、標(biāo)準(zhǔn)函數(shù)和動(dòng)作。建立項(xiàng)目函數(shù)的步驟如下:1)打開全局腳本編輯器。2)選擇項(xiàng)目函數(shù)條目,單擊鼠標(biāo)右鍵,從彈出式菜單中選擇新建→函數(shù)創(chuàng)建新項(xiàng)目函數(shù)的基本框架。3)項(xiàng)目函數(shù)可以完全由用戶進(jìn)行配置,沒有不能編譯的代碼段。編寫函數(shù)標(biāo)題,且函數(shù)必須有一個(gè)名稱,以便C動(dòng)作或其他函數(shù)調(diào)用。此外,必須指定返回值和函數(shù)所需的傳遞參數(shù)。

3wincc_c語言基礎(chǔ)4)編寫函數(shù)主題。5)編譯已完成的函數(shù)。6)與描述一起定義一個(gè)口令,以保護(hù)項(xiàng)目函數(shù)免遭未授權(quán)人員訪問。7)完成的項(xiàng)目函數(shù)用合適的名稱進(jìn)行保存。建立全局動(dòng)作的步驟如下:1)打開全局腳本編輯器。2)創(chuàng)建動(dòng)作的基本框架。3)編寫動(dòng)作主體。4)定義口令來保護(hù)項(xiàng)目函數(shù)免遭未授權(quán)人員的訪問。與函數(shù)相比,它還需要設(shè)置一個(gè)觸發(fā)器來控制動(dòng)作的執(zhí)行。5)保存完成的動(dòng)作。4wincc_c語言基礎(chǔ)測試輸出通過執(zhí)行程序來測試輸出,這樣便于在開發(fā)期間進(jìn)行故障檢測和錯(cuò)誤診斷。測試輸出可以通過printf()函數(shù)來啟動(dòng),通過該函數(shù),不但可輸出簡單文本,而且可輸出當(dāng)前變量值。Printf()函數(shù)至少一個(gè)參數(shù),該參數(shù)是一個(gè)字符串,要傳遞的附加類型和數(shù)量取決于該字符串。在prinft()函數(shù)中字符“%”用于在該位置插入變量值的標(biāo)識符,跟在字符“%”之后的字符確定變量的數(shù)據(jù)類型。5wincc_c語言基礎(chǔ)2.2變量變量變量是由程序處理的數(shù)據(jù)對象。變量只有在定義以后才能使用。在第一條指令可以執(zhí)行前,必須先定義程序中的所有變量。常量除變量之外,程序中也使用常量。它只是數(shù)值的直接使用。數(shù)據(jù)類型

Char為一個(gè)字節(jié),可以接受一個(gè)字符;Int為整型數(shù)值;Float為單精度型浮點(diǎn)數(shù);Double雙精度型浮點(diǎn)數(shù)。Int數(shù)據(jù)類型之前可以加關(guān)鍵字signed或6wincc_c語言基礎(chǔ)unsigned。關(guān)鍵字signed代表有符號數(shù),關(guān)鍵字unsigned代表無符號數(shù)。Int數(shù)據(jù)類型之前也可以加關(guān)鍵字long或short.這些關(guān)鍵字也可以不帶int而單獨(dú)使用,其含義仍然相同。Short(或shortint)數(shù)據(jù)類型的變量需要2個(gè)字節(jié)的存儲空間,long(或longint)數(shù)據(jù)類型的變量與int數(shù)據(jù)的變量一樣需要4個(gè)字節(jié)的存儲空間,然而double數(shù)據(jù)類型的變量需要8個(gè)字節(jié)的存儲空間。每種數(shù)據(jù)類型都可以顯示某一數(shù)值范圍的數(shù)值,其區(qū)別在于不同的數(shù)據(jù)類型所需的存儲空間不同,以及是有符號還是無符號數(shù)據(jù)類型。7wincc_c語言基礎(chǔ)各數(shù)據(jù)類型的數(shù)值范圍如下:Int

2147483648~2147483647Unsignedint0~429967295Short

32768~32767Unsigtnedshort0~65535Long

2147483648~2147483647Unsignedlong0~4294967295Char

128~127(所有的ASCII字符)Unsignedchar0~225(所有的ASCII字符)float

10^38z~0^38double

10^308~0^3088wincc_c語言基礎(chǔ)WinCC變量及C的數(shù)據(jù)類型9wincc_c語言基礎(chǔ)靜態(tài)變量和外部變量1.靜態(tài)變量

C變量在定義后才能在函數(shù)中生效。在函數(shù)終止后,它又變成無效。如果再次調(diào)用該函數(shù),則將會(huì)再生成C變量。然而,如果在變量前加關(guān)鍵字static,則在兩次函數(shù)調(diào)用之間保留該變量,因此,它將保留其值。然而對于C動(dòng)作,只有選擇了WinCC畫面,靜態(tài)變量才會(huì)有效。如果撤消選定畫面,則靜態(tài)變量變成無效。再次打開畫面后,在C動(dòng)作期間將會(huì)再次生成靜態(tài)變量。10wincc_c語言基礎(chǔ)2.外部變量

C變量只能在定義它的函數(shù)內(nèi)訪問。然而,如果在任何函數(shù)以外定義變量,則該變量將成為全局(外部)變量。于是,在任何函數(shù)中都可以利用關(guān)鍵字extern來申明變量并且可以訪問它。函數(shù)CreateExternalTags()只用于定義和初始化一個(gè)int類型的外部變量。11wincc_c語言基礎(chǔ)2.3C中的運(yùn)算符和數(shù)學(xué)函數(shù)

運(yùn)算符1)數(shù)學(xué)運(yùn)算符。2)按位運(yùn)算符。這些運(yùn)算符使得可以對變量中的各個(gè)位進(jìn)行設(shè)置、查詢或重新設(shè)定。3)邏輯運(yùn)算符。所有的邏輯運(yùn)算符都遵循相同的原則:0表示假,所有其他數(shù)都表示真。這些運(yùn)算符不是生成0(假)就是生成1(真)。

數(shù)學(xué)函數(shù)在”內(nèi)部函數(shù)”→“c”-”bib”→“math”中可選擇數(shù)學(xué)函數(shù)。

12wincc_c語言基礎(chǔ)2.4指針

指針是C語言的重要組件。指針是包含地址的變量,通常該地址是另一個(gè)變量的地址。定義指針就像定義普通變量一樣,但是指針指向的數(shù)據(jù)類型名稱要添加單目字符*,不得將此字符誤認(rèn)為是用與乘法運(yùn)算的雙目運(yùn)算符*。在以下程序代碼中,定義了int數(shù)據(jù)類型的指針變量。

Int*piValue=NULL;

要使指針指向int數(shù)據(jù)類型的變量,必須將變量的地址分配給它。這通過單目運(yùn)算符來完成。單目運(yùn)算符又稱為地址運(yùn)算符。此運(yùn)算符返回變量地址,而不是變量值。13wincc_c語言基礎(chǔ)

在以下程序代碼中,將數(shù)據(jù)類型為int的變量的地址分配給指針。PiValue=&iValue;

可以通過單目運(yùn)算符*(也稱為內(nèi)容運(yùn)算符)來實(shí)現(xiàn)對指針?biāo)赶虻淖兞恐档脑L問。在以下程序代碼中,將指針指向的變量值分配給一個(gè)數(shù)據(jù)類型為int的變量。

IValue==*piValue;14wincc_c語言基礎(chǔ)2.5循環(huán)和條件語句

1.循環(huán)語句(1)while

只要條件滿足,就重復(fù)執(zhí)行循環(huán)。

Inti=0;while(i<5){//dosomething++i;}15wincc_c語言基礎(chǔ)(2)do-while

該循環(huán)至少執(zhí)行一次,然后只要條件滿足就重復(fù)執(zhí)行。

inti=0;do{//dosomething++I;}while(i<5);16wincc_c語言基礎(chǔ)(3)for

只要條件滿足,就重復(fù)執(zhí)行循環(huán)。循環(huán)計(jì)數(shù)器的初始化以及循環(huán)計(jì)數(shù)器的運(yùn)算過程可以在循環(huán)內(nèi)用公式表示。

inti=0for(i=0,i<5,i++){//dosomething}17wincc_c語言基礎(chǔ)2.條件語句(1)If-else

如果條件為真就處理if分支中的語句。如果條件不合適,就執(zhí)行else分支中的語句。如果沒有另一個(gè)要執(zhí)行的語句,也可以省略else分支。

If(i<5){//dosomething}else{//dosomethingelse}18wincc_c語言基礎(chǔ)(2)switch-case

在這種情況下,檢查變量是否匹配。switch指定要檢查的變量。程序檢查哪一個(gè)case分支與變量的值一致,然后執(zhí)行該case分支??梢远x任意case分支。每個(gè)case分支必須以break結(jié)束??梢赃x擇插入default分支。如果要檢查的變量的值與任何case分支都不一致,則執(zhí)行此分支。

19wincc_c語言基礎(chǔ)

switch(i){case0://dosomethingbreak;case1://dosomethingbreak;default;//dosomethingdefaultbreak;}20wincc_c語言基礎(chǔ)2.6函數(shù)

對于經(jīng)常重復(fù)的語句,不必一次又一次地進(jìn)行編寫,它們可以移入一個(gè)函數(shù)。在WinCC中,函數(shù)可以創(chuàng)建為項(xiàng)目函數(shù)或標(biāo)準(zhǔn)函數(shù)。可以向函數(shù)傳送數(shù)值,函數(shù)根據(jù)這些數(shù)值將執(zhí)行相應(yīng)的語句。常數(shù)、變量可以傳送,只是將變量的數(shù)值傳遞給函數(shù)。函數(shù)不可以訪問變量本身。指針可以傳送,這使得函數(shù)可以訪問指針的變量。向量和結(jié)構(gòu)只能通過指針分配給函數(shù)。

21wincc_c語言基礎(chǔ)

函數(shù)可以只執(zhí)行語句而不返回?cái)?shù)值。如果是這樣,則返回值的數(shù)據(jù)類型為void。但如果是執(zhí)行計(jì)算,則確定的數(shù)值可以通過返回值返回給函數(shù)的調(diào)用者。如果是這樣,則可以返回?cái)?shù)值或其他地址。把數(shù)值返回給調(diào)用者的另一個(gè)選擇是將其寫入傳遞的地址區(qū)域。向量或結(jié)構(gòu)只能用這種方式來返回。數(shù)值參數(shù)的傳遞

下例中參數(shù)以數(shù)值的形式傳遞給函數(shù),結(jié)果也以數(shù)值的形式返回。22wincc_c語言基礎(chǔ)

項(xiàng)目函數(shù)MeanValue()doubleMeanValue(doubledValue1,doubledValue2,doubledValue3){doubledMeanValue;dMeanValue=(dValue1+dValue2+dValue3)/3;returndMeanValue;}

23wincc_c語言基礎(chǔ)在函數(shù)標(biāo)題內(nèi),將函數(shù)的名稱指定為MeanValue(),將三個(gè)double數(shù)據(jù)類型的變量傳送給函數(shù)。返回的也將是一個(gè)double數(shù)據(jù)類型的變量。接下來,將定義一個(gè)double數(shù)據(jù)類型的變量,將返回的值存儲在該變量中。對所傳送的三個(gè)值進(jìn)行累加,然后將結(jié)果除以3得該返回值。通過return語句,將結(jié)果返回給函數(shù)的調(diào)用者。24wincc_c語言基礎(chǔ)2.7結(jié)構(gòu)

結(jié)構(gòu)類型的定義除默認(rèn)數(shù)據(jù)類型以外,自定義的類型也可借助于結(jié)構(gòu)來進(jìn)行定義。在定義新的結(jié)構(gòu)類型之后,即可定義structExampleStruct數(shù)據(jù)類型的變量。如果可利用的不是結(jié)構(gòu)變量而是一個(gè)指向結(jié)構(gòu)變量的指針,則結(jié)構(gòu)的單個(gè)元素是可以訪問的,但必須確保指針指向一個(gè)有效的結(jié)構(gòu)變量或至少為其保留存儲空間。25wincc_c語言基礎(chǔ)2.8WinCCAPI

WinCC提供了一種廣義的API(應(yīng)用程序編程接口)。這是一種供應(yīng)用程序訪問,WinCC項(xiàng)目本身中也可使用WinCCAPI的函數(shù)。WinCC的每個(gè)應(yīng)用程序都提供了其自己的API,并位于一個(gè)或多個(gè)DLL中。DLL(動(dòng)態(tài)裝載庫)是一個(gè)動(dòng)態(tài)裝載的函數(shù)庫。在關(guān)聯(lián)的頭文件中,將提供DLL所包含的函數(shù)聲明。

26wincc_c語言基礎(chǔ)

在下面的程序代碼中,將顯示如何將DLL集成到C動(dòng)作或其他函數(shù)中。

#Pragmacode("PDLCSAPI.Dll")#include"pdlcsapi.h"

#pragmacode()

每個(gè)應(yīng)用程序的API函數(shù)可粗略地分為兩種不同的函數(shù)類型。這就是所謂的CS函數(shù)(組態(tài)系統(tǒng))和RT函數(shù)運(yùn)行系統(tǒng))。27wincc_c語言基礎(chǔ)2.9項(xiàng)目環(huán)境

在很多情況下,編制C動(dòng)作或其他函數(shù)均需要對文件路徑、本地計(jì)算機(jī)名稱等進(jìn)行詳細(xì)說明。然后,根據(jù)當(dāng)前環(huán)境,將這些值指定為絕對值。如果將項(xiàng)目

溫馨提示

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

評論

0/150

提交評論