데이터 로깅 컨트롤은 어떻게 사용합니까?

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

데이터 로깅 컨트롤은 어떻게 사용합니까?

什么是数据记录控件?

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure

数据记录控件用于记录数据,共有4中类型,分别为当前告警、历史告警、历史告警与解除时间、通用表格。

“当前告警”、“历史告警”和“历史告警与解除时间”的设置类似,本例程中结合工程中的画面,只介绍数据记录控件“历史告警与解除”和“通用表格”的应用:

  1. 通用表格:介绍名字和编号的记录
  2. 历史告警和解除时间:记录产生告警的时间以及告警解除的时间

13.1 数据记录控件属性说明

数据记录控件属性如下所示

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure1

字体

设置数据记录显示的字体大小和样式

用户使用字体样式时候,需要考虑表格一行的高度值,如果字体设置过大,超过表格一行的高度,文字是“不显示”

文字颜色

设置字体显示的颜色

显示网格

设置网格显示,可选“是”或“否”。

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure2

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure3

网格颜色

设置网格显示的颜色

显示背景

设置背景的显示,可选“是”或“否”

【是】:默认控件显示的背景为白色,如下所示

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure4

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure5

背景颜色

设置表格的背景颜色,可选“是”或者“否”

允许选择

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure6

显示滚动条

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure7
不显示

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure8
按需显示

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure9
固定显示

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure10

手势滑动

设置滑动数据记录控件查看数据,可选“是”或“否”,当数据条数大于“显示记录数”时,点击并拖动数据记录控件可查看数据

显示序号

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure11
基本型平台

如需要在屏幕上显示“1 广州大彩 0001”,所发的数据内容为“;广州大彩;0001”,“Serial number”子项内容固定为“;”

F型和W联型平台

设置增加序号显示时,如需要在屏幕上显示“1 广州大彩 0168”,所发的数据内容为“$NUM;广州大彩;0168”,“Serial number”子项内容固定为“$NUM;”

注意:每一个子项(每一列),用英文符号“;”隔开

图标文件

设置每一条记录添加的图标,可添加图标路径。当且仅当记录类型为“通用表格”时,该项参数设置才生效。如下所示

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure12

设置增加图标显示时,如需要在屏幕上第一项(列)显示图标第一帧,第二项显示“001”,第一项(列)显示图标第二帧,所发的数据内容为“$ICON0;001;$ICON1”,“Serial number”子项内容固定为“$ICONx;”x表示图标文件的第几帧

注意:设置的图标大小要不超过数据记录控件行的高度和宽度,否则会显示异常或显示不出来

记录类型

设置不同的记录类型,可选为“当前告警”、“历史告警”、“历史告警与解除时间”或“通用表格”。如下所示

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure13
当前告警

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure14
历史告警

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure15
历史告警与解除时间

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure16
通用表格

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure17

显示顺序

设置显示的顺序,可选为“时间顺序”或“时间逆序”

对齐方式

设置数据显示的对齐方式,可选为“左对齐”、“居中对齐”或“右对齐”

子项数目

设置每一条记录包含的子项数,该项参数当且仅当记录类型为“通用表格”设置有效

子项宽度

设置每个子项的宽度比例,如设置为“30;40;50”

显示记录数

设置控件显示的记录条数,即是显示的行数。如设置为“10”,如下所示

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure18

最大记录数

设置最大的记录条数,存满之后,覆盖旧的记录,默认1024条

单条记录大小

设置单条记录大小,最大为256个字节。该项参数当且仅单记录类型为“通用表格”设置才有效。

是否存储

设置记录的数据是否存储到FLASH(断电保存),可选为“是”或“否”,该存储地址和用户存储128K空间、协议与变量里面的存储、历史曲线等共用一块存储区域

  • 存储地址:每放置一个数据记录控件,都必须重新设置一次存储地址,避免存储地址重叠

预留存储空间

给该“数据记录控件”预留的存储空间大小

该项参数VisualTFT自动计算,预留存储空间=单条记录大小*最大记录数 + 24。如下所示,单条记录大小“100”byte,最大记录数为1024条,则需要给该控件预留102424个字节存储

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure19
  • 当前告警:固定为6个字节,不可更改,不支持掉电保存
  • 历史告警:固定为6个字节,不可更改,支持掉电保存
  • 历史告警与解除时间:固定为10个字节,不可更改,支持掉电保存。
  • 通用表格:默认为100个字节,最大为256个字节,根据用户MCU发送的数据字节数而定。支持掉电保存

注:数据记录控件与历史曲线共用存储块,开启数据存储时,应设置存储地址,否则会出现,数据存储异常、显示异常。

数据存储地址计算:

数据控件存储大小= 最大记录数*单挑记录大小+24(单位:byte)

历史曲线存储大小= 采样点数+30(单位:byte)

告警解析

当记录类型为“当前告警”、“历史告警”、“历史告警与解除时间”时,可定义告警解析。对告警进行文字显示,如定义数值0,为“高温”,颜色为红色,如下所示

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure20

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure21

13.2 通用表格

画面配置

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure22
데이터 로 깅 컨트롤 속 성

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure23
레 코 드 추가 버튼

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure24

" 추 가 " 단 추 를 누 른 내부 지 시를 작성 합니다 .

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

마찬가지로 , " 데이 터 내 보내 기 " 버튼 은 USB 드라이브 또는 SD 카드 에 CS V 테이블 을 내 보 낼 수 있습니다 . [ 내 부 명령 ] → " 눌 러 " 에서 " 점 프 기 호 직 렬 화 면 명령 세 트 " 문서 에서 " 2. 79 데이터 로 깅 컨트롤 - SD 카드 내 보내 기 명령 (CS V 형 식) " 을 찾아 명령을 복 사 하고 명령 형 식은 다음과 같습니다 . 이 루 틴 은 다음과 같습니다 .

帧头组态指令기능 코드-exportCSVformat画面IDcontrolID帧尾

실행 미리 보기

가상 화 면을 실행 하고 Visual T FT 소프트웨 어는 가상 화 면 과 " 가 상 직 렬 포 트 " 를 사용하여 연결 을 설정 합니다 .

화 면 제어

" 추 가 " 버튼 을 누 르 면 데이터 로 깅 컨트롤 의 첫 번째 열 에 " 광 저 우 다 채 " 가 표시 되고 두 번째 열 에 " 000 1" 가 표시 되며 " 추 가 " 버튼 을 다시 누 르 면 데이터 로 깅 컨트롤 의 두 번째 행 에 동일한 레 코 드가 표시 됩니다 ; " 데이 터 내 보내 기 " 를 누 르 면 컴퓨터 D 패 킹 루 트 디 렉 토 리에 CS V 파일을 표시 합니다 .

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure26
레 코 드 데이터 추가 명령

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure27
명령 어 : 행 레 코 드 수정

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure28

일반 테이블 에는 " 레 코 드 데이터 지 우 기 ", " 위치 오 프 셋 설정 ", " 레 코 드 수 가져 오 기 ", " 레 코 드 한 줄 읽기 ", " 레 코 드 한 줄 삭제 ", " 레 코 드 한 줄 삽 입 ", " 레 코 드 한 줄 선택 ", " 여러 레 코 드 추가 " 등의 기능 도 포함되어 있으며 사용자는 명령 어 세 트 문 서를 참조 하여 온라인 디 버 깅 경험을 할 수 있습니다 .

외부 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) 을 추가 합니다 .

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure29

속 성 구성

데이터 기록 제어

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure30

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure31
[ 경 보 트 리 거 ] 단 추 컨트롤

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure32
[ 경 보 해 제 ] 버튼 제어조각

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure33
[레코드 내보내기] 단추 컨트롤

참고 [13. 2 일반 양식]

실행 미리보기

가상 화면 실행, Visual TFT 소프트웨어 및 가상 화면은 "가상 직렬 포트" 를 사용하여 연결을 설정합니다.

화면 제어

트리거 경보 버튼을 누르면 데이터 로깅 컨트롤의 첫 번째 줄에 "온도 및 시간" 레코드가 표시됩니다; "경보 해제" 버튼을 누르면 데이터 로깅 컨트롤의 첫 번째 줄에 "시간 해제" 가 표시됩니다; "데이터 내보내기" 를 누르면 USB 드라이브 / SD 루트 디렉토리 아래에 표시되는 파일은 "내보내기 RTC 시간으로 명명된 CSV 파일" 입니다.

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure34
경고 트리거 / 해제 명령

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

데이터 로깅 컨트롤은 어떻게 사용합니까?Figure35

단일 칩 컴퓨터 프로그램

사용자 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 입니다.
                              / / 해제 시간은 화면의 내부 시간입니다.
  ……
}
Related Tags
Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC 검증 and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email 주소 will not be published. Required fields are marked *.