首页 上一页 1 2 下一页 尾页

紧急求助西门子200的PLC利用高速计算器测速 点击:18085 | 回复:39



zhuhongli0919

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 14回
  • 年度积分:0
  • 历史总积分:186
  • 注册:2012年3月23日
发表于:2012-03-25 13:48:06
楼主
我现有已接近开关PNP三线制, CPU222的西门子PLC测电机转速!!!电机转每一圈接近开关给你的脉冲!!!电机转速是可变值每分钟在0~3000转!!!求梯形图和编写思路!!!想使用高速计数器!!!!给位大哥帮帮忙啊!!!!!


楼主最近还看过



zhangzhifeng407

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 16回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2007年7月24日
发表于:2012-03-25 14:00:24
1楼
接近开关不能满足的哇,要用编码器才能达到这个效果的。

zhangzhifeng407

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 16回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2007年7月24日
发表于:2012-03-25 14:02:49
2楼
加一个4-20mA的模拟量模块,编码器用分辨率高一点的就能达到这个效果了

zhangzhifeng407

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 16回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2007年7月24日
发表于:2012-03-25 14:07:46
3楼
大概就是这个意思,你可以借鉴看一下,要把里边的一个DIV-R改为MUL-R,乘的系数改为30

zhangzhifeng407

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 16回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2007年7月24日
发表于:2012-03-25 14:08:58
4楼

慢慢去研究一下,我这个里边有整数也有小数的,你要把他全部改为整数就OK,我想这样肯定能达到你的要求

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-03-26 08:00:23
5楼

     根据“电机转速是可变值每分钟在0~3000转”可知在1秒时间内转速为:0~50HZ,故不需用高速计数器计数,使用普通输入口就可以,而且编程简单:1、用SM0.5秒脉冲前沿对MB10加1计数,使M10.0 输出正负脉宽都=1秒的方波,用M10.0=1的前沿使MB0 清0。2、在M10.0=1时间内,用测速脉冲前沿对MB0计数,M10.0=0,停止计数,此时MB0 值即为转速,可保持1秒供显示。梯形图如下:

     

 

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-03-26 22:44:21
6楼

对楼主提问“谢谢老师傅,可是如果我想让他精度高点怎么做啊???的答复:

     电机转每一圈接近开关输出一个脉冲,电机转速是可变值每分钟在0~3000转!折算到每秒钟转速为0~50转,如想每隔1秒显示电机每分钟的转速,可以这样做,仍保持上面的程序:每个2秒读取一次1秒内的计数值(MB0),在V数据区留有30个字节存储器空间,用指针指令。启动后的第一个MB10=1的前沿将MB0清0且开始计数,MB10=1的后沿,将MB0左移一位(相当成乘2)存入V区的首址(如VB100),并将此值累计区MW2,指针地址加1。MB10=1的前沿,再将MB0清0且开始计数,MB10=1的后沿,将MB0左移一位(相当成乘2)存入指针地址内容为地址的存储区(如VB101),并将此值累计区MW2,指针地址加1。。。重复上述计数累加30次,正好为1分钟时间,将MW2值(每分转速)送显示区(如MW4),再进行这样运算:先将VB100为首址的连续30个字节循环左移8位,即VB101-->VB100,VB102-->VB101....VB100-->VB129。再将MW2 - VB129的内容(即原VB00内容)=MW2。在下一个MB10=1的后沿,读取前MB10=1时的计数值MB0,左移一位后,送入VB129,再将此值加入MW2。MW2值送入MW4显示,再将VB100为首址的连续30个字节循环左移8位。。。以后每隔2秒重复这样的动作,就可实现每隔2秒刷新一次每分钟的转数值(0~3000)。

这样处理显示每分钟的转速要比显示美秒的转速精度高。

zhuhongli0919

  • 精华:0帖
  • 求助:2帖
  • 帖子:2帖 | 14回
  • 年度积分:0
  • 历史总积分:186
  • 注册:2012年3月23日
发表于:2012-06-05 12:26:04
7楼

老师傅。现在转速时测出来了!!!但是每秒中它都会变化的很快!!也就是说现在的MB10是过程值!!每秒他多会从1到N!!看不到一个稳定值!!!

阿水--王者之师

  • 精华:31帖
  • 求助:399帖
  • 帖子:1801帖 | 22295回
  • 年度积分:2
  • 历史总积分:98539
  • 注册:2007年3月22日
发表于:2012-06-12 20:43:11
8楼
   不错,收藏学习啦啦队                    

黄腾龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2012年7月24日
发表于:2012-11-09 16:15:59
9楼

非常好!老师请问循环移位怎么实现 ?

黄腾龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2012年7月24日
发表于:2012-11-09 16:16:32
10楼
接近开关,PLC测速,SM0.5秒脉冲用为时基,制作正负脉宽均等于1S的脉冲,在高电平的1S钟时检测I0.0的上升沿的个数即是每秒分钟脉冲数,就可以换为转速。
 

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-11-09 17:30:18
11楼

1、你写的程序基本都对,就是网络5中的VD10应加1不是加2,因为你是字节间接寻址不是字间接寻址。

2、为了不是每分钟一送数,实现每秒一送数,应利用填表指令与先入先出指令,即每秒测得数据用填表指令送入表中,且累加到MW2,累加30次(即1分钟),累加值即为1分的转速,此时表已填写30条数据,此后每测得一次数据,填表且累加后,再用FIFO指令取出表的首址数据,再用累加值减去将此值,其差值即为新的1秒时转速。。。重复此动作,其转速相互间隔就不是1分,而是1秒。

黄腾龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2012年7月24日
发表于:2012-11-09 17:32:34
12楼

xie xie !!

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-11-09 17:44:53
13楼
     为了提高转速,还可这样处理:在电机轴安装的圆盘周边,均匀安置5个小铁片,使电机旋转一周,接近开关产生5个脉冲,其脉冲频率为0~250HZ,这样转数精度就提高5倍,还可用普通输入口计数,如圆盘大一点再多安放铁片,其脉冲频率会更高,此时可用高数计数器计数。这种方法实际上就是自制编码器,用编码器测速。

黄腾龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2012年7月24日
发表于:2012-11-12 08:24:40
14楼

谢谢WYB老师,我的测的不是电机轴,而且不能固定铁片,我被物体是要经常更换的,所以只能贴一个铁片。

黄腾龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2012年7月24日
发表于:2012-11-12 10:14:06
15楼

请WYB老师帮忙查看,程序是否按如下方法编制?

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-11-12 13:43:22
16楼
15楼:程序编写基本上是对的,应进一步简化程序,如:网络1、2可合并一起,网络3可省略(因为开机时存储器不设置为保存状态,其值都=0),其转速可以不求平均值,直接就用累计值,这样不仅转速精度高,而且可大大简化程序。

黄腾龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2012年7月24日
发表于:2012-11-12 17:11:51
17楼

Network 1
// //定义填表次数

黄腾龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2012年7月24日
发表于:2012-11-12 17:15:51
18楼

回复内容:
对:wyb2866255---王者之师关于15楼:程序编写基本上是对的,应进一步简化程序,如:网络1、2可合并一起,网络3可省略(因为开机时存储器不设置为保存状态,其值都=0),其转速可以不求平均值,直接就用累计值,这样不仅转速精度高,而且可大大简化程序。 内容的回复:



程序改为以程序,但碰到问题:

当转速在150转每分钟左右时,查看状态表,MB0=2,或3,这两个数之间变换,积累的一分钟转速VW208也等于150左右正常。但是提高转速到200转时,MB0就等于0了。算不出转速了

是不是I0.0采集上升 沿的频率限制了?

黄腾龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2012年7月24日
发表于:2012-11-13 10:14:42
19楼

用接近开关+224XP测转速。转速0-2400转,频率0-40HZ。
 

pppheart

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 98回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2015年4月04日
发表于:2015-05-16 15:50:12
20楼

不知道回复后能不能看到提醒图哈哈

回复内容:

对: wyb2866255---王者之师      根据“电机转速是可变值每分钟在0~3000转... 内容的回复!



热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页