请高手们看看程序,变址的问题

已锁定

plc学生

  • 帖子

    18
  • 精华

    0
  • 被关注

    0

论坛等级:游侠

注册时间:2009-07-16

普通 普通 如何晋级?

请高手们看看程序,变址的问题

972

9

2015-01-17 09:00:17

每次执行程序时都是从VB0+VB1+VB2如果不等于30,指针加1变为VB1+VB2+VB3然后结果再作判断,等于则停止。但我的程序没有按设想运行,调用一次就不运行了。
ORGANIZATION_BLOCK 主程序:OB1
TITLE=程序注释
BEGIN
Network 1 // 网络标题
// 上位机存入数据
LD SM0.0
MOVB 0, VB0
MOVB 1, VB1
MOVB 2, VB2
MOVB 3, VB3
MOVB 4, VB4
MOVB 5, VB5
MOVB 6, VB6
MOVB 7, VB7
MOVB 8, VB8
MOVB 9, VB9
MOVB 10, VB10
MOVB 11, VB11
MOVB 12, VB12
MOVB 13, VB13
MOVB 14, VB14
MOVB 15, VB15
Network 2
// QIDONG调用子程序
// ZHIZHENG起始地址
// ZHIJIGESHU字节个数
// ZHONGJIAN2起始地址变化,每次加1
// ZHONGHE每次调用SBR0的累加和
// WANCHENG子程序运行结束置位
LD M0.0
O M0.1
O SM0.1
= L60.0
LD M0.0
O M0.1
= L63.7
LD L60.0
CALL SBR0, L63.7, &VB0, 3, VD20, VW30, VW40, M1.0
Network 3
// 结果不符进行变址加1
LD SM0.0
A M1.0
AW<> VW30, 30
AN C0
EU
INCD VD20
S M0.1, 1
Network 4
LD SM0.0
A M1.0
AW<> VW30, 30
A M0.1
EU
LD SM0.0
A M1.0
ED
O SM0.1
CTU C0, 1
Network 5
LD SM0.0
A M1.0
ED
R M0.1, 1
Network 6
// 第一次启动
LD I0.0
EU
= M0.0
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=子程序注释
VAR_INPUT
QIDONG:BOOL;
ZHIZHENG:DWORD;
ZHIJIGESHU:WORD;
ZHONGJIAN2:DWORD;
END_VAR
VAR_OUTPUT
ZHONGHE:WORD;
DIZHI:WORD;
WANCHENG:BOOL;
END_VAR
VAR
ZHONGJIAN1:DWORD;
ZHONGJIAN3:DWORD;
ZHONGJIAN4:WORD;
END_VAR
BEGIN
Network 1
// 复位一下
LD L0.0
EU
R L15.0, 1
Network 2 // 网络标题
// 网络注释
LD L0.0
MOVD LD1, LD16
MOVD LD16, LD20
+D LD7, LD20
MOVB *LD20, AC0
DECW LW5
Network 3
LD L0.0
FOR LW24, +1, LW5
Network 4
// 加
LD L0.0
+D +1, LD20
MOVB *LD20, AC1
+I AC1, AC0
Network 5
NEXT
Network 6
// 输出
LD L0.0
AW= LW24, +3
MOVW AC0, LW11
= L15.0
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_INTERRUPT_BLOCK
请高手们看看程序,变址的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33277条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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