我很疑惑,请帮我解释一下

已锁定

清风飞扬

  • 帖子

    155
  • 精华

    2
  • 被关注

    1

论坛等级:侠客

注册时间:2003-09-04

普通 普通 如何晋级?

我很疑惑,请帮我解释一下

764

3

2003-10-24 14:03:59

ORGANIZATION_BLOCK MAIN:OB1
TITLE=PROGRAM COMMENTS
BEGIN
Network 1 // Network Title
// Network Comment
LD SM0.1
MOVB 16#80, VB14
MOVW +25, VW76
MOVB 0, VB1300
Network 2
LD M0.0
MOVB 16#80, VB14
BMW VW20, VW1200, 10
MOVD &VB20, VD2000
BMW VW40, VW1220, 10
MOVD &VB40, AC1
MOVD AC1, VD2004
Network 3
LD M0.1
MOVB 16#40, VB14
R M0.1, 1
R M9.1, 1
Network 4
LD M0.2
MOVB 16#20, VB14
R M0.2, 1
Network 5
LD M0.3
MOVB 16#10, VB14
R M0.3, 1
Network 6
LD SM0.5
LD M8.0
CTD C0, +4
Network 7
LD SM0.5
LD M8.1
CTD C1, +2
Network 8
LD M9.1
LPS
A C0
CALL Shake:SBR1, VD2000, VB1300
LPP
A C1
A M2.0
CALL Circle:SBR0, VD2004, 10
Network 9
LD M0.0
= M8.0
= M8.1
S M9.1, 1
R M0.0, 1
Network 10
LD C0
= M8.0
Network 11
LD C1
= M8.1
Network 12
LD M4.1
R M4.0, 1
R M4.1, 1
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK Circle:SBR0
TITLE=SUBROUTINE COMMENTS
VAR_INPUT
Ori_Adr:DWORD;
Str_Len:WORD;
END_VAR
VAR
Rear_Adr:DWORD;
D_SLen:DINT;
B_SLen:BYTE;
W_SLen:WORD;
END_VAR
BEGIN
Network 1 // Network Title
// Network Comment
LD SM0.0
MOVD LD0, AC1
ITD LW4, LD10
MOVD LD0, LD6
+D LD10, LD6
MOVW LW4, LW15
Network 2
LD SM0.0
ITB LW4, LB14
BMW *LD0, VW1532, LB14
-I +1, LW15
MOVW LW15, AC1
*I +2, AC1
+I +1532, AC1
MOVW *AC1, VW1530
BMW VW1530, *LD0, LB14
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK Shake:SBR1
TITLE=SUBROUTINE COMMENTS
VAR_INPUT
Ori_Adr:DWORD;
END_VAR
VAR_IN_OUT
IniDis:BYTE;
END_VAR
VAR
ToLeft:BOOL;
ToRight:BOOL;
Rear_Adr:DWORD;
tmp_iniVal:DWORD;
END_VAR
BEGIN
Network 1
// compute theadress of head and of rear
LD SM0.0
MOVD LD0, LD10
MOVD LD10, LD6
+D +18, LD6
Network 2
// move toward the right while turning on
LDW= *LD10, 16#2020
AW= *LD6, 16#2020
AB<> LB4, 1
S L5.1, 1
MOVB 1, LB4
Network 3 // Network Title
// to right if the value of head equal to the ' '
LDW<> *LD10, 16#2020
AB= LB4, 1
S L5.1, 1
R L5.0, 1
Network 4
// to left if the value of rear equal to the ' '
LDW<> *LD6, 16#2020
AB= LB4, 1
S L5.0, 1
R L5.1, 1
Network 5
// the action of left
LD L5.0
BMW *LD0, VW1500, 10
MOVW +1500, AC1
+I +20, AC1
MOVW *AC1, VW1520
BMW VW1502, *LD0, 10
Network 6
// the string move to right
LD L5.1
BMW *LD0, VW1502, 10
MOVW +1502, AC1
+I +18, AC1
MOVW *AC1, VW1500
BMW VW1500, *LD0, 10

Network 7


END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=INTERRUPT ROUTINE COMMENTS
BEGIN
Network 1 // Network Title
// Network Comment
END_INTERRUPT_BLOCK




我很疑惑!
如果只执行shake子程序时,程序能正常执行。但是如果同时执行circle和shake两个子程序时,shake子程序不能正常执行,circle子程序能正常执行。
我发现是在shake子程序中变量L5.1很奇怪地导通了!在程序中L5.1是不应该导通的。

我的这个程序是在td200上同时显示两行文字,但它们以不同的方式在不停的运动

shake子程序的功能应该是:
把如下的字符按以下的方式运动:
1. "xxCCCCCCxx"
2. "xxxCCCCCCx"
3. "xxxxCCCCCC"
4. "xxxCCCCCCx"
5. "xxCCCCCCxx"
6. "xCCCCCCxxx"
7. "CCCCCCxxxx"
8. "xCCCCCCxxx"
9. "xxCCCCCCxx"

x 代表空格,C代表中文字符
如果两个子程序同时执行时,shake子程序就在7,8两处执行
我很疑惑,请帮我解释一下 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33288条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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