s7-200怎么对编码器编程

有两台用变频器控制的电机,要求他们同步,但是其中用到编码器,请问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 
 
参考资料:技术论坛

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午2:08
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论