求一个简单的实数除法的例子?(新手) 点击:1588 | 回复:6



nethuei

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:36帖 | 125回
  • 年度积分:0
  • 历史总积分:413
  • 注册:2004年7月31日
发表于:2006-04-21 23:26:00
楼主
求一个简单的实数运算例子?
VD200除以VD100
等于VD300
注:通过人机给定VD200\ VD100数值,当M0.0为1时可以计算?
本人是新手按着手册上做了几次,都出错了,希望各位指点一下.



小楼

  • 精华:2帖
  • 求助:0帖
  • 帖子:5帖 | 298回
  • 年度积分:0
  • 历史总积分:418
  • 注册:2002年6月13日
发表于:2006-04-22 10:51:00
1楼
把程序贴出来

nethuei

  • 精华:1帖
  • 求助:0帖
  • 帖子:36帖 | 125回
  • 年度积分:0
  • 历史总积分:413
  • 注册:2004年7月31日
发表于:2006-04-22 13:54:00
2楼
Network 1 // 网络标题
// 网络注释
LD     M0.0
MOVR   VD200, AC0
AENO
MOVR   AC0, AC1
/R     VD100, AC1     //总在这里出错
Network 2 
LD     SM0.0
MOVR   AC1, VD300

我测试了几次都出错

DL天天天蓝

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 51回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2003年1月21日
发表于:2006-04-22 15:42:00
3楼
你可以直接用VD200/VD100送入VD300呀,干嘛还麻麻烦烦地传入AC0和AC1里去呀。
程序可以直接编写如下:
LD     M0.0
MOVR   VD200, VD300
/R     VD100, VD300
你这样写VD200和VD100里的值都不会变。你是不是担心这个呀。

nethuei

  • 精华:1帖
  • 求助:0帖
  • 帖子:36帖 | 125回
  • 年度积分:0
  • 历史总积分:413
  • 注册:2004年7月31日
发表于:2006-04-22 16:29:00
4楼
我从人机屏上输入的VD200和VD100都有是以十进制(只能设置成十进制和十六进制的数值)。但是显示的VD300和VD200是一样,我有一点搞不明白了?
DIV—R是要求VD200和VD100是浮点数。 不知道要不要转换???

DL天天天蓝

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 51回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2003年1月21日
发表于:2006-04-23 09:55:00
5楼
当然要转换了,不然的话指令DIV_R会有出错指示的(你输入的IN1和IN2参数会有红色波浪线的)。VD200和VD100有可能是双字整数,也可以是双字实数,你必须用DI_R指令把双字整数变成双字实数。才能用DIV_R指令来进行除法运算。当然,如果你的人机里直接输入的是实数(也就是说带小数点的数),在PLC里就不用转换了。

nethuei

  • 精华:1帖
  • 求助:0帖
  • 帖子:36帖 | 125回
  • 年度积分:0
  • 历史总积分:413
  • 注册:2004年7月31日
发表于:2006-04-24 17:15:00
6楼
这个那个屏VD200的设置,VD10与它一样,请问是不是设置上的问题??? 要用DIV_R 这条指令之前是不是要将VD200和VD10进行转换,能不能帮我写一段PLC的程序?

热门招聘
相关主题

官方公众号

智造工程师