关键词不能为空

当前您在: 主页 > 英语 >

PLC(FX2N)小数点(浮点)运算编程研究讲义

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-03 22:21
tags:

-

2021年3月3日发(作者:poem)


.


gPLC



FX2 N


)浮点


(


小数点

)


运算编程研究讲义


2012



目录




PL C



FX2N)


浮点(小数)运算编程 概要



实验一




将一个整数转变为一个二进制小数,并存入

< br>FX2N



Dn


中(产生


一个浮点数,存入


FX2N



Dn


中)



实验二





2


个二进制小数(或其中一个常数


K< /p>



H


)进行四则运算


实验三



一个二进制小数,如何在


LED


数码显示器,或者组态王上 显示监




实验四




二进制浮点数运算实例



实验五




任意位浮点数(小数)的输入




1



PLC


数值显 示(


LED


数码显示器)含小数点方法




2



PLC



FX2N


)中输入小数小结、要点:



PLC



F X2N)


浮点(小数)运算编程概要




1




PLC



FX2N


)浮点数(小数)概论:< /p>



?



二进制小 数概念:


二进制小数在


PLC



FX2N



中存储占用


32



(


即占



2


个连续编号的


Dn



Dn+1)



最高位


bit31


位是符号位


< br>1


是负数,


0


是正数)


,其他位(


bit30~bit0


)是数值位, 数值位分尾数段和指


数段,


bit0~bit22



23


位是尾数段,


bit 23~bit30



8


位是指数段;< /p>


注:二进制小数不是按


2


的补码处理;< /p>



二进制


小数在PLC(FX2N)中存 入


形式


Dn+1


Dn

< br>?



?



?



?



?



?



?



?




bit


31


bit


30


bit


29


bit


28


bit


27


bit


26


bit


2 5


bit


24


bit

< br>23


bit


22


bit


21


bit


20


bit


19


bit


18


bit


17


bit


16


符号



(1位)


指数


段(8位)


bit


15


bit


14


bit


13


bit


12


bit


11


bit


10


bit


9


bit


8


bit

7


bit


6


bit


5


bit


4


bit

< p>
3


bit


2


bit


1


bit


0


尾数


段(23位)


数值位(31位)



?



浮点数(小数)运算规则概念



?



进行浮点数


(小数)


运算的各


Dn


只能是二进制 小数、


常数


K



H



不能是整数或十进制小数;



?




Dn< /p>


中数据是整数,需用


FLT


指令转化为二 进制小数形式,再


参与运算;



?




Dn< /p>


中数据是十进制小数,


需用


EBIN


指令转化为二进制小数形


式,再参与运算;



?




Dn< /p>


中数据是常数


K



H


,可直接参与运算,无需转化,因其在


参与运算过程中会自 动转化;



?



浮点数运算中指令前一般应加


D



因 参与运算的二进制小数都占


有二个连续的


Dn

< br>、为


32


位数据;



.


.


?



浮点数运算的种类在


PLC



FX2N


)中有加


9EADD

< br>)


、减(


ESUB


< p>


乘(


EMUL



、除(


EDIV



、 正弦(


SIN



、余弦(


COS



、正切(


TAN< /p>




数类转化(


FLT



INT


EBIN



EBCD


< p>
、比较(


ECMP



CZ CP


)等等;



?



二进制小数的

PLC


处理中的监控:


因二进制小数数值与指数占用了


二个连续的


Dn


,且难以区别,故难以在组 态王等上监控(如


LED



码显示器、 组态王等)


、监控的数据只是乱码,故若要监控需将这些


二进制 小数用


EBCD


指令转化为十进制小数,


十进制小数占用连续二



Dn


,编号 大的为指数段,编号小的为尾数值、区别明确,易于监


控;


如:


D


30


?


D< /p>


31



其中


D3 0


为尾数值、


D31


为指数段;


注:



FX2N


仿真 软件上易监控仿真结果;



?



十进制小数概念:


十进制小数在


PLC



FX2N


)中占用


32


位,在


PLC


内部存储时采用


2


个连续编号的


Dn



Dn+1


,编号小的保存尾数段



Dn



,编号大的保存指数段(


Dn+1



;如:


D


30


?


D


31


;其中


D30


为尾

数值、


D31


为指数段;



十进制


小数在PLC(FX2N)中存入


形式


Dn+1


Dn


bit

< br>31


bit


30


bit


29


bit


28


bit


27


bit


26


bit


25


bit


24


bit


23


bit


22


bit


21


bit


20


bit


19


bit


18


bit


17


bit


16


bit


15


bi t


14


bit


13

bit


12


bit


11

< p>
bit


10


bit


9


bit


8


bit


7


bit


6


bit


5


bit


4


bit

< br>3


bit


2


bit


1


bit


0


符号

< p>


符号



(1位)


指数


段(16位)


(1位)

< br>尾数


段(16位)



?



十进制小数的运算:


十进制小数无法在


PLC



FX2N



中直接进行运算


处理,需用


EBIN


指令转化为二进制小数再进行运算;

< br>


?



十进制小数的数值监控作 用:


十进制小数易于数值监控,而二进制


小数难以直接监控,直 接监控数值往往为乱码,故


PLC


中二进制小

< br>数若需监控,可用


EBCD


指令将其转化为十进制小数; 注:十进制小


数在


FX2N


仿真软件上 监控反而出现乱码;



?


< p>


~


十进制数相互转化中的误差:



?



在二进制小数转化为十 进制小数、


或十进制小数转化为二进制小


数过程中,易产生一定 的误差,因有效数字四舍五入的缘故;



?



因某些自动控制采用浮点数可提高 控制精度与品质,


故需浮点数


运算及处理;


?



因某些自动控制部件只能采 用整数,故需将浮点数转化为整数,


其转化过程有四舍五入,将产生一定的误差。




2


< p>
得到一个二进制小数的方法概要


(与得到一个十进制小数的方法互为逆运< /p>


算)




?



方法一:


如产生一个二进制小数


254.6


(往


D20


中存入一个二进制小



254. 6





?



先往


D0


中送入一个整数(


2546




MOV K2546 D0




?



再用二进制整数转化为二进制小数指令


FLT

< br>转化得到二进制小数


形式,存入


D10

< br>(


2546.00




FLT D0 D10


;注:


FLT

< p>
指令仅是将


整数的表示形式转化为小数的表现形式(


2546--- 2546.00



,但


.


.


?



?



?



?



此数值实质上仍是整数;



最后将二进 制小数形式除以常数


10


的倍数,得到所需小数后为

< p>
几位的二进制小数(


254.6




DEDIV D10 K10 D20


;注:小数处


理指令与整数处理指令类似,只是前面加


E

,表示属小数处理指


令;另外小数数值占二个


Dn


,为


32


位,故运算指令前需加


D




注:

< br>二进制小数因是


32


位数值,


整 个数值


254.6


占了



D21



D20





:


方案一


PLC


软件监控仿真结果正常;组态王监控为乱码;


例程:




?



方法二:


如产生一个二进制小数


254.6


(往


D10


中存入一个二进制小



254. 6





?



将一个需转化的整数送入


D0



2546




MOV K2546 D0





?



再将一个负数(为小数的位数)送 入


D1



MOV -1 D1




?



注:上述二个


Dn


标号必须连续、且存 放整数的


Dn


标号应在前


< p>
D0



、存放负数的


Dn


标号应在后(


D1


< br>;



?



最后用十进制小数转化为二进制小数指令


EBIN


转化得到所 需的


二进制小数(


254.6




DEBIN


D0


D10


;注:小数处理指令与整数


处理指令类似,只是前面加


E


,表示属小数处理指令;另外小数


数 值占二个


Dn


,为


32


位,故运算指令前需加


D




?



注:


二进 制小数因是


32


位数值,


整个数值


254.6


占了



D21



D20



?




:


方法二


PLC


软件监控仿真为乱码; 组态王监控为乱码;



?



例程:





3



得到一个十进制小数的方法概要< /p>


(与得到一个二进制小数的方法互为逆运


算)



?



方法一


:


将一个二进制小数通过


EBC D


指令


(


二进制小数转化为十进制


小数指令


)


转化得到;注

< br>:


直接结果显示


PLC


监控仿真 为乱码


,


可在组


态王等上用尾数



指数形式显示结果


Dn


-Dn+1




.


.


?



方法 二


:先往


Dn


中送入一个整数;再往< /p>


Dn+1


中送入一个负数(为小


数的位数 )


;注:上述二个


Dn


标号必须连续、 且存入整数的


Dn


标号


在前(


Dn



、存入负数的


D n


标号在后(


Dn+1



。注


:


直接结果显示


PLC


监控仿真为乱码


,


可在组态王等上用尾 数



指数形式显示结果


Dn


-Dn+1




.


.


实验一




将一个整数转变为一个二进制小数,


并存入

FX2N



Dn



(产生一个


浮点数,存入


FX2N


Dn


中)





1


、具体 实例:


将一个整数


12


,转变为二进制 小数


1.2


,存入(


D21

< p>


D20


中;


为了在组态 王上易监控,再转化为十进制小数存入(


D31



D30


中;并用


D30


-D 31


方式在组态王显示结果。




2


、程序


1


段及分 析:



先将常数(整数)


12


存入


D0


中;再用


FL T


指令将


D0


中的常数(整

< p>
数)转变为二进制小数形式(


12.00


)存入< /p>


D11



D10


)中;最后用二


进制小数除法指令


DEDIV

< br>得到


1


位小数的二进制小数(


1 .200


)存入



D21



D20


中;


< p>
M8


002


[MO


V K1


2 D0]


[FL


T D0


D10]


将常


数12存入


D0中


将D0中整


数12转变


为二


进制


带小


数12.00< /p>


并存


入D11、D10中


[DE


DIV


D10 K


10

< br>D20]


将D11、D10中二


进制

小数


12.00除10


结果


1.2 存入


D21、D20中



3

< p>
、程序


1



PLC


仿真:




4


、程序


2


段及分析:



为了实现



D21


D20


中数值的组态王监控,


先 用


DEBCD


指令将其


转化为十进制小 数、存入(


D31



D30

< p>
中;



M8


002


[DE


BCD


D20 D

< br>30]


将D21、D20中的二进制小数1.2转变为十进制小数1.2


并存入D31、D30中



5

< br>、程序


2



PLC


仿真:



.


.



6


、程序


3


段及分析、


PLC


仿真:



十进制小数(


D31


)< /p>


D30


中指数段(


D31


)值作正负值判别,若是负值


则求补码,再显示;若是正值则不需处理,直接显 示;


(指数段作正负判别


是为了:


若可 能出现负数,


需求补码处理成原码绝对值


----


十进制小数的指数


一般都是负数,如此处


-3





7

< p>
、程序


4


段及分析、


PL C


仿真:



十进制小数(


D31



D30


中尾数段(


D30


)值作正负值判别,若是负值则


求补码,再显示;若是正值则不需处理,直接显示;


(尾数段作正负判别是


为了:


若可能出现负数,


需求补码处理成原码绝对值


----


为负数的十进制小数


时才可能 出现,此处不是)






8


、组态王监控结果及说明:






在组态 王监控中,原数


D0=12


,将其转化为


1.200


存入


(D31)D30


, 并用


D30


-D31


方式显示(


119


9


×


10


-3






.


.


9




总的< /p>


PLC


程序及解说、仿真结果:




10


、几点说明:



?



将一个整数转变为二进制小数形式 ,用


FLT


指令;



?



二进制小数形式数在


FX2N


中:



?



占用二个连续

Dn


存储,占


32


位;

< p>


?



b0




b22


位(共


23


位)是尾数位;



?



b23




b30


位(共


8


位)是指数位;



?



b31


位 是符号位(


1


为负数,


0


为正数)




?



二进制小数不是按


2


的补码处理;



?



因上述规则,故二进制小数难以直 接监控,直接监控会出现乱码;


一般可将其转变为十进制小数,再进行监控;

< p>


?



其整数后面(小数点后面)为三位小数形式;



?



例如:一个整数

< br>12


转变为二进制小数形式数,形式为


12.000





进制


小数


(



3


2位


,



2

< p>


D


n)


二进

< p>
制小



符号


位(1位)< /p>


二进


制小


数指


数 段(8位)


二进


制小


数尾


数段(23位)


b31


1:负数

0:正数


b30


b29


b28


b27


b26


b25


b24


b23


b22


b21


b20


b19


b18


b 17


b16


b15


b14


b13


b12


b11


b10


b9


b8


b7


b6


b5


b4


b3

b2


b1


b0


D11


D10


.


.




?



将二进 制小数转变为十进制小数形式,用


EBCD


指令;



?



十进制小数形式在< /p>


FX2N


中:



?



占用二个连续

Dn


存储,占


32


位;

< p>


?



Dn


编号小的是尾数段,


Dn


编号大的是指数段;



?




Dn


的最高位都是符号位;



?



十进制小数是按

< br>2


的补码处理;



?



例如:一个二进制小数转变为十进 制小数存入


D31



D30

< p>
中,其


表示形式为:


D


3 0


?


D


31


, 即


1199


?


10

?


3


;即


D30

< br>中存的是尾数段


1199



D3 1


中存的是指数段


-3




?



因上述规则,故十进制小数可以用于直接监控;



?



将二进制小数转变为十进制小数时 ,十进制小数的尾数段为


4


位,


故转变 可能会出现一定的误差。



十进制小数(


共3


2位,


占2


个D


n)


十进


制小


数指

< p>
数段


符号


位(1位)


十进


制小


数尾


数段


符号


位(1位)


b31


b30


b29


b28


b27


b 26


b25


b24


b23


b22


b21


b20


b19


b18


b17


b16

< br>1:负数


0:正数


D31


十进< /p>


制小


数指


数段


( 16位)


b15


b14


b13


b12


b11


b10


b 9


1:负数


0:正数


b8


b7


b6


b5


b4


b3


b2


b1


b0


D30


十进


制小


数 尾


数段


(16位)




.


.


实验二





2


个二进制小数(或其中一个常数


K< /p>



H


)进行四则运算



1


、具体实例:


产生


2


个二进制小数,


(< /p>


D21



D20=2.4




D26



D25=1.2


,再将这


2


个 二进制小数进行加减乘除等四则运算处理;




2




FX2N


程序及解说、仿真





3


、程序说明



?



首先用


M OV


指令将整数


24


放入


D1


中、整数


12


放入


D2


中;



?




FLT


指令将


D1


中的整数

< br>24


转变为二进制小数形式


24.00

< br>存入


D10


中、将


D2


中的整数


12


转变为二进制小数形式

< p>
12.00


存入


D15


中 ;



?



用< /p>


DEDIV


指令将


D10


中的二进制小数形式数


24.00


成为具有一位小


数的二进制小数


2.400


、用

< p>
DEDIV


指令将


D15


中的二进制小数形式



12.00


成为 具有一位小数的二进制小数


1.200




?








2.4 00



12.00


< br>行











2.4+1.2=(D31)D30



2.4-1.2=(D36)D35



2.


4


×


1.2=(D41)D40



2.


4


÷< /p>


1.2=(D46)D45




4


、几点说明



?




FX2 N



Dn


的多个二进制小数进行四则运 算,它们类型需都为浮


点形式;



?



若某个类型不是浮点形式,需用< /p>


FLT


转化,再参与运算;



.

-


-


-


-


-


-


-


-



本文更新与2021-03-03 22:21,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/703652.html

PLC(FX2N)小数点(浮点)运算编程研究讲义的相关文章