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

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

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

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

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

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

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 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帮助主页
  • 学习手册

  • 开发手册

    • 通讯协议

      • 串口

      • 蓝牙Bluetooth

      • 无线网WIFI

      • ModbusRTU

        • ModbusRTU控件使用
        • ModbusRTU控制LED灯
        • ModbusRTU读取温湿度
        • RS485计数器
          • 1. 功能
          • 2. 设计明细
          • 3. 程序设计
            • 3.1. 程序初始化设置
            • 3.2. 事件设置
          • 4. 运行结果
      • ModbusTCP

      • OPC

      • MQTT

      • RestAPI

      • HTTP

    • 交互输出

    • 媒体存取

    • 人工智慧

    • 实例运用

目录

RS485计数器

# Smart之RS485计数器

# 1. 功能

  范例采用RS485接口,通过ModbusRTU通讯协议,读取计数器数据并控制数据显示。使用Modbus协议进行计数器数值的读取,并且写入数值0以达到清零的效果。

  范例使用到的计数器为FC304N-R计数器,该计数器通过RS485协议与计算机进行连接通信。配合该计数器使用到的配件包含USB-485转换器,金属接近开关传感器,电源线缆,通信线缆。计数器的220V接口与220V电源连接,12V+,12V-与IN1分别与金属接近开关的正极、负极、信号极相连。计数器的485A、485B接口分别与USB-485的正极,负极相连。USB-485转换器在连接至计算机时会被识别为串口,请记住该串口的端口号,在接下来的配置过程中会使用到该端口号。

1112131415161718192012345678910220V供电12V0VIN1接近开关接线接地B/-A/+RS485

  通过范例学习,可以掌握ModbusRTU的基本通讯原理,并通过RS485进行计数器的读取与控制功能。

# 2. 设计明细

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

RS485计数器 UI布局

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

  ②:TWidgetLCDLabel组件,控件名称为WidgetLCDLabel1。

  ③:TModbusWriteChannel组件,控件名称为ModbusWriteChannel1。

  ④:TModbusReadChannel组件,控件名称为ModbusReadChannel1。

  ⑤:TTimer组件,控件名称为Timer1。

  ⑥:TModbusConnection组件,控件名称为ModbusConnection1。

  ⑦:TLabel组件,控件名称为Label1。

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

  • Main窗体属性设置

    • Caption:设置窗体标题=RS485计数器。
    • ClientHeight:设置窗体显示区的高度=220。
    • ClientWidth:设置窗体显示区的宽度=405。
  • ①Image1属性设置

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

    • Height:控件高度,设置为150。
    • Width:控件宽度,设置为379。
    • Fill.Kind:设置填充样式=gfkSolid。
    • Caption.FillOff.Color:设置未显示区域的数值颜色=clBlack。
    • Caption.Format:设置默认显示的数值格式类型= 0000。
  • ③ModbusWriteChannel1属性设置

    • ModbusList:设置连接列表。点击ModbusList属性右侧的[...]按钮,打开列表编辑界面。点击左上角的新增按钮新增一项ModbusList项目,选择对应的项进入到项目的属性界面。
    • ModbusList[0]属性设置
      • ConnectionMode:设置连接的模式,设置为cmClient。
      • DataType:设置Modbus读取/写入的数据类型,设置为dtInt。
      • FunctionCode设置使用ModbusRTU的写入指令,此处设置为fc16。
      • ModbusConnection:Modbus连接的组件对象,此处设置为ModbusConnection1。
      • RegCount:Modbus设备读取/写入寄存器的位数,此处设置为1。
      • StartReg:Modbus设备读取/写入寄存器的起始位置,此处设置为1。对应的Modbus保持寄存器的地址位为1。
      • ServerAddress:Modbus设备服务的地址,此处设置为1。
  • ④ModbusReadChannel1属性设置

    • ModbusList:设置连接列表。点击ModbusList属性右侧的[...]按钮,打开列表编辑界面。点击左上角的新增按钮新增一项ModbusList项目,选择对应的项进入到项目的属性界面。
    • ModbusList[0]属性设置
      • ConnectionMode:设置连接的模式,设置为cmClient。
      • DataType:设置Modbus读取/写入的数据类型,设置为dtFloat。
      • FunctionCode设置使用ModbusRTU的写入指令,设置为fc03。
      • ModbusConnection:Modbus连接的组件对象,设置为ModbusConnection1。
      • RegCount:Modbus设备读取/写入寄存器的位数,设置为1。
      • StartReg:Modbus设备读取/写入寄存器的起始位置,设置为1。对应的Modbus保持寄存器的地址位为1。
      • ServerAddress:Modbus设备服务的地址(从机号),定义为1。
  • ⑤Timer1属性设置

    • Enabled:是否启用计时器的功能,此处设置为True。
    • Interval:计数器计时事件触发的时间间隔,以ms为单位,设置为1000。
  • ⑥ModbusConnection1属性设置

    • BaudRate:连接RS485的串口通信速率,设置为br9600。
    • DataBits:连接RS485的串口通信数据位,设置为db8。
    • Parity:连接RS485串口的数据校验方式,设置为psNone。
    • Port:连接RS485串口的端口号,此处依实际的RS485接口为准。
  • ⑦Label1属性设置

    • AutoSize:是否根据字体调整控件大小,设置为True。
    • Caption:标签内容,设置为计数器/计米器。
    • Font:设置字体,设置内容如下所示。
  • ⑧ButtonClear属性设置

    • Height:设置控件高度=29。
    • Width:设置控件宽度=76。
    • Caption:设置按钮文字=复位。
    • Name:设置控件名称=ButtonClear。
    • Font:设置字体。

# 3. 程序设计

# 3.1. 程序初始化设置

  在程序启动时,建立ModbusRTU通信。

constructor TMyHandler.Create(AOwner: TComponent);
begin
  FThis :=TBaseForm(AOwner);、
  //建立Modbus连接
  FThis.ModbusConnection1.Active := True;
end;
1
2
3
4
5
6

# 3.2. 事件设置

  • ⑤Timer1-OnTimer事件

  计时器事件触发时,读取计数器的数值解析并显示。

procedure TMyHandler.Timer1Timer;
//定时采集数据并显示
begin
  FThis.ModbusRTUReadChannel1.ModbusList[0].execute;
  FThis.WidgetLCDLabel1.Caption.Value := FThis.ModbusRTUReadChannel1.ModbusList[0].DataValue;
end;
1
2
3
4
5
6
  • ⑧ButtonClear-OnClick事件

  当复位按钮被按下时,计数器的数值变为0。

procedure TMyHandler.ButtonClearClick;
//清零
begin
  FThis.ModbusRTUWriteChannel1.ModbusList[0].DataValue := 0;
  FThis.ModbusRTUWriteChannel1.ModbusList[0].execute;
end;
1
2
3
4
5
6

# 4. 运行结果

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

  使用鼠标点击工具栏运行(Run),测试运行结果。此时计算机程序中的数值显示为计数器显示的值,当用金属物体去靠近金属接近开关传感器时,计数器的数值会增加,同时计算机显示的数值也会增加。当点击复位按钮时,计数器的数值变成0,同时计算机程序端也显示为0。

ModbusRTU读取温湿度
ModbusTCP控件使用

← ModbusRTU读取温湿度 ModbusTCP控件使用→

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