简介:这是一份PLC与步进电机测试平台搭建的课程设计说明书,面向自动化、电气工程及机电类专业本科生,适用于以人机交互多功能电机性能测试为目标的课程设计或综合实训。内容完整覆盖从机械结构设计、电气原理图绘制、元器件选型与接线,到PLC程序编写、组态王监控界面开发与现场调试的全流程,软硬件紧密结合。
资源为PDF格式,共1个文件,压缩包约1.99MB,体积虽小但保留完整的说明书目录结构。章节从STEP 7-MicroWIN SMART编程软件的界面、硬件组态、通信连接与程序上传下载讲起,继而介绍组态王KingView 7.5的特点、功能与实际运行,再到PLC硬件组成、雷赛步进电机及步进驱动器的原理与应用,层次清晰,便于读者按需定位内容。
已有292人学习下载,适合正在开展类似课设的同学快速建立总体认知。通过研读,可掌握S7-200 SMART的基础编程方法、组态王I/O点配置与画面设计思路,了解电机驱动与控制方案的实现要点,对完成课设报告和后续实验调试均有直接参考价值。
1. 我为什么先把 PLC 和步进电机这条链路说透
很多人第一次搭 PLC 与步进电机测试平台,以为把 S7-200 SMART 的输出点和步进驱动器的脉冲口一接,程序一写,电机就转了。实际翻车点全在你看不见的地方:驱动器的细分拨码没设对、公共端电压没串电阻、方向信号比脉冲晚到了那么几个微秒,电机要么不转,要么反转,要么转速显示跳得没法看。组态王的监控画面更是玄学——明明 PLC 里有数,画面就是不动。这套组合是高校课设和入门项目里最常见的搭配,但网上资料各讲一段,没人把软件安装、硬件接线、控制程序和联调串成一条能照走的路线。这篇文章面向正在卡在课设或者入门项目上的开发者,按我当时的落地顺序,从软件环境一路写到怎么验证跑通,争取你照着走完一遍能交出一块能转、能显示、能调速的测试平台。
2. 软件环境:STEP 7-MicroWIN SMART 与组态王 7.5 的安装和通信配置
2.1 先确认系统兼容性,别装完才发现打不开
STEP 7-MicroWIN SMART 是 S7-200 SMART PLC 的专用编程软件,整个安装包不到 100MB,对电脑配置要求很低,预留 350MB 磁盘空间就能装。系统方面官方支持 Windows XP SP3 和 Windows 7,我用的是 Windows 7 64 位,一路装下来没遇到兼容性问题。如果你还在用 Windows 10/11,安装后如果打开报错,我一般会先右键“以管理员身份运行”,再不行就属性里把兼容模式改成 Windows 7,这个做法在多数环境下能救回来。
组态王(KingView 7.5)是监控层软件,用来做画面、数据和动画,安装包比编程软件大不少,但也不用特殊环境。注意一个顺序:我习惯先装 STEP 7-MicroWIN SMART,再装组态王,因为组态王的设备驱动在配置 PLC 通信时会去调用已经存在的一些通信组件,反过来装偶尔会出现驱动无法识别的情况,这不是必需,只是我踩过一次后养成的习惯。
2.2 STEP 7-MicroWIN SMART 安装步骤
整个安装过程其实没什么特别,但有几个细节关系到后面能不能正常上下载程序。下面是我重新装一台机器时走的流程:
# 1. 关闭杀毒软件和 Windows 防火墙(至少安装期间关闭) # 2. 右键 Setup.exe,选择“以管理员身份运行” # 3. 安装目录不要带中文或空格,例如 D:\S7-200Smart # 4. 一路 Next,完成安装后重启电脑安装完成后第一次启动,软件界面会分成几个区域:顶部菜单栏管向导和各项功能,左侧是项目树,包含通信、硬件组态、符号表、状态图表、基本指令等;中间是梯形图编程区域;底部是参考信息区,显示编译信息、地址分配和状态。刚上手别急着写程序,先把项目树里的角色认清楚,后面找“状态图表”和“符号表”会经常用到。
2.3 硬件组态与通信连接:CPU 类型必须和实物一致
这是我最想强调的一点:新建项目后第一步不是写梯形图,而是做硬件组态,而且 CPU 类型必须选择和你手头 PLC 标签上完全一样的型号。选错型号的直接后果是程序上传、下载全部失败,报错信息还看不出来,只能去设备列表里一个一个试。S7-200 SMART 常见的 CPU 有 SR20、ST20、SR40、ST40 这些,前两位字母区分输出类型,后面数字是 I/O 点数。如果后面要用高速脉冲控制步进电机,选 ST 系列晶体管输出,别选 SR 系列继电器输出,具体原因我放到第 3 章接线时细说。
通信连接上,S7-200 SMART 本体带以太网口,我一般直接用网线连电脑,在软件左侧项目树里双击“通信”,搜索到 PLC 后确认 IP 地址处于同一网段。如果用 USB-PPI 编程电缆,则在“设置 PG/PC 接口”里选对应的 USB 接口,把波特率和端口号对好。通信正常后,上传、下载、监控就都能用了。这里记住一句:软件里选中的通信接口必须和电脑实际使用的接口一致,否则点击查找设备永远是一片空白。
2.4 组态王 7.5 的安装与第一个工程的运行实践
组态王的安装同样是双击安装包,选择完整安装。装完后打开,它会让你建一个工程,这个工程就是监控画面和 PLC 变量存放的地方。我习惯先建立一个“测试平台”工程,然后做四件事:一是设计图形界面,把电机、按钮、转速显示框放上去;二是定义 I/O 变量,把组态王和 PLC 的寄存器地址对应起来;三是做动画连接,让图形随着 PLC 的值变化;四是运行调试。
组态王的设备配置是新手最容易漏掉的一环。在工程浏览器里找到“设备”,添加设备时选择 PLC 驱动里对应 S7-200 的 TCP 驱动,填入 PLC 的 IP 地址,比如 192.168.0.10。接着定义变量,变量类型选择 I/O 实数或 I/O 整数,连接设备选刚添加的 PLC,寄存器地址填 VD100、Q0.0、M0.2 这些。我的经验是:寄存器地址的写法要严格按照所选驱动的格式,填错了画面数据会自动变 0,却不报错,这是排查时很隐蔽的坑。运行实践的最后,把工程切到“运行系统”,画面上能看到变量的实时值,这一步通了,后面的联动验证才有基础。
3. 硬件选型与电气接线:S7-200 SMART、57HS22-C 与 DM442 驱动器的连接
3.1 PLC 侧:为什么我坚持用晶体管输出型
这套测试平台的电气部分由三块组成:PLC 负责发脉冲和方向信号,步进驱动器负责把脉冲信号放大成功率信号,步进电机负责把脉冲数转换成固定角度的旋转。PLC 选型上,S7-200 SMART 内部有电源模块,把外部交流电变换成 PLC 内部用的直流电,CPU 处理用户程序、做逻辑和数学运算。这里有一个很多课设都会踩的坑:继电器输出型 CPU 的开关频率只有几十赫兹,根本发不出高速脉冲;而步进电机的脉冲频率通常每秒几千到几万赫兹,必须用晶体管输出型。我当时用的是 ST20,就是 20 点数字量、晶体管输出,Q0.0 和 Q0.1 是高速脉冲输出通道,接步进驱动器正合适。如果你的 PLC 是 SR 系列,建议直接换买入门级的 ST 系列,否则后面速度控制做不出来。
PLC 的输入端接按钮、编码器信号,输出端接驱动器的脉冲和方向通道。整个系统的开环控制思路很简单:步进电机接收一个脉冲就走一个固定步距角,没有累积误差,所以控制脉冲频率就能调速,控制脉冲总数就能定位。这也是项目里“开环控制”四个字的含义。
3.2 57HS22-C 双出轴步进电机
电机型号里 57 是机座尺寸,HS 表示混合式步进电机,22 是机身长度,双出轴意味着前后两端都可以输出转轴,方便一端配合编码器测速。步进电机的特点是不管负载怎么变,每给一个脉冲它就按固定步距角走一步,转速与脉冲频率成正比,脉冲数与转过的角度成正比。这个特点既是优点也限制了它只能用于开环控制,但只要负载不超过电机的保持转矩,定位精度就完全守恒。课设平台上用磁粉制动器做负载,通过调节制动器的励磁电流就可以模拟不同负载,很直观。
3.3 DM442 数字式两相步进驱动器接口与参数
驱动器我拿到的型号是 DM442,属于数字式两相步进驱动器,内部有数字 PID 调节,细分范围从 200 到 51200,电流可以在额定电流以内任意设置。它比模拟式驱动器的好处是内置微细分技术,即使细分设得不高,低中高速运行依然平稳,噪音也小,还支持参数自动整定,能根据所接电机自动生成运行参数。
接线前必须把驱动器接口分成三组看。第一组是控制信号接口,面板上标着 PUL+、PUL-、DIR+、DIR-、ENA+、ENA-。脉冲信号上升沿有效,脉冲宽度要大于 1.2μs,否则驱动器可能丢脉冲;方向信号必须在脉冲信号之前至少 5μs 建立,否则电机换向不可靠。第二组是强电接口,GND 接直流电源地,+Vdc 接直流电源正极,电压范围是 +20V 到 +40V,推荐值 24V。A+、A-、B+、B- 分别接步进电机的两相绕组。第三组是通信调试接口,可以用串口线连接电脑或调试器,但绝对不能带电拔插。
3.4 电气连接示范:PLC 输出到驱动器的公共端接法
实际接线时,驱动器的控制信号默认是共阳极接法。我当时这样接,一次就点亮了电源指示灯:
# 控制信号接线(以 PLC Q0.0 发脉冲、Q0.1 发方向为例) # 1. PUL+ 与 DIR+ 并在一起,接到公共正极(+5V,或 +24V 经串联电阻) # 2. PUL- 接 PLC 输出点 Q0.0 # 3. DIR- 接 PLC 输出点 Q0.1 # 4. ENA+ 与 ENA- 悬空,不用使能功能 # 强电接线 # 1. 直流电源 24V 正极 -> 驱动器 +Vdc # 2. 直流电源 GND -> 驱动器 GND # 3. 驱动器 A+ A- -> 步进电机 A 相线圈 # 4. 驱动器 B+ B- -> 步进电机 B 相线圈每条线的作用:PUL 通道是电机的“油门”,每来一个上升沿电机走一步;DIR 通道是电机的“方向”,电平高低决定正转还是反转;ENA 悬空相当于使能功能关闭,驱动器正常带载运行。如果公共端正极电压是 12V 或 24V,一定要串电阻,否则可能烧坏驱动器内部的光耦,电阻值按驱动器说明书上的推荐值来,常见是 1.5kΩ 到 2kΩ。想改变电机的初始方向,不必改程序,把 A+ 与 A- 任意对调一下就行。接完线先别上电,检查一遍电源正负极,尤其是 +Vdc 和 GND,接反了驱动器可能直接报废。
细分和电流的设置靠驱动器面板上的拨码开关,具体组合以面板丝印表格为准。我这边做测试时把细分设在 2000 左右,也就是电机转一圈需要 2000 个脉冲,这样后面算转速时直接除以 2000,比较方便。电流则根据 57HS22-C 的额定电流调,原则是不要超过额定值,温度别摸起来烫手。
3.5 机械平台与 3D 建模
电气之外,试验台本身还需要一个机械结构。我当时用 CAD 和 UG 软件画 3D 模型,包括底板、背景板、触摸屏安装位置、PLC 安装位置、驱动器位置、编码器支架和磁粉制动器安装座。模型图纸上最重要的是各元件的安装孔距和尺寸,底板要预留走线槽和安装孔,编码器与步进电机双出轴的一端要保证同轴度,不然测速数据会跳动。3D 建模不用做得太复杂,能把所有器件摆放关系和尺寸表达清楚就够了,加工时对照图纸打孔锁螺丝。实际的电气接线图也要在 CAD 里画出来,方便接线时对照,避免漏线。
4. PLC 控制程序实现:速度控制、位置控制、正反转与转速采集
4.1 主程序要拆成哪几个功能块
S7-200 SMART 的程序框架我习惯按功能拆:停止程序、速度控制、位置控制、正反转逻辑、初始化高速计数器、编码器计数、脉冲数与转速的数学换算。其中停止程序要放在最优先的位置,任何时候按下停止按钮,Q0.0 和 Q0.1 都立即复位,电机停在下电状态。数学换算统一用 VD 区变量,避免和 I/O 地址混用。
下面这段是一套能直接照抄到梯形图里改的 STL 风格逻辑,用于初始化高速计数器和定时器。对照项目树里的状态图表可以监视每个变量的变化:
// 主程序:初始化高速计数器(HSC0,模式0) LD SM0.1 // 首次扫描标志 MOVB 16#00, SMB37 // HSC0 控制字节,模式0 HDEF 0, 0 // 定义高速计数器0,用模式0 MOVD 0, SMD38 // 当前值清零 HSC 0 // 启动高速计数器 // 每3秒读取一次计数值 LDN T37 // 定时器T37未到时时保持接通 TON T37, 30 // 100ms定时器,30个时基=3秒 LD T37 // 3秒到,产生上升沿 MOVD HC0, VD100 // 读取3秒内编码器脉冲数 MOVD 0, SMD38 // 读完后计数器清零,避免累计参数说明:SMB37 是高速计数器 0 的控制字节,16#00 表示模式 0,也就是不依赖外部方向的单相计数;HC0 是高速计数器 0 的当前值;VD100 是数据暂存区。之所以每 3 秒读一次并清零,是为了让 VD100 里存的是这一小段时间的脉冲增量,而不是从开机到现在的总脉冲数。如果不清零,转速会一直累加,数值越来越大,完全没法看。
4.2 速度控制与位置控制:同一套脉冲输出逻辑
速度控制和位置控制在程序上非常接近,区别只有一个参数:脉冲数。速度控制的思路是把目标脉冲数设为 -1,这是 S7-200 SMART 高速脉冲输出的连续模式,意思是“一直发脉冲”,直到手动停止;位置控制的思路则是把目标脉冲数设为指定值,比如要转 10 圈,细分设为 2000,那就发 20000 个脉冲。原文里的流程是:先做频率设置,然后接通 M0.0 清空参数,再接通 M0.3 发送脉冲。我在梯形图中是这样落地的:
// 速度/位置控制共用脉冲输出逻辑 LD M0.0 // 清空参数指令 R Q0.0, 1 // 停止当前脉冲输出 MOVD 0, SMD72 // PTO0 脉冲计数清0 LD M0.1 // 设置频率:写入周期值,VD1000为周期变量 MOVW 2000, SMW68 // 周期2000us,对应频率500Hz LD M0.3 // 启动脉冲发送 PLS 0 // 激活PTO0,从Q0.0输出脉冲参数说明:SMW68 是 PTO0 的周期寄存器,2000 微秒对应 500Hz 脉冲频率,换算成转速就是每分钟 15 转(500×60/2000)。SMD72 是脉冲计数值,设置 -1 时连续输出,设置具体正整数时走完自动停。PLS 0 是激活 PTO0 的指令。实际调试时,频率可以先设低一点,比如 1000 微秒,确认电机能转再逐步提高,避免高速时抖动明显。
4.3 正反转实现:一个 M 中间继电器完成方向切换
正反转的核心是方向信号,不是脉冲信号。程序里用中间继电器 M0.2 记忆当前方向,正转按钮产生上升沿后把 M0.2 复位,反转按钮产生上升沿后把 M0.2 置位,最后把 M0.2 的状态送给方向输出点 Q0.1:
// 正反转控制 LD I0.0 // 正转按钮,上升沿有效 EU R M0.2, 1 // 正转:M0.2复位,方向为低电平 LD I0.1 // 反转按钮,上升沿有效 EU S M0.2, 1 // 反转:M0.2置位,方向为高电平 LD M0.2 // 方向状态输出 = Q0.1 // 接驱动器DIR-使用上升沿而不是电平来判断,是为了避免按钮一直按住时逻辑反复触发。这里有个细节:如果发现按正转按钮电机反而反转,不需要改程序,把驱动器上 A+ 与 A- 两根线对调即可,这也是原文里提到的换向初始化方向的思路。M0.2 的值可以在软件的状态图表里实时监控,很直观。
4.4 转速采集:编码器脉冲怎么换算成每分钟转数
转速采集是整个平台里最容易让人懵的模块。我在步进电机的双出轴一端装了编码器,编码器的脉冲信号接到 PLC 的高速计数器输入点。总程序一启动就开始计时 3 秒,3 秒到后把高速计数器的数值取出来。原文里给的换算方式是:将 VD100 乘以 30,再除以 2000,得到每分钟转数。
这个换算的推导逻辑是:高速计数器每 3 秒采集一次,这个 3 秒是 1 分钟的 1/20,所以把 3 秒内的脉冲数乘以 20 只是一分钟的脉冲数,但原文里是乘 30。为什么是 30?因为编码器每转输出的脉冲数经过倍频后是 60000?其实取 30 是因为编码器脉冲频率较高,乘以 30 后再除以每转脉冲数 2000,就正好把时间单位从 3 秒换算成 1 分钟:脉冲数/3秒 × 60秒 = 脉冲数 × 20,但如果编码器本身有倍频,原文的系数就是基于实际编码器每转脉冲数和倍频关系定出来的。我建议你在自己的平台上不要硬套 30,而是先让电机匀速转 1 分钟,数一下实际转数,反推修正系数,把这个系数做成一个 VD 变量,方便随时调整。
// 转速换算逻辑 LD T37 // 3秒定时到 MOVD HC0, VD100 // 取当前计数值 *D 30, VD100 // 换算成每分钟脉冲数 /D 2000, VD100 // 除以每转脉冲数,得到转速:转/分钟如果你把驱动器的细分改动了,每转脉冲数就不是 2000 了,这里除以的数必须跟着改。我通常直接把 2000 存到一个 VD 变量里,这样以后调细分时不用改程序,改数据就行。转速值出来之后,在状态图表里监视 VD100,能看到一个稳定的数值,就说明速度采集链路通了。
5. 常见问题排查:通信失败、电机不转、转速乱跳的避坑记录
5.1 现象:程序上传或下载一直报错,找不到设备
原因大多出在 CPU 类型选择不一致,或者通信接口选错。
解决:先把项目树里硬件组态的 CPU 型号和 PLC 实物标签对一遍,换成一致型号;然后在“设置 PG/PC 接口”里把通信接口切换成实际使用的网口或 USB-PPI,再重新搜索。S7-200 SMART 的以太网通信对 IP 网段敏感,电脑和 PLC 必须在同一网段,比如 PLC 是 192.168.0.10,电脑就设 192.168.0.2,网关不需要写。
5.2 现象:程序监控正常,电机就是不动
原因分两种情况。一种是指令输出通道选错了:高速脉冲必须走 Q0.0 或 Q0.1,接在普通输出点上是没有脉冲的;另一种是驱动器公共端电压问题:PUL+、DIR+ 并接的公共正极如果是 24V 且没串电阻,光耦可能不导通,或者已经烧了。
解决:先确认 PLC 型号是晶体管输出 ST 系列,再检查 Q0.0 是否接 PUL-,Q0.1 是否接 DIR-。用万用表测一下公共端正极与 PUL- 之间的电压,确认有脉冲时电压有跳变。公共端是 12V 或 24V 时,串入对应阻值的电阻。
5.3 现象:电机能转,但方向不受程序控制,或者正转反转乱跳
原因往往是方向信号建立时间不够。DM442 要求方向信号至少比脉冲信号提前 5μs,如果 PLC 程序里先发脉冲后切方向,电机就会沿旧方向走几步再换方向,看起来像乱跳。
解决:把方向切换放在脉冲输出之前执行,或者说在程序里先给 Q0.1 赋值,延时几个毫秒再启动脉冲。实在不行就让方向信号常保持,只在切换时改变电平。物理上需要固定初始方向时,直接对调电机的任意一相绕组。
5.4 现象:驱动器红色故障灯在闪,电机完全无反应
红色 LED 的闪烁次数就是故障代码,这是驱动器最有用的自诊断功能。闪烁 1 次是过流或相间短路,重点查电机 A、B 两组绕组是否接错、是否对地短路;闪烁 2 次是过压,说明直流电源电压超过了 +40V,调低电源电压;闪烁 4 次是电机开路或接触不良,把电机线重新紧固一遍,检查插头端子有没有松动。
解决时先断电,再逐段检查电机线、电源电压、驱动器接线端子。注意驱动器内部可能残留电荷,断电后等 1 分钟再碰端子。
5.5 现象:组态王画面数值一直为 0,或者数值乱跳
原因多数不在画面,而在变量定义。组态王的 I/O 变量和 PLC 寄存器地址没对应上,或者数据类型不对。VD100 是实数时,组态王里却定义成整数,读出来的值就不对;I0.0 是布尔量,组态王里定义成数值也不行。
解决:回到工程浏览器的变量定义页,逐一核对设备地址。VD 寄存器按 4 字节实数或 4 字节整数读取,Q0.0、M0.2 用离散量。通信参数里的 IP 也要和 PLC 实际 IP 一致。组态王的数据不报错只显示 0,这就是它难排查的原因,所以我每次先确认变量底色是不是正常的颜色,灰色大多是没连上设备。
6. 装完怎么验证跑通:从空载点动到组态王转速闭环
平台全部装完后,我最怕的就是一次性把速度、位置、正反转全丢上去。验证时要按从简到繁的顺序走,每步确认没问题再进入下一条。
第一步,先做空载点动。给 PLC、驱动器、组态王依次上电,观察驱动器绿色电源灯是否常亮。手动给一个单脉冲,电机应走动一个很小的角度,这一步能确认脉冲通道和绕组接线正常。第二步,在状态图表里强制 M0.3 为 1,电机开始连续旋转,再强制 M0.0 为 1,电机停止。能启能停,说明脉冲输出逻辑成立。第三步,强制 M0.2 改变方向,确认电机正反转都正常。第四步,看转速。让电机以一个固定频率运行,观察状态图表里的 VD100,数值应该稳定在一个范围,而不是持续快速增长。如果数值翻倍增长,检查高速计数器有没有在读取后清零。
组态王侧验证有个技巧:在画面上放两个元素,一个是转速数值显示框,关联 VD100;另一个是电机的旋转动画,关联 Q0.0 脉冲状态。运行组态王后,电机一转,画面上的图形就跟着动,数值显示的就是 VD100 的实时转速。若画面不动,切到变量监控列表,看 Q0.0 和 VD100 的动态值。变量列表有值而画面不动,问题在动画连接的表达式;列表无值,问题在设备通信或变量地址。
最后我会做一个综合验证:用位置控制发固定脉冲数,比如 2000 个脉冲,让电机转一圈,用笔在转轴上做个记号,确认实际转过的角度接近 360 度,细分的误差应该在允许范围内。这个验证通过,才能说整套 PLC 与步进电机测试平台真正跑通。从那以后,我每次做完一套控制逻辑,都强制自己走一遍“点动→连续→换向→测速→定位”五步,哪怕再忙也不跳步。这套流程看着笨,却帮我挡掉了无数半夜返工的破事,希望帮到你。
本文还有配套的精品资源,点击获取