问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

西门子S7-1200 PLC读取旋转编码器数据并计算电机转速实验

创作时间:
作者:
@小白创作中心

西门子S7-1200 PLC读取旋转编码器数据并计算电机转速实验

引用
CSDN
1.
https://blog.csdn.net/Solititude/article/details/129312857

可编程逻辑控制器(PLC)是工业自动化领域的重要设备,广泛应用于各种工业控制场景。旋转编码器是一种将机械位移转换为电信号的传感器,常用于测量电机转速和位置。本文将介绍如何使用西门子S7-1200 PLC读取旋转编码器数据并计算电机转速,包括硬件接线、软件编程和实验结果展示。

实验环境准备

本实验需要使用西门子S7-1200 PLC和增量式旋转编码器。实验所用的博途软件需要V14版本,因为只有该版本支持PTO(脉冲串输出)功能块。如果尚未安装该版本软件,可以从西门子官方网站下载。

硬件接线

旋转编码器的接线相对简单,只需要将A相和B相信号分别连接到PLC的I0.0和I0.1端口即可。硬件接线图如下:

软件编程

主程序块

在设备组态中启用高速计数器,并将硬件输入设置为I0.0和I0.1。为了提高信号质量,可以将输入滤波器的时间设置为0.8ms。

在主程序中添加4个程序段,这些程序段基于PTO控制步进电机的基础实验。在变量表中,将HSC_1的地址(ID1000)移动到MD1000中。编码器的A相连接到I0.0,B相连接到I0.1。

使用“控制高速计数器”指令(CTRL_HSC)对高速计数器进行参数设置。需要注意的是,对于指定的高速计数器,程序中不能同时执行多个“控制高速计数器”指令。

中断程序块

创建一个周期为200ms的中断OB,并在其中调用一个FB(功能块),用于计算电机的实际转速。

转速计算功能块(FB_Counter_to_Speed)

该功能块用于根据编码器脉冲计算电机转速。其变量设置包括输入、输出和全局变量。转速计算公式如下:

Current_Counter - Recoder_Counter = Delta_Counter
Delta_Counter / (Cycle_Time * 1000) = ratio_result

其中,1000代表编码器的线数,CALCULATE用于将时间单位从ms转换为s,最终得到的转速单位为转/秒。计算完成后,需要更新Recoder_Counter的值。

中断组织块

在200ms周期的中断组织块中直接调用FB_Counter_to_Speed功能块。

实验结果

通过CTRL_HSC指令可以为编码器初值添加偏置。在主程序中,MD1000显示了编码器的脉冲数。在FB_Counter_to_Speed功能块中可以显示步进电机的转速,且该转速与200ms中断组织块中显示的转速相同,验证了计算的准确性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号