PLC实验—西门子S7 1200读取旋转编码器数据并计算电机转速
PLC实验—西门子S7 1200读取旋转编码器数据并计算电机转速
注意PTO控制步进电机实验博途软件需要V14版本,不然没有PTO功能块
软件的下载请点击下方百度网盘的链接
链接:https://pan.baidu.com/s/11mQFVnaQxrUy4W9nGIk8Jw
提取码:6lva
详细的操作指导视频已经放到了B站上
Simens S7-1200读取增量式编码器数据
Simens S7-1200根据编码器数据计算电机转速
主块
首先要在设备组态
启用高速计数器
硬件输入
为I0.0和I0.1
这里将输入滤波器的时间改为0.8ms
先看变量表
main中添加了4个程序段,这是基于PTO控制步进电机基础上实现的,可以先看前面的博客
PLC编程与实践——基础实验
ID1000是HSC_1的地址,将其move到MD1000中
从上面可以看出编码器A相接I0.0,B相接I0.1,接两根信号线即可
CTRL_HSC: 控制高速计数器
使用“控制高速计数器”指令,可以对参数进行设置并通过将新值加载到计数器来控制 CPU 支持的高速计数器。指令的执行需要启用待控制的高速计数器。对于指定的高速计数器,无法在程序中同时执行多个“控制高速计数器”指令
可以在帮助中查看信息
辅助块
新建一个中断OB,周期为200ms
新建一个FB,用于计算电机的实际转速,在中断OB中调用该FB
FB_Counter_to_Speed
先看变量,注意输入/输出/全局变量的设置
用下面的公式计算电机实际转速
功能块实现
Current_Counter - Recoder_Counter = Delta_Counter
Delta_Counter / (Cycle_Time * 1000) = ratio_result
DIV
中的1000是编码器的线数,CALCULATE
是ms到s的换算,这里的单位是转/秒
注意用move去更新
Recoder_Counter
Cyclic interrupt 200ms
在组织块中直接调用函数块即可
实际接线
接线其实很简单
实验结果
通过CTRL_HSC可以给编码器初值添加一个偏置
在main中MD1000显示了编码器的脉冲数
FB_Counter_to_Speed函数块中可以显示步进电机的转速
Cyclic interrupt 200ms组织块中显示的步进电机转速与FB_Counter_to_Speed中相同
PLC实验—西门子S7 1200读取旋转编码器数据并计算电机转速相关推荐
- PLC实验—西门子S7 1200 PID控制步进电机转速
PLC实验-西门子S7 1200 PID控制步进电机转速 严格讲并不是PID控制,因为并不是并不研究这个方向,研二又比较忙,时间限制只加了比例系数 这里只是抛砖引玉,希望大家可以进一步完善补充 思路 ...
- 三菱PLC读取旋转编码器信号
定义: 旋转编码器是用来测量转速的工具,可将输出轴的角位移.角速度等机械量转换成相应的电脉冲以数字量输出,同时旋转编码器可以配合PWM技术实现对速度的调节. 旋转编码器有单路输出.双路输出和三路输出等 ...
- 初出茅庐的小李第36篇博客之读取旋转编码器正反转状态(arduino uno 测试)
旋转编码器的引脚 CLK(A相) DATA(B相) SWITCH VCC GND 工作原理 旋转编码器的工作原理以及如何在Arduino中使用 https://www.yiboard.com/thre ...
- 西门子S7通讯批量写入char数据
写入char plc.Write(DataType.DataBlock, 2, 356, (byte)('2')); byte[] TightenEnable = new byte[] { (byte ...
- C#使用西门子S7 协议读写PLC DB块
教大家使用C#如何方便快速的读写西门子DB块的值,实现上位机跟plc进行通讯的流程 使用的西门子PLC型号,S7 1200 1.Nuget 安装s7 驱动包 2.西门子plc定义一个db块,这个是我们 ...
- 【swjtu】数字电路实验6_旋转编码器人机交互电路设计
一. 实验目的 1 . 学习旋转编码器的使用. 2 . 巩固 Verilog HDL 设计时序电路. 二. 实验内容 旋转编码器是一种输入器件,常用于示波器.信号源.汽车仪表盘等各种电子设备中,它可以 ...
- PLC与旋转编码器的连接
PLC与旋转编码器的连接--PLC与常用输入设备的连接 旋转编码器是一种光电式旋转测量装置,它将被测的角位移直接转换成数字信号(高速脉冲信号).因此可将旋转编码器的输出脉冲信号直接输入给PLC,利用P ...
- 旋转编码器:如何在 Arduino 上使用 Keys KY-040 编码器
旋转编码器是一种输入设备,您可以在任一方向连续旋转.当您转动设备时,它会生成数字脉冲,以使用两个相控输出信号显示旋转方向.这两个输出还指示单个位置运动,因此您可以在控制面板中使用它们来增加或减少参数. ...
- 安川伺服电机的,绝对值编码器数据如何读取?
问题背景: 1.使用的是安川绝对值编码器伺服电机,比如SGM7J-04A7C6S,横杠后第4位是数字的话,就是绝对值编码器. 2.上位机不支持M-II/III总线通讯,绝对值编码器数据只能通过串口通讯 ...
最新文章
- (二)把域服务升级和迁移到Windows Server 2012 R2上
- pycharm调出参数提示气泡
- 数据中心级交换机考核方法
- 【基础】ABAP不同变量类型之间数值大小比较
- pyqt 槽任意参数_PyQt5信号与槽机制入门(一)
- 字符串题目---2判断两个字符串是否为变形词
- setup2go制作安装程序
- matlab搭建的应用层架构逻辑,软件设计的三层架构
- 机器学习Machine learning in action实战相关资料
- python3中round的用法_Python 3标准库用法--reversed、round、set
- 检查字段是否包含字符串
- ShenYu 网关源码学习(1)- 简单介绍、编译和测试
- CISSP-D7-运营安全
- mycat分片规则详解+实例演示
- 现在编程主要用什么软件
- java数组初始化赋值_Java数组的三种初始化方式
- 肾有多好人就有多年青――男女通用
- 917. 仅仅反转字母
- C++ 利用结构体数组编写一个程序,对10名小学生的信息进行管理,学生结构体的成员包括姓名、学号、年龄、语文成绩、数学成绩、英语成绩、三门课总分等
- Tomb.Finance的每周更新(3.14-3.20)