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

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

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

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

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

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

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

  • 开发手册

    • 通讯协议

      • 串口

      • 蓝牙Bluetooth

      • 无线网WiFi

      • ModbusRTU

      • ModbusTCP

        • ModbusTCP控件使用
        • ModbusTCP控制LED灯
        • ModbusTCP读取温湿度
        • 控制虚拟机械手臂
          • 1. 说明
          • 2. 设计步骤
            • 2.1. Factory IO 场景设计
            • 2.2. PinToo 程序设计
          • 3. 程序设计
            • 3.1. 程序初始设置
            • 3.2. 事件设置
          • 4. 运行结果
      • MQTT

      • RestAPI

      • HTTP

    • 交互输出

    • 媒体存取

    • 人工智慧

    • 实例运用

目录

控制虚拟机械手臂

# PinToo 虚拟机械手臂

# 1. 说明

  1. Android 开发工具 PinToo 使用 ModbusTCP 协议,控制虚拟工厂场景中的机械手臂,实现机械臂的位移、抓取物件等操作。示例中的 X轴、Y轴与Z轴滑块用于控制机械臂的位移动作。抓取物体的操作由抓取按钮控制。
  2. 范例所使用的虚拟工厂为 Factory IO,这是一款出色的虚拟仿真软件,可以自由使用其内部的各种元器件、传感器、驱动器等搭建自己理想中的工业现场,并联合PLC进行编程仿真。
  3. Factory IO 虚拟场景所使用的传感器与驱动器,通过ModbusTCP映射至指定的寄存器,通过读取对应的寄存器地址,可以得知机械手臂的运行状态。通过写入驱动器的数值,控制机械臂的位移与抓取动作。

# 2. 设计步骤

# 2.1. Factory IO 场景设计

  Factory IO 场景的设计步骤如下:

  1. Factory IO 场景中包含一个平移式机械臂,机械臂下方有传送带与模拟使用的纸箱。
  2. Factory IO 场景设置完成后,请修改场景的驱动设置。点击菜单栏中的 文件-驱动,在下拉框中选择驱动方式为 Modbus TCP/IP Server,点击右侧的 配置 按钮,将从站ID 修改为 255。 IO配置 界面中的数值按照下图所示的内容修改。
  1. 传感器与控制器的设置界面按照下图所示的内容设置。这个步骤用于Modbus寄存器与传感器的绑定。后续 PinToo 会依照图示的寄存器地址设计。
  1. 场景的配置完成后,开始设计 PinToo 界面。

# 2.2. PinToo 程序设计

  开启PinToo设计器,分别加入下插图之控件。

  PinToo程序设计流程步骤如下:

  1. 设计布局,界面中的布局主要为标题栏与下侧的内容显示区,标题栏放置显示的标题,内容区域放置控制的滑块与按钮。
  2. 设计区域放置 TfxModbusTCP 控件,对应的控件名称分别为 fxModbusTCP1- fxModbusTCP4。控制的项目有四种类型,需要放置四个控件来对每个控件进行控制,需注意修改每一个控件的 Host 属性,修改属性取值为 Factory IO 中设定的地址,其他取值的填写是无效的。还需注意 UnitID 的取值是否与Factory IO 中设置的 从站ID 一致,如不一致请修改为 Factory IO 中预设的值。
  3. 放置滑块控件 TfxHorzSlider、TfxVertSlider,共计放置三个控件,控件名称分别为 slideX,slideY,slideZ。都需要调整旋转角度的属性 RotationAngle 。
  4. 放置按钮,开启与关闭时,按钮的显示状态图片上传至控件中。

  详细的的控件清单如下:

  1. TfxRDVertSlideBar 组件,控件名称为 slideX。
  2. TfxRDHorzSlideBar 组件,控件名称为 slideY。
  3. TfxRDHorzSlideBar 组件,控件名称为 slideZ。
  4. TfxSwitchButton 组件,控件名称为 fxSwitchButton1。
  5. TfxModbusTCP 组件,控件名称为 fxModbusTCP1。
  6. TfxModbusTCP 组件,控件名称为 fxModbusTCP2。
  7. TfxModbusTCP 组件,控件名称为 fxModbusTCP3。
  8. TfxModbusTCP 组件,控件名称为 fxModbusTCP4。

  以下是各控件需要调整的属性的说明。

  • fxRunFrame属性设置

    • Height:设置页面高度=800。
    • Width:设置页面宽度=400。
  • slideX 属性设置

    • ValueMax:设置取值的最大值,设置为 1000。
    • RotationAngle:设置控件旋转的角度,设置为 -90。
  • slideY 属性设置

    • ValueMax:设置取值的最大值,设置为 1000。
    • RotationAngle:设置控件旋转的角度,设置为 90。
  • slideZ 属性设置

    • ValueMax:设置取值的最大值,设置为 1000。
    • RotationAngle:设置控件旋转的角度,设置为 90。
  • fxSwitchButton1 属性设置

    • SwitchOffBmp:设置处于关闭状态时显示的图片。点击右侧的按钮打开图片编辑器,选择图片进行上传。
    • SwitchOnBmp:设置处于开启状态时显示的图片。点击右侧的按钮打开图片编辑器,选择图片进行上传。
  • fxModbusTCP1 属性设置

    • Host:设置Factory IO 场景的 IP 地址,此处需填写 Factory IO 中指定或默认设置的地址。
  • fxModbusTCP2 属性设置

    • Host:设置Factory IO 场景的 IP 地址,此处需填写 Factory IO 中指定或默认设置的地址。
  • fxModbusTCP3 属性设置

    • Host:设置Factory IO 场景的 IP 地址,此处需填写 Factory IO 中指定或默认设置的地址。
  • fxModbusTCP4 属性设置

    • Host:设置Factory IO 场景的 IP 地址,此处需填写 Factory IO 中指定或默认设置的地址。

# 3. 程序设计

  点击程序设计界面右下角的按钮,切换至单元选择界面,勾选需要使用的单元。该程序需要引用uModbusTCP单元。

# 3.1. 程序初始设置

  设置演示模式,以及初始状态设定。

//演示模式下,此项被设置为 True ,演示模式下不会与设备或服务连接。
//相关的连接操作会被阻止,如需要使用范例功能,请将此项设置为 False。
const demo = true;
var
  Detected,Grab: Boolean;
  ZValue: Integer;
1
2
3
4
5
6

  初始状态设置。

Procedure fxRunFrameAfterScriptRun(Sender: TObject);
var
  v,w,z: word;
Begin
  if demo Then
  begin
    fxSwitchButton1.HitTest := False;
    exit; 
  End;
  if fxModbusTCP1.ReadHoldingRegister(1,v) Then
    slideX.Value := Round(v);
  if fxModbusTCP2.ReadHoldingRegister(2,w) Then
    slideY.Value := Round(w);
  if fxModbusTCP3.ReadHoldingRegister(3,z) Then
  begin
    slideZ.Value := Round(z);
    ZValue := Round(z);
  End;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 3.2. 事件设置

slideX - OnChange 事件

  X轴的滑块移动时,向 Modbus 寄存器写入数值,控制机械臂在 X 轴方向上移动。

Procedure slideXOnChange(Sender: TObject);
Begin
  if not demo Then
    fxModbusTCP1.WriteRegister(1,slideX.Value);
End;
1
2
3
4
5

slideY - OnChange 事件

   Y 轴的滑块移动时,向 Modbus 寄存器写入数值,机械臂在 Y 轴方向上移动。

Procedure slideYOnChange(Sender: TObject);
Begin
  if not demo Then
    fxModbusTCP2.WriteRegister(2,slideY.Value);
End;
1
2
3
4
5

slideZ - OnChange 事件

   Z 轴的滑块移动时,向 Modbus 寄存器写入数值,机械臂在 Z 轴方向上移动。

Procedure slideZOnChange(Sender: TObject);
var 
  i: Integer
Begin
  if (not demo) Then
  begin
    fxModbusTCP3.WriteRegister(3,slideZ.Value); 
  End;
End;
1
2
3
4
5
6
7
8
9

fxSwitchButton1 - OnSwitch 事件

  按钮按动时,向 Modbus 寄存器写入数值,切换机械臂抓取、松开的状态。

Procedure fxSwitchButton1OnSwitch(Sender: TObject);
Begin
  if (not demo) Then
  begin
    Grab := fxSwitchButton1.IsChecked;
    fxModbusTCP4.WriteCoil(4,Grab); 
  End;
End;
1
2
3
4
5
6
7
8

# 4. 运行结果

  使用鼠标在 PinToo 菜单,点击[保存至数据库]按钮,将其保存至数据库,点击[调试运行]确认能够正常打开。

  通过同步中心,将程序上传至手机PinToo运行;同步时,请确保手机已经运行PinToo,并且已经登录。

  当设备与虚拟场景连接时,可通过 PinToo 中的控制控件,控制场景中的机械臂,拖动三个滑块控件,可使机械臂执行移动的操作,点击抓取按钮,控制机械臂爪子抓取物体、松开物体的操作。

ModbusTCP读取温湿度
MQTTClient控件使用

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

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