请教关于三菱PLC中除法的问题 点击:256 | 回复:12



豆豆淘

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:6帖 | 308回
  • 年度积分:43
  • 历史总积分:116
  • 注册:2014年8月23日
发表于:2020-09-10 14:37:17
楼主
求助帖30分-已结帖

各位老师好!请问在三菱FX3S plc中要计算几个数的除法,先要算出75除以1600等于0.046875,把结果传送到D2中,然后再要计算10除以0.046875,把结果传送到D4中,请问要怎么样实现啊,看资料说是要先把十进制数转化成二进制数再来乘除,然后再把结果转换回十进制吗?还有除式中有带小数点的数应该怎么处理呢?多谢有人能指教我一下




xiexie1999

  • [版主]
  • 精华:1帖
  • 求助:12帖
  • 帖子:697帖 | 3550回
  • 年度积分:863
  • 历史总积分:100810
  • 注册:2013年4月29日
发表于:2020-09-10 14:56:01
1楼

直接用浮点数运算,有专门的指令

image.png

image.png

fanyaobang

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 110回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2018年10月16日
发表于:2020-09-11 08:22:42
2楼

楼上是正解

阿水--王者之师

  • 精华:44帖
  • 求助:508帖
  • 帖子:3327帖 | 22125回
  • 年度积分:3317
  • 历史总积分:93790
  • 注册:2007年3月22日
发表于:2020-09-11 08:26:32
3楼

  其实你说的过程就是 PLC 运行的过程,只是 PLC 是二进制的算法,结果一样

关育谋

  • [版主]
  • 精华:4帖
  • 求助:21帖
  • 帖子:353帖 | 4774回
  • 年度积分:152
  • 历史总积分:31829
  • 注册:2004年5月28日
发表于:2020-09-11 11:09:30
4楼

10、1600、75都先换算为浮点数

可以先进行10.0*1600.00,然后结果再除以75.0

尽量避免除法。

yinguiyao

  • [版主]
  • 精华:3帖
  • 求助:0帖
  • 帖子:7帖 | 198回
  • 年度积分:556
  • 历史总积分:27633
  • 注册:2010年12月23日
发表于:2020-09-11 11:42:06
5楼

整型数据转成成浮点型再进行除法计算

梦雨天涯

  • 精华:1帖
  • 求助:1帖
  • 帖子:73帖 | 211回
  • 年度积分:6511
  • 历史总积分:6909
  • 注册:2016年10月25日
发表于:2020-09-17 14:11:00
6楼

"xiexie1999" 的回复,发表在1楼
        对内容: 【直接用浮点数运算,有专门的指令】进行回复:

        -----------------------------------------------------------------


FX3S没有浮点除法

helven90

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 35回
  • 年度积分:6
  • 历史总积分:114
  • 注册:2014年6月27日
发表于:2020-09-24 09:01:15
7楼

用浮点数啊,不行的话就把数据放大,算出结果后再缩小啊

陈德富

  • 精华:0帖
  • 求助:2帖
  • 帖子:7帖 | 91回
  • 年度积分:407
  • 历史总积分:407
  • 注册:2020年5月30日
发表于:2020-09-27 16:35:05
8楼

引用 "xiexie1999" 的回复,发表在1楼
        内容: 直接用浮点数运算,有专门的指令

正解

落叶归根87

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 217回
  • 年度积分:0
  • 历史总积分:57
  • 注册:2013年8月05日
发表于:2020-09-29 15:17:31
9楼

浮点与转换的问题

huangzhengyong

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:1
  • 历史总积分:12
  • 注册:2011年5月02日
发表于:2020-10-06 23:01:14
10楼

先用MOV指令把十进制数据存储在数据寄存器D中;

然后用浮点数指令FLT,把数据转为浮点数;在存储的时候特别注意浮点数是多少位的,一个数据寄存器是16位,判断结果需要多少位,多少个寄存器存储;

然后可以用存储浮点数的寄存器来做除法,这样就可以了;


Smile-lyc

  • [版主]
  • 精华:179帖
  • 求助:41帖
  • 帖子:3985帖 | 19595回
  • 年度积分:1925
  • 历史总积分:105637
  • 注册:2006年8月04日
发表于:2020-10-21 15:34:55
11楼

感谢求助者和答疑者对求助答疑板块的厚爱,赠人玫瑰,手留余香。

对于求助者要求:

1、请在一个月内自行结贴,把悬赏积分(如果设置积分悬赏求助)发放给答疑者;

2、如果在求助答疑过程中,自己已经有效解决问题,建议大家把解决问题方法在自己求助帖分享,有效分享可以获得50积分奖励。



luyangluyang

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 20回
  • 年度积分:29
  • 历史总积分:79
  • 注册:2018年6月05日
发表于:2020-11-28 22:51:01
12楼

"xiexie1999" 的回复,发表在1楼
        对内容: 【直接用浮点数运算,有专门的指令】进行回复:

        -----------------------------------------------------------------


如果被除数想用寄存器表示,怎么转换,E75改D寄存器  寄存器里的数非常大1599868.怎么写



相关主题

官方公众号

智造工程师