s7-200如何与编码器编程

我刚接触西门子200PLC,公司要求用编码器在触摸屏上显示位置

最佳答案

给你一个网上的例子看看——

用编码器输入,显示转速的程序,采用的编码器是增量型,1024线。

  编程思路:

    1,用PLS输出脉冲串来仿真编码器的输入。

   2,定义高速计数器,

   3,采用定时中断100MS采集一下高速计数器的当前值。

   4,计算速度((当前值)-(前一值)) *600 /1024

   5,清除计数器当前值(防止计数值溢出)


ORGANIZATION_BLOCK MAIN:OB1

  TITLE=PROGRAM COMMENTS

  BEGIN

  Network 1 // Network Title

  // 定义脉冲串输出(仿真编码器输出)

  LD SM0.1

  R Q0.0, 1

  MOVB 16#8F, SMB67

  MOVW +5, SMW68

  MOVD +30000000, SMD72

  PLS 0

  MOVR 0.0, VD204

  CALL SBR_0

  END_ORGANIZATION_BLOCK

  SUBROUTINE_BLOCK SBR_0:SBR0

  TITLE=SUBROUTINE COMMENTS

  BEGIN

  Network 1 

  // 定义高速计数器HSC0

  LD SM0.0

  MOVB 16#F8, SMB37

  HDEF 0, 0

  MOVD +0, SMD38

  MOVD +5000, SMD42

  ATCH INT_1, 12

  HSC 0

  ENI

  Network 2 

  // 定时中断,100MS采集一下HC0的值

  LD SM0.0

  MOVB 100, SMB34

  ATCH INT_0, 10

  ENI

  Network 3 // Network Title

  // Network Comment

  END_SUBROUTINE_BLOCK

  INTERRUPT_BLOCK INT_0:INT0

  TITLE=INTERRUPT ROUTINE COMMENTS

  BEGIN

  Network 1 // Network Title

  // 计算速度,VD208显示每分钟转速。

  LD SM0.0

  MOVD HC0, VD100

  DTR VD100, VD200

  MOVR VD200, VD300

  -R VD204, VD300

  MOVR 600.0, VD304

  *R VD300, VD304

  MOVR VD304, VD208

  /R 1024.0, VD208

  MOVR VD200, VD204

  END_INTERRUPT_BLOCK

  INTERRUPT_BLOCK INT_1:INT1

  TITLE=INTERRUPT ROUTINE COMMENTS

  BEGIN

  Network 1 // Network Title

  // 清除编码器当前植

  LD SM0.0

  MOVD +0, SMD38

  HSC 0

  MOVR 0.0, VD204

  -R VD300, VD204

  END_INTERRUPT_BLOCK

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc254905.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月10日 下午8:02
下一篇 2019年6月10日 下午8:03

相关推荐

  • 定时顺序启动问题

    我想做一个程序 要求每隔3s触点按序得电,最后8个或16个触点都得电,我本人想用7个或15个定时器,但是程序有点大,有没有更简单的编程方法? 最佳答案 一个定时器用比较整…

    2021年7月5日
  • 格雷码转换二进制码

    我用了三个9位的绝对值编码器接再PLC的输入点上,第一个是I0.0-I1.0,第二个是I1.1-12.1,第三个是I2.2-I3.2,当PLC上电就检测他们的角度,我想用异或指令做…

    SIMATIC S7-200 2021年7月5日
  • 怎么实现长区域的的移位操作?

    像三菱的传送指令实现M100~M8000的单个位移位操作,西门子怎样编程可以实现类似功能? 问题补充:通过光栅检测工件,信号开关量输出,PLC用该信号输出给M0,然后配合编码器的脉…

    SIMATIC S7-200 2017年6月5日
  • s7-200例子

    希望可以提供西门子s7—200的全部测试例子,和与昆仑通泰链接的例子 钻石用户推荐最佳答案 1.CSDN 60个例程下载:http://download.csdn.net…

    SIMATIC S7-200 2021年7月5日
  • S7-200 PC Access 客户端测试Bad

    如题,同样的系统Win32,同样的配置,其他电脑可以,这台电脑就是Bad无法得到数据,请问可能是什么原因?详细见图。 问题补充:已经保存了,还是不行。编程软件如何测试是否可以通讯上…

    2021年7月5日
  • 数据存储问题34

    如图:为什么当I0.0的脉冲停止一段时间后,当I0.0的脉冲重新来到时,VD64中的数据会从0开始累加,而不是在I0.0的脉冲停止前的基础上进行累加呢?如果要在I0.0的脉冲停止前…

    2017年6月24日
  • 研华ADAM4017/4018通讯协议?

    本人计划PLC和ADAM4017/4018通讯,哪位有研华ADAM4017/4018通讯协议,发送到wyh_409@163.com 谢谢! 最佳答案 如果你用工控机与S7…

    SIMATIC S7-200 2021年7月5日
  • S7-200与三菱A740通讯

    请问有没有S7-200与三菱A740通讯的例子程序,还有S7-200与三菱A740怎么样接线好些 问题补充:但是A740里面的有说明,Modbus不能用作485的二线通讯, 最佳答…

    SIMATIC S7-200 2021年7月5日
  • 模拟量地址

    用S7-200  CPU226  最多能带几个模拟量模块 如果带了 EM235 ,EM235和EM231三个模…

    SIMATIC S7-200 2021年7月5日
  • 226高速计数器问题请教,有点难度

    226的高速计数最大频率是20K  Hz我的编码器是1000线的,直接装电机主轴后面,计数模式是1X计数时,电机最大转速理论可以到 1200r/m,此…

    SIMATIC S7-200 2017年6月7日