PLC(FX2N)小数点(浮点)运算编程研究讲义2012
更新时间:2024-01-30 15:47:01 阅读量: 教育文库 文档下载
gPLC(FX2N)浮点(小数点)运算编程研究讲义2012
目录
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的补码处理;
二进制小数在PLC(FX2N)中存入形式Dn+1Dn? ? ? ? ? ? ? ?
bit31bit30bit29bit28bit27bit26bit25bit24bit23bit22bit21bit20bit19bit18bit17bit16符号位(1位)指数段(8位)bit15bit14bit13bit12bit11bit10bit9bit8bit7bit6bit5bit4bit3bit2bit1bit0尾数段(23位)数值位(31位)
? 浮点数(小数)运算规则概念
? 进行浮点数(小数)运算的各Dn只能是二进制小数、常数K、H;
不能是整数或十进制小数;
? 若Dn中数据是整数,需用FLT指令转化为二进制小数形式,再
参与运算;
? 若Dn中数据是十进制小数,需用EBIN指令转化为二进制小数形
式,再参与运算;
? 若Dn中数据是常数K、H,可直接参与运算,无需转化,因其在
参与运算过程中会自动转化;
? 浮点数运算中指令前一般应加D,因参与运算的二进制小数都占
有二个连续的Dn、为32位数据;
1
? 浮点数运算的种类在PLC(FX2N)中有加9EADD)、减(ESUB)、
乘(EMUL)、除(EDIV)、正弦(SIN)、余弦(COS)、正切(TAN)、数类转化(FLT、INT、EBIN、EBCD)、比较(ECMP、CZCP)等等;
? 二进制小数的PLC处理中的监控:因二进制小数数值与指数占用了
二个连续的Dn,且难以区别,故难以在组态王等上监控(如LED数码显示器、组态王等)、监控的数据只是乱码,故若要监控需将这些二进制小数用EBCD指令转化为十进制小数,十进制小数占用连续二个Dn,编号大的为指数段,编号小的为尾数值、区别明确,易于监
控;如:D30?D31;其中D30为尾数值、D31为指数段;注:在FX2N仿真软件上易监控仿真结果;
? 十进制小数概念:十进制小数在PLC(FX2N)中占用32位,在PLC
内部存储时采用2个连续编号的Dn、Dn+1,编号小的保存尾数段
(Dn),编号大的保存指数段(Dn+1);如:D30?D31;其中D30为尾数值、D31为指数段;
十进制小数在PLC(FX2N)中存入形式Dn+1Dnbit31bit30bit29bit28bit27bit26bit25bit24bit23bit22bit21bit20bit19bit18bit17bit16bit15bit14bit13bit12bit11bit10bit9bit8bit7bit6bit5bit4bit3bit2bit1bit0符号位符号位(1位)指数段(16位)(1位)尾数段(16位)
? 十进制小数的运算:十进制小数无法在PLC(FX2N)中直接进行运算处理,需用EBIN指令转化为二进制小数再进行运算;
? 十进制小数的数值监控作用:十进制小数易于数值监控,而二进制
小数难以直接监控,直接监控数值往往为乱码,故PLC中二进制小数若需监控,可用EBCD指令将其转化为十进制小数;注:十进制小数在FX2N仿真软件上监控反而出现乱码; ? 二~十进制数相互转化中的误差:
? 在二进制小数转化为十进制小数、或十进制小数转化为二进制小
数过程中,易产生一定的误差,因有效数字四舍五入的缘故; ? 因某些自动控制采用浮点数可提高控制精度与品质,故需浮点数
运算及处理;
? 因某些自动控制部件只能采用整数,故需将浮点数转化为整数,
其转化过程有四舍五入,将产生一定的误差。
2、得到一个二进制小数的方法概要(与得到一个十进制小数的方法互为逆运算):
? 方法一:如产生一个二进制小数254.6(往D20中存入一个二进制小
数254.6);
? 先往D0中送入一个整数(2546);MOV K2546 D0;
? 再用二进制整数转化为二进制小数指令FLT转化得到二进制小数
形式,存入D10(2546.00);FLT D0 D10;注:FLT指令仅是将整数的表示形式转化为小数的表现形式(2546---2546.00),但
2
?
? ? ?
此数值实质上仍是整数;
最后将二进制小数形式除以常数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;
3
? 方法二:先往Dn中送入一个整数;再往Dn+1中送入一个负数(为小
数的位数);注:上述二个Dn标号必须连续、且存入整数的Dn标号在前(Dn)、存入负数的Dn标号在后(Dn+1)。注:直接结果显示PLC监控仿真为乱码,可在组态王等上用尾数\\指数形式显示结果Dn-Dn+1;
4
实验一 将一个整数转变为一个二进制小数,并存入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)存入(D21)D20中;
M8002[MOV K12 D0][FLT D0 D10]将常数12存入D0中将D0中整数12转变为二进制带小数12.00并存入D11、D10中[DEDIV D10 K10 D20]将D11、D10中二进制小数12.00除10结果1.2存入D21、D20中
3、程序1段PLC仿真:
4、程序2段及分析:
为了实现(D21)D20中数值的组态王监控,先用DEBCD指令将其转化为十进制小数、存入(D31)D30中;
M8002[DEBCD D20 D30]将D21、D20中的二进制小数1.2转变为十进制小数1.2并存入D31、D30中
5、程序2段PLC仿真:
5
6、程序3段及分析、PLC仿真:
十进制小数(D31)D30中指数段(D31)值作正负值判别,若是负值则求补码,再显示;若是正值则不需处理,直接显示;(指数段作正负判别是为了:若可能出现负数,需求补码处理成原码绝对值----十进制小数的指数一般都是负数,如此处-3);
7、程序4段及分析、PLC仿真:
十进制小数(D31)D30中尾数段(D30)值作正负值判别,若是负值则求补码,再显示;若是正值则不需处理,直接显示;(尾数段作正负判别是为了:若可能出现负数,需求补码处理成原码绝对值----为负数的十进制小数时才可能出现,此处不是);
8、组态王监控结果及说明:
在组态王监控中,原数D0=12,将其转化为1.200存入(D31)D30,并用D30-D31方式显示(1199×10-3):
6
9、 总的PLC程序及解说、仿真结果:
10、几点说明:
? 将一个整数转变为二进制小数形式,用FLT指令; ? 二进制小数形式数在FX2N中:
? 占用二个连续Dn存储,占32位; ? b0位—b22位(共23位)是尾数位; ? b23位—b30位(共8位)是指数位; ? b31位是符号位(1为负数,0为正数); ? 二进制小数不是按2的补码处理;
? 因上述规则,故二进制小数难以直接监控,直接监控会出现乱码;
一般可将其转变为十进制小数,再进行监控; ? 其整数后面(小数点后面)为三位小数形式;
? 例如:一个整数12转变为二进制小数形式数,形式为12.000;
二进制小数(共32位,占2个Dn)二进制小数符号位(1位)二进制小数指数段(8位)二进制小数尾数段(23位)b311:负数0:正数b30b29b28b27b26b25b24b23b22b21b20b19b18b17b16b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0D11D10 7
? 将二进制小数转变为十进制小数形式,用EBCD指令; ? 十进制小数形式在FX2N中:
? 占用二个连续Dn存储,占32位;
? Dn编号小的是尾数段,Dn编号大的是指数段; ? Dn的最高位都是符号位;
? 十进制小数是按2的补码处理;
? 例如:一个二进制小数转变为十进制小数存入D31、D30中,其
表示形式为:D30?D31,即1199?10?3;即D30中存的是尾数段
1199;D31中存的是指数段-3。
? 因上述规则,故十进制小数可以用于直接监控;
? 将二进制小数转变为十进制小数时,十进制小数的尾数段为4位,
故转变可能会出现一定的误差。
十进制小数(共32位,占2个Dn)十进制小数指数段符号位(1位)十进制小数尾数段符号位(1位)b31b30b29b28b27b26b25b24b23b22b21b20b19b18b17b161:负数0:正数D31十进制小数指数段(16位)b15b14b13b12b11b10b91:负数0:正数b8b7b6b5b4b3b2b1b0D30十进制小数尾数段(16位)
8
实验二 将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成为具有一位小数的二进制小数1.200;
? 二进制小数2.400与12.00进行加减乘除四则运算:
2.4+1.2=(D31)D30;2.4-1.2=(D36)D35;2.4×1.2=(D41)D40;2.4÷1.2=(D46)D45;
4、几点说明
? 将FX2N中Dn的多个二进制小数进行四则运算,它们类型需都为浮
点形式;
? 若某个类型不是浮点形式,需用FLT转化,再参与运算;
9
? 但常数K、H无需转化,因其在参与运算过程中会自动转化为浮点形
式;
? 二进制小数在进行四则运算过程中,都需应用FX2N的浮点四则运算
指令,而不能应用普通四则运算指令;
? 运算结果若需监控的(LED数码显示器、组态王等),可将其转换为
十进制小数再监控。
10
实验三 一个二进制小数,如何在LED数码显示器,或者组态王上显示监控
1、具体实例:产生一个二进制小数1.2,并分别组态王上监控显示、在LED数码显示器上显示。 2、编程思路解读:
? 首先用FLT指令及DEDIV指令产生1个1位二进制小数1.2;存入(D11)
D10中;
? 用DEBCD指令将该二进制小数1.2转化为十进制小数1.2,并存入
(D101)D100中;
? 将十进制小数的指数段(高位Dn,即D101)进行正负符号判别:
? 正数则直接显示十进制小数的指数值D101; ? 负数则先求补码,再显示十进制小数的指数值;(显示数值前面加负
号,大多如此);D101=-3;
? 将十进制小数的尾数段(低位Dn,即D100)进行正负符号判别:
? 正数则直接显示十进制小数的尾数值D100=1199; ? 负数则先求补码,再显示十进制小数的尾数值D100;(显示数值前
面加负号); ?
?Dn?1Dn十进制小数的总体表示形式为:,具体的即:D100-D101;此
实验结果为1199-3;
? 十进制小数用LED数码显示器显示(结合硬件I/O图查看):
? 先对Dn(十进制小数尾数,经正负判别与求补码处理D100)进行
常规处理显示(BCD或SEGD等);注意数值前面需加负号与否; ? 再对Dn+1(十进制小数指数,经正负判别与求补码处理D101)进
行常规处理显示(BCD或SEGD等);注意数值前面需加负号与否;
? 十进制小数用组态王显示监控:
?
?Dn?1Dn按十进制小数的总体表示形式:;设置Dn变量(D100)、
Dn+1变量(D101);并在画面按上述形式制作D100-D101;显示结
果为1199-3;
3、PLC程序、解说及仿真
11
4、组态王监控图(略)
5、LED数码显示器显示硬件I/O图
显示二进制小数的尾数Y0Y1Y2BCD译码PLCY38FX2NY4Y5Y6BCD译码Y78显示二进制小数的指数
12
实验四 二进制浮点数运算实例
1、具体任务:
115.2x?375.23;其中X:X0—X17(K4X0),
187.6由四位数字开关输入,范围为0—9999。
2、PLC程序、解说及仿真
要求编制一解方程程序:y?
3、程序编制思路:
? 程序编程:
13
? 采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进
制小数115.2=(D26)D25;
? 采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进
制小数375.23=(D7)D6;
? 采用DMOV指令、DFLT指令及DEDIV指令先产生1个二进
制小数187.6=(D16)D15;
? X0~X17输入数据处理:先用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中。
? 方程编程运算过程:
(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=K4X0(X0~X17) ? (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;即方程最后结果;
14
实验五 任意位浮点数(小数)的输入
一、具体任务及编程解读:
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指令)D20 6、输入一个小数点后二位的小数;(FLT指令、DEDIV指令)D20
7、为了二进制小数的显示,用DEBCD指令将二进制小数转变为十进制小
数;再用BON指令、NEG指令将数据变换为尾数、指数显示形式D30-D31;
二、编程思路
1、先用整数数据输入指令(如加1/加n、减1/减n指令,TKY指令、HKY
指令、DSW指令等等)输入整数(即需输入的整数连小数,先不考虑小数点)至Dn;
2、再在外部Xn选择小数位(n位),编程处理存入Dm中,实现了小数的
输入。
三、PLC程序及解说、仿真:
15
16
附1:20
一、实验要求
显示一个含有小数点的实数,如12.6、23.8、5.6等。 二、实验实现分析
? 对于共阴LED数码显示器,将整数中最后一位的h(小数点)引脚通过
一个限流电阻接+Vcc即可;其他硬件电路都类同;并且无需在软件中作任何处理。
? 对于共阳LED数码显示器,将整数中最后一位的h(小数点)引脚通过
一个限流电阻接地即可;其他硬件电路都类同;并且无需在软件中作任何处理。
三、实验电路图
+VccY0h8BCD译码CD4511整数十位整数个位小数位Y1Y2Y3Y4PLCFX2NY5Y688共阴+VccCOM+Vcc
附2:PLC(FX2N)中输入小数小结、要点:
? FX2N中可外部输入或内部产生1个二进制小数或十进制小数; ? PLC外部输入小数方案:
? 外部(Xn)按常规方法输入整数至PLC的Dn中,
? 再在PLC中用FLT指令的将整数转化为二进制小数形式,再用
DEDIV指令来确定二进制小数的的位数; ? 还有第二种方法,可见前面论述,略; ? 若需转化为十进制小数,则可用DEBCD指令将二进制小数转化为十
进制小数;
? 注:因二进制小数在PLC内部可直接进行运算,而十进制小数则直
接不行,故需要小数往往首选二进制小数;
? PLC内部产生小数方案:
? 内部先用MOV指令在Dn中存入一个整数,
? 再用FLT指令的将整数转化为二进制小数形式,再用DEDIV指令来
确定二进制小数的的位数;
? 还有第二种方法,可见前述,略; ? 若需转化为十进制小数,则可用DEBCD指令将二进制小数转化为十
17
?
?
?
?
进制小数;
? 注:因二进制小数在PLC内部可直接进行运算,而十进制小数则直
接不行,故需要小数往往首选二进制小数; PLC内部小数的运算:
? PLC内部二进制小数可直接运算:如加减乘除比较等等;
? 而十进制小数则不能直接运算,需用DEBIN指令将其转化为二进制
小数后进行;
? 数据为K、K常数则可直接参与运算,无需转化;
? 二进制小数运算时,大多为32位,指令前应加D;并且运算结果存
储的的存储器为连续编号的2个(Dn+1)Dn;高位在大编号、低位在小编号;程序语句上只需写小编号Dn;
? 遇到在PLC内部需要运算处理的工程小数,先需确定是属于何种性
质(二进制小数、十进制小数),再作运算或变换后运算;
? 遇到在 PLC内部需要运算的1个工程小数、1个为整数,工程小数
得判断是否为二进制小数,否则即为十进制小数,用DEBCD指令转化之、整数则需将整数用FLT指令转化为二进制小数,二者才可进行运算处理。 FLT指令提要:
? FLT指令仅是将二进制整数转化为二进制小数表现形式,
? 使用时需据二进制整数大小(占一个D16位、还是占二个D32位)
前面加D还是不加;
? 经FLT指令转化后的二进制小数一般占连续2个Dn;
? 要将经FLT指令转化而来的二进制小数形式的(Dn+1)Dn,得到
是几位小数的值,可用DEDIV指令,除10得到1位小数,除100得到2位小数,以此类推;
二进制小数的要点:二进制小数可在FX2N中直接进行四则运算,可直接在PLC软件中仿真显示结果;但在组态王等监控易出现乱码;需用DEBCD指令将其转化为十进制小数后以尾数、指数形式显示监控结果;二进制小数为32位数,占用连续标号的二个Dn,最高位为符号位(1为负数、0为正数),余下的数值位:次高及下8位为指数段,剩余的为23位为尾数段;组态王上较难显示;
十进制小数的要点:十进制小数不能在FX2N中直接进行四则运算,需用DEBIN指令转化为二进制小数后进行;但十进制小数在PLC仿真软件中仿真显示是乱码,但可以尾数、指数形式在组态王等显示监控结果;十进制小数为32位数,占用连续标号的二个Dn,大编号的Dn+1存放指数段,小编号的Dn存放尾数段,可用Dn-Dn+1显示十进制小数;
18
正在阅读:
PLC(FX2N)小数点(浮点)运算编程研究讲义201201-30
蜀矿瓦斯涌出量测定报告10-24
小学生一年级冬天的雪作文200字06-14
马同学:2016年对外经济贸易大学金融硕士复习经验交流详谈01-24
经典训练-俯卧撑05-20
2017秋最新审定西师大版语文四年级上册《秋天向我们微笑》资料秋天习俗09-22
2.声现象实验与应用05-26
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 浮点
- 小数点
- 讲义
- 运算
- 编程
- 研究
- FX2N
- 2012
- PLC
- 数学分析 刘三阳 第二讲习题解答
- 2012015年民间借贷审判白皮书-上海高级人民法院
- 09-12高考化学分类汇编-化学平衡 - 图文
- 20140806大兴团河定向安置房项目(一期)初步设计、施工图设计任务书
- IO口中断模拟I2C通信方式
- 注塑、丝印、五金型基本常识
- 二进制、八进制、十进制与十六进制转换计算
- 生物实验题答题技巧
- 2018年秋人教版高一语文必修一课时作业: 综合测试卷 Word版含答案
- 物理化学第七章模拟试卷A及答案
- 财政局预防职务犯罪讲义终稿
- 地质环境监测规程
- 教学团队成员基本情况- 中山大学化学与化学工程学院
- 第一章 总论
- 宏观习题 2
- 2(外联篇)2012商子靓声主持人大赛外联邀请书
- 江苏省信息技术学业水平测试 试题集(最新整理) - 图文
- 新人教版四年级数学下册《小数的意义和性质》易错题
- 岩浆锆石、碎屑锆石中Th、U含量及ThU比特征浅析 - 图文
- 漆安慎 杜禅英 力学习题及答案03章