求助:关于一段语句表程序的逻辑关系; 点击:1056 | 回复:20



zld430070

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-08-24 11:34:00
楼主
我最近在看语句表程序段的时候有一段程序不是很明白,希望有哪位大侠能给我帮助,在这里先谢谢了,程序段如下:
WEIT:   A   #BUSY        
        L   LB  4
        L   LB  3
        XOW
        AW
        T   LB  5
        TAK
        T   LB  3
        =   #BUSY
以上这段程序的逻辑运行关系我不是很明白,希望能给我指点一下,谢谢!



一只孤雁

  • 精华:0帖
  • 求助:0帖
  • 帖子:48帖 | 389回
  • 年度积分:0
  • 历史总积分:772
  • 注册:2006年4月27日
发表于:2007-08-24 15:09:00
1楼
我也看不太懂,期待高手解决!但是你可以把语句表翻译成梯形图或者是逻辑块啊!当然了,在S7-200中,语句表是绝对可以翻译成梯形图和逻辑块的,但是逻辑块和梯形图不一定能够翻译成语句表的!

xwsheng

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 74回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2002年8月02日
发表于:2007-08-24 15:31:00
2楼
一只孤雁,你整个说反了!在S7-200中,语句表是不一定可以翻译成梯形图和逻辑块的,但是逻辑块和梯形图一定能够翻译成语句表的!

liu xianghou

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 195回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2007年8月17日
发表于:2007-08-24 19:05:00
3楼
WEIT:   A   #BUSY        //判断#BUSY是否为1
        L   LB  4        //将本地堆栈的LB4放入ACCU1
        L   LB  3      //将LB3压入ACCU1,ACCU1到ACCU2
        XOW          //ACCU1-L与ACCU2-L异或运算
        AW           //再单字与,就是LB4再与LB3,LB4的异或结果与
        T   LB  5    //结果放入LB5
        TAK          //交换ACCU1、ACCU2内容
        T   LB  3     //ACCU1到LB3,就是LB4的内容放入LB3
        =   #BUSY     //以上运算不影响RLO

结果看上去是对LB3的内容取反的吧

liu xianghou

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 195回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2007年8月17日
发表于:2007-08-24 19:05:00
4楼
有点像计算机中的花指令

皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2007-08-24 21:41:00
5楼
WEIT:   A   #BUSY        //判断#BUSY是否为1
        L   LB  4        //将本地堆栈的LB4放入ACCU1,ACCU1=LB4的内容
        L   LB  3      //将LB3压入ACCU1,ACCU1到ACCU2,ACCU1=LB3的内容,ACCU2=LB4的内容
        XOW          //LB3与LB4异或运算,ACCU1=异或结果,ACCU2=LB3
        AW           //异或结果与LB3相与,ACCU1=相与结果,ACCU2=异或结果
        T   LB  5    //LB5=相与结果
        TAK          //交换ACCU1、ACCU2内容
        T   LB  3     //LB3=相或结果
        =   #BUSY     //以上运算不影响RLO

liu xianghou

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 195回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2007年8月17日
发表于:2007-08-24 22:07:00
6楼
楼上的老兄,都是ACCU2操作ACCU1,结果存在ACCU1中

梅~杰

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 179回
  • 年度积分:0
  • 历史总积分:214
  • 注册:2005年9月03日
发表于:2007-08-24 22:23:00
7楼
有点像计算机中的花指令

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-08-27 22:23:00
8楼
谢谢啦,我看这段程序很久了,一个人看了很多遍一直不敢下结论,没人跟我说一下,在这里万分感谢楼上的各位!

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-08-27 22:30:00
9楼
3楼和5楼兄弟的意思是最后得到的#BUSY与刚开始的#BUSY是一样的吧,与中间运算无任何关系,是这样的吧?

liu xianghou

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 195回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2007年8月17日
发表于:2007-08-28 10:18:00
10楼
是的

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-08-29 18:30:00
11楼
哦,好的,谢谢!

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-08-29 20:51:00
12楼

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-08-30 15:18:00
13楼
我还有一段程序不是很明白,程序如下所示:
Res0: T     #TempBuffer

      L     0
      T     DBB [AR1,P#0.0]
      +AR1  P#1.0

      L     #TempBuffer
      LOOP  Res0      
在上面这段程序中,它如何跳出这个循环?它不可能无限制循环吧。                  

liu xianghou

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 195回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2007年8月17日
发表于:2007-09-06 09:01:00
14楼
当 #TempBuffer值为0时就跳出了

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-09-06 19:35:00
15楼
可是在这个循环内部#TempBuffer是如何变化的呀?

liu xianghou

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 195回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2007年8月17日
发表于:2007-09-06 20:46:00
16楼
LOOP一次ACCU1-L减1也就是#TempBuffer减1

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-09-06 21:05:00
17楼
好的,谢谢!很久不用,都忘了,在学校的时候还用过,呵呵

皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2007-09-06 21:13:00
18楼
完整的程序应为
      L     MW0 [color=#FF0000]//循环次数[/color]
Res0: T     #TempBuffer

      L     0
      T     DBB [AR1,P#0.0]
      +AR1  P#1.0

      L     #TempBuffer
      LOOP  Res0      
循环上面循环次数后退出该循环

zld430070

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 125回
  • 年度积分:0
  • 历史总积分:331
  • 注册:2006年6月02日
发表于:2007-09-06 22:01:00
19楼
恩,是这样的,很久不用都忘记了,谢谢你!

tennis0

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 27回
  • 年度积分:1
  • 历史总积分:169
  • 注册:2009年4月29日
发表于:2011-07-05 16:37:02
20楼

学习了!解释的 很不错啊!


热门招聘
相关主题

官方公众号

智造工程师