液位监控系统通讯说明

罐存报告

 

功能代码:201

功能类型:罐内存量报告

=0x02

命令格式:

<SOH>i201TT

命令是ASCII.

<SOH>指的是 0x01

TT指的是油罐编号(十进制),比如可以用01指定返回01号罐罐存, TT00 ,意思就是取所有对象(所有罐),

 

即可以向液位仪发送如下命令代码,要求液位返回所有罐的罐存数据.

unsigned char ucCommand[7] = {0x1,'i','2','0','1','0','0'};

ucCommand 从串口发送出去后,等待液位返回数据

 

返回格式如下

<SOH>i201TTYYMMDDHHmmTTpssssNNFFFFFFFF……TTpssssNNFFFFFFFF&&CCCC<ETX>

 

 

1: YYMMDDHHmm –当前的日期时间

2:TT : 油罐号. 液位仪根据指定的TT,返回对应的数据.如果是01,则就回来01罐的数据.如果是00,返回所有的

 

3: p  :  产品代码,一个ASCII字符,可以是 0x200x7E,这个字符可以是自己定的,比如可以设定a代表93#汽油,然后可以通过603协议设置液位里某个罐的产品代码为a.即是93#汽油油品.如果对方的后台要用这个字段,需要先商定一个协议,哪个字符代表什么油品

 

4: ssss  :油罐状态位

        Bit 1 – LSB(Least Significant Bit  最低有效位,字节的最低位) 油罐是否在卸油过程中

Bit 2 – 油罐是否在测漏过程中

        Bit 3 – 液位高度报警失效 (仅在使用MAG探针时使用此标志位)

Bit4-16 – 未定义

 

5:NN : (16进制) 指出后面的8字节浮点数据字段的个数,此处应为0x07

6:FFFFFFFF: ASCII 16进制 浮点数 (注意,此处数据为以ASCII表示的16进制,即各字段都是8个字符的ASCII,需要转换为4字节的16进制浮点数数据,并进行大小尾格式转换,数据类型可定义为float)

           1:油品体积

           2 TC VOLUME (即temperature compensated volume)计算温度补偿后的油品体积

           3:罐内空容,即可添油量.

           4:油高

            5:水高

            6:温度

            8:水体积

7:&&: 数据结束标志

8:CCCC :  数据校验和

   此检验和检验数据完整性,校验内容包括前面所有的数据及控制字符.

9:<ETX>  ASCII 0x03

 

 

 

//计算数组的和

unsigned int JisuanBUFH(unsigned char *P,unsigned short  n)

{

unsigned short  k;

unsigned int D,F;

 

F=0;

D=0;

 

for(k=0;k<n;k++)

    {

     D+=*P;

     P++;

    }

 

 F=65536-(D%65536);

 return F;

}

 

 

 

 

//HEX转换为ASCII

unsigned char HEX_to_ASCII(unsigned char d)

{

 

if(d>=10)

 return ((d-10)+0x41);

else

 return d+0x30;  

 

}

posted @   数采物联网PLC黑匣子  阅读(482)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示