愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • 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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式