目录
- 一、项目概述
- 二、实现目标
- 三、设备清单
- 四、控制架构
-
- [1. MODBUS通讯(集成端口DB9母)](#1. MODBUS通讯(集成端口DB9母))
- [2. PTO脉冲(高速输出Q0.1)](#2. PTO脉冲(高速输出Q0.1))
- [3. DI控制(逻辑控制)](#3. DI控制(逻辑控制))
- [4. 状态机(实时状态)](#4. 状态机(实时状态))
- 四、关键接线
-
- [1. 引脚定义(PLC、伺服)](#1. 引脚定义(PLC、伺服))
- [2.通讯接线(PLC端口0 ←→ 伺服驱动器CN3):](#2.通讯接线(PLC端口0 ←→ 伺服驱动器CN3):)
- 五、开发总结
- 六、注意事项
一、项目概述
项目名称 :旋转靶架控制系统
核心目标:实现波纹管电机的精密位置与速度控制
二、实现目标
- 任意速度调节:0-3000rpm范围内可调
- 任意位置控制:0-200mm行程精准定位
- 到位锁止:到达目标点后自动抱闸锁止
- 线性运动:丝杠传动,导程5mm/圈
三、设备清单
- 伺服电机:G4M-T3M60-01930-ZC(220V/3.2A/3000rpm/1.91Nm)
- 伺服驱动器:X3P-5R5(220V/0.1-0.75KW/0.45-3.4A)
- PLC:S7-200 SMART ST30(带脉冲DO点Q0.0、0.1、0.2)
- 电源: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(自定义)
- 驱动器器参数(9600-8-1-0、addr=2):
- 从站伺服与主站PLC寄存器地址映射关系
- 转速:Un000 = 8192(2000H )+ 40001=48193
- 位置:Un020 = 8192 + 20 = 8212 + 40001=48213
- 寄存器需要40001+伺服地址=PLC命令的寄存器
- 返回的双字数据(四个字节)需要大小端转换,单字(两个字节)不用转换
- PTO脉冲串控制
- 除了使用运动向导(PTO向导)配置外,这里使用的是 脉冲输出指令(PLS) 配合相关逻辑实现运动控制。
- 相对复杂,需要对PTO/HSC的特殊存储器(SM)有深入了解,这种方法提供了最大的灵活性,需要投入大量的开发、测试和调试时间;这里做测试练习用
六、注意事项
参数 DataPtr:MSG的缓存数据是间接地址指针,指向 CPU 中与读/写请求相关的数据的 V 存储器。- 对于读请求,将 DataPtr 设置为指针(例如,写入到 Modbus 从站设备的数据始于 CPU 的地址 VW200,则 DataPtr 的值将为 &VB200(地址 VB200))
- 对于写请求,将 DataPtr 设置为要发送的数值

MSG接收数据必须为指针形式(MSG作为发送数据可直接写常数:比如 1)
- 一般控制建议使用"运动向导"。向导已经完美封装了所有这些复杂逻辑,生成的子程序稳定可靠,需调用即可。
- 只有在向导功能无法满足你的特殊需求(例如非标准的回零序列、需要与复杂工艺逻辑深度耦合等)时,才考虑使用PLS指令直接编程。









