伺服电机(200 smart & )调试文档

目录


一、项目概述

项目名称 :旋转靶架控制系统
核心目标:实现波纹管电机的精密位置与速度控制

二、实现目标

  1. 任意速度调节:0-3000rpm范围内可调
  2. 任意位置控制:0-200mm行程精准定位
  3. 到位锁止:到达目标点后自动抱闸锁止
  4. 线性运动:丝杠传动,导程5mm/圈

三、设备清单

  1. 伺服电机:G4M-T3M60-01930-ZC(220V/3.2A/3000rpm/1.91Nm)
  2. 伺服驱动器:X3P-5R5(220V/0.1-0.75KW/0.45-3.4A)
  3. PLC:S7-200 SMART ST30(带脉冲DO点Q0.0、0.1、0.2)
  4. 电源:24V/6A(用于刹车和IO控制)

四、控制架构

1. MODBUS通讯(集成端口DB9母)

  • 当前位置
  • 当前速度
  • 故障代码
  • 其他已知寄存器(字节数 > 4 需大小端转换)
  • 驱动器的通讯地址定义

  • PLC的通讯地址定义

    MB命令需已知驱动器的寄存器

  • 转速: Un000= 8192(2000H )+40001=48193

  • 位置:Un020=8212+40001=48213

  • 负载:Un027=8219+40001=48220

  • 警报复位:Fn003 = 【16128(3F00)+3 】= 16131+ 400001=416134 (地址大于40001的,进一位400001为六位数)
    编写程序

  • 在执行 MBUS_MSG/MB_MSG2 指令前,程序必须先执行 MBUS_CTRL/MB_CTRL2 且不出现错误

  • 某一时间只能有一条 MBUS_MSG 或 MB_MSG2 指令处于激活状态。

  • 有新请求要发送时,将参数 First 设置为接通,并仅保持一个扫描周期。

  • First 输入以脉冲方式通过边沿检测元素(例如,上升沿),这将使得程序发送请求一次。

    MSG参数定义

    • 参数"从站"(Slave) : Modbus 从站设备的地址。允许范围为 0 至 247。
    • 参数 RW :读取还是写入该消息。0(读取)和 1(写入)。
    • 参数地址 (Addr) :起始 Modbus 地址。
    • 参数"计数"(Count) :分配要在该请求中读取或写入的数据元素数
      • 对于位数据类型,"Count"是------位数
      • 对于字数据类型,则表示------字数
    • 参数 DataPtr 是间接地址指针,指向 CPU 中与读/写请求相关的数据的 V 存储器。
      大小端转换

2. PTO脉冲(高速输出Q0.1)

修改 SM 区域(包括控制字节)中的单元,然后执行 PLS 指令,来改变 PTO 或者 PWM 波形的特性。

  • SMB67 控制 PTO0 或 PWM0,SMB77 控制 PTO1 或 PWM1,SMB567 控制 PTO2 或 PWM2。

  • 脉冲输出 (PLS) :指令控制高速输出(Q0.0、Q0.1 和 Q0.3)是否提供脉冲串输出 (PTO) 和脉宽调制 (PWM) 功能(若使用 PWM,可通过可选向导来创建 PWM 指令)

    编写程序

  • 控制位(SMB77:固定数值 16#C5

  • 脉冲频率(SMW78:速度设定

  • 脉冲总数(SMD82:位置设定-角度 / 距离

  • 启动运行(PLS:PLC 输出脉冲串到对应Q点

  • 触发方式 :通过按钮触发一个循环周期,到位后自动停止

  • 立即停止脉冲输出 :发送控制位 0 ,并输出到脉冲

3. DI控制(逻辑控制)

  • 方向控制(根据设定位置与当前位置反馈对比自动控制方向)
  • 自动回零(通过加装原点传感器,控制电机到达原点)
  • 驱动使能(通过DO控制驱动器的使能)
  • 抱闸锁止(通过DO控制,驱动器自动控制:使能松闸,禁止抱闸

4. 状态机(实时状态)

  • 系统上电
  • 回零反馈
  • 故障反馈(存在故障时自动清除)
  • 松闸反馈(确认刹车是否松闸)

四、关键接线

1. 引脚定义(PLC、伺服)

  • 200SmartPLC集成串口的引脚定义
    • 8 ~ RS485+
    • 3 ~ RS485-
  • 伺服控制器的通讯口引脚定义
    • 4 ~ RS485 + ~ 蓝
    • 5 ~ RS485 - ~ 白蓝

2.通讯接线(PLC端口0 ←→ 伺服驱动器CN3):

  • PLC引脚8(A +) → 伺服CN3-4(RS485+)------------ [白蓝线]
  • PLC引脚3 ( B -) → 伺服CN3-5(RS485-)------------ [蓝线]
  • 屏蔽层 → PE端子(单端接地)

实测:白蓝线、蓝线]需要调换顺序 < 已检查线序及说明证实 >

五、开发总结

  • 通讯命令库
    • MBUS_Ctrl
    • MBUS_MSG
  • 通讯参数确认
    • 驱动器器参数(9600-8-1-0、addr=2):
      • Pn600轴地址:2
      • Pn601波特率:9600
      • Pn602数据格式:0-无校验,1开始位,8位数据位,1停止位
    • PLC通讯参数(初始化主站MBUS_Ctrl)
      • 主站波特率:9600
      • 主站端口:0(集成485口)1(信号板485口)
      • 通讯超时:1000ms(自定义)
  • 从站伺服与主站PLC寄存器地址映射关系
    • 转速:Un000 = 8192(2000H )+ 40001=48193
    • 位置:Un020 = 8192 + 20 = 8212 + 40001=48213
    • 寄存器需要40001+伺服地址=PLC命令的寄存器
    • 返回的双字数据(四个字节)需要大小端转换,单字(两个字节)不用转换
  • PTO脉冲串控制
    • 除了使用运动向导(PTO向导)配置外,这里使用的是 脉冲输出指令(PLS) 配合相关逻辑实现运动控制。
    • 相对复杂,需要对PTO/HSC的特殊存储器(SM)有深入了解,这种方法提供了最大的灵活性,需要投入大量的开发、测试和调试时间;这里做测试练习用

六、注意事项

  1. 参数 DataPtr :MSG的缓存数据是间接地址指针,指向 CPU 中与读/写请求相关的数据的 V 存储器。
    • 对于读请求,将 DataPtr 设置为指针(例如,写入到 Modbus 从站设备的数据始于 CPU 的地址 VW200,则 DataPtr 的值将为 &VB200(地址 VB200))
    • 对于写请求,将 DataPtr 设置为要发送的数值

MSG接收数据必须为指针形式(MSG作为发送数据可直接写常数:比如 1)

  • 一般控制建议使用"运动向导"。向导已经完美封装了所有这些复杂逻辑,生成的子程序稳定可靠,需调用即可。
  • 只有在向导功能无法满足你的特殊需求(例如非标准的回零序列、需要与复杂工艺逻辑深度耦合等)时,才考虑使用PLS指令直接编程。
相关推荐
黎雁·泠崖2 小时前
Java底层探秘入门:从源码到字节码!方法调用的中间形态全解析
java·开发语言
千里马-horse2 小时前
TypedArrayOf
开发语言·javascript·c++·node.js·napi
we1less2 小时前
[audio] AudioTrack (六) 共享内存使用分析
java·开发语言
CYTElena2 小时前
关于JAVA异常的笔记
java·开发语言·笔记·语言基础
陳10302 小时前
C++:vector(2)
开发语言·c++
代码游侠2 小时前
学习笔记——HTML网页开发基础
运维·服务器·开发语言·笔记·学习·html
代码游侠3 小时前
应用——基于C语言实现的简易Web服务器开发
运维·服务器·c语言·开发语言·笔记·测试工具
.似水3 小时前
Python Socket
开发语言·python
码农水水3 小时前
京东Java面试被问:系统限流的实现方式
java·开发语言·面试