浮点数运算指令

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

比如 EADD ESUB EMUL EDIV

浮点数的表示方法

有个学员问我,他在用S7-300读取变频器的参数P1082时(1082=16#43A),PLC 发送的4个字为16#143A 0000 0000 0000,变频器返回的为16#243A 0000 4248 0000。变量的浮点数值为16#42480000,对应的浮点数到底是多少?

在监视用的变量表中,将十六进制双字16#42480000的显示格式改为FLOATING_POINT(浮点数),就可以看到对应的浮点数为50.0。 浮点数又称为实数(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 同PC 一样,为二进制运算,因此纯小数的表示方法在电路上无法被应用,所以搞了个科学计数法(浮点数)。

浮点数运算:1/2 结果为0.5 没有浮点数:1/2 结果为0

PLC 小数点问题

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

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

可以将整数变换成浮点型,再进行浮点型比较。或者将浮点型变换成整数,但是浮点变整数的过程会有误差,就是小数点后的数是四舍五入的,所以尽量进行浮点型比较。整数编程浮点型的过程需要注意,每个浮点型数占用一个双字,即两个字元件,比如你将浮点数存入D0, 那么D0和D1都被占用32位,此时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 做浮点运算,让D 30在触摸屏上显示小数,为什么数据出现错误???

_此主题相关图片如下,点击图片看大图:

_此主题相关图片如下,点击图片看大图:

这是

触摸屏的软元件选择!!

把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-----------------

注释:M10 M12 启动正反转 y0y1 正反输出 D18文本赋值 D16通过编码器计数进行浮点运算值(比较的基数) D18为32位寄存器

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

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

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

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

版主加精华

PLC 的四舍五入运算方法

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

网上讨论这个问题的也不少,可见着胡乱解答的也多,有的说用浮点运算、有的说用比较余数的办法……不一而足。基本上PLC 都没有自带这个函数功能的,浮点运算只是小数位多而已,并没有四舍五入的功能,而且通常浮点运算还会消耗较多的运算时间,为了一处用浮点,就得到处用,或者来回进行转换,麻烦。专门用指令比较就更让人觉得郁闷了。 其实解决的办法很简单,当进行如下运算时:被除数÷除数,若需要四舍五入,可变更算法为:INT((被除数+除数/2)÷除数) ,当然如果用整数运算,就取整就是自然而的了,INT 可以省掉。

当然在实际的使用过程中要复杂一点,比如除数是一个奇数,除2本身就有余数,怎么办? 可以用整数运算,略掉其余数,即INT(除数/2),带入:(被除数+除数/2)÷除数,即可。 此外,如果除数在运算过程中是个常数,可以事先计算好直接使用,如果是变量则需要用整数运算实时的处理了。

例如103/10的计算方法为:(103+5)/10=10.8,INT(10.8)=10,等于四舍五入结果, 例如106/10的计算方法为:(106+5)/10=11.1,INT(11.1)=11,等于四舍五入结果,

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

比如 EADD ESUB EMUL EDIV

浮点数的表示方法

有个学员问我,他在用S7-300读取变频器的参数P1082时(1082=16#43A),PLC 发送的4个字为16#143A 0000 0000 0000,变频器返回的为16#243A 0000 4248 0000。变量的浮点数值为16#42480000,对应的浮点数到底是多少?

在监视用的变量表中,将十六进制双字16#42480000的显示格式改为FLOATING_POINT(浮点数),就可以看到对应的浮点数为50.0。 浮点数又称为实数(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 同PC 一样,为二进制运算,因此纯小数的表示方法在电路上无法被应用,所以搞了个科学计数法(浮点数)。

浮点数运算:1/2 结果为0.5 没有浮点数:1/2 结果为0

PLC 小数点问题

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

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

可以将整数变换成浮点型,再进行浮点型比较。或者将浮点型变换成整数,但是浮点变整数的过程会有误差,就是小数点后的数是四舍五入的,所以尽量进行浮点型比较。整数编程浮点型的过程需要注意,每个浮点型数占用一个双字,即两个字元件,比如你将浮点数存入D0, 那么D0和D1都被占用32位,此时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 做浮点运算,让D 30在触摸屏上显示小数,为什么数据出现错误???

_此主题相关图片如下,点击图片看大图:

_此主题相关图片如下,点击图片看大图:

这是

触摸屏的软元件选择!!

把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-----------------

注释:M10 M12 启动正反转 y0y1 正反输出 D18文本赋值 D16通过编码器计数进行浮点运算值(比较的基数) D18为32位寄存器

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

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

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

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

版主加精华

PLC 的四舍五入运算方法

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

网上讨论这个问题的也不少,可见着胡乱解答的也多,有的说用浮点运算、有的说用比较余数的办法……不一而足。基本上PLC 都没有自带这个函数功能的,浮点运算只是小数位多而已,并没有四舍五入的功能,而且通常浮点运算还会消耗较多的运算时间,为了一处用浮点,就得到处用,或者来回进行转换,麻烦。专门用指令比较就更让人觉得郁闷了。 其实解决的办法很简单,当进行如下运算时:被除数÷除数,若需要四舍五入,可变更算法为:INT((被除数+除数/2)÷除数) ,当然如果用整数运算,就取整就是自然而的了,INT 可以省掉。

当然在实际的使用过程中要复杂一点,比如除数是一个奇数,除2本身就有余数,怎么办? 可以用整数运算,略掉其余数,即INT(除数/2),带入:(被除数+除数/2)÷除数,即可。 此外,如果除数在运算过程中是个常数,可以事先计算好直接使用,如果是变量则需要用整数运算实时的处理了。

例如103/10的计算方法为:(103+5)/10=10.8,INT(10.8)=10,等于四舍五入结果, 例如106/10的计算方法为:(106+5)/10=11.1,INT(11.1)=11,等于四舍五入结果,


相关内容

  • 计算机组成原理考点
  • 计算机组成原理 [考查目标] 1. 理解单处理器计算机系统中各部件的内部工作原理.组成结构以及相互连接方式,具有完整的计算机系统的整机概念. 2. 理解计算机系统层次化结构概念,熟悉硬件与软件之间的界面,掌握指令集体系结构的基本知识和基本实现方法. 3. 能够运用计算机组成的基本原理和基本方法,对有 ...

  • 计算机考研知识点
  • 计算机学科专业基础综合 Ⅰ考查目标 计算机学科专业基础综合考试涵盖数据机构.计算机组成原理.操作系统和计算机网络等学科专业基础课程.要求考生比较系统地掌握上述专业基础课程的概念.基本原理和方法,能够运用所学的基本原理和基本方法分析.判断和解决有关理论问题和实际问题. Ⅱ考试形式和试卷结构 一.试卷满 ...

  • 计算机组成原理题库汇总
  • 一.选择题(每小题2分,共30分) 1 从器件角度看,计算机经历了五代变化.但从系统结构看,至今绝大多数计算机仍属于( B )计算机. A 并行 B 冯·诺依曼 C 智能 D 串行 2 某机字长32位,其中1位表示符号位.若用定点整数表示,则最小负整数为( A ).P16 A -(2-1) B -( ...

  • (PLC 和可编程逻辑控制器)
  • PLC 和可编程逻辑控制器是同义词,已合并. 可编程逻辑控制器 百科名片 可编程逻辑控制器 可编程逻辑控制器(Programmable Logic Controller ,PLC ),它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算.顺序控制.定时.计数与算术操作等面向用户的指令,并通过数 ...

  • 计算机系统结构五年单项选择题
  • 计算机系统结构五年选择题 1.在计算机系统结构设计中,提高软件功能实现的比例可( C ) A .提高解题速度 B .减少需要的存储器容量 C .提高系统的灵活性 D .提高系统的性能价格比 2.浮点数表示的尾数的基r m =16,尾数长度p=8,可表示的规格化最大正尾数的值是( D ) A .1/2 ...

  • 自动售货机控制系统设计-终稿
  • 东华理工大学长江学院 毕业设计 题 目 英文题目 学生姓名: 王 飞 申请学位门类: 工学学士 学 号: 09315221 专 业: 机械电子工程 系 别: 机械与电子工程系 指导教师: 赵 杰 职称: 讲 师 二零一三年六月 摘 要 随着现代社会科技和经济的飞速发展,人们已经迈进了一个高科技时代, ...

  • 计算机原理归纳总结
  • .13. 定点补码运算的溢出:· 结果比最大数还大称上溢出,作*中断处理 · 结果比最小数还小称为下溢出,作机器零售处理 14.C S+1表示符号位进位状态,有进位为1,无进位为0. CS 用来表示两数值的最高位向符号位进位的状态,有进位为1,无进位为0. 当C S+1C S =00或11时,无溢出 ...

  • 这里是选择题和填空题的资料
  • 这里是选择题和填空题的资料,简单计算和综合题自己看课后作业及ppt 和书上的例题 计算机组成原理试卷1 一.选择题(共20分,每题1分) 1.CPU 响应中断的时间是_ C _____. A .中断源提出请求: B .取指周期结束: C .执行周期结束:D .间址周期结束. 2.下列说法中___c_ ...

  • 计算机组成原理试卷答案
  • 计算机组成原理 复习资料 一.名词解释: 异步控制方式: 异步控制不存在基准时标信号,微操作的时序是由专用的应答线路控制的,即控制器发出某一个微操作控制信号后,等待执行部件完成该操作时所发回的"回答"或"终了"信号,再开始下一个微操作. 向量地址: 是存放服务 ...