-
有专门的浮点数运算指令的
比如
EADD ESUB EMUL EDIV
比如说
,我想把
D0 + 0.1
结果放在
D0
怎么做啊!
先把
0.1
放入一个数据寄存器中,
再用
EADD
指令使这个地址的数据
寄存器和
D0
相加,在运算前把
D0<
/p>
中的数也转换成
浮点数
FLT
指令
有专门的浮点运
算指令,但在运算前如不是浮点的寄存器要转换成浮点才可以
在
GPPW
的编辑器内
,
根本就无法带小数点输入
,0.1
我输不进去啊!
,
10+0.1
怎么做啊
在
GPPW
的编辑器内
,
根本就无法
带小数点输入
,0.1
我输不进去啊!
,
10+0.1
怎么做啊
用个浮点数除法运算,
1
除以
10
就可以得到
0.
1
这结果
浮点数的表示方法
有个学员问我,他在用
S7-300
读取变频器
的参数
P1082
时(
1082=16
#43A
)
,
PLC
发
送的
4
个字为
16#143A 0000 0000
0000
,变频器返回的为
16#243A 0000
4248 0000
。变
量的浮点数值为
16#42480000
,对应的浮点数到底是多少?
在
监
视
用
的
变
量<
/p>
表
中
,
将
十
六
进
制
双
字
16#42480000
的
显
示
格
式
改
为
FLOATING_POINT
(浮点数)
,就可以看到对应的浮点数为
50.0
。
浮点数又称为实数(
REAL
)
< br>,用
32
位二进制数表示。浮点数表示为
1.m
乘以
2
的
E
次
方
。
其
中
尾
数
1.m
和
指
数
E
均
为
二
进
制
数
,
E<
/p>
可
能
是
正
数
,
也
可
能
是
负
数。
ANSI/IEEE 754-1985
标准格式的
32
位实数的格式为
1.m
乘以<
/p>
2
的
e
次方,<
/p>
式中指
数
e = E +127
为
8
位正整数。
尾数的小数部分
m
为第
0
~
22
位,第
23~30
位为指数
e
,最高为符号位。
p>
在西门子的软件中,一般并不使用二进制格式或十六进制格式的浮点数,
而是用十进
制小数来输入或显示浮点数,例如在
STEP
7
中,
50
为
16
位整数,而
50.0
为浮点数。<
/p>
什么是
pl
c
中的浮点运算
最佳答案
说白了,就是小数点运算啦。
比如,支持浮点数的
PLC
对于
3
除以
2
的结果为
1.5
,不支持浮点数的结果
为
1
就这么简单,浮点数只是小数在科学应用的一种表示方法而已了。
因为
PLC
同
PC
一样,为二进
制运算,因此纯小数的表示方法在电路上无法被应用,所
以搞了个科学计数法(浮点数)
。
浮点数运算:
1/2
结果为
0.5
没有浮点数:
1/2
结果为
0
PLC
小数点问题
< br>比如说我有个伺服要
PLC
发一千个脉冲它转三百六十度
,
现在我要它转动零点一度
,
也就是
要发三点三三三个脉冲
,
我要向数据器里面写
3.33
怎么写
< br>,
如果我用浮点运算就是把
333
除去
一百在放到数据器里
,
我在触摸
屏上要求能够直接能够写入
3.33
就不能够进行浮点计算了<
/p>
,
我该用什么
,
是高手就交流
一般在
PLC
里面是不计算
浮点运算
的,
都是用整数。
在屏幕上显示的时候再小数
点向后移动
2
位
可以将整数变换成
浮点型
,
再进行浮点型比较。
或者将浮点型变换成整数,
但是
浮点变整数的过程会有误差,
就是
小数点后的数是四舍五入的,
所以尽量进行浮
点型比较。
整数编程浮点型的过程需要注意,
每个浮点型数占用一个双字,
即两
个字元件,比如你将浮点数存入
D0,<
/p>
那么
D0
和
D1
都被占用,此时
D1
就不能再
被别的数据占用了。
PLC
可以进行
浮点数
计算。但是结
果可能无法反应出来。因为输出还是会输出整
数的。比如
3.3
个脉冲。
PLC
只会输出
3
个脉冲。
PLC
小数点
小弟有一问题请教各位高手大哥指点,我在使用台达的
DVP-12SCT
型
PLC
做
控制运动。用
TP04G
文
本显示器做界面设定。
D260
做寄
存器设置物体从零点到目标点的距离,假设设定值
80.27
PLC
每发送
1
个脉冲步进电机移动<
/p>
0.5MM.
我用
80.27
除
0.5
得出
16054
。
也就
是
PL
C
发送出
16054
个脉冲步进电机移
动
80.27MM
的距离,
可由于
p>
PLC
不能
设置
K
值为
0.5
,我把小数化为整数用
p>
DDIV
指令
D260(8027)
除
5
得出
1605.
4
可
PLC
计算结果为
1605
小数点省掉了,导致我的位置控制不准确。请问用什
< br>么方法可以让
PLC
的运算能出现小数点
能帮我写个图形吗。谢谢了
最佳答案
PLC
无法辨别小数点,你只能先去掉小数点(相当于乘以
1
00
了),然后进行
运算,最后再除以
100
补回来,丢掉后边的数据位,但这样会有偏差,所以你
应
该考虑用
32
位运算或者浮点运算,推荐后者
< br>
推荐答案
DDIV
D260
D262
DMUL
D262
K10
D264
DDIV
D264
K5
D266
DINT
D266
D268
把整数值赋予
D
数据
,
转成浮点来运算
,FLT
指令
,
不然数据会丢失
,
浮点运算占两个
数据要注
意
,
然后就可以有小数了
p>
,
结果要整数的再用
INT
指令转化
.
中间运算可以把值扩大
10
倍或者
100
倍再转化
,
我用
PLC<
/p>
做浮点运算,让
D
30在触摸屏上显示小
数,为什么数据出现错误???
_
此主题相关图片如下,点击图片看大图:
_
此主题相关图片如下,点击图片看
大图:
这是
触摸屏的软元件选择!<
/p>
!
把
M8002
改成
M8000
< br>。把第一行
MOV k150 D0
的这个<
/p>
D0
改成其它数据。
因为装触屏之后,
PLC
和屏之间,
D0
默认为屏地址。
选择数据
32
位
,
选择实数
!
_
此主题
相关图片如下,点击图片看大图: