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读取旋转编码器数据并计算电机转速相关推荐

  1. PLC实验—西门子S7 1200 PID控制步进电机转速

    PLC实验-西门子S7 1200 PID控制步进电机转速 严格讲并不是PID控制,因为并不是并不研究这个方向,研二又比较忙,时间限制只加了比例系数 这里只是抛砖引玉,希望大家可以进一步完善补充 思路 ...

  2. 三菱PLC读取旋转编码器信号

    定义: 旋转编码器是用来测量转速的工具,可将输出轴的角位移.角速度等机械量转换成相应的电脉冲以数字量输出,同时旋转编码器可以配合PWM技术实现对速度的调节. 旋转编码器有单路输出.双路输出和三路输出等 ...

  3. 初出茅庐的小李第36篇博客之读取旋转编码器正反转状态(arduino uno 测试)

    旋转编码器的引脚 CLK(A相) DATA(B相) SWITCH VCC GND 工作原理 旋转编码器的工作原理以及如何在Arduino中使用 https://www.yiboard.com/thre ...

  4. 西门子S7通讯批量写入char数据

    写入char plc.Write(DataType.DataBlock, 2, 356, (byte)('2')); byte[] TightenEnable = new byte[] { (byte ...

  5. C#使用西门子S7 协议读写PLC DB块

    教大家使用C#如何方便快速的读写西门子DB块的值,实现上位机跟plc进行通讯的流程 使用的西门子PLC型号,S7 1200 1.Nuget 安装s7 驱动包 2.西门子plc定义一个db块,这个是我们 ...

  6. 【swjtu】数字电路实验6_旋转编码器人机交互电路设计

    一. 实验目的 1 . 学习旋转编码器的使用. 2 . 巩固 Verilog HDL 设计时序电路. 二. 实验内容 旋转编码器是一种输入器件,常用于示波器.信号源.汽车仪表盘等各种电子设备中,它可以 ...

  7. PLC与旋转编码器的连接

    PLC与旋转编码器的连接--PLC与常用输入设备的连接 旋转编码器是一种光电式旋转测量装置,它将被测的角位移直接转换成数字信号(高速脉冲信号).因此可将旋转编码器的输出脉冲信号直接输入给PLC,利用P ...

  8. 旋转编码器:如何在 Arduino 上使用 Keys KY-040 编码器

    旋转编码器是一种输入设备,您可以在任一方向连续旋转.当您转动设备时,它会生成数字脉冲,以使用两个相控输出信号显示旋转方向.这两个输出还指示单个位置运动,因此您可以在控制面板中使用它们来增加或减少参数. ...

  9. 安川伺服电机的,绝对值编码器数据如何读取?

    问题背景: 1.使用的是安川绝对值编码器伺服电机,比如SGM7J-04A7C6S,横杠后第4位是数字的话,就是绝对值编码器. 2.上位机不支持M-II/III总线通讯,绝对值编码器数据只能通过串口通讯 ...

最新文章

  1. (二)把域服务升级和迁移到Windows Server 2012 R2上
  2. pycharm调出参数提示气泡
  3. 数据中心级交换机考核方法
  4. 【基础】ABAP不同变量类型之间数值大小比较
  5. pyqt 槽任意参数_PyQt5信号与槽机制入门(一)
  6. 字符串题目---2判断两个字符串是否为变形词
  7. setup2go制作安装程序
  8. matlab搭建的应用层架构逻辑,软件设计的三层架构
  9. 机器学习Machine learning in action实战相关资料
  10. python3中round的用法_Python 3标准库用法--reversed、round、set
  11. 检查字段是否包含字符串
  12. ShenYu 网关源码学习(1)- 简单介绍、编译和测试
  13. CISSP-D7-运营安全
  14. mycat分片规则详解+实例演示
  15. 现在编程主要用什么软件
  16. java数组初始化赋值_Java数组的三种初始化方式
  17. 肾有多好人就有多年青――男女通用
  18. 917. 仅仅反转字母
  19. C++ 利用结构体数组编写一个程序,对10名小学生的信息进行管理,学生结构体的成员包括姓名、学号、年龄、语文成绩、数学成绩、英语成绩、三门课总分等
  20. Tomb.Finance的每周更新(3.14-3.20)

热门文章

  1. IOS 点击空白处隐藏键盘的几种方法
  2. Markdown- 常用数学公式
  3. 计算机考证一般多少钱
  4. 【前端小实战】页面文字搜索功能
  5. 理解echo openssl概念、用法、常用参数
  6. Gephi实战教程:从入门到精通
  7. java思路_java编程的思路
  8. 网恋中在拿谁的情感玩游戏
  9. 【Apache】配置.htaccess将主域名301重定向到www域名
  10. 努力是为了让自己不平庸