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日
下一篇 2020年10月31日

相关推荐

  • S7-200 CPU 226 硬件版本太低

    在软件中显示版太低不能用Modbus rtu 库,请问如何解决? 最佳答案 1、Modbus RTU 主站库对CPU的版本有要求。CPU&n…

    2021年7月5日
  • 求平均值 模拟量

    压力传感器变4-20mA信号给EM235模块,可是各种干扰处理方法都试过了就是不行,触摸屏上得数上下不连续波动,有时候跳的很离谱,我想用程序求平均值方法试试,有经验的前辈给我发个s…

    SIMATIC S7-200 2017年8月26日
  • RS485 4W可以支持32个主从通讯吗?

    它是否也是全双工的通讯方式?资料上说它与RS422是同一个东西?求解! 最佳答案 RS485 4W只能实现点对点通讯方式,RS485 2W最多可以挂接32个节点…

    SIMATIC S7-200 2020年10月31日
  • 多个仪表自由通讯

    一个CPU226  当多个仪表用自由通讯和PLC连接时,端口不够用怎么办?有没有别的通讯处理器? 问题补充:仪表协议一致的话如何设置每个地址?自由通讯参数中好像…

    SIMATIC S7-200 2021年7月5日
  • s7200 添加库出错

    我在STEP-7-WIN3.24.27版本软件中添加库文件SCALE时出现错误提示 The project file was sa…

    SIMATIC S7-200 2021年7月5日
  • 文本显示器

    请教;组态文本显示器TD中,用S7-200中的文本向导是没有400,那么是否400不能用? 在对200组态是只有按钮,不能在显示器上组态其他的东西—如电动机吗…

    SIMATIC S7-200 2021年7月5日
  • PTO0——RUN程序不能运行

    用向导生成的PTO0_RUN不能运行,不知道哪个地方设置的不对,PTO0_CTR和PTO_MAN都没问题,谢谢! 问题补充:问题已解决,谢谢阿鸣! 图片说明:  &nbs…

    2017年11月19日
  • HSC的两个参数CV,PV?

    HSC组态时有两个参数CV,PV,当CV=PV时会自动中断吧,想这个值不管是什么,不要影响HSC一直计数下去,该如何处理。 最佳答案 只要使中断程序在条件成立的时候,不要把CV清零…

    SIMATIC S7-200 2020年11月5日
  • CPU的时间显示问题

    各位大侠,小弟现在有个急需解决的问题,小弟也是刚学PLC的,问题是这样的,从CPU226里读出来的时间,经过BCD-I转换后数据存在VW中,在TD400C上显示格式为“2010&n…

    SIMATIC S7-200 2021年7月4日
  • 两种PLC的通讯

    最近进了台S7-200,原来使用的是AB ,S7-200的是cpu224ab的是micro1200现在要进行通讯,请问如何做到!有实例吗?谢谢…… 这件事很急!…

    SIMATIC S7-200 2020年11月1日