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中的难点:间接寻址示例,中文详细注释。相关推荐

  1. step7db块寻址_step7 根据db地址块怎样找I/O点

    楼主是想在数据块DB中查找呢还是想在FC/FB或OB块中查找呢?如果是在数据块DB中查找,打开希望查找的数据块,例如打开数据块DB9,看地址处是1940的数据就是你需要找的DB9.DBD1940.如图 ...

  2. python处理pdf提取指定数据_python从PDF中提取数据的示例

    01 前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都 ...

  3. python从字符串中提取数字并转换为相应数据类型_python从PDF中提取数据的示例

    01 前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都 ...

  4. python pdf提取数据_python从PDF中提取数据的示例

    01 前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都 ...

  5. java 艺术字_Java 在Word文档中添加艺术字的示例

    与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中.我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版.这篇文章将介绍如何使用 ...

  6. java显示艺术字_Java 在Word文档中添加艺术字的示例

    与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中.我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版.这篇文章将介绍如何使用 ...

  7. 前端vue适配不同的分辨率_前端面试时,被问到项目中的难点有哪些?

    在每个前端求职者的面试过程中,一定都有过被面试官问到项目中的难点,而答不上来的情况.为了让大家在前端面试前准备得更加充足,小编准备了一些易被忽视且难度较高的前端面试题,希望可以帮助大家更加顺利完成求职 ...

  8. F2FS数据块寻址(linux5.18.11)

    一.node block与data block node block:存储元数据(比如ino.寻址数据块用到的一些信息等等)的block.node block有三种类型:inode block.dir ...

  9. java难点_JAVA-详细分析JAVA中的难点与重点

    Java中有很多内容在开发项目的过程中并不常用,但是却是很重要的部分,为了避免忘记,今天重新温习了一遍Java中的重点和难点,借此机会记录一下方便以后查找. 本文主要分为以下几个部分: 1.进制的相互 ...

最新文章

  1. eclipse代码模版里设置模版快捷键
  2. php学习day9---数据库的基本知识
  3. cf1139D. Steps to One(dp)
  4. 动态生成HTML页面
  5. 云游戏是大厂的“游戏”之腾讯云云游戏指南
  6. linux数据同步技术比较,linux下实现web数据同步的四种方式(性能比较)教程.docx
  7. java打印九九乘法表——CSDN博客
  8. JVM核心之JVM运行和类加载全过程
  9. 炫彩渐变海报版式海报
  10. c 结构体之位域(位段)
  11. android内存泄漏原因分析,Android 内存泄漏案例分析总结(Handler)
  12. python json转xml_Python实现XML到JSON的转换并编写,python,xml,转化,为,Json,进行,写入
  13. What is yield
  14. ping tracert 用法
  15. ureport2 mysql_springboot整合UReport2
  16. android词根词缀,词根词缀记忆字典 - 好担心你们因为它的界面丑,而错过这款背单词神器 - Android 应用 - 【最美应用】...
  17. 策略和投资组合分析-收益分析、风险回报分析和回撤分析
  18. 基于卫星高度计海面高度异常资料获取潮汐调和常数方法及应用matlab代码
  19. 计算机启动过程:MBR和BIOS
  20. 途家木鸟美团夏日折扣对垒,门槛低就一定香吗?

热门文章

  1. mysql 深胡_Mysql胡说八道
  2. 【自适应盲均衡4】基于RLS的多径衰落信道均衡算法(RLS-CMA)的理论推导与MATLAB仿真
  3. 计算机怎么录制视频教程,怎么录制视频教程?查看电脑具体录屏方法
  4. java中套接字,如何在java中获得一个开放的套接字?
  5. 简单排序--插入排序
  6. java main 如何不退出_为什么java main主线程退出了子线程还能运行;golang main结束所有协程都被结束了...
  7. 2019-04(1)(Python学习)
  8. Android Studio 日志工具
  9. 《重构-改善既有代码的设计》学习笔记(一)
  10. java 可重入读写锁 ReentrantReadWriteLock 详解