我试编了一个用编码器输入,显示转速的程序,请大家帮我看看!

已锁定

小马驹

  • 帖子

    45
  • 精华

    0
  • 被关注

    2

论坛等级:游民

注册时间:2004-04-06

普通 普通 如何晋级?

我试编了一个用编码器输入,显示转速的程序,请大家帮我看看!

882

5

2004-10-25 13:54:10

大家好,我是PLC的初学者,目前正在学习S7-200。
  我试编了一个用编码器输入,显示转速的程序,采用的编码器是增量型,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
我试编了一个用编码器输入,显示转速的程序,请大家帮我看看! 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。