求助:s7-200:计算实数A的整数B次方的子程序 点击:566 | 回复:5



yzxlcl

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 7回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2008年12月17日
发表于:2008-12-17 16:45:13
楼主

求助:

用S7-200编写:计算实数A的整数B次方的子程序

要 求:中间变量可以任意用,但是用的越少越好。语句不限(梯形图、语句表、功能块均可),越简单越好。
              入口地址:VD0(底数) VB4(指数)
              出口地址:VD5 (在此,忽略因运算结果过大而溢出导致的错误)

小弟为s7-200PLC初学者,麻烦各位兄弟姐妹不吝赐教。最好给出语句表程序。谢了!(小弟现在没积分了,要不全分奉上:))




guafa58

  • 精华:1帖
  • 求助:0帖
  • 帖子:43帖 | 2142回
  • 年度积分:4
  • 历史总积分:3969
  • 注册:2006年1月13日
发表于:2008-12-17 17:38:39
1楼
请高手过来解决哦,呵呵

假大空

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年5月31日
发表于:2008-12-17 20:08:36
2楼

主程序:

LD I0.0
CALL SBR_0:SBR0, VW0, VD0, I0.1, VD4

子 程序如下:

Symbol var Type Data Type
INT_IN IN INT
REAL_IN IN REAL
WORK IN BOOL
REAL_OUT OUT REAL
INT_TO_REAL TEMP REAL
REAL_T TEMP REAL
INT_T TEMP INT
JIEGUO TEMP REAL
     

 

LD #WORK:L6.0

AW< #INT_IN:LW0, 0
JMP 2

LD #WORK:L6.0
MOVR 0.0, #INT_TO_REAL:LD17

 

LD #WORK:L6.0
MOVR #REAL_IN:LD2, #REAL_T:LD11
AENO
MOVW #INT_IN:LW0, #INT_T:LW15

 LBL 1

LD #WORK:L6.0
ITD #INT_IN:LW0, AC1
DTR AC1, #INT_TO_REAL:LD17
MOVW #INT_IN:LW0, #INT_T:LW15

*R #REAL_T:LD11, #REAL_T:LD11
MOVR #REAL_T:LD11, #JIEGUO:LD21



-R 1.0, #INT_TO_REAL:LD17
AENO
AR<> #INT_TO_REAL:LD17, 0.0
JMP 1

 

LD #WORK:L6.0
MOVR #JIEGUO:LD21, #REAL_OUT:LD7

 

LBL 2

 程序未经测试.

ShowFine

  • 精华:1帖
  • 求助:1帖
  • 帖子:57帖 | 753回
  • 年度积分:0
  • 历史总积分:1671
  • 注册:2003年10月29日
发表于:2008-12-17 21:06:20
3楼

EXP和LN指令结合啊!

注意,注意这两个指令对浮点数。

LD   SM0.0

BTI VB4,VW104

ITD VW104,VD108

DTR VD108,VD112  //将VB4转换成浮点数VD112

 

LN   VD0,AC1  //假设VD0为浮点数, 如不是,则需要转换

*R    VD112,AC1

EXP  AC1,VD5

 

 

 

ShowFine

  • 精华:1帖
  • 求助:1帖
  • 帖子:57帖 | 753回
  • 年度积分:0
  • 历史总积分:1671
  • 注册:2003年10月29日
发表于:2008-12-17 21:06:44
4楼

5的立方的平方根 = 5^(3/2)=EXP(3/2*LN(5))=11.18034 

看看这个数学公式,转换一下就行了!

yzxlcl

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 7回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2008年12月17日
发表于:2008-12-18 10:42:53
5楼
谢谢各位大侠了!我试试先。

热门招聘
相关主题

官方公众号

智造工程师