S7-300/400的DB块指针寻址编程案例

已锁定

东方红一红

版主 西门子1847工业学习平台

  • 帖子

    6606
  • 精华

    50
  • 被关注

    132

论坛等级:至圣

注册时间:2003-07-12

钻石 钻石 如何晋级?

S7-300/400的DB块指针寻址编程案例

6344

16

2020-12-23 13:09:43

star star star

前不久,遇见多为网友同行发帖询问DB块内部指针寻址的原理和编程问题。抽空翻出十几年前的项目,找到合适的案例,特分享如下。案例有3方面的示范内容。

1,指针的计算和寻址编程;

2,循环指令的编程;

3,BCC的计算算法;


分享案例是用于通讯校验和BCC的计算,实际项目案例,经过运行验证。程序借用注意事项:

4,如果寻址的单元不同于案例,无论byte、word、dword,模仿案例的计算思路,修改即可。

5,求和注意循环次数对应的求和单元的长度。

6,案例代码如下:

FUNCTION "BCC Calculation" : VOID

TITLE =

VERSION : 0.1



VAR_INPUT

  DB_no : BLOCK_DB ; 

  StartDBBno : INT ; 

  Byte_Len : INT ; 

END_VAR

VAR_OUTPUT

  BCC : BYTE ; 

END_VAR

VAR_TEMP

  LoopCounter : BYTE ; 

  XorWordSumLoByte : BYTE ; 

  XorWordSum : WORD ; 

END_VAR

BEGIN

NETWORK

TITLE =


      OPN   #DB_no; 

      L     P#0.0; 

      TAR1  ; 

      L     #StartDBBno; 

      DEC   1; //因为DBB(x)是DBW(x-1)的低字节

      L     P#1.0; 

      *I    ; 

      +AR1  ; 

      L     0; 

      T     #XorWordSum; 

      L     #Byte_Len; 

next: T     #LoopCounter; 

      L     #XorWordSum; 

      L     DBW [AR1,P#0.0]; 

      XOW   ; 

      T     #XorWordSum; 

      +AR1  P#1.0; 

      L     #LoopCounter; 

      LOOP  next; 


      L     #XorWordSum; 

      T     #XorWordSumLoByte; 

      L     #XorWordSumLoByte; 

      T     #BCC; 

END_FUNCTION


S7-300/400的DB块指针寻址编程案例 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54043条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。