200 PLC,转速程序怎么写啊?

1       有人说采用编码器,但是编码器的转速最高才1500RPM,我要测量的轴的转速至少是4000多转,编码器的速度根本跟不上啊?
2       这个程序如何写啊?请详细的说明提纲就可以了。
谢谢

最佳答案

首先是检测机构,可以使用高速接近开关取信号,也就是转一圈接近开关输出一个脉冲信号
编程就是使用高速计数器和定时中断,定时中断设定时间100ms,在中断程序里累计10次,取得高数计数器的实际值,就是每秒的转速了,然后清定时的累计值,复位高速计数器的初始值,进行下一秒的计数。

刚好昨天做了个测试程序,脉冲信号输入到I0.0

ORGANIZATION_BLOCK 主程序:OB1
TITLE=程序注释
BEGIN
Network 1 
LD     SM0.1
CALL   SBR1
Network 2 
LD     SM0.1
CALL   SBR0
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=子程序注释
BEGIN
Network 1 
LD     SM0.0
MOVW   0, VW100
Network 2 
LD     SM0.0
MOVB   100, SMB34
ATCH   INT0, 10
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK HSC_INIT:SBR1
TITLE=
BEGIN
Network 1 
LD     SM0.0
MOVB   16#F8, SMB37
MOVD   +0, SMD38
MOVD   +0, SMD42
HDEF   0, 0
ENI
HSC    0
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1 
LD     SM0.0
+I     1, VW100
Network 2 
LDW>=  VW100, VW102
MOVD   HC0, VD104
MOVD   0, SMD38
HSC    0
MOVW   0, VW100
Network 3 
END_INTERRUPT_BLOCK

SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=子程序注释
BEGIN
Network 1 
LD     SM0.0
MOVW   0, VW100
Network 2 // 网络标题
// 网络注释
LD     SM0.0
MOVB   100, SMB34
ATCH   INT0, 10
END_SUBROUTINE_BLOCK

SUBROUTINE_BLOCK HSC_INIT:SBR1
TITLE=
BEGIN
Network 1 // HSC 指令向导
// 要在程序中使用此配置,请在主程序块中使用 SM0.1 或一条沿触发指令调用一次此子程序。
// 配置 HC0 为模式 0;CV = 0; PV = 0;增计数;
// 开放中断和启动计数器。
// 
LD     SM0.0
MOVB   16#F8, SMB37                //设置控制位:增计数;已使能;
MOVD   +0, SMD38                   //装载 CV
MOVD   +0, SMD42                   //装载 PV
HDEF   0, 0
ENI
HSC    0
END_SUBROUTINE_BLOCK


INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1 // 网络标题

LD     SM0.0
+I     1, VW100          //定时累计
Network 2 
LDW>=  VW100, VW102      //VW102=10, 10*100ms=1S
MOVD   HC0, VD104            //VD104为累计时间的脉冲数
MOVD   0, SMD38       
HSC    0
MOVW   0, VW100  
Network 3 
END_INTERRUPT_BLOCK

提问者对于答案的评价:
多谢大哥,等几天我找个马达再验证一下。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午3:51
下一篇 2020年10月31日 下午3:51

相关推荐

  • S7-200 订货号询问

    中央处理器 6ES7214-1BD23-0XB8  +1根专用程电缆+驱动软件+最新版程序设计软件   要求只能用S7-…

    SIMATIC S7-200 2021年7月5日
  • 为什么我的设置PG-PC接口 没有 PC-internal(local)这个通道

    没有找到啊 最佳答案 问题:为什么我的设置PG-PC接口 没有 PC-internal(local)这个通道楼主在注册表内检查下是否有如下信息:\HKEY_LO…

    SIMATIC S7-200 2018年12月14日
  • EM231的疑问

    EN231见西门子资料写着输入可以是0-10V或者0-20MA,通过拨码开关设置,那么我现场是4-20MA仪表,接入EM231有问题吗,我直接在编程中设定模拟输入范围是6400-3…

    SIMATIC S7-200 2020年11月1日
  • S7200与S7300的以太网通信

    请教各位大侠,我用的是西门子CPU226、CP241-1模块与西门子CPU315、CP343-1模块做以太网通信,S7200设置为服务器,在配置好以后,我该如何编程,才能将S720…

    SIMATIC S7-200 2021年7月5日
  • 温度控制编程

    请问如果编辑温度控制的程序,用EM231取完模拟量后,是否要用PID进行运算,否则程序只起到了温度的监控作用,而无调节。一般的温度控制编程都用什么编辑?PID,还是其它? 最佳答案…

    SIMATIC S7-200 2021年7月5日
  • hmi项目上传

    将hmi项目上传到pc上 最佳答案 人机界面程序,不知道你使用什么样的人机界面是wincc还是触摸屏,如果wincc的话,项目就在PC机上,使用项目复制器复制备份一下就可以,如果是…

    SIMATIC S7-200 2018年12月5日
  • 计数器不够用

    请教大家:我需要计数到10万次,但是S7-200 CPU224里面的计数器C只能计数到32767,应该怎么处理?谢谢 最佳答案 方法很多,在这里介绍两种供参考:&nbsp…

    SIMATIC S7-200 2020年10月31日
  • S7-200 226计时不准

    cpu226,一个过程用sm0.5+计数器计时,偶尔会出现30分钟设定用了25分钟就跑完了。另外连的串口打印机用的readrtc读实时时钟每分钟打印当前时间和过程变量,有时候打印的…

    SIMATIC S7-200 2017年6月5日
  • 错误 48:上升沿检测、下降沿检测或逻辑非操作触点放置非法。这个错误该怎么解决?

    各位老师,我的程序请见附件,程序编译之后提示:网络 24,行 1,列 3:错误 48:上升沿检测、下降沿检测或逻辑非操作触点放置非法。好像是…

    2017年8月15日
  • 按钮调节频率

    S7-200  用2个按钮调节频率,一个加速,一个减速。按下加速按钮时以0.1Hz加速加至50Hz时按钮停止,即使再按也不增加。按下减速按钮以0.1Hz减速,减…

    SIMATIC S7-200 2017年6月27日