999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關(guān)于WinCC中C腳本的變量循環(huán)問題

2017-11-24 10:18:57何苗
教育教學(xué)論壇 2017年47期

何苗

摘要:本文介紹了WinCC組態(tài)軟件中的C腳本采用循環(huán)方式對(duì)變量及畫面對(duì)象進(jìn)行連接的方法,對(duì)于處理大量的同類數(shù)據(jù)和畫面對(duì)象,具有很大的方便性和靈活性,減輕了畫面煩瑣的連接工作,提高了工作效率和畫面質(zhì)量,在實(shí)際的工程應(yīng)用中,取得了良好的效果。

關(guān)鍵詞:WinCC;C-Script;循環(huán)

中圖分類號(hào):G712 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2017)47-0237-02

新型的工業(yè)自動(dòng)控制系統(tǒng)通常劃分為控制層、監(jiān)控層、管理層三個(gè)層次結(jié)構(gòu),其中監(jiān)控層對(duì)下連接控制層,對(duì)上連接管理層,它不但實(shí)現(xiàn)對(duì)現(xiàn)場的實(shí)時(shí)監(jiān)測與控制,且常在自動(dòng)控制系統(tǒng)中完成上傳下達(dá)、組態(tài)開發(fā)的重要作用。[1]

組態(tài)軟件又稱組態(tài)監(jiān)控軟件,屬于工業(yè)應(yīng)用軟件的一部分,它是數(shù)據(jù)采集監(jiān)控系統(tǒng)SCADA(Supervisory Control and Data Acquisition)的軟件平臺(tái)工具,用于數(shù)據(jù)采集與過程控制的專用軟件,位于自動(dòng)控制系統(tǒng)監(jiān)控層一級(jí)的軟件平臺(tái)和開發(fā)環(huán)境,使用靈活的組態(tài)方式,為用戶提供快速構(gòu)建工業(yè)自動(dòng)控制系統(tǒng)監(jiān)控功能的、通用層次的軟件工具。組態(tài)軟件具有強(qiáng)大的界面顯示組態(tài)功能,有良好的開放性和豐富的功能模塊,配有強(qiáng)大的數(shù)據(jù)庫支持,支持一些可編程的用戶語言,提供強(qiáng)大的仿真功能使系統(tǒng)并行設(shè)計(jì)。

1996年由西門子公司開發(fā)的SIMATIC WinCC(Windows Control Center西門子視窗控制中心)是HMI/SCADA軟件中的后起之秀,在設(shè)計(jì)思想上,SIMATIC WinCC秉承西門子公司傳統(tǒng)的企業(yè)文化理念,追求產(chǎn)品性能最全面、技術(shù)最先進(jìn)、系統(tǒng)最開放。WinCC(Windows Control Center)面向工業(yè)自動(dòng)化,用于在生產(chǎn)和過程自動(dòng)化環(huán)境中實(shí)現(xiàn)可視化和過程控制任務(wù)。它提供了適用于工業(yè)控制的圖形顯示、消息、歸檔以及報(bào)表的功能模板,界面友好,直觀方便,可以與多種編程控制器配合完成生產(chǎn)過程的監(jiān)控與操作。同時(shí)WinCC集成了ANSI-C和Visual Basic腳本功能,遵守標(biāo)準(zhǔn)C語言規(guī)范,提供了基于C腳本規(guī)范的系統(tǒng)函數(shù),為組態(tài)工程師進(jìn)行全開放的自由編程和深層次的二次開發(fā)提供了良好的編輯平臺(tái)。[2]

一、C腳本循環(huán)的基本原理

在程序設(shè)計(jì)時(shí),一般情況下語句是按順序從第一行依次往下執(zhí)行:函數(shù)中的第一個(gè)語句先執(zhí)行,接著是第二個(gè)語句,依此類推。但是根據(jù)要求有時(shí)候需要多次執(zhí)行同一段代碼,因此編程語言提供了更為復(fù)雜執(zhí)行路徑的多種控制結(jié)構(gòu),比如循環(huán)、跳轉(zhuǎn)等。循環(huán)語句即允許先多次執(zhí)行一個(gè)語句或語句組,再順次往下執(zhí)行,它改變代碼的執(zhí)行順序,實(shí)現(xiàn)代碼的跳轉(zhuǎn),如圖1是大多數(shù)編程語言中循環(huán)語句的流程圖。

C腳本提供了以下幾種循環(huán)類型。

while循環(huán):當(dāng)給定條件為真時(shí),重復(fù)語句或語句組。它會(huì)在執(zhí)行循環(huán)主體之前測試條件,先判斷while后面括號(hào)里的值,如果為真則執(zhí)行其后面的代碼;否則不執(zhí)行。

for循環(huán):多次執(zhí)行一個(gè)語句序列,簡化管理循環(huán)變量的代碼。for循環(huán)可以很容易地控制循環(huán)次數(shù),多用于事先知道循環(huán)次數(shù)的情況下。

do...while循環(huán):與while語句類似,區(qū)別在于此循環(huán)是在循環(huán)主體結(jié)尾測試條件外。先執(zhí)行do后面的代碼,然后再判斷while后面括號(hào)里的值,如果為真,循環(huán)開始;否則,循環(huán)不開始。其用法與while循環(huán)沒有區(qū)別,但相對(duì)較少用。[3]

在WinCC里C腳本語法和C語言完全一致,例如for循環(huán)可以通過條件缺省構(gòu)造無限循環(huán),printf函數(shù)在WinCC里可以直接輸出到診斷窗口,sprintf是規(guī)格話字符串的函數(shù)在C語言和WinCC里都是普遍使用的。對(duì)于WinCC里的C腳本,只要熟練掌握C語言基本的語法,數(shù)據(jù)類型、邏輯運(yùn)算、字符指針、函數(shù)調(diào)用這些就可以在WinCC里靈活編寫腳本程序。同時(shí)在C腳本里還有一個(gè)對(duì)象指針類型__object,用它來訪問WinCC里的對(duì)象,或其他如Excel、ADO等可以和VBS腳本里一樣便捷地操作對(duì)象。

二、程序代碼舉例

現(xiàn)在監(jiān)控系統(tǒng)的開發(fā)設(shè)計(jì)中隨著監(jiān)控要求的提高,工程發(fā)展對(duì)畫面豐富性、安全性要求越來越高,需要監(jiān)控或者顯示的變量個(gè)數(shù)也在不斷增加,大量的畫面對(duì)象與變量之間的連接變得非常煩瑣,不止加大了設(shè)計(jì)人員的設(shè)計(jì)時(shí)間而且容易在相似的變量連接中出現(xiàn)疏漏。WinCC組態(tài)軟件中集成的C腳本可以利用循環(huán)腳本,采用循環(huán)的方式對(duì)組態(tài)變量和畫面對(duì)象進(jìn)行操作,將煩瑣的連接變得簡單和便捷,對(duì)于初期制作和后期維護(hù)都非常方便,可以降低工作量,節(jié)約設(shè)計(jì)時(shí)間。

首先在變量命名時(shí)采用統(tǒng)一的后綴遞增方式,例如:TAG_1,TAG_2,TAG_3等,WinCC畫面對(duì)象命名亦參照同樣的規(guī)律,例如:io_1,io_2,io_3等,然后將一對(duì)相同后綴的變量和畫面對(duì)象進(jìn)行連接,最后利用循環(huán)方式對(duì)多組變量與畫面對(duì)象進(jìn)行統(tǒng)一修改處理。

由于變量名是作為中間變量參數(shù)來傳遞,在C腳本中需要對(duì)變量名的存儲(chǔ)分配一定的空間,這就需要用到WinCC中的系統(tǒng)函數(shù)SysMalloc來分配存儲(chǔ)空間。Malloc的全稱是memory allocation,中文叫動(dòng)態(tài)內(nèi)存分配,當(dāng)無法知道內(nèi)存具體位置的時(shí)候,想要綁定真正的內(nèi)存空間,就需要用到動(dòng)態(tài)的分配內(nèi)存,malloc向系統(tǒng)申請(qǐng)分配指定size個(gè)字節(jié)的內(nèi)存空間。SysMalloc函數(shù)為動(dòng)作保留存儲(chǔ)器,將存儲(chǔ)器空間分配給動(dòng)作,當(dāng)動(dòng)作完成并結(jié)果送出時(shí),系統(tǒng)釋放存儲(chǔ)器。

例如實(shí)現(xiàn)將變量TAG_1~TAG_10的值顯示到畫面對(duì)象輸入輸出域io_1~io_10中,程序代碼如下:

//頭文件等略

char *iofield,*tag; // 定義字符型中間變量,輸入輸出域,和變量名稱

int i,j; // 定義整數(shù)型中間變量,用于循環(huán)語句

WORD value; // 定義數(shù)值型中間變量,用于存貯變量中數(shù)值

tag=SysMalloc(50);

iofield=SysMalloc(50); // 分配存儲(chǔ)空間

//********************************************************************

for (i=1;i<11;i++) // 循環(huán)開始,共10次

{

sprintf(tag,“TAG_%d”,i); // WINCC中變量名稱指定,TAG_1~TAG_10

sprintf(iofield,“io_%d”,i); // WINCC畫面中IO域名稱指定,io _1~ io _10

value=GetTagWord((tag)); // 依次讀取TAG_1~10中的值,并賦給中間變量value

SetPropWord(lpszPictureName,(iofield),“OutputValue”,value); // 依次將value中的值寫入WINCC當(dāng)前畫面中io_1~10的輸出屬性

}

在實(shí)際的工程應(yīng)用中,采用循環(huán)方式對(duì)變量進(jìn)行讀寫可以方便地對(duì)大量數(shù)據(jù)進(jìn)行操作,從而對(duì)于提高工作效率具有非常重要的意義。

參考文獻(xiàn):

[1]歐金成,歐世樂,林德杰.組態(tài)軟件的現(xiàn)狀與發(fā)展[J].工業(yè)控制計(jì)算機(jī),2002,15(4).

[2]蘇昆哲.深入淺出西門子WinCC V6[M].北京航空航天大學(xué)出版社,2004.

[3]黃容,趙毅.c語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2013.

主站蜘蛛池模板: 亚洲AⅤ无码日韩AV无码网站| 国产手机在线观看| 第一区免费在线观看| 亚洲天堂网站在线| 欧美成人区| 成人福利在线看| 色综合久久无码网| 第一区免费在线观看| 五月婷婷导航| 五月天在线网站| 亚洲高清中文字幕| 黄色网在线| 日本道综合一本久久久88| 精品人妻无码中字系列| 亚洲免费黄色网| 国产精品成人观看视频国产| 成年人久久黄色网站| 暴力调教一区二区三区| 91丝袜乱伦| 精品无码一区二区三区在线视频| 亚洲激情99| 国产主播喷水| 久久网欧美| 国产精品亚洲va在线观看 | 欧美日韩第二页| 又猛又黄又爽无遮挡的视频网站| 91精品国产自产91精品资源| 亚洲人成日本在线观看| 久久久久国产一级毛片高清板| 亚洲无码A视频在线| 激情乱人伦| 97视频精品全国免费观看| 91成人在线观看| 日韩国产精品无码一区二区三区| 小13箩利洗澡无码视频免费网站| 亚洲国产欧美自拍| 精品日韩亚洲欧美高清a| 国内精品伊人久久久久7777人| 国产精品永久不卡免费视频| 在线国产综合一区二区三区| 国产va免费精品| 久久综合AV免费观看| 青草视频在线观看国产| 国产成人一区在线播放| 性色在线视频精品| 亚洲色无码专线精品观看| 国产免费久久精品99re不卡| 久久久久人妻一区精品色奶水| 青青草原国产免费av观看| 日韩一区精品视频一区二区| 免费啪啪网址| 欧美综合在线观看| 亚洲国产天堂久久综合| 亚洲国产亚综合在线区| 国产乱子伦精品视频| 中文字幕无码av专区久久| 五月综合色婷婷| 国产自无码视频在线观看| 日韩精品成人网页视频在线| www.99在线观看| 国产精品第一区在线观看| 在线播放91| 国产一级在线观看www色| 丰满的少妇人妻无码区| 国产乱子伦一区二区=| 自拍偷拍欧美| 久久毛片基地| 人人澡人人爽欧美一区| 嫩草国产在线| 国产jizz| 国产综合色在线视频播放线视| 五月婷婷激情四射| 一区二区自拍| 综合网久久| 国产精品永久在线| …亚洲 欧洲 另类 春色| 91精品国产91久无码网站| 国产美女精品一区二区| 久久综合国产乱子免费| 国产精品 欧美激情 在线播放| 国产成人亚洲日韩欧美电影| 国产欧美高清|