发布于 2010-01-13 11:54:36
7楼
我先举一个例子支持一下自己的观点.
ORGANIZATION_BLOCK 主程序:OB1
TITLE=程序注释
// SBR0对一级嵌套的子程序所使用的L区写值。
// SBR 1 2 3 4 都是一级子程序,都读取共享区数据并输出。
//
// SBR5是二级嵌套的子程序。对二级共享的L区域写值。
// SBR 6 7 都是二级子程序,都读取共享区数据并输出。
//
// 在此。一 二级的共享区使用了相同的编程符号。LB0。但通过上机运行,显然互不干涉。
BEGIN
Network 1 // 网络标题
// 网络注释
LD SM0.0
CALL SBR0
CALL SBR1
CALL SBR2
CALL SBR3
CALL SBR4
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD SM0.5
EU
LD SM0.5
ED
OLD
INCB LB0
Network 2
LD SM0.0
CALL SBR5
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_1:SBR1
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD L0.0
= Q0.0
Network 2
LD SM0.0
CALL SBR6
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_2:SBR2
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD L0.1
= Q0.1
Network 2
LD SM0.0
CALL SBR7
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_3:SBR3
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD L0.2
= Q0.2
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_4:SBR4
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD L0.3
= Q0.3
Network 2 // 网络标题
// 网络注释
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_5:SBR5
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD SM0.5
EU
INCB LB0
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_6:SBR6
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD L0.0
= Q1.0
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_7:SBR7
TITLE=子程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD L0.1
= Q1.1
Network 2 // 网络标题
// 网络注释
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_INTERRUPT_BLOCK