色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子百科>通信技術>

modbus 如何讀取浮點數

2018年02月08日 10:03 電子發燒友整理 作者: 用戶評論(0

本文為大家介紹modbus讀取浮點數的兩個程序設計。

Modbus 還原浮點數函數

//// 將從串口接收到的浮點數四個字節,還原成浮點數 ////

//// p[0] 從串口接收到的浮點數第1個字節……p[3] 從串口接收到的浮點數第4個字節 ////

//// 返回 浮點數

float get_float_from_4u8(u8 *p)

{ float a;

u8 *r;

r=(u8*)&a;

*r=p[1]; r++;

*r=p[0]; r++;

*r=p[3]; r++;

*r=p[2];

return(a);

}

/* 應用范例

pp[0]=0x00; pp[1]=0x00;

pp[2]=0x43; pp[3]=0x5c;

mf1=get_float_from_4u8(pp); // mf1 = 220.0

pp[0]=0xb2; pp[1]=0x2d; pp[2]=0x3f; pp[3]=0x5d;

mf2=get_float_from_4u8(pp); // mf2 = 0.8666

pp[0]=0x00; pp[1]=0x00; pp[2]=0x42; pp[3]=0xc8;

mf3=get_float_from_4u8(pp); // mf3 = 100.0;

pp[0]=0x00; pp[1]=0x00; pp[2]=0x42; pp[3]=0x48;

mf4=get_float_from_4u8(pp); // mf4 = 50.0;

*/

關于MODBUS DOUBLE型數據讀取問題(64位浮點數)

FUNCTION “LREAL2REAL_XXD” : REAL

TITLE =

VERSION : 0.1

VAR_INPUT

IN : ARRAY [1 。。 2 ] OF DWORD ;

END_VAR

VAR_TEMP

E : DWORD ;

MT : REAL ;

S : DWORD ;

TEMP0 : DWORD ;

MM : DWORD ;

TEMP1 : DWORD ;

M1 : REAL ;

TEMP_1 : REAL ;

M2 : REAL ;

REAL1 : REAL ;

REAL2 : REAL ;

REAL3 : REAL ;

M_REAL : REAL ;

END_VAR

BEGIN

NETWORK

TITLE =

L 0;

T #M1;

NETWORK

TITLE =

//************判斷第63位S,為1:負數,為0:正數****************

L #IN[1]; // 取MODBUS傳過來的第1,2個字

SRD 31; //取符號位

L 1;

==D ;

JCN _001;

L DW#16#80000000; //為1就設定63位為1

T #S;

JU _002;

_001: L 0; //為0 就設定為0

T #S;

_002: NOP 0;

//*************************************************************************

NETWORK

TITLE =

//*********************************取階碼E,共11位*****************************

L #IN[1];

SRD 20; //去掉尾數位,共20位

L DW#16#7FF; //去掉符號位

AD ;

L DW#16#FFFFFC01; //減去1023(此數為-1023)

+D ;

T #E;

//*******************************************計算第1,2個字的尾數******************************

L #IN[1];

L DW#16#FFFFF; //取第1,2個字的共20位的尾數

AD ;

T #MM;

//********************** 20位,逐個移位進行計算**************************

L 20;

LOOP: T #TEMP0;

L 1;

L #MM;

SRD ;

T #MM;

JZ _003;

L 2.000000e+000; //1/2^#MM

LN ;

L #TEMP0;

DTR ;

*R ;

EXP ;

L 1.000000e+000;

TAK ;

/R ;

T #M_REAL;

L #M1; //逐位移出計算并累加

+R ;

T #M1;

_003: NOP 0;

L #TEMP0;

LOOP LOOP;

//************************************************第3,4個字的尾數逐位移出計算,共32位**********************

L #IN[2];

T #MM;

L 32;

LOP: T #TEMP0;

L 20;

+D ;

T #TEMP1;

L 1;

L #MM;

SRD ;

T #MM;

JZ _004;

L 2.000000e+000;

LN ;

L #TEMP1;

DTR ;

*R ;

EXP ;

L 1.000000e+000;

TAK ;

/R ;

T #M_REAL;

L #M2;

+R ;

T #M2;

_004: NOP 0;

L #TEMP0;

LOOP LOP;

//***************************************

L #M1;

L #M2;

+R ;

T #MT;

NETWORK

TITLE =

//********************F=(-1)^S*2^(E[10進制]-127)*(1+M[尾數])*************************

L 2.000000e+000;

LN ;

L #E;

DTR ;

*R ;

EXP ;

T #REAL2;

L 1.000000e+000;

L #MT;

+R ;

T #REAL3;

L #REAL2;

L #REAL3;

*R ;

L #S;

OD ;

T #RET_VAL;

END_FUNCTION

非常好我支持^.^

(21) 100%

不好我反對

(0) 0%

( 發表人:李建兵 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 国内精品乱码卡一卡2卡三卡 | 国产色精品VR一区二区 | 69丰满少妇AV无码区 | 久久久97丨国产人妻熟女 | 国产精品内射久久久久欢欢 | 国产真实强被迫伦姧女在线观看 | 日本韩国欧美一区 | 91久久偷偷看嫩草影院无费 | 国产AV果冻传奇麻豆 | 国产精品永久免费 | 精品久久久无码21P发布 | 欧美国产在线一区 | 一本道久在线综合色姐 | 小草影院免费 | 亚洲一区二区三不卡高清 | 暖暖的高清视频在线观看免费中文 | 国产精品手机在线视频 | 精品精品国产yyy5857香蕉 | 亚洲精品AV无码永久无码 | 我的美女房东未删减版免费观看 | 野花日本高清在线观看免费吗 | 韩国无遮羞禁动漫在线观看96 | 亚洲欧洲日产国产 最新 | 国产乱人伦AV麻豆网 | 国产精品麻豆a在线播放 | 久久精品99热超碰 | 善良的小峓子2在钱中文版女主角 | 亚洲精品第五页中文字幕 | 粉色视频午夜网站入口 | 校花的奶好大好浪 | 欧美内射AAAAAAXXXXX | 久久久精品久久久久特色影视 | 黑人 尺寸 强行害怕 痛哭 | 成人五级毛片免费播放 | 男男校园园bl文全肉高h寝室 | 国产扒开美女双腿屁股流白浆 | 毛片免费观看的视频 | 久久99精品AV99果冻 | 蜜桃成熟时2电影免费观看d | 久久久久久人精品免费费看 | FERRCHINA内入内射 |