久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

想學(xué)好PLC編程,,要學(xué)會(huì)這個(gè)指令的用法!

 PLC發(fā)燒友 2023-05-19 發(fā)布于廣東
導(dǎo)讀

西門(mén)子現(xiàn)在正大力推廣標(biāo)準(zhǔn)化編程方式,,已推出不少編程框架,是未來(lái)編程的趨勢(shì),,其中開(kāi)始的環(huán)節(jié)就是將輸入點(diǎn)輸出點(diǎn)映射到DB塊中,,這樣做的好處是可以直接掃描過(guò)程映像區(qū),縮短掃描時(shí)間,,提高了程序的運(yùn)行效率,,也符合未來(lái)編程合符號(hào)尋址的趨勢(shì)。

批量的IO映射可以使用PEEK和POKE這兩個(gè)指令,,下面對(duì)這兩個(gè)指令的用法進(jìn)行介紹,。

01

指令的適用條件


1、只能用在SCL語(yǔ)言編程環(huán)境,;

2,、軟件從TIA PORTAL V11 SP2起支持該指令,;

3,、S7-1200 CPU 固件從 V2.2起支持該指令;

4,、適用操作數(shù),,I、Q,、M,、DB;

5,、DB必須是非優(yōu)化訪問(wèn)的塊,。

02

PEEK指令介紹


1,、指令格式

指令格式如下圖1所示:

▲圖1▲

PEEK指令用來(lái)讀取輸入(I),、輸出(Q),、存儲(chǔ)器(M)或數(shù)據(jù)塊(DB)變量,支持位,、字節(jié)、字,、雙字操作。PEEK指令將獲取的數(shù)據(jù)值以返回值的方式賦值給對(duì)應(yīng)的變量,。需要注意的是,,在指令列表紅框中只有PEEK和PEEK_BOOL兩個(gè)指令,而PEEK相當(dāng)于PEEK_BYTE,,當(dāng)需要使用PEEK_WORD或者PEEK_DWORD,,可以在將指令拖拽到程序編輯區(qū)后手動(dòng)添加后綴,或者在程序中直接輸入指令然后通過(guò)選擇的方式選定,,如下圖2所示:

▲圖2▲

序號(hào)1的指令為讀取字節(jié)變量的PEEK指令,,序號(hào)2的指令為讀取字變量的PEEK指令,輸入的方式為在序號(hào)1的基礎(chǔ)上在PEEK后輸入下劃線(xiàn)會(huì)彈出數(shù)據(jù)類(lèi)型的選項(xiàng),,包括BYTE,、WORD,、DWORD,,這里選擇WORD。也可直接在下劃線(xiàn)后輸入WORD,。DWORD的輸入格式亦是如此,。圖中的紅色波浪線(xiàn)當(dāng)填入正確的變量后會(huì)自動(dòng)消失

2,、PEEK用法解析

如上圖2所示,,括號(hào)內(nèi)的元素即為PEEK指令的形參和實(shí)參。除了PEEK_BOOL指令有四個(gè)輸入?yún)?shù),,其余三個(gè)均為3個(gè),,下面分別加以介紹。

PEEK(_BYTE)(讀字節(jié)變量,,指令中BYTE 類(lèi)型可省略,,指令格式。)

PEEK(area:=_byte_in, // 尋址區(qū)域,,BYTE類(lèi)型

      dbnumber:=_dint_in, // DB塊塊號(hào),,非DB塊尋址時(shí)填0,,DINT類(lèi)型或DB ANY類(lèi)型

      byteoffset:=_dint_in);// 被讀取變量的字節(jié)地址,,DINT類(lèi)型

PEEK_WORD(讀字變量,,指令格式。)

PEEK(area:=_byte_in, // 尋址區(qū)域,,BYTE類(lèi)型

      dbnumber:=_dint_in, // DB塊塊號(hào),,非DB塊尋址時(shí)填0,DINT類(lèi)型或DB ANY類(lèi)型

      byteoffset:=_dint_in),;// 被讀取變量的字節(jié)地址,,DINT類(lèi)型

PEEK_DWORD(讀雙字變量,指令格式,。)

PEEK(area:=_byte_in, // 尋址區(qū)域,,BYTE類(lèi)型

      dbnumber:=_dint_in, // DB塊塊號(hào),非DB塊尋址時(shí)填0,,DINT類(lèi)型或DB ANY類(lèi)型

      byteoffset:=_dint_in),;// 被讀取變量的字節(jié)地址,DINT類(lèi)型

PEEK_BOOL(讀位變量,,指令格式。)

PEEK(area:=_byte_in, // 尋址區(qū)域,,BYTE類(lèi)型

      dbnumber:=_dint_in, // DB塊塊號(hào),,非DB塊尋址時(shí)填0,DINT類(lèi)型或DB ANY類(lèi)型

      byteoffset:=_dint_in // 被讀取變量的字節(jié)地址

      byteoffset:=_dint_in),;// 被讀取變量的位地址,,INT類(lèi)型

數(shù)area,根據(jù)所讀區(qū)域的不同,,分為四種類(lèi)型,,如下表1所示:

▲表1▲

03

PEEK使用例程


1、為了使大家能掌握該指令的使用,,下面舉例加以說(shuō)明,,以博圖V16軟件進(jìn)行操作。將數(shù)據(jù)區(qū)DB1中的A的內(nèi)容讀到B中,,C的內(nèi)容讀到D中,,E的狀態(tài)讀到F中。

打開(kāi)博圖V16,,新建一個(gè)名為PEEK指令測(cè)試的項(xiàng)目,,添加一臺(tái)S7-1215C的CPU,創(chuàng)建數(shù)據(jù)塊DB1,,分別建立A,、B,、C、D,、E,、F變量,如下圖3所示:

▲圖3▲

需要注意的是,,一定要將DB1的優(yōu)化塊訪問(wèn)的屬性勾掉,,否則無(wú)法在PEEK指令中使用。操作步驟為右擊項(xiàng)目樹(shù)下的DATADB,,在彈出的選項(xiàng)列表中選擇屬性,,又會(huì)彈出個(gè)對(duì)話(huà)框。勾掉優(yōu)化的塊訪問(wèn)前面的勾,,再次選中DB1,,點(diǎn)擊工具欄的編譯,如下圖4所示:

▲圖4▲

由上圖最后一張圖可見(jiàn),,當(dāng)勾選掉優(yōu)化塊的屬性并點(diǎn)擊編譯后,,DB塊就會(huì)顯示出便宜地址列。新建名稱(chēng)為peektest的FC功能,,語(yǔ)言選擇scl,,點(diǎn)確定。在打開(kāi)的FC1程序編輯區(qū)輸入三條peek指令,,peek指令在指令列表的基本指令-移動(dòng)操作-讀/寫(xiě)存儲(chǔ)器下,。如下圖5所示:

▲圖5▲

上圖中序號(hào)1和序號(hào)2的代碼都加了轉(zhuǎn)換指令,分別是將字轉(zhuǎn)換為整數(shù),、雙字轉(zhuǎn)換為雙整數(shù),,因?yàn)锳、B,、C,、D的數(shù)據(jù)類(lèi)型分別為INT和DINT。如果不用轉(zhuǎn)換指令的話(huà),,指令下方會(huì)出現(xiàn)黃色波浪線(xiàn)以示報(bào)警,。序號(hào)3為位變量的讀取。上述指令均是讀取DB塊內(nèi)的變量,,而且都在同一個(gè)數(shù)據(jù)塊DB1,,所以area填16#84,dbNumber填1,;數(shù)據(jù)A的字節(jié)地址偏移為0,,數(shù)據(jù)C的字節(jié)地址偏移為4,數(shù)據(jù)E的字節(jié)地址偏移為12,位偏移為0,,所以在byteoffset和bitoffset處分別填上上述數(shù)據(jù),。偏移量如下圖6所示:

▲圖6▲

2、仿真測(cè)試

仿真過(guò)程及測(cè)試的結(jié)果如下圖7所示:

▲圖7▲

圖7后面兩張圖可以看出測(cè)試的結(jié)果,,使DB1處于監(jiān)控狀態(tài),,A、C,、E分別輸入456,、-45678、true,,B,、D、F也得到相應(yīng)的值,,當(dāng)把A和E改為0和false后,,B和F也變?yōu)?和false,說(shuō)明PEEK指令執(zhí)行正確,。

總結(jié):也許有的學(xué)員會(huì)說(shuō)這不就是傳送指令嗎,?用MOVE指令或直接賦值不是更簡(jiǎn)單?沒(méi)錯(cuò),,但本篇文章只是向大家介紹指令的結(jié)構(gòu)及基本用法,,因篇幅所限,將在下一篇文章中介紹該指令的高級(jí)用法,。

來(lái)源:技成培訓(xùn)網(wǎng),,作者:技成-何曉剛,未經(jīng)授權(quán)不得轉(zhuǎn)載,!

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多