您现在所在的是:

西门子SIEMENS

回帖:9个,阅读:1995 [上一页] [1] [下一页]
1120
rehe_1314
文章数:47
年度积分:50
历史总积分:1120
注册时间:2007/6/26
发站内信
发表于:2008/8/31 17:03:00
#0楼
下个星期就要去现场调试了。可是一段显示程序却把我给难住了,怎么办,大家再帮忙看看吧。谢谢~~~~~~~
    AN    M    108.3
     L     S5T#10MS
     SE    T     14
     A     T     14
     =     M    108.3
     A     M    108.3
     JC    A04
     CALL  "FB1" , DB1
      DISP_BIT:=MB128——————这句和前面那句是什么意思,怎么书上没见过这种指令?


     L     MB   128
     INC   1
     T     MB   129
A04:  L     MB   129
       L     B#16#6
       -I    
       JPZ   A05
       L     MB   129
      T     MB   128
       JU    EXIT
A05:  L     0
       T     MB   128

   
FB1块
   L     #DISP_BIT
     T     MB   129
     JL    LIST
     JU    BIT0
     JU    BIT1
     JU    BIT2
     JU    BIT3
     JU    BIT4
     JU    BIT5
LIST: JU    EXIT
BIT0:。。。
。。。


好象是循环10MS定时,但我怎么总感觉看的不是很明白。对大侠来说程序可能很简单,但能不能给我简单的讲讲这段程序,真的很感激。
还有: CALL  "FB1" , DB1
      DISP_BIT:=MB128——————这句和前面那句是什么意思,怎么书上没见过这种指令?
谁说当代雷锋少,一代更比一代好
1168
gm99cn
文章数:80
年度积分:50
历史总积分:1168
注册时间:2007/10/18
发站内信
发表于:2008/8/31 20:40:00
#1楼
我来说说。
“CALL  "FB1" , DB1 ,  DISP_BIT:=MB128”中的“DISP_BIT”是FB1块的参数名。“MB128”为值。
“AN    M    108.3, L     S5T#10MS,SE    T 14, A    T14,=  M108.3”是一个可以自动复位从新即时的定时器。当时间到时 M108.3=1。下次扫描时AN M108.3=0,停止复位定时器,M108.3=0。再次扫描时AN M108.3=1,定时器从新启动。
mail:gaojian@gaojian100.cn网址:gaojian100.cn
978
xxp032
文章数:8
年度积分:50
历史总积分:978
注册时间:2008/2/2
发站内信
发表于:2008/8/31 22:51:00
#2楼
AN    M    108.3
     L     S5T#10MS
     SE    T     14
     A     T     14
     =     M    108.3
  这是个下降沿10ms脉冲程序,每10ms m108.3就会从1跳0 突变(m108.3长时间为1) 。
A     M    108.3
     JC    A04
CALL  "FB1" , DB1
DISP_BIT:=MB128
每过10ms就调用一次fb1,否则就跳到 A04     CALL  "FB1" , DB1功能块调用FB1块
 
     
A04:  L     MB   129
       L     B#16#6    
       -I                        
JPZ   A05
       L     MB   129
      T     MB   128
       JU    EXIT
A05:  L     0
       T     MB   128
如果mb129>=6,就跳到A05给mb129清零。如果m129<6就把mb128值给mb129并转到exit
L     #DISP_BIT
     T     MB   129
     JL    LIST           mb128>5转到list
     JU    BIT0          mb128=0转到 BIT0
     JU    BIT1           mb128=1转到 BIT1
     JU    BIT2           mb128=2转到 BIT2
     JU    BIT3           ……
     JU    BIT4          ……
     JU    BIT5            mb128=5转到 BIT5  
LIST: JU    EXIT



整个程序是说:如果mb128>5,就给mb128送0,mb128=0就转到bit0 ,……
mb128=5 就转到bit5,程序没写完具体功能不知是干什么,有什么疑问就上网聊q308428772
1120
rehe_1314
文章数:47
年度积分:50
历史总积分:1120
注册时间:2007/6/26
发站内信
发表于:2008/9/1 9:36:00
#3楼
先谢谢gm99cn和xxp032的精彩讲解。
两位大侠讲的都很详细。呵呵。
我已经差不多能理解了。
这里 L     #DISP_BIT是不是就指的 L     MB128呢。
谁说当代雷锋少,一代更比一代好
1120
rehe_1314
文章数:47
年度积分:50
历史总积分:1120
注册时间:2007/6/26
发站内信
发表于:2008/9/1 9:39:00
#4楼
让我头疼的主要是MB128和MB129
   L     MB   128
     INC   1
     T     MB   129
A04:  L     MB   129
       L     B#16#6
       -I    
       JPZ   A05
       L     MB   129
      T     MB   128
       JU    EXIT
A05:  L     0
       T     MB   128
这两个家伙换来换去的,不知道以谁为主。
嘿嘿,可能男的逻辑思维就是比女的强吧。
谁说当代雷锋少,一代更比一代好
1168
gm99cn
文章数:80
年度积分:50
历史总积分:1168
注册时间:2007/10/18
发站内信
发表于:2008/9/1 14:12:00
#5楼
用“A”代“ MB   128”,“temp”代“ MB   129”。
“L   MB128,  INC 1,    T  MB129”为:temp=A+1。(255+1=0)。
“A04:  L  MB129,   L  B#16#6,  -I,  JPZ  A05”为:如果temp<6,不跳转;否则跳转到A05处。
“L  MB129, T MB128”为:A=temp。
“L 0,   T  MB128”为:A=0。

用Basic表示为:“temp=A+1,IF temp<6 THEN  A=temp ELSE A=0”。
晕,没写完按错键发了出去,继续。。。
        等效于:“IF A<5 THEN A=A+1 ELSE A=0”。temp可以回家了。
A的有效范围为“0~5”。

[此贴子已经被作者于2008-9-1 14:18:16编辑过]
mail:gaojian@gaojian100.cn网址:gaojian100.cn
1120
rehe_1314
文章数:47
年度积分:50
历史总积分:1120
注册时间:2007/6/26
发站内信
发表于:2008/9/1 17:04:00
#6楼
回gm99cn:在我脑海里,你真是个天才。呵呵。 没想到PLC程序还可以这样来分析。这样一来,真是简单多了。你太厉害了。厉害的是你的讲授方式。让我猜猜,你是老师吗?

今天又去找老师了,还是那个补码转换的程序。他说我理解错了,师兄的程序是对的。
这是师兄的程序,你能帮忙看看吗。
     L     PIW  290
     T     MW   126
     L     2#1000000000000000  
     AW      
     JZ    A00
     TAK  
     L     1
     -I    
     INVI  
     L     2#1111111111111111
     AW    
     JU    A01

A00:  TAK  
A01:  T     MW   124
     L     2#101000000000
     -I    
     L     2#1111111111111111
     AW    
     T     MW    66
     L     2#1000000000000000
     AW    
疑问:
1.如果PIW 290里面是负整数,则从TAK开始往下执行,这里为什么要减1再取反,效果和取反后加1是一样的吗?后面与个 2#1111111111111111,得到岂不是和原来的一样。
最后放到MW 124的应该是个负整数吧,是不是应该先去绝对值再减。
2.如果PIW 290里面是正数,则跳到A00,不过TAK以后再从哪开始执行呢。

能象上面那样给我讲解一下吗。谢谢了
谁说当代雷锋少,一代更比一代好
1168
gm99cn
文章数:80
年度积分:50
历史总积分:1168
注册时间:2007/10/18
发站内信
发表于:2008/9/1 20:04:00
#7楼
说好说的。。。
我不是老师。
在这里 “L  2#1111111111111111,  AW”这条可以省了。。
A01:以下没看懂。。。
再好不说的。。。
“减1再取反”和“取反后加1” 是一样的。
mail:gaojian@gaojian100.cn网址:gaojian100.cn
1120
rehe_1314
文章数:47
年度积分:50
历史总积分:1120
注册时间:2007/6/26
发站内信
发表于:2008/9/1 22:12:00
#8楼
明白了,明白了。呵呵。谢谢。谢谢。
谁说当代雷锋少,一代更比一代好
954
jiyu555
文章数:2
年度积分:50
历史总积分:954
注册时间:2008/10/11
发站内信
发表于:2008/10/11 1:19:00
#9楼
高手伱能加我QQ吗 306096588

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

93.6006