恭喜,你发布的帖子
发布于 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?
把两个子程序调用的网络换位,还是一样。为什么?
别的你什么都别看,先试我这个程序。
你的程序就是这个现象粘上了不知道谁的值。
请填写推广理由:
分享
只看
楼主