西门子S7-200smart PLC二轴运动控制实例:高速脉冲控制步进/伺服电机,触摸屏MT6070IH控制及位置显示案例
通讯参数设置最关键,MT6070IH走的是RS485,PLC的PORT0口接上,波特率设成187.5k才跑得稳。西门子S7-200smart PLC运动控制 二轴,高速脉冲控制步进电机或者伺服电机,触摸屏控制,可以设置绝对位置,触摸屏通讯,实时显示当前位置 实例,程序,案例 触摸屏型号MT6070IH ,西门子S7-200smart PLC运动控制 二轴,高速脉冲控制步进电机或者伺服电机,触摸屏控
西门子S7-200smart PLC运动控制 二轴,高速脉冲控制步进电机或者伺服电机,触摸屏控制,可以设置绝对位置,触摸屏通讯,实时显示当前位置 实例,程序,案例 触摸屏型号MT6070IH ,
刚接了个小项目,客户要搞个二轴物料搬运平台。手头正好有台S7-200smart SR40和MT6070IH触摸屏,这组合搞运动控制挺合适。直接上干货,说说怎么用高速脉冲带伺服,顺便把触摸屏交互做明白。
先看PLC的硬件配置。SR40自带两个100kHz高速脉冲输出口,刚好带两个伺服轴。记得在块里把Q0.0和Q0.1的输出类型改成PTO,否则脉冲出不来。运动控制向导必须走一波,生成轴控制子程序:
//轴参数初始化
AXIS0_CTRL(
EN:=True,
MODE:=1, //绝对定位模式
STOP:=M0.2, //急停信号
Done=>M0.3, //完成标志
Error=>VB100); //错误代码
这里有个坑要注意,伺服驱动器的电子齿轮比要和PLC侧的脉冲当量匹配。比如丝杆导程5mm,电机转一圈需要10000脉冲,那每个脉冲对应0.0005mm。把这些参数填到向导里,后面编程直接按毫米操作。
触摸屏这边,用EasyBuilder Pro开新工程。通讯参数设置最关键,MT6070IH走的是RS485,PLC的PORT0口接上,波特率设成187.5k才跑得稳。地址映射这块,触摸屏的数值输入框直接绑定VD200(轴1目标位置)和VD204(轴2目标位置),实时显示用VW210和VW214。
移动控制的关键程序长这样:
//轴1绝对定位
AXIS0_GOTO(
POSITION:=VD200, //目标位置
SPEED:=500, //脉冲频率
MODE:=0, //绝对移动
START:=M0.0, //启动信号
Done=>M0.1, //完成信号
Error=>VB101);
调试时发现个有意思的现象:伺服偶尔会过冲。后来发现是加减速参数没设好。在运动向导里把S曲线加速度改成30%后,运动平滑多了。顺手在触摸屏做了个加速度参数设置框,绑定到VD208,程序里改成:
MOVR VD208, AC0
/R 100.0, AC0 //将百分比转换为小数
MOVR AC0, SMB158 //写入加速度参数寄存器
实时位置显示用了高速计数器。S7-200smart的HSC0和HSC3对应Q0.0和Q0.1的脉冲反馈。配置完记得在中断程序里更新V存储区:
//HSC0中断服务程序
MOVD HC0, VD210 //轴1当前位置
MOVD HC3, VD214 //轴2当前位置
最后在触摸屏画了个简易示教界面,加了三个功能键:手动前进、示教点保存、一键回原点。调试时发现手动模式按下没反应,查了半天原来是PLC里的手动程序没做互锁。加了个状态切换的互锁逻辑:
LD M10.0 //自动模式标志
AN M10.1 //手动模式标志
= M10.2 //模式互锁标志
现在设备跑得挺溜,客户验收时非要测试连续运行8小时。结果中途出现过一次位置偏移,查到最后是伺服电机刹车电阻发热导致。这事提醒我,下次做长时间运行的设备得把刹车电阻外置,或者改用机械抱闸。
整个项目下来,最大的收获是运动控制不仅要程序写对,还得吃透硬件特性。特别是脉冲当量和机械结构的配合,差之毫厘谬以千里。源码已经整理成库文件,下次类似项目直接调用能省不少事。
最近在车间折腾了一套西门子S7-200smart PLC的运动控制,正好用到了MT6070IH触摸屏做交互界面。这套两轴控制方案实测能稳定驱动步进电机和伺服电机,关键是可以玩绝对定位控制,咱们直接上干货。
硬件配置其实挺简单,PLC的Q0.0和Q0.1口输出高速脉冲,分别接X/Y轴驱动器。注意在驱动器侧要把脉冲模式调成"脉冲+方向",这时候PLC的Q0.2和Q0.3正好作为方向信号输出。触摸屏通过RS485接口和PLC通讯,波特率建议设成19200比较稳。
PLC程序里重点用PTO向导生成两个轴的脉冲控制模块。配置轴参数时有个细节容易翻车:脉冲当量要按实际机械结构计算。比如丝杆导程5mm,驱动器细分设为10000脉冲/转,那每毫米对应2000个脉冲。这里直接贴段关键代码:
// 轴1初始化
MOV_B 16#8D, SMB67 // 允许PTO操作,选择毫秒时基
MOV_W 500, SMW168 // 周期时间500ms
MOV_D 5000, SMD172 // 初始脉冲数
PLS 0 // 激活PTO0
这段配置让轴1以500ms周期发送5000个脉冲,实际使用时要根据运动速度换算。触摸屏开发这边,用EBPro新建工程时记得选西门子PPI协议。在画面上拖两个数值输入框,变量分别绑定到VD100和VD104(对应轴1和轴2的目标位置)。
实时显示当前位置有个小技巧:在PLC里用HC0和HC1高速计数器捕捉实际脉冲数,然后通过比例换算成工程单位。触摸屏上显示控件绑定VW200和VW204这两个寄存器,PLC程序里要定期执行:
// 位置反馈处理
MOV_D HC0, VD200 // 读取轴1实际脉冲数
DIV VD200, 2000.0 // 换算为毫米单位
ROUND VD200, VD200 // 取整数部分
调试时容易遇到方向信号混乱的问题,有个应急办法是在方向输出口并接LED指示灯,肉眼确认电机转向是否符合预期。当触摸屏发送绝对位置指令时,PLC需要先判断当前位置与目标位置的关系来决定方向信号状态,这部分的逻辑处理可以封装成子程序:
// 绝对位置运动判断
LDW>= VD100, VD200 // 比较目标位置和当前位置
= Q0.2 // 方向信号输出
这套方案经过48小时连续跑机测试,累计发送超过200万次脉冲指令没有出现丢步现象。关键点在于中断处理程序的优化,建议在PTO完成中断里加入位置校验和异常报警功能。实际工程文件已经上传到GitHub(地址私信),包含完整的注释说明和触摸屏界面源文件。
西门子S7-200smart PLC运动控制 二轴,高速脉冲控制步进电机或者伺服电机,触摸屏控制,可以设置绝对位置,触摸屏通讯,实时显示当前位置 实例,程序,案例 触摸屏型号MT6070IH ,





更多推荐

所有评论(0)