wincc學(xué)習(xí)技巧_第1頁(yè)
wincc學(xué)習(xí)技巧_第2頁(yè)
wincc學(xué)習(xí)技巧_第3頁(yè)
wincc學(xué)習(xí)技巧_第4頁(yè)
wincc學(xué)習(xí)技巧_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、、組態(tài)軟件、C語(yǔ)言基礎(chǔ)中的語(yǔ)言WinCC語(yǔ)言由C腳本(C-script )和B腳本(VB-script )組成。WINCC中C腳本:(1) C動(dòng)作(在畫(huà)布中編輯的程序代碼)。(2)全局腳本編輯器:項(xiàng)目函數(shù)、標(biāo)準(zhǔn)函數(shù)和內(nèi)部函數(shù)。項(xiàng)目函數(shù): 自定義本項(xiàng)目(保護(hù)性)標(biāo)準(zhǔn)函數(shù):編輯好供C動(dòng)作調(diào)用內(nèi)部函數(shù):(微軟)自定義編輯函數(shù)在項(xiàng)目函數(shù)中例如:#pragma ()(int a; in b)int NEW_Addint c;c=a+b; return c;中的(Tag)變量程序使用的變量(書(shū)上P3135 )變量:C變量、WINC (變量C變量:int (數(shù)值型)、char (字符型)、BOOL布爾型)-

2、也就是二進(jìn)制(為常用)WINC (變量:word (數(shù)值型)、char (字符型)、Bit (布爾型)(為常用)常用變量如下:布 爾型:數(shù)值型:字符型:參數(shù)1 :舉例1二進(jìn)制變量“啟動(dòng)”控制電機(jī)啟停BOOL a; SetTagBit (參數(shù) 1,參數(shù) 2) 、GetTagBit (參數(shù))a=SetTagWord (參數(shù) 1,參數(shù) 2)、GetTagWord 參數(shù))SetTagChar (參數(shù)1,參數(shù)2)、GetTagChar (參數(shù))變量名。參數(shù)2:具體要求。例如參數(shù)1為液位,參數(shù)2為aGetTagBit ( “啟動(dòng)” );if (a=0) SetTagBit ( “啟動(dòng)”,1);舉例2二進(jìn)制

3、變量“啟動(dòng)”控制電機(jī)啟停BOOL a;static int i=0;(類似 int i; i=0;) a= GetTagBit (“啟動(dòng)” );if (a=0) i+;兩者區(qū)別:不加static啟動(dòng)一次i二l啟動(dòng)二次i=l 加static啟動(dòng)一次i二l啟動(dòng)二次i=2啟動(dòng)三次i二l 啟動(dòng)四次i二l 中的運(yùn)算符啟動(dòng)三次i=3啟動(dòng)四次i=4中的常用語(yǔ)句三、變量組態(tài)WINCC中的變量分為: 內(nèi)部變量、外部變量和C動(dòng)作(函數(shù)中的變量)1 .利用變量進(jìn)行增減計(jì)數(shù)步驟1:進(jìn)行畫(huà)面構(gòu)建,需要兩個(gè)按鈕和一個(gè)輸入輸出域(屬性調(diào)整-)(變量、有變化時(shí)、輸出)。新建內(nèi) 部變量,命名為“計(jì)數(shù)”,屬性為無(wú)符16位。如下圖

4、所示;步驟2:在名字為“啟動(dòng)增加”的按鈕中屬性事件鼠標(biāo)左鍵C動(dòng)作:unsigned short a;a=GetTagWord (計(jì)數(shù)); a+;SetTagWord (計(jì)數(shù),a);步驟3:在名字為“啟動(dòng)減少”的按鈕中 unsigned short a; a=GetTagWord (計(jì)數(shù)德性事件鼠標(biāo)左鍵C動(dòng)作:1 一; SetTagWord (計(jì)數(shù),a);2 .利用變量進(jìn)行增減計(jì)數(shù)(帶有步長(zhǎng)控制),可定義步長(zhǎng)步驟1:進(jìn)行畫(huà)面構(gòu)建,需要兩個(gè)按鈕和兩個(gè)輸入輸出域(屬性調(diào)整-)(變量為計(jì)數(shù)、有變化時(shí)、輸出)步 長(zhǎng)對(duì)應(yīng)的輸入輸出域(屬性調(diào)整-)(變量為步長(zhǎng)、有變化時(shí)、輸入)。新建2個(gè)內(nèi)部變量, 命名為“

5、計(jì)數(shù)”和“步長(zhǎng)”步驟2:在名字為“啟動(dòng)增加”的按鈕中 屬性 unsigned short a;unsigned short b; a=GetTagWord (計(jì)數(shù)1,;,屬性為無(wú)符16位。如下圖所示;b=GetTagWord (步長(zhǎng));止 事件鼠標(biāo)左鍵C動(dòng)作:a=a+b; SetTagWord (計(jì)數(shù)a);步步驟3:在名字為“啟動(dòng)減少”的按鈕中unsigned short a;unsigned short b; a=GetTagWord (計(jì)數(shù) 1); b=GetTagWord (步長(zhǎng));a=a-b; SetTagWord (計(jì)數(shù) a);步驟4:如果調(diào)整步長(zhǎng),可直接輸入屬性-一事件-一鼠標(biāo)左鍵

6、C動(dòng)作:3 .利用變量進(jìn)行電機(jī)啟動(dòng)新建內(nèi)部變量,命名為“起?!?屬性為無(wú)符16位。在名字為“啟停”的按鈕中屬性事件鼠標(biāo)左鍵C動(dòng)作:BOOL a; a=GetTagWord(起停);if (a=0)SetTagWord (起停,1);if (a=l)SetTagWord (起停,0);4 .利用變量進(jìn)行windows窗口對(duì)象的修改四、畫(huà)面組態(tài) 一5 .畫(huà)面的切換方法1:利用直接連接切換單個(gè)畫(huà)面,即為在下圖中“單擊鼠標(biāo)改變畫(huà)面”的部分點(diǎn)擊鏈接到所要去的畫(huà)面。組態(tài)完畢后,點(diǎn)擊按鈕即可達(dá)到。方法2:通過(guò)對(duì)象名稱和畫(huà)面名稱的變量連接打開(kāi)畫(huà)面。在書(shū)上P101方法3:通過(guò)內(nèi)部函數(shù)打開(kāi)畫(huà)面。在按鈕屬性中事件中

7、鼠標(biāo)左鍵中C動(dòng)作利用軟件內(nèi)部函數(shù)輸入程序如下:OpenPrevPicture ( 畫(huà)面名稱);6 .利用畫(huà)面窗口顯示畫(huà)面方法:SetVisible (畫(huà)面名稱,對(duì)象名稱,1或0);SetVisible表示可見(jiàn)度;畫(huà)面名稱表示畫(huà)面的名字,例如等;對(duì)象名稱表示“畫(huà)面窗口n”,“畫(huà)面窗口 n”在智能對(duì)象中;1或0表示可見(jiàn)或不可見(jiàn)。步驟:第一步:新建三個(gè)畫(huà)面,、。目的將、在中通過(guò)按鈕的控制顯示出來(lái);第二步:分別在、中組態(tài)一個(gè)目標(biāo)物;第三步:在中組態(tài)兩個(gè)按鈕和兩個(gè)畫(huà)面窗口控件(名稱為畫(huà)面窗口1、畫(huà)面窗口 2),在智能對(duì)象中找到“畫(huà)面窗口” ,更改畫(huà)面窗口屬性(屬性幾何 寬度為246,高度為129;屬性-

8、其它-一邊框改為是,顯示改為否,畫(huà)面名稱添加或)第四步:將、畫(huà)面的大小調(diào)整為和兩個(gè)畫(huà)面窗口一樣大;C動(dòng)作中編寫(xiě)程序如下:第五步:進(jìn)行按鈕組態(tài),在按鈕屬性中事件中鼠標(biāo)左鍵中畫(huà)面窗口 1,1)畫(huà)面窗口2,°)畫(huà)面窗口 1,°)按鈕 1: SetVisible (, SetVisible (,按鈕 2: SetVisible(,SetVisible (,畫(huà)面窗口2 , °7 .畫(huà)面窗口屬性這個(gè)技時(shí)控顯示巧功能是對(duì)上一個(gè)的繼承,最終結(jié)果就是將三個(gè)畫(huà)面循環(huán)顯示。步驟:第一步:新建四個(gè)畫(huà)面,、。目的將、在中通過(guò)按鈕的時(shí)間控制 顯示出來(lái);(這里并非按鈕按下顯示,系統(tǒng)運(yùn)行自動(dòng)顯示

9、)第二步:分別在、中組態(tài)一個(gè)目標(biāo)物;第三步:在中組態(tài)一個(gè)按鈕和三個(gè)畫(huà)面窗口控件(名稱為畫(huà)面窗口1、畫(huà)面窗口 2、畫(huà)面窗口 3),在智能對(duì)象中找到“畫(huà)面窗口” ,更改畫(huà)面窗口屬性(屬性 幾何 寬度為246,高度為129; 屬性 其它 邊框改為是,顯示改為否,畫(huà)面名稱添加或或);第四步:將、畫(huà)面的大小調(diào)整為和三個(gè) 畫(huà)面窗口一樣大;第五步:進(jìn)行按鈕組態(tài),在按鈕屬性中幾何中寬度中(假如寬度為70) C動(dòng)作中編寫(xiě)程序如下:static int a=0;a+;if (a=l)SetVisible (,畫(huà)面窗口 3,1)SetVisible (,畫(huà)面窗口4,°)畫(huà)面窗口 5,0)SetVisibl

10、e (,> if (a=2)SetVisible (,SetVisible (,3,0) 畫(huà)面窗口 ; 畫(huà)面窗口°畫(huà)面窗口5,0)SetVisible (,> if (a=3)SetVisible (,SetVisible (,SetVisible (, a= 0;3, 0) 畫(huà)面窗口; 畫(huà)面窗口 4,°)return 70;觸發(fā)器調(diào)整為IS中,即為間隔IS閃爍顯示。8 .動(dòng)畫(huà)旋轉(zhuǎn)組態(tài)(例如風(fēng)扇轉(zhuǎn)動(dòng))這個(gè)技巧是為了組態(tài)一個(gè)旋轉(zhuǎn)的動(dòng)畫(huà),例如工業(yè)上的攪拌機(jī)等。舉例如下:步9聚1:組態(tài)基本畫(huà)面,可以在顯示庫(kù)中尋找,也可以自己繪制。顯示庫(kù):從顯示庫(kù)中調(diào)用,若使用,首先將

11、元件導(dǎo)出(注意保存),然后將元件刪掉,然后再導(dǎo)入(插入)這個(gè)元件,便可以進(jìn)行調(diào)整(折開(kāi)、組裝、編組)注意,編組時(shí)必 須至少兩個(gè)一組。自己繪制:例如矩形、圓等(注意屬性的調(diào)整)全選編組。例如編為4個(gè)組:組1、組2、組3、組4步驟2:程序的編寫(xiě) 在畫(huà)布屬性幾何寬度(如果此時(shí)寬度為800) C動(dòng)作:static int a=0;a+;if (a=l)(SetVisible(, 組i n .SetVisible(,組、2 . 0):SetVisible (, 組Q 1 .SetVisible (,組4 . 0):if(a=2)(SetVisible (, 組SetVisible (, 組SetVisi

12、ble (,/且、5 . 0):SetVisible (, 組人 n .a= 0;return 800;步驟3:觸發(fā)器的調(diào)整,標(biāo)準(zhǔn)周期,250MS9 .動(dòng)態(tài)化顏色改變顏色改變是最基本的動(dòng)態(tài)化的技巧,就是動(dòng)態(tài)對(duì)話框的基本功能,利用顏色的變化來(lái)完成一個(gè)部件的動(dòng)作或結(jié)束。例如,畫(huà)布屬性-一顏色動(dòng)態(tài)對(duì)話框(事件名稱也就是觸發(fā)器的調(diào)整、表達(dá)式的填充或者變量、選擇表達(dá)式結(jié)果的展現(xiàn)形式(布爾型或者其它調(diào)整顏色)。10 .動(dòng)態(tài)化閃爍組態(tài)(元件閃爍)此技巧主要是針對(duì)于元件庫(kù)中的元件來(lái)講。例如,隨便調(diào)出一個(gè)元件(屬性控件屬性-閃爍樣式(4種選擇,包括不閃爍-0、不可見(jiàn)-1、陰影-2、實(shí)心-3)。 點(diǎn)擊后面的燈 泡

13、標(biāo)志,選擇動(dòng)態(tài)對(duì)話框閃爍顏色布爾型等。此技巧元件可單獨(dú)作用,亦可由按鈕控制。11 .動(dòng)態(tài)化動(dòng)態(tài)填充組態(tài)動(dòng)態(tài)填充組態(tài)就是控制元件的動(dòng)態(tài)填充。例如,新建一個(gè)內(nèi)部變量(命名為level、無(wú)符號(hào)16位、上限100、下限0、起始值0)、調(diào)出一個(gè)元件或繪制一個(gè)矩形(屬性動(dòng)態(tài)填充改為“是”、填充量改為“ 0”、點(diǎn)擊填充量后面的燈泡標(biāo)志,直接連接變量level )o在矩形一-幾何一-寬度(假設(shè)寬度為100) C動(dòng)作:(注意觸發(fā)器調(diào)整250毫秒)1)填充增加static int a=0;if(a二100)a= 0;SetTagWord(''level77, a);a+;return 100;2)

14、填充減少static int a=100;if (a=100)a100;SetTagWord("level', a);return 100;3)填充增減結(jié)合(先增加、再減少)static int a=0;static int b=0;(方向控制)if(b=0)if (a>100) b=l;a+;if (b=l)if (a<=0) b=0;SetTagWord("level”, a);return 100;12 .動(dòng)態(tài)化對(duì)象的移動(dòng)對(duì)象的移動(dòng)就是控制元件在畫(huà)布上水平左右或者垂直上下的移動(dòng),亦或沿對(duì)角線移動(dòng),也可以綜合性的各 方向的移動(dòng)。以小車移動(dòng)為例進(jìn)行步驟

15、分析如下:步驟一:選中元件一一屬性一一幾何(選擇位置X、位置 Y)燈泡標(biāo)志(C動(dòng)作):特別注意:計(jì)算移動(dòng)的距離范圍,選出一個(gè)起點(diǎn)和一個(gè)終點(diǎn)(如果雙向起點(diǎn)和終點(diǎn)和互換的)。計(jì) 算兩點(diǎn)之間的距離。如果水平移動(dòng),計(jì)算X之間的距離;如果垂直 移動(dòng),計(jì)算丫之間的距離。例 如,起點(diǎn)X的坐標(biāo)為500,終點(diǎn)X的坐標(biāo)為20,那么距離為480o (水平移動(dòng)就是不斷增加或者不 斷減少X)步驟二:下面以水平移動(dòng)為例,進(jìn)行C動(dòng)作分析:1)水平左移(不斷減少X)static int a=500;if(a<=0) a=480;else a=a-4;(每次移動(dòng)的距離,可以自動(dòng)調(diào)整return 20+a;2)水平右移(不

16、斷增加x)static int a=0;if (a>=500) a=0;else a=a+4;(每次移動(dòng)的距離,可以自動(dòng)調(diào)整return 20+a;3)水平左右移動(dòng)(雙向移動(dòng))static int a=500;static int b=0;( 方向控制)if (b=0) if(a<=0)b=l;(調(diào)整方向)a=a-4;(每次移動(dòng)的距離,可以自動(dòng)調(diào)整 if(b=l) if(a>=500) b=0;(調(diào)整方向)a=a+4;(每次移動(dòng)的距離,可以自動(dòng)調(diào)整)SetTagWord("level”,a);return 20+a;步驟三:觸發(fā)器調(diào)整250毫秒注意:位置X水平(左右

17、)移動(dòng)位置Y 垂直(上下)移動(dòng)高度放大或者縮小(上下)寬度拉伸或縮短(左右)13.動(dòng)態(tài)化復(fù)雜動(dòng)畫(huà)設(shè)計(jì)也是工業(yè)畫(huà)面組態(tài)主要部分。本技巧的展現(xiàn)以混合plantElemer pipes 2270 (彎管道)、2206畫(huà)出液體流動(dòng)的三種狀態(tài),第一種狀態(tài)為原始狀復(fù)雜動(dòng)畫(huà)設(shè)計(jì)是動(dòng)態(tài)化畫(huà)面的主要特色,液的控制系統(tǒng)為例進(jìn)行論述。1)管道中液體流動(dòng)步驟一:在元件庫(kù)中調(diào)用管道。管道在橫放管道)、2180 (縱放管道)中尋找。態(tài),就是沒(méi)有任何液體流動(dòng);第二種和第三中為液體流動(dòng)的兩種不同狀態(tài)。三種狀態(tài)畫(huà)好并 導(dǎo)出到桌面,畫(huà)好一個(gè)就導(dǎo)出一個(gè)。分別命名(0、1、2) (3次)步驟二:新建一個(gè)變量,命名為“進(jìn)水”,為無(wú)符號(hào)

18、16位。步驟三:在智能對(duì)象中狀態(tài)顯示組態(tài)對(duì)話框(變量為“進(jìn)水”、有變化時(shí)、增加三頁(yè)(0、1、2)將三個(gè)畫(huà)面狀態(tài)拖入0、1、2下面,相對(duì)應(yīng))。步驟四:在狀態(tài)顯示控件幾何 寬度(假設(shè)寬度為100) -C動(dòng)作:static int a=0; 11-16-20132013-11-16期與時(shí)間的設(shè)置兩個(gè)時(shí)間求差值 此技巧是對(duì)上一個(gè)技巧的承接,用于實(shí)現(xiàn)在線時(shí)長(zhǎng)顯示的功能。注意:字符不能相加減;顯示格式(字符顯示):時(shí)間1: 09: 45: 30時(shí)間2 09 : 45: 45時(shí)長(zhǎng):00: 00: 15o畫(huà)面布局如圖所示;步驟一:新建內(nèi)部變量:shijianl和shijian2和shijian3 (格式為文本

19、8位字符集),新 建對(duì)應(yīng)的輸入輸出域(變量(shijianl和shijian2和shijian3 )、有變化時(shí)、輸出)。注 意:輸入/輸出域 屬性調(diào)整(輸出格式:字符串)步驟二:程序時(shí)間1程序:在時(shí)間1對(duì)應(yīng)的輸入輸出域中-屬性一一事件-一鼠標(biāo)左鍵-一c 動(dòng)作:char a20;char*p;p二GetTagChar("time");strcpy (a, p);SetTagChar(shijianl, a);時(shí)間2程序:在時(shí)間2對(duì)應(yīng)的輸入輸出域中-屬性-事件- 鼠標(biāo)左鍵-一C 動(dòng)作: char a20;char*p;p二GetTagChar ("time"

20、);strcpy (a, p);SetTagChar(shijian2, a);時(shí)間差程序:在時(shí)間差對(duì)應(yīng)的輸入輸出域中 屬性事件 鼠標(biāo)左鍵 C 動(dòng)作: 第一部分:定義變量char a20, b20;char*p;char aa10, bb10, ccElO;int i;int vail, val2, val3;int val4,val5, val6;int val7, val8, val9;long suml, sum2, temp;第二部分:將shijianl由字符轉(zhuǎn)換為數(shù)值p=GetTagChar (shi jianl");、采集時(shí)間strcpy (a, p);for(i=0;i

21、<2;i+)aai= ai;、小時(shí)bbi二 ai+31 ;ccai+6;aa2=,0bb2= 0cc2='0';, 、 vall=atoi(aa)val2=atoi(bb);、字符轉(zhuǎn)數(shù) 值val3=atoi (cc);第三部分:將shijian2由字符轉(zhuǎn)換為數(shù)值(同上)p=GetTagChar(shijian2);strcpy (a, p);for (i=0;i<2;i+)aai= ai;bbi= ai+3;cc i= ai+6;aa2='0'bb2='0'val4=atoi(aa);val5=atoi(bb);val6=atoi(c

22、c);第四部分:求差值suml=vall*3600+val2*60+val3;、計(jì)算時(shí)間1共多少秒sum2=val4*3600+val5*60+val6;、計(jì)算時(shí)間2共多少秒temp=sum2_suml> ;、秒值相減temp=abs(temp);、取絕對(duì)值第五部分:將得出數(shù)值temp轉(zhuǎn)換為(時(shí)、分、秒)分為三(仍為數(shù)值)val7=temp/3600;、val8=(temp%3600)/60;、數(shù)值除3600取整為小時(shí)、余下數(shù)值除60取整為分鐘val9=temp%60;> 、第六部分:將各數(shù)值轉(zhuǎn)換為字符(b0=val7/10+48;、bl=val7%10+48;、b2=':

23、'b3=val8/10+48;bE4=val8%10+48;b5=Y ;b6=val9/10+48;b7=val9%10+48;b8='0'SetTagChar (z,shiJian3,z, b);、余下數(shù)值除60取余為秒值 0的ASCII碼為48)、十位、個(gè)位、冒號(hào)、字符串結(jié)束標(biāo)志、輸出結(jié)果項(xiàng)目總圖14 .全局腳本(了解)將事先編好的程序在全局腳本中編輯成函數(shù)形式(項(xiàng)目函數(shù))在c動(dòng)作中直接調(diào)用。以可以保護(hù)函數(shù)。舉例說(shuō)明:以上一技巧中的時(shí)間差函數(shù)為例;步驟:全局腳本一一C-Editor 項(xiàng)目函數(shù)新建在特定的形式中輸入要編的程 序,如下所示:此為函數(shù)名字ttpragma

24、option(mbcs) void可以自己起名)輸入要編寫(xiě)的程序最后的程序如卜:#pragma option(mbcs) void New_Function()char a20,b 20;char*p;char aa10, bb10,cc 10;int i;int vail, val2, val3;int val4, val5, val6;int val7, val8, val9;long suml, sum2, temp;p二GetTagChar(shijianl); strcpy (a, p);for (i=0;i<2;i+)aai= ai;bbi= ai+3;cc i= ai+6;

25、aa2(T ;bb2='0'cc 2='0;vall=atoi(aa);val2=atoi (bb);val3=atoi (cc);p二GetTagChar(shijian2);strcpy (a, p);for (i=0;i<2;i+)aai= ai;bbi= ai+3;cc i= ai+6;aa2=' 0'bb八0,;cc 2八0"val4=atoi(aa);val5=atoi(bb);val6=atoi(cc);suml=val1*3600+val2*60+val3;sum2=val4*3600+val5*60+val6;temp=

26、sum2-suml;temp=abs(temp);val7=temp/3600;val8=(temp%3600)/60;val9=temp%60;b0=val7/10+48:bl=val7%10+48;b2='b3=val8/10+48:b4=val8%10+48;b5='b6=val9/10+48:b7=val9%10+48:b8='0'SetTagChar (z,shi jian3z,, b);加密:菜單欄中 編輯 信息 (創(chuàng)建者:馮晨曦;口令:123456),以后每次輸入都得登錄正確的口令才可以登錄;加密后,在C動(dòng)作中只顯示函數(shù)名,不顯示函數(shù)內(nèi)容15 .關(guān)

27、于文件的操作(對(duì)WINCC勺擴(kuò)展)1)文件指針格式*txt*dat (打不開(kāi),存放登錄過(guò)的密碼)2)文件操作打開(kāi)文件操作文件(復(fù)雜)關(guān)閉文件3)打開(kāi)文件(首先定義文件指針)FILE*fp; fp=fopen( " ”,“r”);打開(kāi)文件方式:r表示只讀:如文件不存在或者路徑錯(cuò)誤,返回NULL (空指針)w- 表示寫(xiě)入:如文件不存在或者路徑錯(cuò)誤,則新建用于清空某個(gè)文件。表示寫(xiě):為追加,寫(xiě)時(shí)不會(huì)刪除原有文件。以r、a使用最多。4)關(guān)閉文件Fclose (fp) : f 表示 file ,中文為“文件”;5)操作文件寫(xiě)數(shù)據(jù)fputs (字符,文件指針);字符為常量或者數(shù)組舉例:fputs

28、(china , fp);char a20;strcpy (a20, fp);讀數(shù)據(jù)fgets (,數(shù)組名,n,文件指針);作用是從文件中讀取n-1個(gè)字符放入數(shù)組中;16 .項(xiàng)目 班級(jí)數(shù)據(jù)錄入借助本項(xiàng)目鞏固文件操作技巧,本項(xiàng)目就是對(duì)一個(gè)班級(jí)信息的記錄(姓名、班級(jí)、學(xué)號(hào))步驟一:新建三個(gè)內(nèi)部變量:分別命名為“ name”、“ class "、“number”,并建立相應(yīng)的輸入輸出域,注意:輸入/輸出域?qū)傩哉{(diào)整(輸出格式:字符串),如下圖所示:步驟二:新建兩個(gè)按鈕,分別 命名為“寫(xiě)入一次信息”、“寫(xiě)入信息”。任務(wù)一:在按鈕“寫(xiě)入一次信息”中一-屬性事件一一鼠標(biāo)左鍵- C動(dòng)作:FILE*f

29、p; fp二fopen(E: ,a); fputs C 馮晨曦 ,fp) ; fputs (,z1001 自動(dòng)化 ,fp);fputs(rn,fp);fclose (fp);任務(wù)二:在按鈕“寫(xiě)入信息”中一一屬性事件一-鼠標(biāo)左鍵一一C動(dòng)作:FILE*fp;、文件指針 char a 20; char b 20; char c 20; char*p;、字符指 針對(duì)文件的綜合處理(未完)本項(xiàng)目是對(duì)文件處理的綜合運(yùn)用,是對(duì)組態(tài)系統(tǒng)人員登錄的統(tǒng)計(jì)和記錄??傮w布局如下圖所示;項(xiàng)目步驟如下:步驟一:完成下圖圖形的構(gòu)建和腳本程序的編寫(xiě),方法如上1)新建三個(gè)內(nèi)部變量,分別命名“ name” “ class ” “

30、number”,分別連接相 應(yīng)的輸入輸出域(組態(tài)對(duì)話框:該變量、有變化時(shí)、類型為I/O域)。注 意:輸入/輸出域?qū)傩哉{(diào)整(輸出格式:字符串)。2)在名字為“寫(xiě)入文件”的按鈕中-屬性-事件 一-C動(dòng)作:FILE*fp;char a20;char b 20;char c20;char*p;int i;p二GetTagChar(name);strcpy (a, p);p二GetTagChar("class");strcpy (b,p);p二GetTagChar("number");strcpy (c,p);/if(strlen(a)=4)、藍(lán)色和紅色部分功能一

31、致,選用一個(gè)即可/strcat (a, );/if (strlen(a) =6)/strcat (a, );/if(strlen(a)=8)/strcpy (a);for (i=strlen(a) ; i<8; i+);、藍(lán)色和紅色部分功能一致,選用一個(gè)即可strcat (a, );fp二fopen(E: , a);fputs(a, fp);fputs(b,fp);fputs(c,fp);fputs(rn,fp); fclose(fp);步驟二:完成下圖圖形的構(gòu)建和屬性的調(diào)整;1)智能對(duì)象控件(選擇ListView control sp6 ) -拉大控件雙擊(顯示屬性)在General

32、(常規(guī))中修改View (選擇3-lvwreport )(報(bào)表輸出); 在 Colum Header (列標(biāo)題) (點(diǎn)擊 insert Colum (增加一列)index 為列號(hào)(text:姓名;Width (列80;)二次點(diǎn)擊insert Colum (增加一列)index為列號(hào)(text:班級(jí);Width (列寬):801) 三次點(diǎn)擊 insert Colum (增加一列)index為列號(hào)(text:學(xué)號(hào);Width (列寬):80; 點(diǎn)擊應(yīng)用擊確定。2)選中屬性-一控制屬性-GridLines- 改“是”為“否”。步驟三:完成下圖圖形的構(gòu)建和腳本程序的編寫(xiě);1)新建4個(gè)按鈕和1個(gè)輸入輸出

33、域,注意:輸入/輸出域?qū)傩哉{(diào)整(輸出格式:字符串)。如上圖所示;新建內(nèi)部變量:命名" search ”,文本8位字符集;2)在按鈕名為“顯示數(shù)據(jù)”屬性-事件 一 鼠標(biāo)左鍵 一-C動(dòng)作:#define GetObject GetObjectobject*pdl=NULL;、,指向當(dāng)前運(yùn)行系統(tǒng)(NULL為空值、初始化)_object*pic=NULL;、指向當(dāng)前系統(tǒng)激活畫(huà)面object*obj=NULL;、指向畫(huà)面中的某個(gè)對(duì)象_object*item=NULL;、對(duì)象中對(duì)行的操作int i; char aa10; char a 20, b20, c20; FILE*fp; fp=fope

34、n(E:,r); if(fp=二NULL)如果打不牖向下而判斷路徑是否正確HWND hwnd=NULL ;、指針hwnd=FindWindow(NULL, WinCC -運(yùn)行系統(tǒng)- );、指針MessageBox (hwnd, zz 文件打開(kāi)出錯(cuò),警告,MB_0K|MBCONSTOP、系統(tǒng)函數(shù)彈出對(duì)話框(可能是XP系統(tǒng)中的。WIN7不彈出) return ;、返回空指針打開(kāi)文件:pdl=_object_create(z/PDLRuntimez,);、指向當(dāng)前運(yùn)行系統(tǒng)中的激活畫(huà)面pic=pdl->GetPicture (z,);ob j=pic->GetOb ject C 控件 1)

35、;/d=GetTagChar (z,sousuo,z) ;/strcpy (dd,d);/obj->ListItems->Clear ();、調(diào)用函數(shù)為對(duì)象清零obj->view=3;、對(duì)控件1操作所有的行rewind(fp); >、對(duì)文件操作,光標(biāo)定位函數(shù)for(i-l; feof(fp)=0;)藍(lán)色部分為文件尾判斷函數(shù)(0:光標(biāo)不到尾;1光 標(biāo)到尾)、只要光標(biāo)不到尾,此段程序始終循環(huán)fgets (a, 9, fp );a9='0'、讀取8個(gè)字符放入a 、中、結(jié)束符if(feof(fp)!=0)、如果不等于0,說(shuō)明光標(biāo)到尾,執(zhí)行跳出break;fget

36、s (b, 11, fp );fgets (c, 11, fp); bU= 0.cin八o*Tfgets (aa, 3, fp );、讀取10個(gè)字符放入b中、讀取10個(gè)字符放入c中、結(jié)束符、結(jié)束符,、八讀取3個(gè)字符放入aa中,rn回車換行是兩個(gè)字符;目的是跳過(guò)第一行,去讀第二行item=:obj->ListItems->Add ()ob j->ListItems->Item(i) ->Text= a;、八將a寫(xiě)入控件第一行第一列obj->ListItems->Item(i) ->ListSubItems->Add(l,,zFirst,, ,

37、b);、增加一 列obj->ListItems->Item(i) ->ListSubItems->Add(2,,zSecondz,, c );、增加一 列i+;、進(jìn)入下一行,光標(biāo)定位到第二行fclose (fp、關(guān)閉文);件_object_delete(item);、最后四行為銷毀指針,否則占用內(nèi)存,從里往外銷毀;object_delete (obj)object_delete (pic);object_delete (pdl) .3)在按鈕名為“搜索”中屬性一 事件-一 鼠標(biāo)左鍵一-C動(dòng)作:#define GetObject GetObject_object *pdl

38、=NULL;object *pic=NULL;object *obj=NULL;object *item=NULL;int i;char *d;char aa10;char 旦 20L220L£20Lddr20Leer20kF 一 LEfpHfopenvEWTXif (fpHHNULL)-XD EndHNUFhwndHFindwindow(NULLwince - ild; , ) AMessageBOX(hwncr 洱豐肯斗ffa二一二«申MBIOKMBCONSTOP) refump d - H - - objecflcpicHpd 丁 VGefpicfurecpobjHpevGefobjec 三 K 豐s三三三三三三三三三三三三三三三三三三一一zduGefr agcha (=seach=)<sf I cpy (dd J d=ldHGefragcha仁sousuo=)<Isf f cpy (dd9

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論