请分析S7-300语句表 点击:1367 | 回复:10



jiangminxi0

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 2回
  • 年度积分:0
  • 历史总积分:35
  • 注册:2007年8月02日
发表于:2012-05-05 19:56:01
楼主

  下面的一段S7-300程序语句,请帮我看看,#OUT3输出什么啊,跳转跳转的,我都半天看不明白,能注解下吗。先谢了。

    L     W#16#FFF
      L     #IN0
      <>I  
      JC    M001
      L     4.000000e+002
      JU    M002
M001: ITD  
      DTR  
      L     1.000000e+001
      /R   
      L     #IN1
      ITD  
      DTR  
      +R   
M002: T     #TEMP7
      L     4.000000e+000
      /R   
      T     #OUT3
      L     #TEMP7
      RND  
      T     #OUT2



楼主最近还看过



chun_cnooc

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 172回
  • 年度积分:0
  • 历史总积分:1925
  • 注册:2011年6月27日
发表于:2012-05-05 20:21:23
1楼
兄台,写梯形图全球通用

kskstiy

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 379回
  • 年度积分:0
  • 历史总积分:2649
  • 注册:2010年8月30日
发表于:2012-05-06 09:46:52
2楼

注解的话太复杂了,要写很多啊,怕麻烦了。我就简单点说吧

如果IN0的值不等于16#FFF的话,计算结果为

OUT3=(IN0/10+IN1)/4,这个值是浮点数

OUT2=(IN0/10+IN1)的值转换成双精度整数的值

如果相等的话

OUT3=0.1

OUT2=400

kskstiy

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 379回
  • 年度积分:0
  • 历史总积分:2649
  • 注册:2010年8月30日
发表于:2012-05-06 09:56:18
3楼

装16#FFF到累加器1

装变量IN0到累加器1,16#FFF移动到累加器2中

如果累加器1不等于累加器2的值,就是IN0不等于16#FFF的话

跳转M001;(如果相等的话,装在400.0到累加器1中,IN0移动到累加器2中,无条件跳转M002)

M001.把IN0转换成双整数

把IN0转换成浮点数

把10.0装入累加器1,把IN0移动到累加器2中

IN0/10.0,结果放到累加器1中

把IN1装到累加器1中,IN0/10.0移动到累加器2中

把IN1先转换成双整数,在转换成浮点数

把累加器1和累加器2相加,结果放到累加器1中,就是(IN1+INO/10.0)

M002,把累加器1的结果传送到TEMP7中,就是TEMP7=IN1+INO/10.0

装在4.0到累加器1,IN1+INO/10.0的值移动到累加器2中

累加器2除累加器1,结果放在累加器1中,就是(IN1+INO/10.0)/4.0

把累加器1的结果输出到OUT3,就是OUT3=(IN1+INO/10.0)/4.0

把TEMP7转换成双精度整数,然后输出到OUT2=(IN1+INO/10.0)/4.0

 

哎,写完了,累啊

 

通讯网

  • 精华:11帖
  • 求助:2帖
  • 帖子:464帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-05-06 12:30:01
4楼
引用 kskstiy 的回复内容:装16#FFF到累加器1装变量IN0到累加器1,16#FFF移动到累加器2中如果累加器1不等于累加器2的值,就是IN0不等于16#FFF的话跳转M001;(如果相等的话,装在400.0到累加器1中,IN0移动到累加器2中,无条件跳转M002)M001.把IN0转换成双整数把IN0转换成浮点数把10.0装入累加器1,把IN0移动到累加器2中IN0/10.0,结果放到累加器1中把IN1装到累加器1中,IN0/10.0移动到累加器2中把IN1先转换成双整数,在转换成浮点数把累加器1和累加器2相加,结果放到累加器1中,就是(IN1+INO/10.0)M002,把累加器1的结果传送到TEMP7中,就是TEMP7=IN1+INO/10.0装在4.0到累加器1,IN1+INO/10.0的值移动到累加器2中累加器2除累加器1,结果放在累加器1中,就是(IN1+INO/10.0)/4.0把累加器1的结果输出到OUT3,就是OUT3=(IN1+INO/10.0)/4.0把TEMP7转换成双精度整数,然后输出到OUT2=(IN1+INO/10.0)/4.0 哎,写完了,累啊  


虽然累了,等于没写。。。呵呵呵

通讯网

  • 精华:11帖
  • 求助:2帖
  • 帖子:464帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-05-06 12:31:37
5楼
引用 kskstiy 的回复内容:注解的话太复杂了,要写很多啊,怕麻烦了。我就简单点说吧如果IN0的值不等于16#FFF的话,计算结果为OUT3=(IN0/10+IN1)/4,这个值是浮点数OUT2=(IN0/10+IN1)的值转换成双精度整数的值如果相等的话OUT3=0.1OUT2=400



这个简单清楚

jiangminxi0

  • 精华:0帖
  • 求助:2帖
  • 帖子:4帖 | 2回
  • 年度积分:0
  • 历史总积分:35
  • 注册:2007年8月02日
发表于:2012-05-06 12:38:54
6楼
谢谢大家指点,我在找找资料,搞通指令表

fenglang0371

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 18回
  • 年度积分:0
  • 历史总积分:137
  • 注册:2012年5月05日
发表于:2012-05-06 14:17:04
7楼
先找本书,认真看完一遍,特别是指令介绍的,

阿水--王者之师

  • 精华:31帖
  • 求助:399帖
  • 帖子:1801帖 | 22295回
  • 年度积分:2
  • 历史总积分:98539
  • 注册:2007年3月22日
发表于:2012-05-07 08:10:44
8楼

注解的话太复杂了,要写很多啊,怕麻烦了。还有与程序别的有关

  L     W#16#FFF            //装常数累加器1

      L     #IN0
      <>I                       //比较指令
      JC    M001              //跳转指令
      L     4.000000e+002
      JU    M002
M001: ITD  
      DTR  
      L     1.000000e+001
      /R   
      L     #IN1
      ITD  
      DTR  
      +R   
M002: T     #TEMP7
      L     4.000000e+000          //装载浮点数4
      /R                               // 做除法计算
      T     #OUT3                 // 输出到累加器中
      L     #TEMP7             // 把累加器1的结果传送到TEMP7中
      RND                             //双精度整数转换
      T     #OUT2

sasa7557

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 12回
  • 年度积分:0
  • 历史总积分:46
  • 注册:2012年6月09日
发表于:2012-06-09 01:52:10
9楼
回复内容:
对:kskstiy关于注解的话太复杂了,要写很多啊,怕麻烦了。我就简单点说吧如果IN0的值不等于16#FFF的话,计算结果为OUT3=(IN0/10+IN1)/4,这个值是浮点数OUT2=(IN0/10+IN1)的值转换成双精度整数的值如果相等的话OUT3=0.1OUT2=400内容的回复:


输出3你算错了吧。。。400/4=100啊。。。

艾诺樱桃帮v

  • 精华:0帖
  • 求助:1帖
  • 帖子:37帖 | 1555回
  • 年度积分:0
  • 历史总积分:1539
  • 注册:2012年3月02日
发表于:2012-06-14 22:08:21
10楼
路过学习中。。。。                              

热门招聘
相关主题

官方公众号

智造工程师