国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

用WINCC編程控制數(shù)據(jù)和字符串變化的技巧

2013-09-07 07:51
關(guān)鍵詞:字符串C語言字符

鄭 毅

(武漢鋼鐵工程技術(shù)集體自動(dòng)化有限責(zé)任公司 湖北 武漢:430080)

WINCC軟件是德國西門子公司為其工業(yè)控制器(簡稱:PLC)開發(fā)的自動(dòng)化軟件系統(tǒng)。其目的之一是監(jiān)視設(shè)備運(yùn)行狀況,實(shí)時(shí)報(bào)警和數(shù)據(jù)采集。更重要的目的是和PLC交換數(shù)據(jù),給PLC傳遞數(shù)據(jù)并下達(dá)執(zhí)行指令,通過PLC控制設(shè)備的運(yùn)行。所以也被稱為人機(jī)操作控制軟件。通過運(yùn)行畫面來實(shí)施。如何用WINCC編程軟件控制數(shù)據(jù)或字符串滿足不同生產(chǎn)上的需要,這需要一些編程技巧才能完成。

1 生產(chǎn)需求

(1)在生產(chǎn)上,有時(shí)需要輸入一個(gè)固定長度的數(shù),當(dāng)操作人員輸入的數(shù)據(jù)多于或少于該數(shù)據(jù)的固定長度時(shí),都需要有一個(gè)錯(cuò)誤輸入的提示,以便操作人員重新輸入。這就需要用WINCC編程來解決。如何固定一個(gè)數(shù)的長度?在此稱為:問題1。

(2)在生產(chǎn)上,經(jīng)常會(huì)出現(xiàn)一個(gè)操作人員用電腦控制兩條運(yùn)行相同的生產(chǎn)線,要給兩條生產(chǎn)線上的PLC輸入不同的數(shù)據(jù)或者是字符串。在忙碌的時(shí)候,可能會(huì)把A生產(chǎn)線的數(shù)據(jù)輸給了B生產(chǎn)線,而A生產(chǎn)線的數(shù)據(jù)與B生產(chǎn)線的數(shù)據(jù)通常是由一串?dāng)?shù)據(jù)中的某一位上的數(shù)據(jù)來區(qū)別。比如:在數(shù)據(jù)的第3位上,用1表示A生產(chǎn)線,用2表示B生產(chǎn)線,為了防止操作人員的誤輸入,就必須用WINCC編程的方法來限制它。即操作人員無論輸入什么數(shù)據(jù),在A生產(chǎn)線的數(shù)據(jù)第三位上總是用1表示,B生產(chǎn)線的數(shù)據(jù)第三位上總是用2表示,這樣就能避免錯(cuò)誤的產(chǎn)生。如何在數(shù)據(jù)中的某一位固定一個(gè)數(shù)值?在此稱為:問題2。

(3)有時(shí)輸入的一串?dāng)?shù)據(jù),其顯示的數(shù)據(jù)與給PLC去執(zhí)行的數(shù)據(jù)順序正好相反,怎樣用WINCC編程的方法來實(shí)現(xiàn)它,這就需要編程技巧。如何取反數(shù)據(jù)?在此稱為:問題3。

2 解決方法

首先要用PLC的編程軟件(Step7)建立一個(gè)數(shù)據(jù)塊(簡稱:DB塊),并在該數(shù)據(jù)塊中分配一個(gè)地址,其類型定義為字符型,并根據(jù)需要定義該字符的長度。注意:無論是數(shù)據(jù)還是字符串,都要把它的類型定義成字符型,這樣才能保證以上問題能夠解決。通常編畫面程序的人與編PLC程序的人不是同一個(gè)人,這樣就需要兩個(gè)人的溝通。編畫面程序的人要根據(jù)工藝的要求向編PLC程序的人提出要求。往往編畫面程序的人不懂編PLC程序,而編PLC程序的人又不懂編畫面程序。如果數(shù)據(jù)類型沒有匹配好,調(diào)試半天也不知道錯(cuò)在哪里。這需要特別的注意。

然后在畫面程序上定義與PLC對應(yīng)的外部變量字符塊(比如名稱叫W),和一個(gè)與之匹配的內(nèi)部變量字符塊(比如名稱叫N)。把‘W’和‘N’分別用‘輸入/輸出域’控件,組態(tài)在畫面上。

(1)解決問題1

保證數(shù)據(jù)的固定長度,比如10個(gè)字。

右鍵點(diǎn)擊‘N輸入/輸出域’,進(jìn)一步點(diǎn)擊其對象屬性,跳出對話框,點(diǎn)其‘事件’,再進(jìn)入‘輸入/輸出域’子目錄下的‘鍵盤’,對應(yīng)右邊‘釋放’執(zhí)行動(dòng)作框中選用‘C動(dòng)作’,編程如下:

錯(cuò)誤提示語句是寫在一個(gè)靜態(tài)文本上的,其中‘showerror’是該靜態(tài)文本的動(dòng)態(tài)值,‘showerror’為1時(shí),靜態(tài)文本就顯示出來,提醒操作人員輸入有誤,需要重新輸入;‘showerror’為0時(shí),該靜態(tài)文本就不顯示,并且把內(nèi)部變量值傳遞給外部變量。

定義字符指針是解決問題的關(guān)鍵,其中計(jì)算字節(jié)長度strlen是C語言的語句,而ss=GetTagChar(ApcN);又是WINCC自己的語言,所以在編程過程中,不僅要了解WINCC自帶的語言,也要了解C語言。熟悉C語言的語句與函數(shù),就能得心應(yīng)手的完成各種編程工作。

(2)解決問題2

在字符串中的某一位上,固定一個(gè)數(shù)。比如有10個(gè)字符串,在其右邊第三位上總是用‘1’表示。

和解決問題1的操作過程一樣,編程如下:

如果輸入的是1234567890,則結(jié)果就會(huì)是1234567190。要注意的是:指針ss的數(shù)組是從零并從數(shù)據(jù)的左邊開始算起的,拿上面的數(shù)字來舉例,即ss[0]='1',ss[1]='2'等等。

(3)解決問題3

顯示的數(shù)據(jù)與給PLC去執(zhí)行的數(shù)據(jù)順序正好相反。比如顯示的數(shù)據(jù)是1234567890,而PLC去執(zhí)行的數(shù)據(jù)順序是0987654321。

可以在畫面上加一個(gè)按鈕控件。當(dāng)按下按鈕時(shí),就將顯示的數(shù)據(jù)取反傳遞給PLC去執(zhí)行。在按鈕控件的對象屬性中,‘事件’下的‘按鈕’對應(yīng)的子目錄‘鼠標(biāo)’,對應(yīng)右邊‘按左鍵’執(zhí)行動(dòng)作框中選用‘C動(dòng)作’,對按鈕編程如下:

其中:DATA_1、DATA_2等等是直接給PLC的外部變量。要求在PLC的數(shù)據(jù)塊中,一一定義成字類型,即WORD類型;而在畫面上把它們要一一定義成無符號16位數(shù)類型,這樣傳遞的數(shù)據(jù)就不會(huì)出錯(cuò)。

3 結(jié)語

WINCC軟件看上去非常簡單,如果僅僅是連接數(shù)據(jù)、顯示數(shù)據(jù)或者發(fā)一個(gè)簡單的命令等,對編程人員的業(yè)務(wù)素質(zhì)要求不高,一學(xué)就會(huì)。但是如果進(jìn)一步的想玩轉(zhuǎn)WINCC軟件就必須有比較好的基礎(chǔ)作為墊底。要了解數(shù)據(jù)庫的連接、要熟悉C語言的語句與函數(shù)、要大概了解PLC的數(shù)據(jù)結(jié)構(gòu),有時(shí)還需要了解VBS的編程方式以及語句與函數(shù)等。用WINCC編程控制數(shù)據(jù)串和字符串的變化也僅僅是一個(gè)小技巧而已。

[1]西門子[中國]有限公司工業(yè)業(yè)務(wù)領(lǐng)域工業(yè)自動(dòng)化與驅(qū)動(dòng)技術(shù)集團(tuán)。WinCC-- 創(chuàng)建HMI組態(tài) -- 使用字符串[EB/OL].(2011-06-28)[2013-08-28]http://gongkong.gongye360.com/paper_view.html?id=116360.

[2]稚若初現(xiàn)0.WinCC數(shù)據(jù)報(bào)表實(shí)現(xiàn)方法介紹[EB/OL].(2012-07-19)[2013-08-19].http://bbs.gongkong.com/D/201207/446509_1.shtm.

[3]李林,王恒山.用WinCC實(shí)現(xiàn)自動(dòng)化立體倉庫控制與管理的動(dòng)態(tài)數(shù)據(jù)交換[J].計(jì)算機(jī)應(yīng)用與軟件.2006(8);41-42.

[4]西門子自動(dòng)化.西門子PLC的數(shù)據(jù)類型[EB/OL].(2006-11-15)[2013-08-18].http://gongkong.28xl.com/bencandy-2-6563-1.htm.

猜你喜歡
字符串C語言字符
基于文本挖掘的語詞典研究
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
字符代表幾
一種USB接口字符液晶控制器設(shè)計(jì)
圖片輕松變身ASCⅡ藝術(shù)畫
51單片機(jī)C語言入門方法
HBM電子稱與西門子S7-200系列PLC自由口通訊
基于C語言的計(jì)算機(jī)軟件編程
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
最簡單的排序算法(續(xù))