新闻中心

PLC浮点数运算指令

PLC浮点数运算指令

有专门的浮点数运算指令的

比如 EADD  ESUB  EMUL  EDIV

比如说 ,我想把D0 + 0.1 结果放在D0 怎么做啊!

先把0.1放入一个数据寄存器中,

再用EADD 指令使这个地址的数据寄存器和D0相加,在运算前把D0中的数也转换成浮点数FLT指令

有专门的浮点运算指令,但在运算前如不是浮点的寄存器要转换成浮点才可以

在GPPW的编辑器内,根本就无法带小数点输入,0.1 我输不进去啊!,10+0.1怎么做啊

在GPPW的编辑器内,根本就无法带小数点输入,0.1 我输不进去啊!,10+0.1怎么做啊

用个浮点数除法运算,1除以10就可以得到0.1这结果

浮点数的表示方法

浮点数又称为实数(REAL),用32位二进制数表示。浮点数表示为1.m 乘以2的E次方。其中尾数1.m和指数E均为二进制数,E可能是正数,也可能是负数。  ANSI/IEEE 754-1985标准格式的32位实数的格式为1.m乘以2的e次方,式中指数e = E +127为8位正整数。

尾数的小数部分m为第0~22位,第23~30位为指数e,最高为符号位。

在西门子的软件中,一般并不使用二进制格式或十六进制格式的浮点数,而是用十进制小数来输入或显示浮点数,例如在STEP 7中,50为16位整数,而50.0为浮点数。

什么是plc中的浮点运算

最佳答案

说白了,就是小数点运算啦。

比如,支持浮点数的PLC 对于3除以2的结果为1.5,不支持浮点数的结果为1

就这么简单,浮点数只是小数在科学应用的一种表示方法而已了。

PLC小数点问题

比如说我有个伺服要PLC发一千个脉冲它转三百六十度,现在我要它转动零点一度,也就是要发三点三三三个脉冲,我要向数据器里面写3.33怎么写,如果我用浮点运算就是把333除去一百在放到数据器里,我在触摸屏上要求能够直接能够写入3.33就不能够进行浮点计算了,我该用什么,是高手就交流

一般在PLC里面是不计算浮点运算的,都是用整数。在屏幕上显示的时候再小数点向后移动2位

可以将整数变换成浮点型,再进行浮点型比较。或者将浮点型变换成整数,但是浮点变整数的过程会有误差,就是小数点后的数是四舍五入的,所以尽量进行浮点型比较。整数编程浮点型的过程需要注意,每个浮点型数占用一个双字,即两个字元件,比如你将浮点数存入D0,那么D0和D1都被占用,此时D1就不能再被别的数据占用了。

PLC可以进行浮点数计算。但是结果可能无法反应出来。因为输出还是会输出整数的。比如3.3个脉冲。PLC只会输出3个脉冲。

PLC小数点

小弟有一问题请教各位高手大哥指点,我在使用台达的DVP-12SCT型PLC做控制运动。用TP04G文本显示器做界面设定。

D260做寄存器设置物体从零点到目标点的距离,假设设定值80.27

PLC每发送1个脉冲步进电机移动0.5MM.我用80.27除0.5得出16054。也就是PLC发送出16054个脉冲步进电机移动80.27MM的距离,可由于PLC不能设置K值为0.5,我把小数化为整数用DDIV指令D260(8027)除5得出1605.4可PLC计算结果为1605小数点省掉了,导致我的位置控制不准确。请问用什么方法可以让PLC的运算能出现小数点

能帮我写个图形吗。谢谢了

最佳答案

PLC无法辨别小数点,你只能先去掉小数点(相当于乘以100了),然后进行运算,最后再除以100补回来,丢掉后边的数据位,但这样会有偏差,所以你应该考虑用32位运算或者浮点运算,推荐后者

推荐答案

DDIV  D260  D262

DMUL  D262   K10  D264

DDIV   D264   K5    D266

DINT  D266   D268

把整数值赋予D数据,转成浮点来运算,FLT指令,不然数据会丢失,浮点运算占两个数据要注意,然后就可以有小数了,结果要整数的再用INT指令转化.中间运算可以把值扩大10倍或者100倍再转化,

我用PLC做浮点运算,让D30在触摸屏上显示小数,为什么数据出现错误???

这是触摸屏的软元件选择!!

把M8002改成M8000。把第一行 MOV  k150 D0   的这个D0改成其它数据。

因为装触屏之后,PLC 和屏之间,D0默认为屏地址。

选择数据32位,选择实数!

我已经改成这样了。。。但还是不行的。是不是用触摸屏的仿真软件不行的?????

浮点运算的应用

各位大侠 ;

小弟现有一工程,需要用到定长,而且要求精确到1mm,并且不适用伺服或者步进,所以我就想用一般程序里的浮点运算,但是不知道为什么我在适用的过程中发现,在自由监控中可以任意赋值的寄存器,但是在文本中 就不能任意赋值,就是赋值寄存器出现乱码,而且用ECMP指令进行比较的时候,输入浮点但是指令的=指令不执行。

举例‘;

LDM8000---------C630   K99999

|

|HSCR   C630   D10

|

|DFLT  D10    D12

|

|DFLT     D4001  D14

|

|EMUL    D14   D12   D16

LDM0---------------ECMP D18 D20 M10

LDY0 ---------------|-------DAND = D18 D16-----ZRSTM10 M12

|

|

LDY1-----------------

D18为32位寄存器

有的文本就不怎么支持浮点数。也有的PLC不支持浮点数。这个东西很难说得清楚了。一个mm的精度不用浮点数也是可的了。把单位改小一点,不就取消了浮点数了?

还有的浮点数是不可以"="比较的,浮点数本身是有误差的,可以在精度范围内比较,比如|a-b|<0.0001.

三菱PLC的浮点运算如何应用啊。指令是什么啊

具体要看相关的手册啊,下图是FX3U的例子

PLC的四舍五入运算方法

PLC的功能足够强大了,却没有四舍五入的功能,一般的应用忽略了就算了,可总有遇到要用这个功能的时候。

网上讨论这个问题的也不少,可见着胡乱解答的也多,有的说用浮点运算、有的说用比较余数的办法……不一而足。基本上PLC都没有自带这个函数功能的,浮点运算只是小数位多而已,并没有四舍五入的功能,而且通常浮点运算还会消耗较多的运算时间,为了一处用浮点,就得到处用,或者来回进行转换,麻烦。专门用指令比较就更让人觉得郁闷了。

当然在实际的使用过程中要复杂一点,比如除数是一个奇数,除2本身就有余数,怎么办?

此外,如果除数在运算过程中是个常数,可以事先计算好直接使用,如果是变量则需要用整数运算实时的处理了。

BACK