在 S7-1500 中,統一了所有編程語言的間接尋址選項,因此在移植過程中將部分轉換 S7-300/400 中支持的間接尋址。
下表簡要列出了轉換的選項。下面詳細介紹了各種語言結構的移植。
間接尋址 | S7-300/400 | S7-1500 |
---|---|---|
間接尋址 DB | "BLOCK_DB" 數據類型 | “DB_ANY”數據類型 |
間接尋址 DB 變量 | #block.%DBW3 | “PEEK”/“POKE”指令 |
WORD_TO_BLOCK_DB(#myWord).%DBW3 | “PEEK”/“POKE”指令 | |
#block.DW(IDX := #myInt) | “PEEK”/“POKE”指令 | |
WORD_TO_BLOCK_DB(#myWord).DW(IDX:=#myInt) | “PEEK”/“POKE”指令 | |
%DB1.DW(IDX :=#myInt) | “PEEK”/“POKE”指令 | |
間接尋址 I/O | QB(IDX :=#myInt):P | “PEEK”/“POKE”指令 |
間接尋址 PLC 變量 | IX(IDX :=#myInt1,Bit:=#myInt2) | “PEEK”/“POKE”指令 |
QB(IDX :=#myInt) | “PEEK”/“POKE”指令 | |
MW(IDX :=#myInt) | “PEEK”/“POKE”指令 |
"BLOCK_DB" 數據類型到 "DB_ANY" 的移植
"BLOCK_DB" 數據類型在 S7-1500 中不可用。這種數據類型的變量將通過移植轉換為 "DB_ANY" 數據類型。"BLOCK_DB_TO_WORD" 和 "WORD_TO_BLOCK_DB" 轉換函數將通過移植轉換為 "UINT_TO_WORD(DB_ANY_TO_UINT)" 和 "UINT_TO_DB_ANY(WORD_TO_UINT)"。
以下舉例說明如何移植 "BLOCK_DB" 數據類型。
在第一個表中,為移植前的三個程序段:
SCL | |
---|---|
#myBlock //數據類型 BLOCK_DB; //... |
|
#myWord :=BLOCK_DB_TO_WORD(#myBlock); //... |
|
#myBlockDB := WORD_TO_BLOCK_DB(#myWord); |
在第二個表中,為移植后的三個程序段:
SCL | |
---|---|
#myBlock //Datentyp DB_Any; //... |
|
#myWord := UINT_TO_WORD(DB_ANY_TO_UINT(#myBlock)); //... |
|
#myDBANY:= UINT_TO_DB_ANY(WORD_TO_UINT(#myWord)); |
移植 DB 變量的間接尋址
在 S7-1500 中,通過“PEEK”/“POKE”指令間接指定數據塊或 DB 變量。在移植過程中將自動轉換為間接尋址。
以下舉例說明了如何移植 DB 變量的間接尋址。
在第一個表中,為移植前的程序段:
SCL | |
---|---|
#myWord := %DB1.DW(IDX :=#myInt); //... |
|
#myBool := %DB1.DX(IDX :=#myByteOffset,Bit:=#myBitOffset); //... |
|
%DB1.DW(IDX := #myInt) := 12; //... |
在第二個表中,為移植后的程序段:
SCL | |
---|---|
#myWord := PEEK_WORD(area:=16#84, dbNumber:=1, byteOffset:=#myInt); //... |
|
#myBool:=PEEK_BOOL(area:=16#84, dbNumber:=1, byteOffset:=#myByteOffset, bitOffset:=#myBitOffset); //... |
|
POKE(area:=16#84,dbNumber:=1,byteOffset:=#myInt,value:=12); //... |
移植 PLC 變量的間接尋址
在 S7-1500 中,通過“PEEK”/“POKE”指令間接指定 PLC 變量。在移植過程中將自動轉換為間接尋址。
以下舉例說明了如何移植 DB 變量的間接尋址。
在第一個表中,為移植前的程序段:
SCL | |
---|---|
#myWord := MW(IDX := #myInt); |
在第二個表中,為移植后的程序段:
SCL |
---|
#myWord := PEEK(area:=16#83,dbNumber:=0,byteOffset:=#myInt); |
審核編輯:湯梓紅
-
plc
+關注
關注
5031文章
13795瀏覽量
472622 -
移植
+關注
關注
1文章
394瀏覽量
28600 -
編程語言
+關注
關注
10文章
1955瀏覽量
36235 -
S7-1500
+關注
關注
3文章
301瀏覽量
6753
原文標題:西門子博途:在 SCL 中間接尋址
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
基于S7-1500 CPU集成PN口的Modbus TCP通信快速入門
基于S7-1500、ET系列CPU的結構及使用

S7-1500系統架構及特點

西門子S7-1500憑什么秒殺S7-300/400?

關于S7-1200或S7-1500 PLC的通信
S7-1500 CPU支持與其它S7-1500 CPU進行直接數據交換
西門子S7-1500 之間 S7 通信

S7-1500之間S7通信實例

評論