一、特殊功能模块概述
S7-200 SMART提供了丰富的特殊功能模块,包括高速计数器(HSC)、脉冲输出(PTO/PWM)、称重模块、运动控制模块等,可以满足复杂的工业控制需求。
学习目标
- 掌握高速计数器(HSC)的配置和编程
- 理解脉冲输出(PTO/PWM)的工作原理
- 学会称重模块的接线和标定
- 掌握运动控制模块的应用
- 能够实现精密定位和速度控制
- 学会多轴协同控制
1.1 特殊功能模块分类
| 模块类型 | 型号 | 主要功能 | 应用场景 | 最大数量 |
|---|---|---|---|---|
| 高速计数器 | CPU集成 | 6路HSC(4路200kHz) | 编码器计数、频率测量 | 6个 |
| 脉冲输出 | CPU集成 | 3路PTO/PWM(100kHz) | 步进/伺服控制 | 3个 |
| 称重模块 | SIWAREX MS | 高精度称重 | 配料、检重 | 4个 |
| 运动控制 | EM AM03 | 3轴定位控制 | CNC、机器人 | 1个 |
二、高速计数器HSC编程(梯形图)
2.1 高速计数器基础
高速计数器用于处理比PLC扫描周期更快的脉冲信号,最高频率可达200kHz。S7-200 SMART提供6个高速计数器,支持多种工作模式。
HSC模式说明
| HSC编号 | 最大频率 | 输入点 | 工作模式 | 典型应用 |
|---|---|---|---|---|
| HSC0 | 200kHz | I0.0, I0.1 | 0-11 | 单相计数 |
| HSC1 | 200kHz | I0.6, I0.7 | 0-11 | AB相计数 |
| HSC2 | 200kHz | I1.0, I1.1 | 0-11 | 高速测量 |
| HSC3 | 30kHz | I0.2 | 0 | 单相计数 |
| HSC4 | 30kHz | I0.3, I0.4 | 0-10 | AB相计数 |
| HSC5 | 30kHz | I0.5 | 0 | 单相计数 |
2.2 高速计数器编程实例
示例1:HSC0单相计数(模式0)
步骤1:HSC0初始化子程序SBR_0
Network 1 // 定义HSC0为模式0
SM0.1
--| |----+---(HDEF)--
| EN ENO
| HSC MODE
| -- --
+----0-----0
// 定义HSC0,模式0(单相计数)
Network 2 // 设置控制字节
SM0.1 SMB37
--| |---+---(MOV_B)--
| EN ENO
| IN OUT
| -- --
+---16#F8--SMB37
// 允许计数,更新当前值,更新预设值
Network 3 // 设置当前值
SM0.1 SMD38
--| |---+---(MOV_DW)--
| EN ENO
| IN OUT
| -- --
+----0-----SMD38
// 当前值设为0
Network 4 // 设置预设值
SM0.1 SMD42
--| |---+---(MOV_DW)--
| EN ENO
| IN OUT
| -- --
+---1000---SMD42
// 预设值1000
Network 5 // 连接中断
SM0.1
--| |----+---(ATCH)--
| EN ENO
| INT EVNT
| -- --
+---INT_0--12
// 连接中断程序INT_0到事件12(HSC0 CV=PV)
Network 6 // 启动HSC0
SM0.1
--| |-----(HSC 0)--
Network 7 // 允许中断
SM0.1
--| |-----(ENI)--
步骤2:中断处理程序INT_0
Network 1 // 计数到1000处理
SM0.0 Q0.0
--| |----+----( )--
| | VW100
+----+---(INC_W)--
IN OUT
-- --
VW100---VW100
// 输出Q0.0,计数完成次数加1
步骤3:主程序读取当前计数值
Network 8 // 读取HSC0当前值
SM0.0 HC0
--| |---+---(MOV_DW)--
| EN ENO
| IN OUT
| -- --
+---HC0---VD200
// 读取HSC0当前值到VD200
2.3 AB相编码器计数
示例2:HSC1 AB相编码器计数(模式9)
HSC1初始化配置
Network 1 // 定义HSC1为模式9
SM0.1
--| |----+---(HDEF)--
| EN ENO
| HSC MODE
| -- --
+----1-----9
// 模式9:AB相4倍频计数
Network 2 // 设置控制字节
SM0.1 SMB47
--| |---+---(MOV_B)--
| EN ENO
| IN OUT
| -- --
+---16#F8--SMB47
Network 3 // 启动HSC1
SM0.1
--| |-----(HSC 1)--
三、脉冲输出PTO/PWM编程(梯形图)
3.1 脉冲输出基础
S7-200 SMART提供3路高速脉冲输出,支持PTO(脉冲串输出)和PWM(脉宽调制)两种模式,最高频率100kHz,可控制步进电机和伺服电机。
| 脉冲输出 | 输出点 | 最大频率 | 模式 | 控制方式 |
|---|---|---|---|---|
| PTO0/PWM0 | Q0.0 | 100kHz | PTO, PWM | 开环控制 |
| PTO1/PWM1 | Q0.1 | 100kHz | PTO, PWM | 开环控制 |
| PWM2 | Q0.3 | 20kHz | PWM | 模拟量输出 |
3.2 PTO脉冲串输出编程
示例3:PTO0控制步进电机
步骤1:PTO0初始化配置
Network 1 // 定义PTO0包络表
SM0.1 VB500
--| |---+---(MOV_B)--
| EN ENO
| IN OUT
| -- --
+----1-----VB500
// 包络表段数:1
Network 2 // 设置初始频率
SM0.1 VW501
--| |---+---(MOV_W)--
| EN ENO
| IN OUT
| -- --
+---500----VW501
// 初始频率:500Hz
Network 3 // 设置结束频率
SM0.1 VW503
--| |---+---(MOV_W)--
| EN ENO
| IN OUT
| -- --
+---2000---VW503
// 结束频率:2000Hz
Network 4 // 设置脉冲数
SM0.1 VD505
--| |---+---(MOV_DW)--
| EN ENO
| IN OUT
| -- --
+---2000---VD505
// 脉冲数:2000
步骤2:执行PTO输出
Network 5 // 启动PTO0
I0.0
--|P|----+---(PLS)--
| EN ENO
| Q0.X
| --
+----0
| Done
+---M0.0
// 启动Q0.0的PTO输出
3.3 PWM脉宽调制输出
示例4:PWM控制直流电机转速
PWM初始化配置
Network 1 // 配置PWM周期
SM0.1 SMW68
--| |---+---(MOV_W)--
| EN ENO
| IN OUT
| -- --
+---100----SMW68
// PWM周期:100ms(10Hz)
Network 2 // 配置PWM脉宽
I0.1 SMW70
--|P|----+---(MOV_W)--
| EN ENO
| IN OUT
| -- --
+----30----SMW70
// 脉宽:30%(30ms ON,70ms OFF)
Network 3 // 启动PWM
I0.2
--|P|----+---(PLS)--
| EN ENO
| Q0.X
| --
+----2
// 启动Q0.1的PWM输出
四、称重模块SIWAREX MS(梯形图)
4.1 称重模块基础
SIWAREX MS是西门子的紧凑型称重模块,支持高精度重量测量,分辨率高达16,000,000,适用于配料、检重等应用。
| 参数 | 规格 | 单位 | 说明 |
|---|---|---|---|
| 测量范围 | 2mV/V | - | 传感器灵敏度 |
| 分辨率 | 16,000,000 | d | 数字分辨率 |
| 精度 | 0.05% | - | 测量精度 |
| 采样率 | 400 | Hz | 每秒采样次数 |
| 滤波器 | 可调 | - | 数字滤波 |
4.2 称重模块编程实例
示例5:SIWAREX MS称重控制
步骤1:模块初始化
Network 1 // 读取模块状态
SM0.1 VB300
--| |---+---(S_RDREC)--
| EN ENO
| INDEX
| --
+----0
| DATA
+---VB300
// 读取模块参数记录
步骤2:重量读取
Network 2 // 读取重量值
SM0.5 VB310
--|P|----+---(S_RDREC)--
| EN ENO
| INDEX
| --
+----1
| DATA
+---VB310
// 每2秒读取一次重量
Network 3 // 处理重量数据
SM0.0 VD314
--| |---+---(MOV_DW)--
| EN ENO
| IN OUT
| -- --
+---VD310---VD400
// 存储重量值到VD400
步骤3:标定控制
Network 4 // 零点标定
I0.3 VB320
--|P|----+---(S_WRITE)--
| EN ENO
| INDEX
| --
+----2
| DATA
+---VB320
// 执行零点标定
Network 5 // 砝码标定
I0.4 VB330
--|P|----+---(S_WRITE)--
| EN ENO
| INDEX
| --
+----3
| DATA
+---VB330
// 执行砝码标定(1kg砝码)
五、运动控制模块EM AM03(梯形图)
5.1 运动控制基础
EM AM03是三轴运动控制模块,支持直线插补、圆弧插补、电子齿轮、电子凸轮等高级功能,适用于CNC、机器人等精密控制应用。
三轴运动控制图示
X轴
60mm
Y轴
40mm
Z轴
20mm
5.2 运动控制编程实例
示例6:三轴点对点定位
步骤1:轴参数设置
Network 1 // 配置X轴参数
SM0.1 VB600
--| |---+---(MOV_B)--
| EN ENO
| IN OUT
| -- --
+----1-----VB600
// 轴号:1(X轴)
SM0.1 VD601
--| |---+---(MOV_R)--
| EN ENO
| IN OUT
| -- --
+---1000.0-VD601
// 目标位置:1000mm
SM0.1 VD605
--| |---+---(MOV_R)--
| EN ENO
| IN OUT
| -- --
+---100.0--VD605
// 运动速度:100mm/s
SM0.1 VD609
--| |---+---(MOV_R)--
| EN ENO
| IN OUT
| -- --
+---50.0---VD609
// 加速度:50mm/s²
步骤2:运动控制指令
Network 2 // 执行定位运动
I0.5
--|P|----+---(MC_MoveAbsolute)--
| EN ENO
| Axis
| --
+---VB600
| Position
+---VD601
| Velocity
+---VD605
| Acceleration
+---VD609
| Deceleration
+---VD609
| Done
+---M1.0
// 执行绝对定位
六、综合应用实例
6.1 案例:精密定位系统
系统设计要求:
- 三轴精密定位平台(XYZ轴)
- 定位精度:±0.01mm
- 重复精度:±0.005mm
- 最大速度:500mm/s
- 加速度:200mm/s²
- 支持直线插补、圆弧插补
- 原点回归、软限位保护
控制系统配置:
| 模块 | 型号 | 功能 | 数量 |
|---|---|---|---|
| CPU | SR40 | 主控制器 | 1 |
| 运动模块 | EM AM03 | 三轴控制 | 1 |
| 伺服驱动器 | V90 | 伺服电机控制 | 3 |
| 编码器 | 10000线 | 位置反馈 | 3 |
6.2 案例:自动配料系统
系统功能:
- 8种原料自动配料
- 称重精度:±0.1g
- 配料速度:≤30s/批次
- 配方存储:100个配方
- 数据记录:1000批次
- 报警功能:超差、缺料、故障
硬件配置:
1. 称重模块SIWAREX MS × 2
2. 模拟量输入模块 × 1
3. 数字量输入模块 × 1
4. 数字量输出模块 × 1
5. 气动阀门 × 8
6. 振动给料器 × 8
七、课后练习
练习题目
练习1:编码器测速系统
设计一个编码器测速系统,要求:
- 使用AB相编码器(1000线)
- 测量转速范围:0-3000rpm
- 精度:±1rpm
- 实时显示转速和方向
- 超速报警和保护
- 数据记录和趋势图
练习2:步进电机定位控制
设计一个步进电机定位控制系统:
- 两轴联动控制(XY平台)
- 定位精度:±0.02mm
- 支持点对点定位和直线插补
- 原点自动回归功能
- 软限位和硬限位保护
- 手动/自动操作模式
练习3:动态检重系统
设计一个在线动态检重系统:
- 使用SIWAREX MS称重模块
- 检测速度:≤120件/分钟
- 精度:±0.5g
- 自动分选(合格/不合格)
- 重量统计和报表
- 联网数据上传
八、课程总结
8.1 重点回顾
本课核心知识点
- 高速计数器:配置、中断、编码器应用
- 脉冲输出:PTO定位、PWM调速
- 称重模块:接线、标定、数据处理
- 运动控制:多轴定位、插补、同步
- 模块选型:根据需求选择合适的模块
- 系统集成:多模块协同工作
8.2 调试技巧
特殊功能模块调试注意事项
- 先调试单个模块,再联机调试
- 注意接线正确性和屏蔽接地
- 合理设置滤波参数,避免干扰
- 做好限位保护和急停设计
- 保存调试参数和配置文件
- 编写详细的调试记录和操作手册