PLC(FX2N)小数点(浮点)运算编程研究讲义2012_第1页
PLC(FX2N)小数点(浮点)运算编程研究讲义2012_第2页
PLC(FX2N)小数点(浮点)运算编程研究讲义2012_第3页
PLC(FX2N)小数点(浮点)运算编程研究讲义2012_第4页
PLC(FX2N)小数点(浮点)运算编程研究讲义2012_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、数在PLC(FX2N中存储占用32位(即占用 2个连续编号得DnDn+1),最高位bit31位就是符号位(1就是负数,0 就是正数),其她位(bit30bit0) 就是数值位,数值位分尾数段与指数段,bit0bit22 共23位就是尾数段,bit23bit30 共8位就是指数 段;注:二进制小数不就是按2得补码处理;二进制 小数在PLC(FX2N中存入形式Dn+1Dnbit 15 bit 14 bit 13 bit 11bit 11 bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 Ibit 0bit 31bit 30bi

3、t 29bit 2申t 27bit 26bit 23bit 24bit 23bit 22bit 21bit 2Cbit 19bit 18bit 17bit 1(数值位(31位)浮点数(小数)运算规则概念进行浮点数(小数)运算得各Dn只能就是二进制小数、常数 K、 H;不能就是整数或十进制小数;若Dn中数据就是整数,需用FLT指令转化为二进制小数形式,再 参与运算;若Dn中数据就是十进制小数,需用EBIN指令转化为二进制小数 形式,再参与运算;若Dn中数据就是常数 K H,可直接参与运算,无需转化,因其在 参与运算过程中会自动转化;浮点数运算中指令前一般应加 D,因参与运算得二进制小数都占 有二

4、个连续得Dn为32位数据;浮点数运算得种类在 PLC(FX2N中有加9EADD)减(ESUB)、乘 (EMUL)除(EDIV)、正弦(SIN)、余弦(COS)、正切(TAN)、数类 转化(FLT、INT、EBIN、EBCD)比较(ECMP CZCP等等;二进制小数得PLC处理中得监控:因二进制小数数值与指数占用了二 个连续得Dn,且难以区别,故难以在组态王等上监控(如LED数码显示器、组态王等)、监控得数据只就是乱码,故若要监控需将这些二 进制小数用EBCD旨令转化为十进制小数,十进制小数占用连续二个 Dn,编号大得为指数段,编号小得为尾数值、区别明确,易于监控;如:; 其中D30为尾数值、D

5、31为指数段;注:在FX2N仿真软件上易监控仿 真结果;十进制小数概念:十进制小数在PLC(FX2N中占用32位,在PLC内部 存储时采用2个连续编号得Dn Dn+1,编号小得保存尾数段(Dn),编 号大得保存指数段(Dn+1);如:;其中D30为尾数值、D31为指数段;十进制小数在PLC(FX2N中存入 形式Dn+1Dnbit 31)it 30bit 29bit 28)it 27bit 26bit 25bit 24bit 23bit 22bit 21bit 20bit 19bit 18bit 17bit 16符号位(1 位)bit 15bit 1申t 13bit 12bit 11”it 1C

6、bit 9bit 8bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0符号位(1 位)尾数段(16位)指数段(16位)十进制小数得运算:十进制小数无法在PLC(FX2N中直接进行运算处 理,需用EBIN指令转化为二进制小数再进行运算;十进制小数得数值监控作用:十进制小数易于数值监控,而二进制小 数难以直接监控,直接监控数值往往为乱码,故PLC中二进制小数若 需监控,可用EBCD指令将其转化为十进制小数;注:十进制小数在 FX2N仿真软件上监控反而出现乱码;二十进制数相互转化中得误差:在二进制小数转化为十进制小数、或十进制小数转化为二进制小 数过程中,易产生一定得误

7、差,因有效数字四舍五入得缘故; 因某些自动控制采用浮点数可提高控制精度与品质,故需浮点数运算及处理;因某些自动控制部件只能采用整数,故需将浮点数转化为整数, 其转化过程有四舍五入,将产生一定得误差。2、得到一个二进制小数得方法概要(与得到一个十进制小数得方法互为逆运 算):方法一:如产生一个二进制小数254、6(往D20中存入一个二进制小 数 254、6);先往D0中送入一个整数(2546);MOV K2546 D0;再用二进制整数转化为二进制小数指令 FLT转化得到二进制小数 形式,存入 D10(2546、00);FLT D0 D10;注:FLT指令仅就是将整 数得表示形式转化为小数得表现形

8、式 (25462546、00),但此数值 实质上仍就是整数;最后将二进制小数形式除以常数10得倍数,得到所需小数后为几 位得二进制小数(254、6);DEDIV D10 K10 D20;注:小数处理指令 与整数处理指令类似,只就是前面加E,表示属小数处理指令;另 外小数数值占二个Dn,为32位,故运算指令前需加D;注:二进制小数因就是32位数值,整个数值254、6占了 (D21)D20; 注:方案一 PLC软件监控仿真结果正常;组态王监控为乱码; 例程:将一个需转化得整数送入 DO(2546);MOV K2546 DO;再将一个负数(为小数得位数)送入D1;MOV 1 D1;注:上述二个Dn标

9、号必须连续、且存放整数得Dn标号应在前(DO)、存放负数得Dn标号应在后(D1);最后用十进制小数转化为二进制小数指令 EBIN转化得到所需得 二进制小数(254、6);DEBIN DO D10;注:小数处理指令与整数处 理指令类似,只就是前面加E,表示属小数处理指令;另外小数数 值占二个Dn,为32位,故运算指令前需加D;注:二进制小数因就是32位数值,整个数值254、6占了 (D21)D20; 注:方法二PLC软件监控仿真为乱码;组态王监控为乱码; 例程:Uo,02】IENDDODIO-62390 H323TO3BD3、得到一个十进制小数得方法概要(与得到一个二进制小数得方法互为逆运算):

10、方法一:将一个二进制小数通过 EBCD指令(二进制小数转化为十进制 小数指令)转化得到;注:直接结果显示PLC监控仿真为乱码,可在组态 王等上用尾数指数形式显示结果DrT+1;方法二:先往Dn中送入一个整数;再往Dn+1中送入一个负数(为小数 得位数);注:上述二个Dn标号必须连续、且存入整数得 Dn标号在前 (Dn)、存入负数得Dn标号在后(Dn+1)。注:直接结果显示PLC监控仿 真为乱码,可在组态王等上用尾数指数形式显示结果DrT+1;实验一 将一个整数转变为一个二进制小数,并存入FX2N得Dn中(产生一个浮 点数,存入FX2N得Dn中)1、 具体实例:将一个整数12,转变为二进制小数1

11、、2,存入(D21)D20中;为了在组 态王上易监控,再转化为十进制小数存入(D31)D30中;并用D30D31方式在组态王 显示结果。2、程序1段及分析:先将常数(整数)12存入D0中;再用FLT指令将D0中得常数(整数)转变 为二进制小数形式(12、00)存入D11(D10)中;最后用二进制小数除法指 令DEDIV得到1位小数得二进制小数(1、200)存入(D21)D20中;3、程序1段PLC仿真:4、程序2段及分析:为了实现(D21)D20中数值得组态王监控,先用DEBCD指令将其转 化为十进制小数、存入(D31)D30中;5、程序2段PLC仿真:宓BCDD20D306、程序3段及分析、

12、PLC仿真:十进制小数(D31)D30中指数段(D31)值作正负值判别,若就是负值则求 补码,再显示;若就是正值则不需处理,直接显示;(指数段作正负判别就是为了 : 若可能出现负数,需求补码处理成原码绝对值十进制小数得指数一般都就是十进制小数(D31)D30中尾数段(D30)值作正负值判别,若就是负值则求补 码,再显示;若就是正值则不需处理,直接显示;(尾数段作正负判别就是为了 :若 可能出现负数,需求补码处理成原码绝对值为负数得十进制小数时才可能出 现,此处不就是);阱0花 T TO11pOIJ DOCYO111200 OFF* DK)V 010KE眩012. OCOL.JOO*小数诲更为I

13、D过刚I数IIFl IDEtW D20K30LM7C33S38号fgQH* C将D31 (指栽段)进行正丸值判别唐咼 D3L Y01C K1&3 ON生屮BG031*将康叭尾敦段)谴行正F酋判别EO?f D30Y01.K151200 OFF+ VYH寻通为负任负值求补码YOUDeo120010、几点说明:将一个整数转变为二进制小数形式,用FLT指令;二进制小数形式数在FX2N中:占用二个连续Dn存储,占32位;b0位一b22位(共23位)就是尾数位;b23位一b30位(共8位)就是指数位;b31位就是符号位(1为负数,0为正数); 二进制小数不就是按2得补码处理;因上述规则,故二进制小数难以直

14、接监控,直接监控会出现乱码;一般 可将其转变为十进制小数,再进行监控; 其整数后面(小数点后面)为三位小数形式;例如:一个整数12转变为二进制小数形式数,形式为12、000;二进制小数(共3 2位 ,占2个Dn) 二进制小数符号位(1位)二进制小数指数段(8位)b31b30b29b28b27b26b25b24b23b22b21b20b19b18b17b161:负数0:正数D11D10b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0二进制小数尾数段(23位)将二进制小数转变为十进制小数形式,用EBCD指令; 十进制小数形式在FX2N中:占用二个连续Dn存储,占32位;

15、Dn编号小得就是尾数段,Dn编号大得就是指数段;Dn得最高位都就是符号位;十进制小数就是按2得补码处理;例如:一个二进制小数转变为十进制小数存入 D31、D30中,其表 示形式为:,即;即D30中存得就是尾数段1199Q31中存得就是指 数段3。因上述规则,故十进制小数可以用于直接监控; 将二进制小数转变为十进制小数时,十进制小数得尾数段为4位,故转 变可能会出现一定得误差。十进制小数( 共3 2位,占2个D n)十进制小数指数段十进制小数尾数段符号位(1位)符号位(1位)b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0十进制小数尾数段(16位)实验二 将2个二进制

16、小数(或其中一个常数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成为具有一位小数得二进制小数1、2

17、00;二进制小数 2、400与12、00进行加减乘除四则运算:2、4+1、 2=(D31)D30;2、41、2=(D36)D35;2、4X 1、2=(D41)D40;2、4- 1、 2=(D46)D45;4、几点说明将FX2N中Dn得多个二进制小数进行四则运算,它们类型需都为浮点 形式;若某个类型不就是浮点形式,需用FLT转化,再参与运算;但常数K、H无需转化,因其在参与运算过程中会自动转化为浮点形 式;二进制小数在进行四则运算过程中 ,都需应用 FX2N 得浮点四则运算 指令 ,而不能应用普通四则运算指令 ;运算结果若需监控得 (LED 数码显示器、组态王等 ),可将其转换为十 进制小数再监

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

19、);D101=3;将十进制小数得尾数段(低位Dn,即 D100)进行正负符号判别: 正数则直接显示十进制小数得尾数值 D100=1199; 负数则先求补码 ,再显示十进制小数得尾数值 D 1 00 ; (显示数值前面 加负号);十进制小数得总体表示形式为:,具体得即:D100D101;此实验结果为11993; 十进制小数用 LED 数码显示器显示 (结合硬件 I/O 图查瞧 ):先对Dn(十进制小数尾数,经正负判别与求补码处理D100)进行常规处理显示 (BCD 或 SEGD 等) ;注意数值前面需加负号与否 ;再对Dn+1(十进制小数指数,经正负判别与求补码处理D101)进行常规处理显示 (

20、BCD 或 SEGD 等) ;注意数值前面需加负号与否 ; 十进制小数用组态王显示监控 :按十进制小数得总体表示形式:;设置Dn变量(D100)、Dn+1变量 (D101);并在画面按上述形式制作 D100D101;显示结果为11993;3、PLC 程序、解说及仿真k立土一个小數冶位的二进制小妁1卫HS0O2K12DO1 Ih肾二边制卜婶化为十进制我IB 002k十踊耐軸尾戴殿任氏刿别骂疋补闵(绘态壬可崑录)118002UUpEPIV P5SIDDJUDinpON 1*1007010E16YOIDT卜D100K十进魁小數扌鐵段1E賣判别与求朴国组态王可感示)HS0O24tip(?ll P1D1

21、fOl 1E15YOUNEGDIDIh进制小耻尾歎段口 I撤亀显示处理H80D2K十进制小歎猎竦段LH致码显不处理I8DD2的T5CMLD2DK1T0D0pCDD101D30?30KlTOD胆CD100D?0304、组态王监控图(略)5、LED数码显示器显示硬件I/O图实验四二进制浮点数运算实例1、具体任务:要求编制一解方程程序:;其中X:XO X17(K4X0),由四位数字开关输入,范围 为 09999。2、PLC程序、解说及仿真 产生小375.23至(DT)DBM8n02#产生小数18TM至(D1GD15ME00232* 产生 1115.2M(D26)D25M800264 # XOIITS

22、iA#M80029C L_浮点難的四则运算播后结昊至肌1)D刊MC00231pEDI137523DODJOTJ?52JTDF1Tnn37&233TDZ3.UOOD2K100D63TD23. 000375.Z30pwivE1BT8DLO1376DIODL2prr.T13751376.300DIFK10D15187S. 000187.600pniDvKI 152D201152TDF1TD20D2211521162.000D22KIDD251102. OOU115.ZUOK4X0i00D30pTW0D3CD3Spl T00.000D25D35D40115. 200r.UOO0. JOOD4CD6D4

23、50. 000375.230375,230D45DIEDEO;DEDIVDEPI71;DEDIVJLEMUL;375. 230 137. SQJ2. JOOEno3、程序编制思路:程序编程:采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进 制小数 115、2=(D26)D25;采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进 制小数 375、23=(D7)D6;采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进 制小数 187、6=(D16)D15;X0X17输入数据处理:先用BIN指令将输入得16位BCD码整 数转换为二进制整数;再用FLT指令将此数转换为二

24、进制小数 形式存入(D36)D35;用EDMUL指令将(D26)D25与(D36)D35进行二进制小数得乘 法,结果存入(D41)D40中;用DEADD指令将(D41)D40与(D7)D6进行二进制小数得加法; 结果存入(D46)D45中;用DEDIV指令将(D46)D45与(D16)D15进行二进制小数得除法 得到方程最终结果存入(D51)D50中。方程编程运算过程:(D51)D50(D26)D25 (D36)D35(D7)D6(D41)D40(D7)D6(D46)D45(D16)D15(D16)D15(D16)D15方程编程中各变量Dn含义:(D26)D25=115、2;(D36)D35=

25、K4X0(X0X17)(D7)D6=375、23;(D16)D15=187、6;(D26)D25X (D36)D35=(D41)D40;(D41)D40+(D7)D6=(D46)D45;(D51)D50=(D46)D4 5- (D16)D15;即方程最后结果;实验五任意位浮点数(小数)得输入、具体任务及编程解读:1设置加1/加 5键(INC指令/ADD指令),减1/减5键(DEC指令/SUB指令), 复位键,小数点1位键,小数点2位键,数据存入D0中;2、减1/减5操作时,初始最大值设置为50,最小减至0;(触点比较指令)3、加1/加 5操作时,初始最小值设置为0,最大加至50;(触点比较指令

26、)4、减1/减5、加1/加5操作中若D0数据需归零,可按复位键(RST指令);5、输入一个小数点后一位得小数;(FLT指令、DEDIV指令)D206、输入一个小数点后二位得小数;(FLT指令、DEDIV指令)D207、 为了二进制小数得显示,用DEBCD指令将二进制小数转变为十进制小数; 再用BON指令、NEG指令将数据变换为尾数、指数显示形式 D30D31;、编程思路1、先用整数数据输入指令(如加1/加 n减1/减n指令,TKY指令、HKY指 令、DSW指令等等)输入整数(即需输入得整数连小数,先不考虑小数点) 至Dn;2、再在外部Xn选择小数位(n位),编程处理存入Dm中,实现了小数得输入

27、。 、PLC程序及解说、仿真:XDD4 M3K550DO5050 DOK95NOCOO50 1_DIO60 EG OOOXDD562 -,卜怒诟M0D6十姻二D10K1050. 000D205.000DIOKlOOD2ODEDIV50. ODO5.000*比判小敷转:u建制小数pseco D20D30icfti?77t4 -1916QS*】o羽才丄足效段正負刘剔及处瑾H8000100 .D30Y0000 OFFK15YCOOD30*】U建划数112吉数段止负判别关处理MecocTUOl 0 OFFKlbYrm.TIECD3112附 1:20一、实验要求显示一个含有小数点得实数,如12、6、23

28、、8、5、6等。二、实验实现分析对于共阴LED数码显示器,将整数中最后一位得h(小数点)引脚通过一个 限流电阻接+Vcc即可;其她硬件电路都类同;并且无需在软件中作任何处 理。对于共阳LED数码显示器,将整数中最后一位得h(小数点)引脚通过一个 限流电阻接地即可;其她硬件电路都类同;并且无需在软件中作任何处理。整数整数小数三、实验电路图十位个位位FX2N中可外部输入或内部产生1个二进制小数或十进制小数; PLC外部输入小数方案:外部(Xn)按常规方法输入整数至PLC得Dn中,再在PLC中用FLT指令得将整数转化为二进制小数形式,再用DEDIV 指令来确定二进制小数得得位数; 还有第二种方法,可见前面论述,略;若需转化为十进制小数,则可用DEBCD指令将二进制小数转化为十 进制小数;注:因二进制小数在 PLC内部可直接进行运算,而十进制小数则直接 不行,故需要小数往往首选二进制小数;PLC内部产生小数方案:内部先用MOV指令在Dn中存入一个整数,再用FLT指令得将整数转化为二进制小数形式,再用DEDIV指令来确 定二进制小数得得位数;还有第二种方法,可见前述,略;若需转化为十进制小数,则可用DEBCD指令将二进制小数转化为十 进制小数;注:因二进制小数在 PLC内部可直接进行运算,而十进制小数则直接 不行,故需要小数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论