收藏 分销(赏)

小数点浮点运算编程研究应用讲义.doc

上传人:天**** 文档编号:2718696 上传时间:2024-06-04 格式:DOC 页数:24 大小:312.54KB
下载 相关 举报
小数点浮点运算编程研究应用讲义.doc_第1页
第1页 / 共24页
小数点浮点运算编程研究应用讲义.doc_第2页
第2页 / 共24页
小数点浮点运算编程研究应用讲义.doc_第3页
第3页 / 共24页
小数点浮点运算编程研究应用讲义.doc_第4页
第4页 / 共24页
小数点浮点运算编程研究应用讲义.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、gPLC(FX2N)浮点(小数点)运算编程研究讲义目录u PLC(FX2N)浮点(小数)运算编程概要u 实验一 将一种整数转变为一种二进制小数,并存入FX2NDn中(产生一种浮点数,存入FX2NDn中)u 实验二 将2个二进制小数(或其中一种常数K、H)进行四则运算u 实验三 一种二进制小数,如何在LED数码显示屏,或者组态王上显示监控u 实验四 二进制浮点数运算实例u 实验五 任意位浮点数(小数)输入u 附1:PLC数值显示(LED数码显示屏)含小数点办法u 附2:PLC(FX2N)中输入小数小结、要点:PLC(FX2N)浮点(小数)运算编程概要1、 PLC(FX2N)浮点数(小数)概论:u

2、 二进制小数概念:二进制小数在PLC(FX2N)中存储占用32位(即占用2个持续编号Dn、Dn+1),最高位bit31位是符号位(1是负数,0是正数),其她位(bit30bit0)是数值位,数值位分尾数段和指数段,bit0bit22共23位是尾数段,bit23bit30共8位是指数段;注:二进制小数不是按2补码解决;u 浮点数(小数)运算规则概念 进行浮点数(小数)运算各Dn只能是二进制小数、常数K、H;不能是整数或十进制小数; 若Dn中数据是整数,需用FLT指令转化为二进制小数形式,再参加运算; 若Dn中数据是十进制小数,需用EBIN指令转化为二进制小数形式,再参加运算; 若Dn中数据是常数

3、K、H,可直接参加运算,无需转化,因其在参加运算过程中会自动转化; 浮点数运算中指令前普通应加D,因参加运算二进制小数都占有二个持续Dn、为32位数据; 浮点数运算种类在PLC(FX2N)中有加9EADD)、减(ESUB)、乘(EMUL)、除(EDIV)、正弦(SIN)、余弦(COS)、正切(TAN)、数类转化(FLT、INT、EBIN、EBCD)、比较(ECMP、CZCP)等等;u 二进制小数PLC解决中监控:因二进制小数数值与指数占用了二个持续Dn,且难以区别,故难以在组态王等上监控(如LED数码显示屏、组态王等)、监控数据只是乱码,故若要监控需将这些二进制小数用EBCD指令转化为十进制小

4、数,十进制小数占用持续二个Dn,编号大为指数段,编号小为尾数值、区别明确,易于监控;如:;其中D30为尾数值、D31为指数段;注:在FX2N仿真软件上易监控仿真成果;u 十进制小数概念:十进制小数在PLC(FX2N)中占用32位,在PLC内部存储时采用2个持续编号Dn、Dn+1,编号小保存尾数段(Dn),编号大保存指数段(Dn+1);如:;其中D30为尾数值、D31为指数段;u 十进制小数运算:十进制小数无法在PLC(FX2N)中直接进行运算解决,需用EBIN指令转化为二进制小数再进行运算;u 十进制小数数值监控作用:十进制小数易于数值监控,而二进制小数难以直接监控,直接监控数值往往为乱码,故

5、PLC中二进制小数若需监控,可用EBCD指令将其转化为十进制小数;注:十进制小数在FX2N仿真软件上监控反而浮现乱码;u 二十进制数互相转化中误差: 在二进制小数转化为十进制小数、或十进制小数转化为二进制小数过程中,易产生一定误差,因有效数字四舍五入缘故; 因某些自动控制采用浮点数可提高控制精度与品质,故需浮点数运算及解决; 因某些自动控制部件只能采用整数,故需将浮点数转化为整数,其转化过程有四舍五入,将产生一定误差。2、 得到一种二进制小数办法概要(与得到一种十进制小数办法互为逆运算):u 办法一:如产生一种二进制小数254.6(往D20中存入一种二进制小数254.6); 先往D0中送入一种

6、整数(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; 注:方案一PL

7、C软件监控仿真成果正常;组态王监控为乱码; 例程:u 办法二:如产生一种二进制小数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; 注:二

8、进制小数因是32位数值,整个数值254.6占了(D21)D20; 注:办法二PLC软件监控仿真为乱码;组态王监控为乱码; 例程:3、 得到一种十进制小数办法概要(与得到一种二进制小数办法互为逆运算):u 办法一:将一种二进制小数通过EBCD指令(二进制小数转化为十进制小数指令)转化得到;注:直接成果显示PLC监控仿真为乱码,可在组态王等上用尾数指数形式显示成果Dn-Dn+1;u 办法二:先往Dn中送入一种整数;再往Dn+1中送入一种负数(为小数位数);注:上述二个Dn标号必要持续、且存入整数Dn标号在前(Dn)、存入负数Dn标号在后(Dn+1)。注:直接成果显示PLC监控仿真为乱码,可在组态王

9、等上用尾数指数形式显示成果Dn-Dn+1;实验一 将一种整数转变为一种二进制小数,并存入FX2NDn中(产生一种浮点数,存入FX2NDn中) 1、详细实例:将一种整数12,转变为二进制小数1.2,存入(D21)D20中;为了在组态王上易监控,再转化为十进制小数存入(D31)D30中;并用D30-D31方式在组态王显示成果。2、程序1段及分析:先将常数(整数)12存入D0中;再用FLT指令将D0中常数(整数)转变为二进制小数形式(12.00)存入D11(D10)中;最后用二进制小数除法指令DEDIV得到1位小数二进制小数(1.200)存入(D21)D20中;3、程序1段PLC仿真:4、程序2段及

10、分析:为了实现(D21)D20中数值组态王监控,先用DEBCD指令将其转化为十进制小数、存入(D31)D30中;5、程序2段PLC仿真:6、程序3段及分析、PLC仿真:十进制小数(D31)D30中指数段(D31)值作正负值鉴别,若是负值则求补码,再显示;若是正值则不需解决,直接显示;(指数段作正负鉴别是为了:若也许浮现负数,需求补码解决成原码绝对值-十进制小数指数普通都是负数,如此处-3);7、程序4段及分析、PLC仿真:十进制小数(D31)D30中尾数段(D30)值作正负值鉴别,若是负值则求补码,再显示;若是正值则不需解决,直接显示;(尾数段作正负鉴别是为了:若也许浮现负数,需求补码解决成原

11、码绝对值-为负数十进制小数时才也许浮现,此处不是);8、组态王监控成果及阐明: 在组态王监控中,原数D0=12,将其转化为1.200存入(D31)D30,并用D30-D31方式显示(119910-3):9、 总PLC程序及解说、仿真成果:10、几点阐明:u 将一种整数转变为二进制小数形式,用FLT指令;u 二进制小数形式数在FX2N中: 占用二个持续Dn存储,占32位; b0位b22位(共23位)是尾数位; b23位b30位(共8位)是指数位; b31位是符号位(1为负数,0为正数); 二进制小数不是按2补码解决;u 因上述规则,故二进制小数难以直接监控,直接监控会浮现乱码;普通可将其转变为十

12、进制小数,再进行监控;u 其整数背面(小数点背面)为三位小数形式;u 例如:一种整数12转变为二进制小数形式数,形式为12.000; u 将二进制小数转变为十进制小数形式,用EBCD指令;u 十进制小数形式在FX2N中: 占用二个持续Dn存储,占32位; Dn编号小是尾数段,Dn编号大是指数段; Dn最高位都是符号位; 十进制小数是按2补码解决; 例如:一种二进制小数转变为十进制小数存入D31、D30中,其表达形式为:,即;即D30中存是尾数段1199;D31中存是指数段-3。u 因上述规则,故十进制小数可以用于直接监控;u 将二进制小数转变为十进制小数时,十进制小数尾数段为4位,故转变也许会

13、浮现一定误差。实验二 将2个二进制小数(或其中一种常数K、H)进行四则运算1、详细实例:产生2个二进制小数,(D21)D20=2.4,(D26)D25=1.2,再将这2个二进制小数进行加减乘除等四则运算解决;2、 FX2N程序及解说、仿真3、程序阐明 一方面用MOV指令将整数24放入D1中、整数12放入D2中; 用FLT指令将D1中整数24转变为二进制小数形式24.00存入D10中、将D2中整数12转变为二进制小数形式12.00存入D15中; 用DEDIV指令将D10中二进制小数形式数24.00成为具备一位小数二进制小数2.400、用DEDIV指令将D15中二进制小数形式数12.00成为具备一

14、位小数二进制小数1.200; 二进制小数2.400与12.00进行加减乘除四则运算:2.4+1.2=(D31)D30;2.4-1.2=(D36)D35;2.41.2=(D41)D40;2.41.2=(D46)D45;4、几点阐明n 将FX2N中Dn各种二进制小数进行四则运算,它们类型需都为浮点形式;n 若某个类型不是浮点形式,需用FLT转化,再参加运算;n 但常数K、H无需转化,因其在参加运算过程中会自动转化为浮点形式;n 二进制小数在进行四则运算过程中,都需应用FX2N浮点四则运算指令,而不能应用普通四则运算指令;n 运算成果若需监控(LED数码显示屏、组态王等),可将其转换为十进制小数再监

15、控。实验三 一种二进制小数,如何在LED数码显示屏,或者组态王上显示监控1、详细实例:产生一种二进制小数1.2,并分别组态王上监控显示、在LED数码显示屏上显示。2、编程思路解读:u 一方面用FLT指令及DEDIV指令产生1个1位二进制小数1.2;存入(D11)D10中;u 用DEBCD指令将该二进制小数1.2转化为十进制小数1.2,并存入(D101)D100中;u 将十进制小数指数段(高位Dn,即D101)进行正负符号鉴别: 正数则直接显示十进制小数指数值D101; 负数则先求补码,再显示十进制小数指数值;(显示数值前面加负号,大多如此);D101=-3;u 将十进制小数尾数段(低位Dn,即

16、D100)进行正负符号鉴别: 正数则直接显示十进制小数尾数值D100=1199; 负数则先求补码,再显示十进制小数尾数值D100;(显示数值前面加负号);u 十进制小数总体表达形式为:,详细即:D100-D101;此实验成果为1199-3;u 十进制小数用LED数码显示屏显示(结合硬件I/O图查看): 先对Dn(十进制小数尾数,经正负鉴别与求补码解决D100)进行常规解决显示(BCD或SEGD等);注意数值前面需加负号与否; 再对Dn+1(十进制小数指数,经正负鉴别与求补码解决D101)进行常规解决显示(BCD或SEGD等);注意数值前面需加负号与否;u 十进制小数用组态王显示监控: 按十进制

17、小数总体表达形式:;设立Dn变量(D100)、Dn+1变量(D101);并在画面按上述形式制作D100-D101;显示成果为1199-3;3、PLC程序、解说及仿真4、组态王监控图(略)5、LED数码显示屏显示硬件I/O图实验四 二进制浮点数运算实例1、详细任务:规定编制一解方程程序:;其中X:X0X17(K4X0),由四位数字开关输入,范畴为09999。2、PLC程序、解说及仿真 3、程序编制思路:u 程序编程: 采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进制小数115.2=(D26)D25; 采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进制小数375.23=(

18、D7)D6; 采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进制小数187.6=(D16)D15; X0X17输入数据解决:先用BIN指令将输入16位BCD码整数转换为二进制整数;再用FLT指令将此数转换为二进制小数形式存入(D36)D35; 用EDMUL指令将(D26)D25与(D36)D35进行二进制小数乘法,成果存入(D41)D40中; 用DEADD指令将(D41)D40与(D7)D6进行二进制小数加法;成果存入(D46)D45中; 用DEDIV指令将(D46)D45与(D16)D15进行二进制小数除法,得到方程最后成果存入(D51)D50中。u 方程编程运算过程: u 方程

19、编程中各变量Dn含义: (D26)D25=115.2; (D36)D35=K4X0(X0X17) (D7)D6=375.23; (D16)D15=187.6; (D26)D25(D36)D35=(D41)D40; (D41)D40+(D7)D6=(D46)D45; (D51)D50=(D46)D45(D16)D15;即方程最后成果;实验五 任意位浮点数(小数)输入一、详细任务及编程解读:1、 设立加1/加5键(INC指令/ADD指令),减1/减5键(DEC指令/SUB指令),复位键,小数点1位键,小数点2位键,数据存入D0中;2、 减1/减5操作时,初始最大值设立为50,最小减至0;(触点比较

20、指令)3、 加1/加5操作时,初始最小值设立为0,最大加至50;(触点比较指令)4、 减1/减5、加1/加5操作中若D0数据需归零,可按复位键(RST指令);5、 输入一种小数点后一位小数;(FLT指令、DEDIV指令)D206、 输入一种小数点后二位小数;(FLT指令、DEDIV指令)D207、 为了二进制小数显示,用DEBCD指令将二进制小数转变为十进制小数;再用BON指令、NEG指令将数据变换为尾数、指数显示形式D30-D31;二、编程思路1、 先用整数数据输入指令(如加1/加n、减1/减n指令,TKY指令、HKY指令、DSW指令等等)输入整数(即需输入整数连小数,先不考虑小数点)至Dn

21、;2、 再在外部Xn选取小数位(n位),编程解决存入Dm中,实现了小数输入。三、PLC程序及解说、仿真:附1:20一、实验规定 显示一种具有小数点实数,如12.6、23.8、5.6等。二、实验实现分析u 对于共阴LED数码显示屏,将整数中最后一位h(小数点)引脚通过一种限流电阻接+Vcc即可;其她硬件电路都类同;并且无需在软件中作任何解决。u 对于共阳LED数码显示屏,将整数中最后一位h(小数点)引脚通过一种限流电阻接地即可;其她硬件电路都类同;并且无需在软件中作任何解决。三、实验电路图附2:PLC(FX2N)中输入小数小结、要点:u FX2N中可外部输入或内部产生1个二进制小数或十进制小数;

22、u PLC外部输入小数方案: 外部(Xn)按常规办法输入整数至PLCDn中, 再在PLC中用FLT指令将整数转化为二进制小数形式,再用DEDIV指令来拟定二进制小数位数; 尚有第二种办法,可见前面阐述,略; 若需转化为十进制小数,则可用DEBCD指令将二进制小数转化为十进制小数; 注:因二进制小数在PLC内部可直接进行运算,而十进制小数则直接不行,故需要小数往往首选二进制小数;u PLC内部产生小数方案: 内部先用MOV指令在Dn中存入一种整数, 再用FLT指令将整数转化为二进制小数形式,再用DEDIV指令来拟定二进制小数位数; 尚有第二种办法,可见前述,略; 若需转化为十进制小数,则可用DE

23、BCD指令将二进制小数转化为十进制小数; 注:因二进制小数在PLC内部可直接进行运算,而十进制小数则直接不行,故需要小数往往首选二进制小数;u PLC内部小数运算: PLC内部二进制小数可直接运算:如加减乘除比较等等; 而十进制小数则不能直接运算,需用DEBIN指令将其转化为二进制小数后进行; 数据为K、K常数则可直接参加运算,无需转化; 二进制小数运算时,大多为32位,指令前应加D;并且运算成果存储存储器为持续编号2个(Dn+1)Dn;高位在大编号、低位在小编号;程序语句上只需写小编号Dn; 遇到在PLC内部需要运算解决工程小数,先需拟定是属于何种性质(二进制小数、十进制小数),再作运算或变

24、换后运算; 遇到在PLC内部需要运算1个工程小数、1个为整数,工程小数得判断与否为二进制小数,否则即为十进制小数,用DEBCD指令转化之、整数则需将整数用FLT指令转化为二进制小数,两者才可进行运算解决。u FLT指令提纲: FLT指令仅是将二进制整数转化为二进制小数体现形式, 使用时需据二进制整数大小(占一种D16位、还是占二个D32位)前面加D还是不加; 经FLT指令转化后二进制小数普通占持续2个Dn; 要将经FLT指令转化而来二进制小数形式(Dn+1)Dn,得到是几位小数值,可用DEDIV指令,除10得到1位小数,除100得到2位小数,以此类推;u 二进制小数要点:二进制小数可在FX2N

25、中直接进行四则运算,可直接在PLC软件中仿真显示成果;但在组态王等监控易浮现乱码;需用DEBCD指令将其转化为十进制小数后以尾数、指数形式显示监控成果;二进制小数为32位数,占用持续标号二个Dn,最高位为符号位(1为负数、0为正数),余下数值位:次高及下8位为指数段,剩余为23位为尾数段;组态王上较难显示;u 十进制小数要点:十进制小数不能在FX2N中直接进行四则运算,需用DEBIN指令转化为二进制小数后进行;但十进制小数在PLC仿真软件中仿真显示是乱码,但可以尾数、指数形式在组态王等显示监控成果;十进制小数为32位数,占用持续标号二个Dn,大编号Dn+1存储指数段,小编号Dn存储尾数段,可用Dn-Dn+1显示十进制小数;

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 小学数学

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服