回复:想请问一下我想一次传输单通道的多次变化值,之前提到的间接寻址方法该怎么弄?

已锁定

芳季

西门子1847工业学习平台

  • 帖子

    15811
  • 精华

    103
  • 被关注

    988

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

发布于 2020-08-25 08:09:18

4楼

我这程序是在做软件滤波的时候使用的,可能有一点儿适合你。不过,这程序是一次性记录一批数据。然后就停止记录了。程序最后有一个置位,你从外部把这个置位的位触发一下自己的触发端,就可以又重新记录。(我是说在调用子程序的时候触发,不是叫你改变库程序。)


SUBROUTINE_BLOCK 数据采集:SBR1

TITLE=程序目的:

// 记录指定数据的当前值。直到指定次数后停止记录。记录录入到表头所指的V区偏移处。

// 

// 适用范围:

// 不适宜中断使用。EN端接通一次记录次数据。EN端接通并且触发端接通的时候,数据从第一个开始记录。触发端请使用边缘触发。

// 

// 程序接口:

// 触发 开始记录数据

// 采样 需要记录的原始数据。

// 表头 记录从V区的这个偏移位置开始填写。

// 表长 记录将填写这个次数后停止。

// 

// 占用内存量及工作表结构:

// VWn+0 当前是第几个记录。

// VWn+2 第一个记录。

// VWn+4 第二个记录。

//

// 执行过程:

// 程序扫描一次记录一个数据。连续扫描就连续记录。

// 

// 补充说明:

//

// 使用变化:

//

// 本程序免费使用。也许不会适用于你的程序。当由于任何原因不适用时,程序作者不负有责任。请用户仔细复核程序内容,再继续使用。

// 请出于对作者的劳动成果的尊重,不要删除作者名字。

// 

// 程序密码:

// 

// 作者:芳季2020.8.12

VAR_INPUT

触发:BOOL;

采样:WORD;

表头指针:DWORD;

表长:WORD;

END_VAR

VAR_IN_OUT

工作字节:BYTE;

END_VAR

VAR

数据指针:DWORD;

END_VAR

BEGIN

Network 1 

LD     SM0.0

MOVD   LD3, LD10

+D     +2, LD10

Network 2 

LD     L0.0

MOVW   0, *LD3

R      L9.0, 1

Network 3 

LD     SM0.0

MOVW   *LD3, AC0

*I     +2, AC0

ITD    AC0, AC0

+D     AC0, LD10

Network 4 

LDN    L9.0

MOVW   LW1, *LD10

INCW   *LD3

AW>=   *LD3, LW7

S      L9.0, 1

END_SUBROUTINE_BLOCK


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9426条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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