什么是数据记录控件?

数据记录控件用于记录数据,共有4中类型,分别为当前告警、历史告警、历史告警与解除时间、通用表格。
“当前告警”、“历史告警”和“历史告警与解除时间”的设置类似,本例程中结合工程中的画面,只介绍数据记录控件“历史告警与解除”和“通用表格”的应用:
- 通用表格:介绍名字和编号的记录
- 历史告警和解除时间:记录产生告警的时间以及告警解除的时间
13.1 数据记录控件属性说明
数据记录控件属性如下所示

字体
设置数据记录显示的字体大小和样式
用户使用字体样式时候,需要考虑表格一行的高度值,如果字体设置过大,超过表格一行的高度,文字是“不显示”
文字颜色
设置字体显示的颜色
显示网格
设置网格显示,可选“是”或“否”。
【是】:设置为“是”,如下所示

【否】:设置为“否”,如下所示

网格颜色
设置网格显示的颜色
显示背景
设置背景的显示,可选“是”或“否”
【是】:默认控件显示的背景为白色,如下所示

【否】:设置不显示背景时,直接显示该画面的背景内容,如下所示

背景颜色
设置表格的背景颜色,可选“是”或者“否”
允许选择
设置允许选择数据所在行。运行后,选择数据记录控件的子项,会给该子项加上一个背景颜色,如下所示

显示滚动条
设置是否显示滚动条显示状态。可选为“不显示”、“按需显示”或“固定显示”,如下所示

不显示
当“显示记录数”为“6”,若“显示记录数”greater than“6”时,仍显示前6条数据,如下所示

按需显示
当“显示记录数”为“6”,若显示数据条数小于“6”时,不显示固定条框;若显示数据条数大于“6”时,显示滚动条,并可以拖动滚动条查看数据,如下所示

固定显示
当“显示记录数”为“6”,若显示数据条数小于“6”时,显示滚动条框;若显示数据条数大于“6”时,在滚动条框显示滚动条,并可以拖动滚动条查看数据,如下所示

手势滑动
设置滑动数据记录控件查看数据,可选“是”或“否”,当数据条数大于“显示记录数”时,点击并拖动数据记录控件可查看数据
显示序号
设置每一条记录添加的序号,可选“是”或“否”。当且仅当记录类型为“通用表格”时,该项参数设置才生效序号从“1”开始。若需要显示子项内容为两列,则增加序号显示时,需设置“子项数目”为3列,如下所示

基本型平台
如需要在屏幕上显示“1 广州大彩 0001”,所发的数据内容为“;广州大彩;0001”,“Serial number”子项内容固定为“;”
F型和W联型平台
设置增加序号显示时,如需要在屏幕上显示“1 广州大彩 0168”,所发的数据内容为“$NUM;广州大彩;0168”,“Serial number”子项内容固定为“$NUM;”
注意:每一个子项(每一列),用英文符号“;”隔开
图标文件
设置每一条记录添加的图标,可添加图标路径。当且仅当记录类型为“通用表格”时,该项参数设置才生效。如下所示

设置增加图标显示时,如需要在屏幕上第一项(列)显示图标第一帧,第二项显示“001”,第一项(列)显示图标第二帧,所发的数据内容为“$ICON0;001;$ICON1”,“Serial number”子项内容固定为“$ICONx;”x表示图标文件的第几帧
注意:设置的图标大小要不超过数据记录控件行的高度和宽度,否则会显示异常或显示不出来
记录类型
设置不同的记录类型,可选为“当前告警”、“历史告警”、“历史告警与解除时间”或“通用表格”。如下所示

当前告警
子项数固定为两项(即为两列),第一项为告警事件,第二项为告警时间。当产生报警,数据记录控件显示当前的告警和触发时间;当报警解除时,数据记录控件不显示告警信息。如下所示

历史告警
子项数固定为两项(即为两列),第一项为告警事件,第二项为告警时间。当产生报警时,数据记录控件会显示的告警和触发时间;当报警解除时,告警数据仍显示在表格里,可通过滚动条查阅过去的告警信息。如下所示

历史告警与解除时间
子项数固定为三项(即为三列),第一项为告警事件,第二项为告警时间,第三项为解除时间。当产生报警时,数据记录控件会显示的告警和触发时间;当告警事件解除时,显示解除的时间,告警数据仍显示在表格里,可通过滚动条查阅过去的告警信息。如下所示

通用表格
子项数默认为两项(即为两列),最大可设置为“10”项(列),可用作记录数据功能,记录的内容可以是中文、字母、数字,如下所示

显示顺序
设置显示的顺序,可选为“时间顺序”或“时间逆序”
对齐方式
设置数据显示的对齐方式,可选为“左对齐”、“居中对齐”或“右对齐”
子项数目
设置每一条记录包含的子项数,该项参数当且仅当记录类型为“通用表格”设置有效
子项宽度
设置每个子项的宽度比例,如设置为“30;40;50”
显示记录数
设置控件显示的记录条数,即是显示的行数。如设置为“10”,如下所示

最大记录数
设置最大的记录条数,存满之后,覆盖旧的记录,默认1024条
单条记录大小
设置单条记录大小,最大为256个字节。该项参数当且仅单记录类型为“通用表格”设置才有效。
是否存储
设置记录的数据是否存储到FLASH(断电保存),可选为“是”或“否”,该存储地址和用户存储128K空间、协议与变量里面的存储、历史曲线等共用一块存储区域
- 存储地址:每放置一个数据记录控件,都必须重新设置一次存储地址,避免存储地址重叠
预留存储空间
给该“数据记录控件”预留的存储空间大小
该项参数VisualTFT自动计算,预留存储空间=单条记录大小*最大记录数 + 24。如下所示,单条记录大小“100”byte,最大记录数为1024条,则需要给该控件预留102424个字节存储

- 当前告警:固定为6个字节,不可更改,不支持掉电保存
- 历史告警:固定为6个字节,不可更改,支持掉电保存
- 历史告警与解除时间:固定为10个字节,不可更改,支持掉电保存。
- 通用表格:默认为100个字节,最大为256个字节,根据用户MCU发送的数据字节数而定。支持掉电保存
注:数据记录控件与历史曲线共用存储块,开启数据存储时,应设置存储地址,否则会出现,数据存储异常、显示异常。
数据存储地址计算:
数据控件存储大小= 最大记录数*单挑记录大小+24(单位:byte)
历史曲线存储大小= 采样点数+30(单位:byte)
告警解析
当记录类型为“当前告警”、“历史告警”、“历史告警与解除时间”时,可定义告警解析。对告警进行文字显示,如定义数值0,为“高温”,颜色为红色,如下所示

当对该控件分别发送数值0、1、8时,如下所示,被定义的0、1此时显示的告警解析的内容,未被定义的8显示的还是数值

13.2 通用表格
画面配置
在【通用表格】画面的“背景图片”导入相应的美工图片,画面中添加1个数据记录控件(controlID:1)和3个按钮控件(controlID:2-4),如下所示

데이터 로 깅 컨트롤 속 성
데이터 레 코 드 컨트롤 의 속 성 창 에서 [ 레 코 드 표시 수 ] 를 " 6 " 로 설정 하고 [ 단 일 레 코 드 수 ] 를 " 40 " 로 설정 하여 다음과 같이 속 성 구성 합니다 .

레 코 드 추가 버튼
경 보 레 코 드를 추가 하는 데 사용됩니다 .버튼 컨트롤 (컨 트 롤 ID : 2) 의 속 성 창 에서 [ 터 치 대 시 상 자 ] 를 " 아니 오 " 로 , [ 눌 러 진 사진 ] 을 해당 소 재 경 로 로 , [ 잘 라 내 기 ] 를 " 선 택 " 으로 설정 하면 다음과 같이 속 성 구성 됩니다 .

" 추 가 " 단 추 를 누 른 내부 지 시를 작성 합니다 .
- 클릭 [ 내 부 명령 ] → " 눌 러 " 팝 업 명령 채 우 기 상 자 , 선택 " 명 령 도우 미 " 명령 도우 미 인터페 이스 에서 , 왼쪽 탐 색 모 음 선택 [ 데이 터 기록 컨트롤 ] 설정 " 데이 터 기록 컨트롤 " 영역 의 명령 매 개 변 수 .
- 루 틴 에서 " 광 저 우 다 채 ; 000 1; " 레 코 드 복 사 명령을 추가 하고 아래 와 같이 버튼 에 대한 명령 어를 작성 합니다 .

데이터 내 보내 기 단 추
마찬가지로 , " 데이 터 내 보내 기 " 버튼 은 USB 드라이브 또는 SD 카드 에 CS V 테이블 을 내 보 낼 수 있습니다 . [ 내 부 명령 ] → " 눌 러 " 에서 " 점 프 기 호 직 렬 화 면 명령 세 트 " 문서 에서 " 2. 79 데이터 로 깅 컨트롤 - SD 카드 내 보내 기 명령 (CS V 형 식) " 을 찾아 명령을 복 사 하고 명령 형 식은 다음과 같습니다 . 이 루 틴 은 다음과 같습니다 .
| 帧头 | 组态指令 | 기능 코드-exportCSVformat | 画面ID | controlID | 帧尾 |
|---|
실행 미리 보기
가상 화 면을 실행 하고 Visual T FT 소프트웨 어는 가상 화 면 과 " 가 상 직 렬 포 트 " 를 사용하여 연결 을 설정 합니다 .
화 면 제어
" 추 가 " 버튼 을 누 르 면 데이터 로 깅 컨트롤 의 첫 번째 열 에 " 광 저 우 다 채 " 가 표시 되고 두 번째 열 에 " 000 1" 가 표시 되며 " 추 가 " 버튼 을 다시 누 르 면 데이터 로 깅 컨트롤 의 두 번째 행 에 동일한 레 코 드가 표시 됩니다 ; " 데이 터 내 보내 기 " 를 누 르 면 컴퓨터 D 패 킹 루 트 디 렉 토 리에 CS V 파일을 표시 합니다 .

레 코 드 데이터 추가 명령
왼쪽 탐 색 모 음 에서 [ 데이 터 로 깅 컨트롤 ] 을 선택 하여 [ 일 반 테이블 ] 영역 의 명령 매 개 변 수를 설정 합니다 .루 틴 에서 [ 일 반 테이블 ] 화 면의 데이터 기록 컨트롤 (컨 트 롤 ID : 1) 을 설정 하고 기록 데이터를 " 광 저 우 다 채 ; 000 2; ", " 광 저 우 다 채 ; 000 3 " 로 추가 하고 " 보내 기 " 를 클릭 하면 다음과 같이 실행 됩니다 .

명령 어 : 행 레 코 드 수정
왼쪽 탐 색 모 음 에서 [ 데이 터 로 깅 컨트롤 ] 을 선택 하여 [ 일 반 테이블 ] 영역 의 명령 매 개 변 수를 설정 합니다 .루 틴 에서 와 같이 , 1 행 데이터 의 번호 를 " 00 11 " 으로 수정 하고 " 보 냄 " 을 클릭 하십시오 ; 다음과 같은 작동 효과

일반 테이블 에는 " 레 코 드 데이터 지 우 기 ", " 위치 오 프 셋 설정 ", " 레 코 드 수 가져 오 기 ", " 레 코 드 한 줄 읽기 ", " 레 코 드 한 줄 삭제 ", " 레 코 드 한 줄 삽 입 ", " 레 코 드 한 줄 선택 ", " 여러 레 코 드 추가 " 등의 기능 도 포함되어 있으며 사용자는 명령 어 세 트 문 서를 참조 하여 온라인 디 버 깅 경험을 할 수 있습니다 .
외부 MC U 제어
개발 패키 지 ke il 프로그램의 him . de ver . h 파일 의 함 수 선언 과 him . de ver . c 파일 의 정의 를 참조 하여 사용자 MC U 제어 데이터 로 깅 컨트롤 을 업데이트 하는 프로그램 입니다 .
데이터 레 코 드 추가
레 코 드를 추가 하는 코 드는 다음과 같습니다 .
/** ********************************************************************
** 함 수 이름 : vo id Record _ Add (u int 16 screen _ id ,
** u int 16 control _ id ,
** u int 8 * record)
** 설명 서 : 하나 추가데이터 스트 립
** 입력 매 개 변 수 : screen _ id : 화 면 ID
** control _ id : 컨트롤 ID
** 레 코 드 : 세 미 콜 론 으로 구분 된 하 위 항목 이 있는 레 코 드 (문 자 열)
** 예를 들어 , 첫 번째 ; 두 번째 ; 세 번째 ;
** 출 력 매 개 변 수 : 无
** 반환 된 값 : 无
*********************************************************************/
{
……
Record _ Add (0, 1, " 광 저 우 대 채 ; 000 1 "); // 설정 화 면 0, 컨트롤 1, 첫 번째 행 광 저 우 대 채 000 1 표시
……
}
데이터 레 코 드 행 수정
한 행 레 코 드를 수정 하는 코 드는 다음과 같습니다 .
/** ********************************************************************
** 함 수 이름 : vo id Record _ Modi fy (u int 16 screen _ id ,
** u int 16 control _ id ,
** u int 8 * 레 코 드
** u int 16 line _ id);
** 설명 서 : 데이터 레 코 드 수정
** 입력 매 개 변 수 : screen _ id : 화 면 ID
** control _ id : 컨트롤 ID
** 레 코 드 : 세 미 콜 론 으로 구분 된 하 위 항목 이 있는 레 코 드 (문 자 열)
** 예를 들어 , 첫 번째 ; 두 번째 ; 세 번째 ;
** line _ id 수정 된 라 인 번호
** 출 력 매 개 변 수 : 无
** 반환 된 값 : 无
*********************************************************************/
{
……
Record _ Modi fy (0, 1, " ; 00 88 " , 1) ; // 화 면 0, 컨트롤 1, 수정
// 두 번째 줄 의 데이터는 " 광 저 우 대 채 ; 00 88 " 입니다 .
……
}
데이터 레 코 드 내 보내 기
*. cs v 형 식을 USB 드라이브 또는 SD 로 내 보 내는 코 드는 다음과 같습니다 .
/** ********************************************************************
** 함 수 이름 : vo id Record _ Out put (u int 16 screen _ id ,
** u int 16 control _ id)
** 설명 서 : 데이터 로 깅 컨트롤 을 CV S 파일 형 식으로 SD 카드 로 내 보 냅니다 .
** 입력 매 개 변 수 : screen _ id : 화 면 ID
** control _ id : 컨트롤 ID
** 출 력 매 개 변 수 : 无
** 반환 된 값 : 无
*********************************************************************/
{
……
Record _ Out put (0, 1) ; / / 화 면 0, 컨트롤 1 의 데이터 기록 컨트롤 을 SD 카드 로 내 보 냅니다 .
……
}
13. 3 기록 경고 및 해 제 시간
화 면 구성
[ 이 력 경고 및 해 제 시간 ] 화 면의 " 배 경 이미지 " 에 해당 미 술 이미지를 가져 오고 화 면에 1 개의 데이터 기록 컨트롤 (컨 트 롤 ID : 1) 과 4 개의 버튼 컨트롤 (컨 트 롤 ID : 2 - 5) 을 추가 합니다 .

속 성 구성
데이터 기록 제어
데이터 로 깅 컨트롤 의 속 성 창 에서 [ 레 코 드 유형 ] 을 " 이 력 경 보 및 해 제 시간 " 으로 설정 하고 [ 레 코 드 표시 수 ] 를 "5 " 로 설정 하여 다음과 같이 속 성 구성 합니다 .

경고 분석 을 클릭 하여 경고 에 대한 텍스트 표시 를 수행 합니다 . 예를 들어 , 값 0 을 " 고 온 " 으로 정의 하고 색 상은 아래 와 같이 빨간 색 입니다 .값 1 - 4 의 해석 및 색 상을 정의 합니다 .

[ 경 보 트 리 거 ] 단 추 컨트롤
버튼 컨트롤 (컨 트 롤 ID : 2) 의 속 성 창 에서 [ 터 치 대 시 상 자 ] 를 " 아니 오 " 로 설정 하고 , [ 눌 러 진 사진 ] 을 해당 소 재 경 로 로 로 설정 하고 , [ 자 르기 ] 를 " 확 인 " 으로 설정 하고 , [ 내 부 명령 ] → " 눌 러 진 경우 " 를 다음과 같이 " 경 보 명령 트 리 거 " 로 입력 합니다 .

[ 경 보 해 제 ] 버튼 제어조각
버튼 컨트롤 (컨트롤 ID: 3) 의 속성 창에서 [터치 대시 상자] 를 "아니오" 로 설정하고, [눌러진 사진] 을 해당 소재 경로로로 설정하고, [자르기] 를 "확인" 으로 설정하고, [내부 명령] → "눌러진 경우" 를 다음과 같이 "경보 해제 명령" 으로 입력합니다.

[레코드 내보내기] 단추 컨트롤
참고 [13. 2 일반 양식]
실행 미리보기
가상 화면 실행, Visual TFT 소프트웨어 및 가상 화면은 "가상 직렬 포트" 를 사용하여 연결을 설정합니다.
화면 제어
트리거 경보 버튼을 누르면 데이터 로깅 컨트롤의 첫 번째 줄에 "온도 및 시간" 레코드가 표시됩니다; "경보 해제" 버튼을 누르면 데이터 로깅 컨트롤의 첫 번째 줄에 "시간 해제" 가 표시됩니다; "데이터 내보내기" 를 누르면 USB 드라이브 / SD 루트 디렉토리 아래에 표시되는 파일은 "내보내기 RTC 시간으로 명명된 CSV 파일" 입니다.

경고 트리거 / 해제 명령
왼쪽 탐색 모음에서 [데이터 로깅 컨트롤] 을 선택하여 [경보] 영역의 명령 매개 변수를 설정합니다.루틴에서와 같이, 데이터 로깅 컨트롤 (컨트롤 ID: 1) 을 설정하여 [이력 경보 및 해제 시간] 에서 트리거 경보를 1 의 트리거 값으로 트리거하고 "보드" 를 클릭합니다; 다음으로 다음과 같이 "경보 해제" 를 선택합니다.

단일 칩 컴퓨터 프로그램
사용자 MCU 가 데이터 로깅 컨트롤을 제어하는 프로그램은 개발 패키지 keil 프로그램에서 him. dever. h 파일의 함수 선언과 him. dever. c 파일의 정의를 참조하십시오.경고를 트리거합니다. 절차는 다음과 같습니다.
/** ********************************************************************
** 함수 이름: Record _ SetEvent (uint 16 screen _ id,
** uint 16 control _ id,
** uint 16 값,
** uint 8 * time);
** 설명서 : 경고 트리거
** 입력 매개 변수: screen _ id: 화면 ID
** control _ id: 컨트롤 ID
** value: 경보 값
** time: 경고가 생성된 시간, 0 이 될 때 화면 내부 시간을 사용합니다.
** 출력 매개 변수: 无
** 반환된 값 : 无
*********************************************************************/
{
……
Record _ SetEvent (1, 1, 0, 0); // 화면 1 컨트롤 1 의 경고 값이 0 으로 설정되며 경고 시간은 화면의 내부 시간입니다.
……
}
경보 해제 절차는 다음과 같습니다.
/** ********************************************************************
** 함수 이름: Record _ 초기화Event (uint 16 screen _ id,
** uint 16 control _ id,
** uint 16 값,
** uint 8 * time);
** 설명서 : 경고 해제
** 입력 매개 변수: screen _ id: 화면 ID
** control _ id: 컨트롤 ID
** value: 경보 값
** 시간: 경고가 해제되는 시간, 0 시 화면 내부 시간을 사용합니다.
** 출력 매개 변수: 无
** 반환된 값 : 无
*********************************************************************/
{
……
Record _ 초기화Event (1, 1, 0, 0); / / 설정 화면 1 컨트롤 1 의 경고 값은 0 입니다.
/ / 해제 시간은 화면의 내부 시간입니다.
……
}
Leave a Reply