- 博客(11)
- 收藏
- 关注
原创 HCF_SPEC-81 数据链路层规范:数据链路层服务
在主机设备和现场设备之间传送帧的服务。协议支持自动重传以确保数据精准的交换。基础SAP是一个LOCAL_MANAGEMENT序列。主从设备的管理SAPs提供不同的服务。最后一个序列中的内容,表示处于突发模式的帧。突发模式设备使用发送服务去发送命令。主机设备的管理SAPs设定数据链路层的主地址和重试次数。主从设备传递信息的基础。现场设备通过应用层设置数据链路层的配置。第三和第四个序列中表示的内容。
2024-06-03 16:24:29
451
原创 HCF_SPEC-81 数据链路层规范:帧格式
通信的帧格式在数据链路层文件中定义。参考:http://yunrun.com.cn/tech/2850.html。
2024-06-03 14:55:37
738
原创 HCF_SPEC-99应用层基础规范:动态变量和设备变量
HART协议的命令1和2返回主变量,环路电流和百分比。命令3返回第二、第三、第四变量。这些变量统称为动态变量。**动态变量:**包含设备变量和一个模拟通道。所有的HART设备都支持主环路电流和HART通信的这个模拟通道,其他变量通道可以支持也可以不支持。**设备变量:**一个现场设备提供过程相关信息的唯一定义的数据项。为每个设备变量分配一个代码,且对于一个设备类型,这个代码不会改变。标识命令中返回设备变量的数量。设备变量的代码编码从0开始。
2024-05-30 16:31:51
459
原创 HCF_SPEC-99应用层基础规范:数据格式
主要记录对HART7.1官方协议文档的阅读学习与代码实现。HCF_LIT-18是一个现场设备规范模板,其中在参考文档部分列举了相关文档:应该先看SPEC-12,但是这个文档没找到。对于编写程序而言,物理层也可以先不看,我们先看SPEC-99,应用层的命令规范,这个文档是所有其他HART应用层规范文档的基础。当前关注的是有线HART协议,FSK,物理层为4~20mA环路;数据链路层为二进制,字节,令牌传递方式,主从协议。物理层有专门的HART芯片实现,暂时无需关注。
2024-05-30 14:30:35
1028
原创 二叉树存储结构与遍历
typedef char TElemType;typedef struct BiTNode *Position;typedef Position BiTree;//---------二叉树的二叉链表存储表示---------------------typedef struct BiTNode{ TElemType data; Position lchild; Position rchild;}BiTNode;//-------------二叉树的创建-----------------
2021-11-16 13:46:17
659
原创 队列的存储结构及操作
//-------------------队列的顺序存储结构--------------#define MAXSIZE 100typedef int QElemType;typedef int Status;typedef struct{ QElemType *base; int front; int rear;}SqQueue;//-------------初始化-------------------Status InitQueue(SqQueue Q){ if(!Q.ba
2021-11-11 15:30:14
297
原创 栈的存储结构及操作
//------顺序栈的存储结构-----------#define MAXSIZE 100typedef int SElemType; typedef int Status;#define ERROR -1;#define OK 0;typedef struct{ SElemType *base; SElemType *top; int stacksize;}SqStack;//-------------顺序栈的初始化-----------------Status InitS
2021-11-08 17:21:10
97
原创 链表存储结构及操作
1.顺序表的存储结构//--------顺序表的存储结构-----------#define MAXSIZE 100enum { int, float, char}ElemType; typedef struct{ ElemType *elem; int length;}SqList;2.顺序表初始化//-------顺序表初始化--------------Status InitLIst(SqList &L){ L.elem = new ElemType[
2021-11-08 16:25:09
600
原创 项目bug:2.读补日冻结电量数据异常
1.原因补日冻结进行数据冻结的时候,存放的位置和长度不对,导致不能读出正确的数据。2.同时存在的问题(1)变量清零的位置不对(2)过结算日清需量的位置不对,判断条件不对
2021-09-28 14:49:45
348
原创 项目bug:1.补约定冻结时间比上电时间晚一分钟
项目bug:1.补约定冻结时间比上电时间晚一分钟原因造成这个问题的原因在于,在while循环之前的补冻结部分并没有进行补约定冻结,冻结是数据来源于freeze任务中的约定冻结。遇到的问题一开始没有找到对约定冻结进行标志置位的函数。后来找到函数但是没有把位置找全。第一次出现是在rateinit()函数里。解决方案将rateinit()函数中加入不需要新分钟到来就进行判断置位的函数,然后就对数据进行冻结。反思第一次解决的Bug,很简单但是找了一周,主要问题在于没找到所有对冻结标志置位的地方。从该
2021-09-28 14:39:41
83
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人