回复:子程序控制步进电机出错

已锁定

芳季

西门子1847工业学习平台

  • 帖子

    15629
  • 精华

    102
  • 被关注

    968

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

发布于 2022-12-14 09:27:24

5楼

我把你的程序缩减到极限,看看我下面这个程序,就是映射着你的程序的错误的地方。

ORGANIZATION_BLOCK MAIN:OB1

TITLE=程序注释

BEGIN

Network 1 

//  程序段注释

LD     SM0.0

CALL   SBR0, 99, MB0

Network 2 

//  程序段注释

LD     SM0.0

CALL   SBR1, 100, MB1

END_ORGANIZATION_BLOCK

SUBROUTINE_BLOCK SBR_0:SBR0

TITLE=子程序注释

VAR_INPUT

ru:BYTE;

END_VAR

VAR_OUTPUT

chu:BYTE;

END_VAR

BEGIN

Network 1 

//  程序段注释

LD     SM0.0

MOVB   LB0, LB1

END_SUBROUTINE_BLOCK

SUBROUTINE_BLOCK SBR_1:SBR1

TITLE=子程序注释

VAR_INPUT

ru:BYTE;

END_VAR

VAR_OUTPUT

chu:BYTE;

END_VAR

BEGIN

Network 1 

//  程序段注释

LD     SM0.5

MOVB   LB0, LB1

Network 2 

//  程序段注释

END_SUBROUTINE_BLOCK

INTERRUPT_BLOCK INT_0:INT0

TITLE=中断例程注释

BEGIN

Network 1 

//  程序段注释

END_INTERRUPT_BLOCK

复制以上代码;新建txt文件;粘贴;保存;改名成*.awl;新建smart程序;导入awl文件;下载;run;监视MB0MB1

100..99..100..99..100..99……为啥会这样?

为啥不是保持100?

为啥粘上了上一个子程序的99?

把两个子程序调用的网络换位,还是一样。为什么?

别的你什么都别看,先试我这个程序。

你的程序就是这个现象粘上了不知道谁的值。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9142条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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