日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

step7db块寻址_step7中的难点:间接寻址示例,中文详细注释。

發布時間:2023/12/2 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 step7db块寻址_step7中的难点:间接寻址示例,中文详细注释。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

step7中的難點:間接尋址示例,中文詳細注釋。

推薦歡迎糾錯,防止誤導。

FUNCTION "DBtoDB" : VOID //該功能塊的作用是把一個數據塊中的指定的一批數據,復制到另一個塊的指定位置。

TITLE =??????????????????//標題,這里沒有指定

AUTHOR : BaiZH?????????? //作者 感謝您,BaiZH,通過您的這個例子我基本入明白了間接尋址的用法。不過具體在什么情況下使用我還得繼續努力。

FAMILY : IR?????????????? //分類

NAME : DBtoDB??????????????//名稱

VERSION : 0.1??????????????//版本

VAR_INPUT??????????????????????????????????????????????????????????????//輸入型變量聲明開始

SRC_DB : INT ; //Source DB Block Number?????????????????????????? //整型值,要復制的源數據塊塊號

SRC_SttAddr : INT ; //Start Address of the Sending Data in SRC_DB??//源數據塊的要復制的數據起始地址

SendNum : INT ; //Words Number Need Sending???????????????????????? //要復制的數據量

DST_DB : INT ; //Destination DB Block Number?????????????????????? //目標數據塊號

DST_SttAddr : INT ; //Start Address of the Receiving Data in DST_DB //目標數據塊中數據起始地址

END_VAR

VAR_IN_OUT??????????????????????????????????????????????????????????????//輸入輸出變量聲明

Enable : BOOL ; //Enable Bit????????????????????????????????????????//使能此功能塊位

END_VAR

VAR_TEMP????????????????????????????????????????????????????????????????//聲明臨時變量

DB_LOAD_TEMP : INT ;?????????????????????????????????????????????? //存放臨時數據塊塊號

Loop_Val : INT ;???????????????????????????????????????????????????? //Send Data Loop Value //循環次數

DB_SAVE : INT ;???????????????????????????????????????????????????? //保存進入此函數前,系統已經打開的數據塊號

DI_SAVE : INT ;???????????????????????????????????????????????????? //同上

AR1_SAVE : DWORD ;????????????????????????????????????????????????????//保存進入此函數前,地址寄存器1中的值

AR2_SAVE : DWORD ;???????????????????????????????????????????????? //同上

END_VAR

BEGIN??//在STEP7的BLOCK中編輯時的程序主要從這里開始

NETWORK

TITLE =Send Data

//Move data from DB to DB

A???? #Enable;????//使能位,ENABLE為1執行以下程序

JCN?? END;???????? //否則跳轉到最后

TAR1??#AR1_SAVE; // Save AR and Opened DB //保存進入此函數前的數據到臨時變量中,以備離開時復原

TAR2??#AR2_SAVE;

L???? DBNO;???? //同上,保存調用前的現場數據,以備調用完畢復原主程序的現場數據

T???? #DB_SAVE;??//一個DBNO,一個DINO,是因為要同時打開兩個數據塊,只能一個背景數據塊,一個共享數據塊。

L???? DINO;

T???? #DI_SAVE;

L???? #SRC_DB; //Open DB??//把要打開的數據塊塊號通過中間變量#DB_LOAD_TEMP傳送

T???? #DB_LOAD_TEMP;

OPN?? DB [#DB_LOAD_TEMP];

L???? #DST_DB; //Open DB

T???? #DB_LOAD_TEMP;

OPN?? DI [#DB_LOAD_TEMP];

L???? #SRC_SttAddr; //Load Start Address //要復制的數據起始地址

SLD?? 3; //左移位,使的地址指針最右邊三位保證為0,確保符合地址格式的要求。詳細: http://bbs.e10000.cn/a/a.asp?B=302&;ID=608300

LAR1??;

L???? #DST_SttAddr;

SLD?? 3;

LAR2??;

L???? #SendNum;??開始循環程序,把復制的數據量放入循環變量中

LP1:??T???? #Loop_Val; //Move Data

L???? DBW [AR1,P#0.0];

T???? DIW [AR2,P#0.0];

+AR1??P#2.0;??//指針移位

+AR2??P#2.0;

L???? #Loop_Val;

LOOP??LP1; //循環變量減1,判斷循環條件

LAR1??#AR1_SAVE; //Recover Original AR and DB//這里在執行完功能后,開始恢復調用前的主程序現場數據。

LAR2??#AR2_SAVE;

OPN?? DB [#DB_SAVE];

OPN?? DI [#DI_SAVE];

SET?? ; //系統將RLO置1,代表FB(FC)執行完畢,相當于功能塊的ENO使能輸出位。再次感謝cvlsam。

R???? #Enable;

END:??NOP?? 0;

END_FUNCTION

總結

以上是生活随笔為你收集整理的step7db块寻址_step7中的难点:间接寻址示例,中文详细注释。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。