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

下载本文档

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

文档简介

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

2、(FX2N中存储占用32位(即占 用2个连续编号的Dn> Dn+1),最高位bit31位是符号位(1是负数, 0是正数),其他位(bit30bit0 )是数值位,数值位分尾数段和指 数段,bit0bit22 共23位是尾数段,bit23bit30 共8位是指数段; 注:二进制小数不是按2的补码处理;Dn二进制 小数在PLC(FX2N中存入 形式Dn+1bit 31 bit 30 bit 29 bit 28kit 27 bit 26bit 25bit 24 bit 23 bit 22 bit 21 bit 2( bit 19 bit 18 bit 17bit 16bit 15 bit 14

3、 bit 13 bit 1)it 11 bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 I bit 3 bit 2 bit 1 I bit 0符号位指数段(8位)(1位)尾数段(23位)数值位(31位)浮点数(小数)运算规则概念进行浮点数(小数)运算的各Dn只能是二进制小数、常数K、H;不能是整数或十进制小数;若Dn中数据是整数,需用FLT指令转化为二进制小数形式,再 参与运算;若Dn中数据是十进制小数,需用EBIN指令转化为二进制小数形 式,再参与运算;若Dn中数据是常数K、H,可直接参与运算,无需转化,因其在参与运算过程中会自动转化;浮点数运算中指令前

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

5、别明确,易于监 控;如:D30 D31;其中D30为尾数值、D31为指数段;注:在FX2N仿真软件上易监控仿真结果;十进制小数概念:十进制小数在PLC (FX2N中占用32位,在PLC 内部存储时采用2个连续编号的D仆Dn+1,编号小的保存尾数段(Dn),编号大的保存指数段(Dn+1);如:D30 D31 ;其中D30为尾数值、D31为指数段;Dn十进制小数在PLC(FX2N中存入 形式Dn+1bit 31 bit 30 >it 29 bit 28 bit 27|it 26 bit 25 bit 24bit 23 bit 22 bit 21 bit 20 bit 19 bit 18 bi

6、t 17|bit 16bit 15 bit 14kit 13 bit 12bit 11kit 10 bit 9 bit 8 Ibit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 I bit 0符号位(1位)指数段(16位)符号位(1位)尾数段(16位)十进制小数的运算:十进制小数无法在PLC(FX2N中直接进行运算 处理,需用EBIN指令转化为二进制小数再进行运算;十进制小数的数值监控作用:十进制小数易于数值监控,而二进制小数难以直接监控,直接监控数值往往为乱码,故PLC中二进制小数若需监控,可用EBCD旨令将其转化为十进制小数;注:十进制小 数在FX2N

7、69;真软件上监控反而出现乱码; 二十进制数相互转化中的误差:在二进制小数转化为十进制小数、或十进制小数转化为二进制小 数过程中,易产生一定的误差,因有效数字四舍五入的缘故; 因某些自动控制采用浮点数可提高控制精度与品质, 故需浮点数 运算及处理;因某些自动控制部件只能采用整数,故需将浮点数转化为整数, 其转化过程有四舍五入,将产生一定的误差。2、得到一个二进制小数的方法概要(与得到一个十进制小数的方法互为逆运 算):方法一:如产生一个二进制小数254.6 (往D20中存入一个二进制小数 254.6 );先往D0中送入一个整数(2546); MOV K2546 D0再用二进制整数转化为二进制小

8、数指令 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软件监控仿真结果正常;组态王监控为乱码;将

9、一个需转化的整数送入 D0 (2546); MOV K2546 D0;再将一个负数(为小数的位数)送入 D1; MOV -1 D1;注:上述二个Dn标号必须连续、且存放整数的 Dn标号应在前 (D。、存放负数的Dn标号应在后(D1);最后用十进制小数转化为二进制小数指令 EBIN转化得到所需的 二进制小数(254.6); DEBIND0 D10;注:小数处理指令与整数 处理指令类似,只是前面加E,表示属小数处理指令;另外小数 数值占二个Dn,为32位,故运算指令前需加D;注:二进制小数因是32位数值,整个数值254.6占了(D21) D20; 注:方法二PLC软件监控仿真为乱码;组态王监控为乱

10、码; 例程:I 出.0.U0V咫 5蚯DO2546MOVK-lDI-IDEBINDO-110-62/ig.j ll32JrO3?Q1-H-'3、得到一个十进制小数的方法概要(与得到一个二进制小数的方法互为逆运 算):方法一:将一个二进制小数通过 EBCD旨令(二进制小数转化为十进制 小数指令)转化得到;注:直接结果显示PLC监控仿真为乱码,可在组 态王等上用尾数指数形式显示结果DnDn+1;方法二:先往Dn中送入一个整数;再往Dn+1中送入一个负数(为小 数的位数);注:上述二个Dn标号必须连续、且存入整数的 Dn标号 在前(Dn)、存入负数的Dn标号在后(Dn+1)。注:直接结果显示

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

12、21) D20 中;将常数12存入D0t将D0t整数12转变为二进制带小数12.00并存入D11、D1gD20将D11、D10二进制小数 12.00 除 10结果1.2存入D21、D203、程序1段PLC仿真:FLTDODIOL2 12.000DEDIV DIOKLOEEO12.0001. 2004、程序2段及分析:为了实现(D21) D20中数值的组态王监控,先用DEBCD指令将其 转化为十进制小数、存入(D31) D30中;HHDEBCDD20 D30M8002将D21、D2W的二进制小数1.2转变为十进制小数1.2并存入D31、D30t5、程序2段PLC仿真:,旺1死十进制小数(D31)

13、 D30中尾数段(D30)值作正负值判别,若是负值则 求补码,再显示;若是正值则不需处理,直接显示; (尾数段作正负判别是 为了:若可能出现负数,需求补码处理成原码绝对值-为负数的十进制小数 时才可能出现,此处不是);6、程序3段及分析、PLC仿真:十进制小数(D31) D30中指数段(D31)值作正负值判别,若是负值 则求补码,再显示;若是正值则不需处理,直接显示;(指数段作正负判别是为了:若可能出现负数,需求补码处理成原码绝对值-十进制小数的指数46piOIJ DOC ¥011K151200 OFFt <Y1:导通为犬量,员近求补国miNEG 口 3012CQ8、组态王监控

14、结果及说明:在组态王监才5中,原数 D0=12,将其转化为1.200存入(D31)D30,并用D30-D31 方式显示(1199X10-3):FX2N浮点数研究监控12D0常数iz16704001628139321D11D10D21D20二进制小数12皿32位|一进制小数1.2|32位11991199 X1D-3D31上进制小数L2指物D30I进制小数1罔尾数|D31/D30十进制小数1.29、总的PLC程序及解说、仿真结果:o岭0嵬I I*将常戢式存入DOThKI >1 113*将国笛数转交为2逋刷小数存,51。'LTDOD1012. 00'. 冽、裁112本将110小

15、款具体转变为一 1iTiRntvrumn nrr?fi)124I I12.000L.20C*将£进制小数转变为l口法的小技pEECD D2&DGriww脚典E1 11GS7C3Q:3919 7禽。3*梅D31楮载田卜井汗正负信判判I下口可YOicK151 Y0108 0N* H1C导通为负值负值玳料吗TMR 门riRi9*M.5002*将凶口尾致段)进行正负值判刑TBCflD30YOUKI 5)n LY011Ml1300 OFF小仃IL导通为仇值,角值求补码1二:D30120C58眄D10、几点说明:将一个整数转变为二进制小数形式,用 FLT指令;二进制小数形式数在FX2N中

16、:占用二个连续Dn存储,占32位;b0位一b22位(共23位)是尾数位;b23位一b30位(共8位)是指数位;b31位是符号位(1为负数,0为正数);二进制小数不是按2的补码处理;因上述规则,故二进制小数难以直接监控,直接监控会出现乱码;一般可将其转变为十进制小数,再进行监控;其整数后面(小数点后面)为三位小数形式;例如:一个整数12转变为二进制小数形式数,形式为 12.000;二进制小数0:正数二进制小数(共32位,占2个Dn)二进制小数尾数段(23位)二进制小数指数段(8位)b31b29 b28b19 b181:负数b14 b13 b12 b11b26 b25b24 b23符号位(1位)将

17、二进制小数转变为十进制小数形式,用 EBCD指令;十进制小数形式在FX2N中:占用二个连续Dn存储,占32位;Dn编号小的是尾数段,Dn编号大的是指数段;Dn的最高位都是符号位;十进制小数是按2的补码处理;例如:一个二进制小数转变为十进制小数存入 D31、D30中,其表示形式为:D30 D31 ,即1199 10 3;即D30中存的是尾数段1199; D31中存的是指数段 3因上述规则,故十进制小数可以用于直接监控;将二进制小数转变为十进制小数时,十进制小数的尾数段为4位,故转变可能会出现一定的误差。十进制小数尾数段十进制小数指数段 符号位(1位)十进制小数( 共3 2位,占2个D n)0:正

18、数十进制小数指数段(16位)b15 b14 b13b12 b11b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0D30十进制小数尾数段(16位)符号位(1位)实验二 将2个二进制小数(或其中一个常数 K、H)进行四则运算1、具体实例:产生2个二进制小数,(D21) D20=2.4, (D26) D25=1.2,再将这2个二进制小数进行加减乘除等四则运算处理;2、FX2N程序及解说、仿真*林始碳值;整独)DI12Fi.rD124Din必000,整敷转化为二进制小蚊M800Z11FLTDL6 000自后一位二谢刎曼M8OO2.TEl'IVJJEF'IVI I,D1

19、024.000KUD202.400D15 EKIL2.00CD?h1.200:的四则运箱SOOEFEMIDE SUI,TErtULTEI IVD2JP2J2.4QC J. 2D0DM3. tQO?,,或口口5I, 2Q0口站取口2.4QC I. 2D0;,BRHMb2.0003、程序说明首先用MOV指令将整数24放入D1中、整数12放入D2中;用FLT指令将D1中的整数24转变为二进制小数形式24.00存入D10 中、将D2中的整数12转变为二进制小数形式12.00存入D15中; 用DEDIV指令将D10中的二进制小数形式数24.00成为具有一位小 数的二进制小数2.400、用DEDIV指令将

20、D15中的二进制小数形式 数12.00成为具有一位小数的二进制小数 1.200;二进制小数 2.400与12.00进行加减乘除四则运算: 2.4+1.2=(D31)D30; 2.4-1.2=(D36)D35 ; 2.4 X 1.2=(D41)D40 ; 2.4 + 1.2=(D46)D45;4、几点说明将FX2N中Dn的多个二进制小数进行四则运算,它们类型需都为浮点形式;若某个类型不是浮点形式,需用 FLT转化,再参与运算;但常数K、H无需转化,因其在参与运算过程中会自动转化为浮点形 式;二进制小数在进行四则运算过程中,都需应用FX2N的浮点四则运算 指令,而不能应用普通四则运算指令;运算结果

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

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

23、显示(BCD或SEGD等);注意数值前面需加负号与否; 十进制小数用组态王显示监控:按十进制小数的总体表示形式:Dn 81;设置口门变量(D100)、Dn+1变量(D101);并在画面按上述形式制作 D100-D101;显示结 果为11993;3、PLC程序、解说及仿真h立生一个小勒后一佃的二进制小数L2HS0O201 I卜耨二这匍小鞍辆比为十进韦刎傲18002K十进制沙数尾数段正费判别与来朴碍(盘强王可鬼示)伽。27 I-YOIDTFk +进阖小鬓指粘段三长判别与求补碣(且本王可显示14EHEDO2TI-YOU卜卜进制4船尾数段51物酶显示处理H8OD2k十进制力知指数段LH熨叫屈尽处理30

24、HS0O2TI-7M0V£12DO4IDO1 5P5xiaDJU-DFRCD310T11IJQMOO7010E15pEGD100DIDITDllM5NEGDIDI-ECP71。D20_CIL加K1T0D0二BCDD1O1D30-XIL?3OPEP IV4、组态王监控图(略)5、LED数码显示器显示硬件I/O图显示二进制小数的尾数显示二进制小数的指数实验四二进制浮点数运算实例1、具体任务:要求编制一解方程程序:y 115.2x 375.23 .其中x: X0X17 (K4X0),187.6由四位数字开关输入,范围为 09999。2、PLC程序、解说及仿真*产生小数立5*?3至5力比H8

25、DD2口一*产生小数187.6至(016)口1511800232 I*产生小小11E.2至0)26)D2bMEO 0264 I* X0-T17蛉入处理JI8D02上*寻点默的四则运算,最后给昊至D51)D5D M002IIpmOV K37523 DO)37523pFLT DOD237BZ337E23.0a0DEDI¥ D2K1C0D63T523. 000375.230pi5V K1E76DIO)1876pFLT D10DL2J1876 H76.000pETI¥ D12K1QD151876.000387.500piOV KI 152D2D1152pFLT D20D221152

26、 1162 川口口DEDI¥ D22KIDD2511 般.叩 QL15,ZD0BINK4XOOO D30)0FLTD30D3510 O.QOOLEMIL D25D35D4D116.200C.00)0. JOOpEAD: D40DSD450. 000 375. 23 375. 230pEDIV D45D15D50375. 230 137. SDD 2.000rEJID'l3、程序编制思路:程序编程:采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进 制小数 115.2= (D26) D25;采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进 制小数 375.

27、23= (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

28、) D50中。方程编程运算过程:(D51)D50(D26)D25 (D36)D35 (D7)D6(D16)D15(D41)D40 (D7)D6(D46)D45(D16)D15(D16)D15方程编程中各变量Dn含义:(D26) D25=115.2;(D36) D35=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) D45+ (D16) D15;即方程最后结果;实验五 任意位浮点数(小数)的输入、具体任

29、务及编程解读:1、设置加1/力口 5键(INC指令/ADD指令),减1/减5键(DEC指令/SUB 指令),复位键,小数点1位键,小数点2位键,数据存入D0中;2、减1/减5操作时,初始最大值设置为50,最小减至0;(触点比较指令)3、加1/加5操作时,初始最小值设置为0,最大加至50;(触点比较指令)4、减1/减5、加1/加5操作中若D0数据需归零,可按复位键(RST指令);5、输入一个小数点后一位的小数;(FLT指令、DEDIV指令)D206、输入一个小数点后二位的小数;(FLT指令、DEDIV指令)D207、为了二进制小数的显示,用 DEBCD指令将二进制小数转变为十进制小数;再用BON

30、指令、NEG指令将数据变换为尾数、指数显示形式D30-D31 、编程思路1、先用整数数据输入指令(如加 1/加n、减1/减n指令,TKY指令、HKY 指令、DSW指令等等)输入整数(即需输入的整数连小数,先不考虑小 数点)至Dn;2、再在外部Xn选择小数位(n位),编程处理存入Dm中,实现了小数的 输入。、PLC程序及解说、仿真:IDXR57 DO艮位键IQQlKCSCI I>DO KO 50xnrrlbnoso1003T IW.LIHCP DOnr产 DO Kt 00SO50jGX011I90COXM15,傍点后FX0J6T卜小蜥二卜 凝制小蛀转1U送制小数 naao90 gDFDO

31、K55nFifKJb50DO110BO. DOODEDW DIOK1CE2Q5. r>ao唾制小野圮妙段正负判别及处里MEOOC1QUti r n* J唠制附旧独段正货判捌或处理MSOOCynrn124|UEDI1? :il J K1EO阻DDDDEBiTD L?CBJO TQM0 OFF(JUGtunD311001D OFFI 205. OOC伽-101608D3OKitD31附 1: 20、实验要求显示一个含有小数点的实数,如 12.6、23.8、5.6等。、实验实现分析对于共阴LED数码显示器,将整数中最后一位的 h (小数点)引脚通过 一个限流电阻接+Vcc即可;其他硬件电路都类

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

温馨提示

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

最新文档

评论

0/150

提交评论