亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)組變量在UniPro編程中的應(yīng)用

        2016-12-31 00:00:00曹旗樂立文
        科技創(chuàng)新與應(yīng)用 2016年22期

        摘 要:數(shù)組變量在編程中能起到很好的簡化程序的作用,避免大量雷同程序段落,降低發(fā)生錯(cuò)誤的可能性。

        關(guān)鍵詞:UniPro;PLC;開發(fā)技巧;流量儀累積流量

        使用的編程軟件為施耐德公司的UniPro開發(fā)軟件,該軟件支持以下硬件型號(hào):

        Modicon M340;

        Premium;

        Atrium;

        Quantum;

        支持的編程語言為;

        功能塊圖 FBD;

        梯形圖(LD)語言;

        指令列表 IL;

        結(jié)構(gòu)化文本 ST;

        序列控制 SFC;

        1 背景知識(shí)

        1.1 數(shù)組變量

        數(shù)組變量是UniPro編程中能使用的一種數(shù)據(jù)類型,它可以是一組布爾(BOOL)字、一組UINT整數(shù)字、一組WORD表等。

        1.2 表達(dá)式

        在編程中以如下形式表達(dá):

        (1)數(shù)組頭地址:數(shù)組長度

        舉例:以地址%M10作為數(shù)組起始,長度為5,表達(dá)式為%M10:5。

        (2)數(shù)組頭地址[偏移量]

        數(shù)組中的某一個(gè)位置可以用此方法表達(dá),無需事先定義一個(gè)數(shù)組。

        舉例:地址%M10作為數(shù)組起始,讀取%M12時(shí),表達(dá)式為%M10[2]。

        數(shù)組變量可以用以上兩種表達(dá)式表達(dá),但在使用前要做如下設(shè)置。

        工具→項(xiàng)目設(shè)置→“語言擴(kuò)展”標(biāo)簽欄→勾選虛線框內(nèi)內(nèi)容

        2 實(shí)例

        2.1 數(shù)組映射

        在處理外部輸入的信號(hào)時(shí),為了方便對(duì)數(shù)據(jù)進(jìn)行處理,我通常會(huì)將外部輸入映射到PLC內(nèi)存地址中。

        現(xiàn)假設(shè)有一個(gè)位于1#背架,8#插槽的8路離散量輸入模塊,為了將這個(gè)模塊采集的存入%M30至%M37中。普遍的做法為將輸入數(shù)據(jù)與內(nèi)存地址做一對(duì)一賦值,形成如下表達(dá)式:

        %M30:=%I1.8.0;

        %M31:=%I1.8.1;

        %M32:=%I1.8.2;

        %M33:=%I1.8.3;

        %M34:=%I1.8.4;

        %M35:=%I1.8.5;

        %M36:=%I1.8.6;

        %M37:=%I1.8.7;

        但應(yīng)用數(shù)組變量,表達(dá)式可簡化為:

        %M20:8:=%I0.5.0:8

        其工作原理如下:

        2.2 與功能塊的配合使用

        在傳統(tǒng)的流量儀數(shù)據(jù)的采集中,采用的是4-20mA傳輸實(shí)時(shí)流量和脈沖信號(hào)計(jì)數(shù)傳輸累計(jì)流量的方法。在此方法中使用脈沖信號(hào)計(jì)數(shù)的方法在實(shí)際中存在隨時(shí)間增長而增長的誤差,故新型的流量儀一般都使用ModBus或其他總線通訊的方式來實(shí)現(xiàn)數(shù)據(jù)傳輸,通過讀取流量以內(nèi)的特定地址數(shù)據(jù)并配合廠方提供的換算公式來得到準(zhǔn)確的度數(shù)。

        接下來以科隆(KROHNE)流量儀為例,介紹使用ModBus協(xié)議讀取流量儀數(shù)據(jù)的方法,該方法包含了數(shù)組變量與自定義功能塊(功能塊的相關(guān)說明此處不做贅述,可參見UniPro說明文檔)。

        根據(jù)科隆提供的說明資料,我們從流量儀讀到的瞬時(shí)流量為兩個(gè)字(WORD類型),累積流量為四個(gè)字。

        首先參照流量儀制造商提供的換算公式編寫一個(gè)功能塊,輸入為流量儀特定地址的值,輸出為換算后的儀表讀數(shù)。示意圖如下:

        建立完成功能塊之后,就可以使用數(shù)組變量來簡化編程,在一個(gè)項(xiàng)目中流量儀往往有許許多多,每遇到一個(gè)就引用一次功能塊不僅在編程的效率上比較低,還容易出現(xiàn)漏項(xiàng)缺項(xiàng),重復(fù)建立等等認(rèn)為錯(cuò)誤,而使用數(shù)組變量來給功能塊的輸入輸出賦值就能避免上述問題。

        舉例:

        INDEX1:=0; (*輸入索引*)

        INDEX2:=0; (*輸出索引*)

        NUMBER:=6; (*設(shè)備臺(tái)數(shù)*)

        REPEAT (*循環(huán)下方程序*)

        F_INPUT_H:=%MW345[INDEX1]; (*瞬時(shí)流量數(shù)據(jù)占兩個(gè)字,將高16位讀入功能塊*)

        F_INPUT_L:=%MW346[INDEX1]; (*將低16位讀入功能塊*)

        F_INPUT_H_1:=%MW347[INDEX1]; (*累計(jì)流量數(shù)據(jù)占四個(gè)字,分別讀入功能塊*)

        F_INPUT_L_1:=%MW348[INDEX1];

        F_INPUT_H_2:=%MW349[INDEX1];

        F_INPUT_L_2:=%MW350[INDEX1];

        FLOW(EN:=1,INPUTH:=INT_TO_WORD(F_INPUT_H),INPUTL:=INT_TO_WORD(F_INPUT_L));

        (*調(diào)用瞬時(shí)流量計(jì)算功能塊*)

        RESULT:=FLOW_10.OUTPUT;(*取出瞬時(shí)結(jié)果*)

        FLOWTOTAL(EN:=1,INPUT1H:=INT_TO_WORD(F_INPUT_H_1),INPUT1L:=INT_TO_WORD(F_INPUT_L_1),INPUT2H:=INT_TO_WORD(F_INPUT_H_2),INPUT2L:=INT_TO_WORD(F_INPUT_L_2));

        (*調(diào)用累計(jì)流量計(jì)算功能塊*)

        RESULT1:=FLOWTOTAL_10.OUTPUT;(*取出累積流量結(jié)果*)

        %MF50[INDEX2]:=RESULT;(*瞬時(shí)流量計(jì)算結(jié)果自%MF50開始*)

        %MF52[INDEX2]:=RESULT1; (*累計(jì)流量計(jì)算結(jié)果自%MF52開始*)

        INDEX1:=INDEX1+6;(*輸入索引加6,每個(gè)設(shè)備含6個(gè)字的數(shù)據(jù)(瞬時(shí)2+累計(jì)4),一次循環(huán)后%MW345[INDEX1]所對(duì)應(yīng)的地址為%MW351*)

        INDEX2:=INDEX2+2;(*%MF占32位,%MF50[2]為%MF54*)

        UNTIL INDEX1 = 6*NUMBER(*循環(huán)次數(shù)等于設(shè)備臺(tái)數(shù)后退出循環(huán)*)END_REPEAT;

        在這個(gè)實(shí)例中前文提到的偏移量由一個(gè)變量“INDEX1”和“INDEX2”來代替

        Index1的作用為將地址區(qū)右移一臺(tái)設(shè)備。

        當(dāng)輸入索引(INDEX1)等于“0”時(shí),第一臺(tái)設(shè)備的數(shù)據(jù)被送到了功能塊的輸入接口上,通過功能塊內(nèi)部的程序得出該組數(shù)據(jù)換算后的讀數(shù)并輸出,隨后下一臺(tái)設(shè)備的數(shù)據(jù)接著被送入功能塊,直到所有設(shè)備的數(shù)據(jù)都得到了換算。

        在今后的改造過程中如有流量儀的增減,只需要改動(dòng)設(shè)備臺(tái)數(shù)(NUMBER變量)即可,需要指出的是在編程時(shí)適當(dāng)?shù)亓舫鲞B續(xù)空余的地址將有利于程序變動(dòng)。

        3 結(jié)束語

        在編程中使用數(shù)組變量一是能降低工作強(qiáng)度,二來能避免人為失誤,還能節(jié)省程序體積。既降低了人力成本,又能通過縮減程序體積來降低處理器內(nèi)存的使用以降低設(shè)備成本。綜上作者認(rèn)為該方法是值得大力推廣的,故在此與大家分享,歡迎各位的意見與建議。

        久久久久久久无码高潮| 综合国产婷婷精品久久99之一| 少妇人妻中文字幕hd| 久久人人爽人人爽人人片av麻烦| 日韩爱爱视频| 日本高清人妻一区二区| 欧美精品无码一区二区三区| 国产精品制服| 国产精品丝袜在线不卡| 国产一区二区三区在线观看蜜桃| 国产视频自拍一区在线观看 | 国产在线无码免费视频2021| 国产精品黄页免费高清在线观看| 亚洲av成人一区二区三区本码| 开心五月激情综合婷婷色| 国产美熟女乱又伦av果冻传媒| 亚洲综合精品一区二区三区| 亚洲精品人成中文毛片| 免费a级毛片无码a∨男男| 亚洲区日韩精品中文字幕| 亚洲一区二区三区自拍麻豆| 奇米影视色777四色在线首页 | 国产成人小视频| 久久天天躁夜夜躁狠狠躁2022| 亚洲中文字幕精品一区二区| 精品人妻久久一日二个| 窝窝午夜看片| 久久精品无码一区二区三区蜜费| 亚洲av自偷自拍亚洲一区| 免费无遮挡无码永久在线观看视频 | 国产天堂av在线播放资源| 色偷偷亚洲第一成人综合网址| 国产无码夜夜一区二区| 丝袜美腿久久亚洲一区| 成l人在线观看线路1| 欧美人成在线播放网站免费| 人妻被公上司喝醉在线中文字幕| 国产亚洲精品a片久久久| 亚洲国产精品尤物yw在线观看| 亚洲av成人一区二区三区不卡| 精品人妻av一区二区三区 |