產地類別 | 進口 | 應用領域 | 化工,石油,電子,交通 |
---|
潯之漫 智控技術有限公司 上海詩慕自動化設備有限公司
本公司銷售西門子自動化產品,*,質量保證,價格優勢
西門子PLC,西門子觸摸屏,西門子數控系統,西門子軟啟動,西門子以太網
西門子電機,西門子變頻器,西門子直流調速器,西門子電線電纜
我公司大量現貨供應,價格優勢,*,德國*
參考價 | 面議 |
更新時間:2020-05-18 20:41:01瀏覽次數:234
聯系我們時請說明是化工儀器網上看到的信息,謝謝!
杭州西門子電纜6XV1830-3EH10 杭州西門子電纜6XV1830-3EH10
潯之漫 智控技術有限公司 上海詩慕自動化設備有限公司
本公司銷售西門子自動化產品,*,質量保證,價格優勢
西門子PLC,西門子觸摸屏,西門子數控系統,西門子軟啟動,西門子以太網
西門子電機,西門子變頻器,西門子直流調速器,西門子電線電纜
我公司大量現貨供應,價格優勢,*,德國*
User Program
LAR2 #AR2_SAVE; //AR2寄存器恢復到使用前狀態
OPN DI [#DB2_SAVE]; //DI寄存器恢復到使用前狀態
1.4 如何得到多重背景FB中的變量在背景DB里的偏移量呢?
可以用下面的方法處理:
TAR2 (得到多重背景FB在背景DB里的偏移地址)
AD DW#16#00FFFFFF (屏蔽掉存儲區ID,可參考32位指針格式)
L P##Variable (得到變量在多重背景FB里的地址)
+D (多重背景FB的偏移地址與變量在多重背景FB里地址相加,即得到實際偏移量)
LAR1
上述語句就是就得到了變量在背景DB中的偏移量,從而供后續程序處理。 1.5如何在程序中使用ANY 型指針? 簡要說明如下:
L P##bbbbb //指向存儲地址指針bbbbb首地址
//這個參數是一個Any類型,P##bbbbb指向參數bbbbb的值所在地址,這就是指針的指針
LAR1 //裝載到地址寄存器AR1中。
L W [AR1,P#4.0] //打開DB塊
// 由Any類型結構知道Any類型的Byte4、Byte5存放的數據塊號
T #BLOCK_NO
OPN DB [#BLOCK_NO] //如果是DB塊,打開的DB塊。
L W [AR1,P#2.0] //判斷ANY指針中數據長度
// Any類型的Byte2、Byte3是重復系數,如P#DB1.DBX0.0 Byte 8后面的Byte 8
_001:T #DATA_LEN //通常此處做loop循環!!
L D [AR1,P#6.0] //找出需要計算數據區的開始地址
// Any類型Byte6~Byte9是32位區域地址
理解Pointer、Any的類型的數據結構,對于正確使用指針有很大幫助。
為正確使用指針,應仔細閱讀如下內容:
"SIMATIC Programming with STEP 7 V5.5" 05/2010 第27.3.4章 參數類型 如下的程序實現了SFC20的部分功能,可以作為Any使用的參考。
FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1
VAR_bbbbb
SRCBLK : ANY ;
END_VAR
VAR_OUTPUT
RETVAL : INT ;
DSTBLK : ANY ;
END_VAR
VAR_TEMP
LOOP : INT ;
BLOCK_NO_DB : WORD ;
BLOCK_NO_DI : WORD ;
SRC_ADD : DWORD ;
DST_ADD : DWORD ;
END_VAR
BEGIN
NETWORK
TITLE =
L P##SRCBLK; //讀取輸入any的首地址
LAR1 ; //裝載到ar1
L P##DSTBLK; //讀取輸出any的首地址
LAR2 ; //裝載到ar2
L W [AR1,P#4.0]; //打開DB塊
T #BLOCK_NO_DB;
L W [AR2,P#4.0]; //打開DI塊
T #BLOCK_NO_DI;
OPN DB [#BLOCK_NO_DB]; //打開DB塊
OPN DI [#BLOCK_NO_DI]; //打開DI塊
L D [AR1,P#6.0];
T #SRC_ADD; //讀取地址
L D [AR2,P#6.0];
T #DST_ADD; //讀取地址 L W [AR1,P#2.0]; //讀取循環次數
_001: T #LOOP;
L DBB [#SRC_ADD];
T DIB [#DST_ADD]; //賦值
//地址偏移1個字節
L P#1.0;
L #SRC_ADD;