在工業控制中,經常會使用到變址運算的功能。那在S7-1200中,我們需要怎么實現變址的效果呢?PEEK/POKE指令為我們提供了一個實現方法。
讓我們先認識一下PEEK/POKE指令吧。
在S7-1200里面,PEEK/POKE指令僅在SCL中可用。指令位于“基本指令”--“移動操作”--“讀/寫存儲器”中。如“圖1”所示。
圖1 PEEK/POKE指令位置
PEEK:讀取存儲地址,可讀取Byte、Word、Dword類型的數據寄存器;
PEEK_BOOL:讀取位存儲地址,可讀取Bool類型的數據寄存器;
指令格式如下:
#Peeker := PEEK(AREA := 16#84,
DBNUMBER := 1,
BYTEOFFSET := 2);
#Peeker_BOOL := PEEK_BOOL(AREA := 16#84,
DBNUMBER := 1,
BYTEOFFSET := 2,
BITOFFSET := 1);
其中#Peeker、#Peeker_BOOL為PEEK指令讀取返回出來的寄存器值。
AREA為讀取的寄存器區域:16#81對應輸入I區;16#82對應輸出Q區;16#83對應位存儲區M區;16#84對應數據塊DB區。
DBNUMBER 為讀取的數據塊DB編號。當AREA為“16#84”時,如讀取“DB10”,則“DBNUMER”為10。如果AREA不是“16#84”,則DBNUMER應設為“0”。
BYTEOFFSET為字節偏移量,決定讀取寄存器的起始地址。如讀取DB10.DBD56,則BYTEOFFSET為“56”。
BITOFFSET為位偏移量,PEEK_BOOL指令中需要填寫。如讀取DB1.DBX5.3,則BYTEOFFSET為“5”,BITOFFSET為“3”。
POKE(AREA := 16#84,
DBNUMBER := 1,
BYTEOFFSET := 2,
VALUE := BYTE#7);
POKE(AREA := 16#84,
DBNUMBER := 1,
BYTEOFFSET := 2,
BITOFFSET := 4,
VALUE := TRUE);
其中AREA、DBNUMBER、BYTEOFFSET、BITOFFSET這些引腳和PEEK指令是一致的。VALUE為寫入到寄存器中的值。
下面我們以一個案例來講解PEEK和POKE的使用吧。
例程1:求和DB1數據塊中,從DB1.DBW0~DB1.DBW18十個字的數據之和。
首先,我們新建一個DB1,并在DB1里添加10個INT變量,如圖2所示。由于PEEK需要指向juedui地址,因此需要將DB塊屬性中的“優化的塊訪問”取消。
圖2 數據塊DB1內容
然后,我們新建一個FC功能,來編寫求和程序,求和程序代碼如下圖所示。
圖3 PEEK求和程序代碼
Zui后,運行看看我們的結果吧。
圖4 PEEK求和程序運行
例程2:將M0.5~M1.2六個位地址值傳送至DB2.DBX0.0~DB2.DBX0.5中;
同例1一樣方法新建DB2。
新建一個FC功能,編寫程序,程序代碼如下圖所示。
圖5 PEEK/POKE數據批量傳送程序
程序運行結果如下:
圖6 PEEK/POKE數據批量傳送運行結果
- 西門子S7-200 SMART中字符串處理方法 2024-12-02
- 西門子HMI通過PLC控制畫面切換 2024-12-02
- 西門子S7-200 SMART之For循環的使用 2024-12-02
- 西門子S7-1200/1500與第三方設備(PN總線閥島)進行Profinet通訊 2024-12-02
- 西門子 Xcelerator 平臺首家第三方商店上線 2024-12-02
- 西門子英偉達GTC 2024,攜手解鎖工業元宇宙新玩法 2024-12-02
- 西門子S7-200smart PLC IO通道壞了,如何在觸摸屏上修改 2024-12-02
- 西門子觸摸屏SMART line如何通過下拉欄指定畫面跳轉 2024-12-02
- 西門子觸摸屏smart line屏幕如何添加指示燈 2024-12-02
- 巧用西門子觸摸屏SMART line柱狀圖(棒圖) 2024-12-02
- PLC竟然會發出錯誤信號?別稀里糊涂中招了 2024-12-02
- 西門子S7-200 SMART PLC軟元件、數據類型及數據直接尋址講解 2024-12-02
- 西門子S7-1500與S7-300型譜對照表,S7-1500優勢在哪里? 2024-12-02
- 西門子S7-1200 PLC如何與V90伺服通信控制 2024-12-02
- DCS和PLC爭了40年,Zui大的區別究竟在哪里 2024-12-02
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415