- 到2027年將達(dá)萬(wàn)億規(guī)模,五部...
- 國(guó)家發(fā)展改革委等部門(mén)關(guān)于加...
- 西門(mén)子博途SCL: SCL中...
- 華為在工業(yè)軟件上有大動(dòng)作,...
西門(mén)子博途SCL: SCL中間接尋址
簡(jiǎn)介
在 S7-1500 中,統(tǒng)一了所有編程語(yǔ)言的間接尋址選項(xiàng),因此在移植過(guò)程中將部分轉(zhuǎn)換 S7-300/400 中支持的間接尋址。
下表簡(jiǎn)要列出了轉(zhuǎn)換的選項(xiàng)。下面詳細(xì)介紹了各種語(yǔ)言結(jié)構(gòu)的移植。
間接尋址 |
S7-300/400 |
S7-1500 |
---|---|---|
間接尋址 DB |
"BLOCK_DB" 數(shù)據(jù)類(lèi)型 |
“DB_ANY”數(shù)據(jù)類(lèi)型 |
間接尋址 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" 數(shù)據(jù)類(lèi)型到 "DB_ANY" 的移植
"BLOCK_DB" 數(shù)據(jù)類(lèi)型在 S7-1500 中不可用。這種數(shù)據(jù)類(lèi)型的變量將通過(guò)移植轉(zhuǎn)換為 "DB_ANY" 數(shù)據(jù)類(lèi)型。"BLOCK_DB_TO_WORD" 和 "WORD_TO_BLOCK_DB" 轉(zhuǎn)換函數(shù)將通過(guò)移植轉(zhuǎn)換為 "UINT_TO_WORD(DB_ANY_TO_UINT)" 和 "UINT_TO_DB_ANY(WORD_TO_UINT)"。
以下舉例說(shuō)明如何移植 "BLOCK_DB" 數(shù)據(jù)類(lèi)型。
在第一個(gè)表中,為移植前的三個(gè)程序段:
SCL |
---|
#myBlock //數(shù)據(jù)類(lèi)型 BLOCK_DB; //... |
#myWord :=BLOCK_DB_TO_WORD(#myBlock); //... |
#myBlockDB := WORD_TO_BLOCK_DB(#myWord); |
在第二個(gè)表中,為移植后的三個(gè)程序段:
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 中,通過(guò)“PEEK”/“POKE”指令間接指定數(shù)據(jù)塊或 DB 變量。在移植過(guò)程中將自動(dòng)轉(zhuǎn)換為間接尋址。
以下舉例說(shuō)明了如何移植 DB 變量的間接尋址。
在第一個(gè)表中,為移植前的程序段:
SCL |
---|
#myWord := %DB1.DW(IDX :=#myInt); //... |
#myBool := %DB1.DX(IDX :=#myByteOffset,Bit:=#myBitOffset); //... |
%DB1.DW(IDX := #myInt) := 12; //... |
在第二個(gè)表中,為移植后的程序段:
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 中,通過(guò)“PEEK”/“POKE”指令間接指定 PLC 變量。在移植過(guò)程中將自動(dòng)轉(zhuǎn)換為間接尋址。
以下舉例說(shuō)明了如何移植 DB 變量的間接尋址。
在第一個(gè)表中,為移植前的程序段:
SCL |
---|
#myWord := MW(IDX := #myInt); |
在第二個(gè)表中,為移植后的程序段:
SCL |
---|
#myWord := PEEK(area:=16#83,dbNumber:=0,byteOffset:=#myInt); |
- 上一個(gè): 華為在工業(yè)軟件上有大動(dòng)作,對(duì)擂西門(mén)子與達(dá)索
- 下一個(gè): 國(guó)家發(fā)展改革委等部門(mén)關(guān)于加快發(fā)展節(jié)水產(chǎn)業(yè)的指導(dǎo)意見(jiàn)
- 2024-05-07 09:24:05
- 2024-05-07 09:18:23