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日

相关推荐

  • 西门子200系列添加了扩展模块em231,cpu硬件配置用修改吗

    西门子200系列添加了扩展模块em231,硬件配置用修改吗 最佳答案 西门子200系列添加了扩展模块em231,首先要说明一点 S7-200 不需要硬件组态。如…

    SIMATIC S7-200 2021年7月5日
  • 求助:S7-200 OPC配置问题?

    现在STEP7 里添加了OTHER PC STATION,再在机架的1里配置了OPC服务器,3里添加了IE,设置OPC的地址,在OPC里添加了一个连接…

    SIMATIC S7-200 2020年11月5日
  • S7-200无法和上位机进行通讯

    有一个现场,使用的是S7-200(CPU226N:216-2AD23-0XB8),由于是即读取设备通讯,又要做上位机通讯,还有一个触摸屏,所以另配置有一个DP通讯模块227。前段时…

    SIMATIC S7-200 2021年7月5日
  • 通过CP341给S7-200下载程序通讯异常?

    可以Ping通,但怎么搞通讯都不行,同样的PLC、同样的网线,同事的电脑都可以,我的咋整的不行,具体参考下面的图。帮忙看看咋回事儿? 问题补充:补充两点:1.我用PC/PPI电缆是…

    2017年11月29日
  • S7-200中有没有JCN?

    (1)当RLO=0时需要跳转时,S7-200是怎么处理的?(2)当RLO=0跳转到程序结束,S7-200的怎么编写?谢谢! 最佳答案 200有(有条件跳转指令JMP及LBL)的组合…

    SIMATIC S7-200 2021年7月5日
  • 同一台S7-200 CPU226能被两台工控机内组态软件同时监控吗?

    两个控制室在不同的地方,但是都要能显示PLC内的数据值,分别对两台电脑装了两个不同的组态软件,有一个装的是wincc6.0,用PPI电缆通信的,而另一台装的是组态王,如果要求两台电…

    SIMATIC S7-200 2020年11月1日
  • 西门子PLC时间–设定值变化,怎么做到

    我做了个PID控制,但是它的设定值是变化的,比如从100变到500,以10/分钟的速度吧,也就是用了40分钟吧。那么这个设定值怎么读取呢?怎么样可以让它在每次扫描的时候自动把这个变…

    SIMATIC S7-200 2020年10月31日
  • PID 输出

    PID 输出的值到底是乘以32000呢还是乘以100,怎么视频上讲的乱七八糟啊,一会儿乘以32000,一会儿又乘以100啊,搞不明白啊?另外,检测值也就是过程变量值,要转…

    SIMATIC S7-200 2020年11月1日
  • cpu226温控

    s7-200cpu226通过pid计算得到一个0~1的数,这个0~1的数怎么控制加热的输出啊?有哪位大神提示一下啊?用pls吗? 最佳答案 输出0~1.0之间的数要转换为占空比输出…

    SIMATIC S7-200 2021年7月5日
  • EM253和伺服能不能组成闭环系统

    各位高手,用200系列PLC,加上EM253,伺服驱动器,伺服电机能不能组成位置闭环系统啊? 最佳答案 看响应速度、精度等要求啦。要求不高的话可以试试。 通常运动控制系统…

    SIMATIC S7-200 2021年7月5日