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

这篇博客分享了一个使用STEP7进行DB块指针寻址的实战案例,涉及指针计算、循环指令编程和BCC(帧校验和)计算算法。案例程序适用于通讯校验,详细解释了如何根据不同的寻址单元调整计算思路,并提供了完整的BCC计算功能块代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前不久,遇见多为网友同行发帖询问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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值