爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • Smart帮助主页
  • 学习手册

  • 开发手册

    • 通讯协议

      • 串口

        • 串口打印机
        • 串口电子秤
        • 串口读取温湿度
        • 串口控制LED灯
        • 智能电表采集
          • 1. 说明
          • 2. 设计明细
          • 3. 程序设计
            • 3.1. 程序初始设置
            • 3.2. 事件设置
          • 4. 运行结果
      • 蓝牙Bluetooth

      • 无线网WIFI

      • ModbusRTU

      • ModbusTCP

      • OPC

      • MQTT

      • RestAPI

      • HTTP

    • 交互输出

    • 媒体存取

    • 人工智慧

    • 实例运用

目录

智能电表采集

# Smart之智能电表采集

# 1. 说明

  范例采用串口通讯协议,使用DLT-645/2007规约采集智能电能表中的电能数据。

  电能表是用来测量电能的仪表,又称电度表,火表,千瓦小时表,指测量各种电学量的仪表。

  电能表在低电压(不超过500伏)和小电流(几十安)的情况下,可直接接入电路进行测量。一般的家用电路是以这种方式接入电能表进行电费计量的。在高电压或大电流的情况下,电能表不能直接接入线路,需配合电压互感器或电流互感器使用。工厂的电能表通常会使用这种方式进行测量。

  目前市面上使用的绝大多数数字液晶显示屏电能表均有RS485的通讯接口,其接口显示如下图。除了用于连接电路的接线柱外,还包含了RS485接口的接线柱,用于与计算机进行连接。范例中使用的电能表通过RS485通讯接口与计算机连接,计算机向该电能表发送读取电能数据的指令,电能表对应返回数据,计算机进行解析后显示读取的结果数值。我们可以将读取到的数值写入至数据库中实现能源分析的功能。

  通过范例学习,可以掌握DLT-645/2007电能表的通讯方式,并结合Smart中的TMeter组件实现电能数据的采集。

# 2. 设计明细

  开启Smart智慧控制平台,分别加入下插图之控件。或者通过点击菜单栏[文件]-[打开项目]选择项目打开该范例。

  ①:TMeter组件,控件名称为Meter。

  ②:TImage组件,控件名称为Image1。

  ③:TiLedRound组件,控件名称为iLedRound1。

  ④:TiSevenSegmentAnalog组件,控件名称为digiShow。

  ⑤:TiEdit组件,控件名称为iEdit。

  ⑥:TListView组件,控件名称为lvItem。

  ⑦:TEdit组件,控件名称为edtMeterAddress。

  ⑧:TButton组件,控件名称为btnAdd。

  ⑨:TEdit组件,控件名称为edtInterval

  ⑩:TButton组件,控件名称为btnApply。

  (11):TListView组件,控件名称为lvLog。

  • Main窗体属性设置

    • Caption:主窗体标题,设置为智能电表采集。
    • ClientHeight:窗体客户区高度=633。
    • ClientWidth:窗体客户区宽度=1026。
  • ①Meter属性设置

    • BaudRate:设置通信速率,设置为br2400。
    • DataBits:设置通信的数据位数,设置为db8。
    • DeviceName:设置设备的端口号,此处需设置为设备连接的端口名称。   点击Picture属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。
  • ②Image1属性设置

    • Align:设置控件的对齐方式,此处设置为alClient,该控件在pnMeter控件中客户区对齐。
    • Stretch:设置控件中的图片拉伸对齐,设置为True。
    • Picture:设置图片。点击Picture属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。
  • ③iLEDRound属性设置

    • Height:设置控件高度,设置为24。
    • Width:设置控件宽度,设置为24。
    • ActiveColor:设置LED激活时显示的颜色,设置为clRed。
  • ④digiShow属性设置

  使用鼠标右键点击该控件,在右键选项中选择[Edit],打开设置界面,界面中的内容可按照下图进行设置,设置完成后点击[OK]按钮保存设置。

  • ⑥lvItem属性设置
    • Align:设置控件对齐方式,设置为alClient,即设置为在Panel界面区域内客户区对齐。
    • ViewStyle:设置控件的查看类型,设置为vsReport。

  使用鼠标右键点击该控件,在选项中选择[Columns Editor],打开列区编辑器。列区中显示当前显示的内容,其中设置各个项的Width属性分别为100,150,120。

  • (11)lvLog属性设置
    • Align:设置控件对齐方式,设置为alClient,即设置为在Panel界面区域内客户区对齐。
    • ViewStyle:设置控件的查看类型,设置为vsReport。

  使用鼠标右键点击该控件,在选项中选择[Columns Editor],打开列区编辑器。列区中显示当前显示的内容,其中设置各个项的Width属性分别为120,50,80,120。

# 3. 程序设计

# 3.1. 程序初始设置

  该程序启动时,将采集的时间间隔读取至编辑框中。

constructor TMyHandler.Create(AOwner: TComponent);
begin
  FThis :=TBaseForm(AOwner);
  FThis.edtInterval.Text := IntToStr(FThis.Meter.Interval);
end;
1
2
3
4
5

# 3.2. 事件设置

  • ⑧btnAdd-OnClick事件

  点击[添加]按钮,添加项目,并执行采集。

procedure TMyHandler.btnAddClick;
var
  vMeterItem:TMeterItem;
  vItem: TListItem;
begin
  vMeterItem := TMeterItem(FThis.Meter.MeterList.Add);
  vMeterItem.Address := FThis.edtMeterAddress.Text;
  vMeterItem.Caption := '电表';
  vMeterItem.Code := FThis.edtMeterAddress.Text;
  vMeterItem.MeterType := DLT645_2007;
  
  vItem := FThis.lvItem.Items.Add;
  vItem.Caption := FThis.edtMeterAddress.Text;
  vItem.SubItems.Add(FThis.edtMeterAddress.Text);
  vItem.SubItems.Add('电表');
  vItem.SubItems.Add(FThis.edtMeterAddress.Text);  
  FThis.Meter.Enabled := true;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  • ①Meter-OnReceiveData事件

  当接收到数据信息时,显示内容。

procedure TMyHandler.MeterReceiveData;
var
  lvitem:Tlistitem;       //此处一定要预定义临时记录存储变量.
begin
  if FThis.lvLog.Items.Count > 12 then
    FThis.lvLog.Items.Clear;
  lvitem:=FThis.lvLog.Items.add;
  //FThis.lvLog.Items.BeginUpdate;
  lvitem.Caption:=AItem.Code;
  lvitem.SubItems.Add(AItem.Caption);
  //lvitem.SubItems.Add(AItem.Address);
  lvitem.SubItems.Add(AItem.Value1);
  lvitem.SubItems.Add(FormatDateTime('c',now));
  FThis.iEdit.Value := AItem.Address;
  FThis.digiShow.Value := StrToFloat(AItem.Value1);
  FThis.iLEDRound1.Active := not FThis.iLEDRound1.Active;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  • ⑩btnApply-OnClick事件

  点击[应用]按钮,设置采集时间间隔。

procedure TMyHandler.btnApplyClick;
begin
  if StrToInt(FThis.edtInterval.Text) < 0 then
  begin
    ShowMessage('输入的数据不符合要求,请重新输入');
    exit;
  end;
  FThis.Meter.Interval := StrToInt(FThis.edtInterval.Text);
end;
1
2
3
4
5
6
7
8
9

# 4. 运行结果

  使用鼠标点击工具栏运行(Run),测试运行结果。

  通过工具栏保存,将程序保存为 sdb 项目文件。

  点击[添加]按钮,添加仪表信息,并开启采集功能。修改采集间隔时间,点击[应用]按钮,修改采集的时间间隔。

串口控制LED灯
蓝牙电子秤

← 串口控制LED灯 蓝牙电子秤→

Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式