没有合适的资源?快使用搜索试试~ 我知道了~
小数点浮点运算编程研究讲义.doc
0 下载量 40 浏览量
2022-11-13
10:30:29
上传
评论
收藏 313KB DOC 举报
温馨提示
试读
24页
小数点浮点运算编程研究讲义.doc
资源推荐
资源详情
资源评论
gPLC(FX2N)浮点(小数点)运算编程研究讲义 2023
目录
PLC(FX2N)浮点(小数)运算编程概要
实验一 将一个整数转变为一个二进制小数,并存入 FX2N 的 Dn 中(产生
一个浮点数,存入 FX2N 的 Dn 中)
实验二 将 2 个二进制小数(或其中一个常数 K、H)进行四则运算
实验三 一个二进制小数,如何在 LED 数码显示器,或者组态王上显示监
控
实验四 二进制浮点数运算实例
实验五 任意位浮点数(小数)的输入
附 1:PLC 数值显示(LED 数码显示器)含小数点方法
附 2:PLC(FX2N)中输入小数小结、要点:
PLC(FX2N)浮点(小数)运算编程概要
1、 PLC(FX2N)浮点数(小数)概论:
二进制小数概念:二进制小数在 PLC(FX2N)中存储占用 32 位(即占
用 2 个连续编号的 Dn、Dn+1),最高位 bit31 位是符号位(1 是负数,
0 是正数),其他位(bit30~bit0)是数值位,数值位分尾数段和指
数段,bit0~bit22 共 23 位是尾数段,bit23~bit30 共 8 位是指数段;
注:二进制小数不是按 2 的补码解决;
浮点数(小数)运算规则概念
进行浮点数(小数)运算的各 Dn 只能是二进制小数、常数 K、
H;不能是整数或十进制小数;
若 Dn 中数据是整数,需用 FLT 指令转化为二进制小数形式,再
参与运算;
若 Dn 中数据是十进制小数,需用 EBIN 指令转化为二进制小数形
式,再参与运算;
若 Dn 中数据是常数 K、H,可直接参与运算,无需转化,因其在
参与运算过程中会自动转化;
浮点数运算中指令前一般应加 D,因参与运算的二进制小数都占
有二个连续的 Dn、为 32 位数据;
浮点数运算的种类在 PLC(FX2N)中有加 9EADD)、减(ESUB)、
乘(EMUL)、除(EDIV )、 正 弦 ( SIN )、 余 弦(COS)、正切
(TAN)、数类转化(FLT、INT、EBIN、EBCD)、比较(ECMP、
CZCP)等等;
二进制小数的 PLC 解决中的监控:因二进制小数数值与指数占用了
二个连续的 Dn,且难以区别,故难以在组态王等上监控(如 LED 数
码显示器、组态王等)、监控的数据只是乱码,故若要监控需将这些
二进制小数用 EBCD 指令转化为十进制小数,十进制小数占用连续二
个 Dn,编号大的为指数段,编号小的为尾数值、区别明确,易于监
bit0bit1bit2bit3bit4bit5bit6bit7bit8bit9bit10bit11bit12bit13bit14bit15bit16bit17bit18bit19bit20bit21bit22bit23bit24bit25bit26bit27bit28bit29bit30bit31
符号位
指数段(8位)
尾数段(23位)
(1位)
Dn
Dn+1
二进制 小数在PLC(FX2N)中存入 形式
数值位(31位)
控;如:
31
30
D
D
�
;其中 D30 为尾数值、D31 为指数段;注:在 FX2N
仿真软件上易监控仿真结果;
十进制小数概念:十进制小数在 PLC(FX2N)中占用 32 位,在 PLC
内部存储时采用 2 个连续编号的 Dn、Dn+1,编号小的保存尾数段
(Dn),编号大的保存指数段(Dn+1);如:
31
30
D
D
�
;其中 D30 为尾
数值、D31 为指数段;
十进制小数的运算:十进制小数无法在 PLC(FX2N)中直接进行运算
解决,需用 EBIN 指令转化为二进制小数再进行运算;
十进制小数的数值监控作用:十进制小数易于数值监控,而二进制
小数难以直接监控,直接监控数值往往为乱码,故 PLC 中二进制小
数若需监控,可用 EBCD 指令将其转化为十进制小数;注:十进制小
数在 FX2N 仿真软件上监控反而出现乱码;
二~十进制数互相转化中的误差:
在二进制小数转化为十进制小数、或十进制小数转化为二进制小
数过程中,易产生一定的误差,因有效数字四舍五入的缘故;
因某些自动控制采用浮点数可提高控制精度与品质,故需浮点数
运算及解决;
因某些自动控制部件只能采用整数,故需将浮点数转化为整数,
其转化过程有四舍五入,将产生一定的误差。
2、得到一个二进制小数的方法概要(与得到一个十进制小数的方法互为逆运
算):
bit0bit1bit2bit3bit4bit5bit6bit7bit8bit9bit10bit11bit12bit13bit14bit15bit16bit17bit18bit19bit20bit21bit22bit23bit24bit25bit26bit27bit28bit29bit30bit31
符号位
指数段(16位)
尾数段(16位)
(1位)
Dn
Dn+1
十进制 小数在PLC(FX2N)中存入 形式
符号位
(1位)
方法一:如产生一个二进制小数 254.6(往 D20 中存入一个二进制小
数 254.6);
先往 D0 中送入一个整数(2546);MOV K2546 D0;
再用二进制整数转化为二进制小数指令 FLT 转化得到二进制小
数形式,存入 D10(2546.00);FLT D0 D10;注:FLT 指令仅是将
整数的表达形式转化为小数的表现形式(2546---2546.00),但
此数值实质上仍是整数;
最后将二进制小数形式除以常数 10 的倍数,得到所需小数后为
几位的二进制小数(254.6);DEDIV D10 K10 D20;注:小数解决
指令与整数解决指令类似,只是前面加 E,表达属小数解决指令;
此外小数数值占二个 Dn,为 32 位,故运算指令前需加 D;
注:二进制小数因是 32 位数值,整个数值 254.6 占了(D21)
D20;
注:方案一 PLC 软件监控仿真结果正常;组态王监控为乱码;
例程:
方法二:如产生一个二进制小数 254.6(往 D10 中存入一个二进制小
数 254.6);
将一个需转化的整数送入 D0(2546);MOV K2546 D0;;
再将一个负数(为小数的位数)送入 D1;MOV -1 D1;
注:上述二个 Dn 标号必须连续、且存放整数的 Dn 标号应在前
(D0)、存放负数的 Dn 标号应在后(D1);
最后用十进制小数转化为二进制小数指令 EBIN 转化得到所需的
二进制小数(254.6);DEBIN D0 D10;注:小数解决指令与整数
解决指令类似,只是前面加 E,表达属小数解决指令;此外小数
数值占二个 Dn,为 32 位,故运算指令前需加 D;
注:二进制小数因是 32 位数值,整个数值 254.6 占了(D21)
D20;
注:方法二 PLC 软件监控仿真为乱码;组态王监控为乱码;
例程:
3、得到一个十进制小数的方法概要(与得到一个二进制小数的方法互为逆运
算):
方法一:将一个二进制小数通过 EBCD 指令(二进制小数转化为十进制
小数指令)转化得到;注:直接结果显示 PLC 监控仿真为乱码,可在组
态王等上用尾数\指数形式显示结果 Dn
-Dn+1
;
方法二:先往 Dn 中送入一个整数;再往 Dn+1 中送入一个负数(为小
数的位数);注:上述二个 Dn 标号必须连续、且存入整数的 Dn 标号
在前(Dn)、存入负数的 Dn 标号在后(Dn+1)。注:直接结果显示 PLC
监控仿真为乱码,可在组态王等上用尾数\指数形式显示结果 Dn
-Dn+1
;
剩余23页未读,继续阅读
资源评论
Mmnnnbb123
- 粉丝: 679
- 资源: 8万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功