技术论坛

S7-300PLC如何捕捉到高速信号

作者 主题
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
主题:【求助】S7-300PLC如何捕捉到高速信号
推荐帖


只看楼主 楼主 2019-03-24 10:59:45

有一个项目,是一种转轮旋转结构。旋转一圈,传感器有两次机会能够测量到实际物体信号。目前传感器采样的反应时间是1.5ms。转轮缝隙停留处能够采样7.5ms,间隔54ms是遮挡住的。

问题是:如何能够采集到这7.5ms内的数据值。掐头去尾,保留7.5ms内的中间值?

目前硬件是S7-300的模拟量模块采集传感器的信号0-5V。


测量的值2.17V~2.24V。目前没有触发条件,想用时间脉冲。转轮速度可调。

如何能将想要的数据锁存下来?



keep moving !
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1550425&b_id=4&s_id=0&num=12

至圣

经验值: 19408
发帖数: 2077
精华帖: 73
回复:S7-300PLC如何捕捉到高速信号
推荐帖


只看楼主 1楼 2019-03-24 14:41:17

1, 必须是cpu314v3.3以上,它可以设置最小1ms循环中断;

2,查看选型手册,选择合适的ai模块,综合考虑的话,cpu314c比较合适,集成的12位ai,ad转换时间刚好是1ms;

3,将ob35设置成1ms,在ob35里编程,当ai检测值低于3v时,开始采样并计数,可以调用库程序fc84,填表指令
4,ai检测值大于3v时,采样完成,在ob1中对fc84的表进行排序,找到中值。



大道至简,知易行难
以下网友喜欢您的帖子:

  
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
回复:S7-300PLC如何捕捉到高速信号
推荐帖


只看楼主 楼主 2楼 2019-03-24 17:09:47
以下是引用看雪001在2019-03-24 14:41:17的发言 >1楼

1, 必须是cpu314v3.3以上,它可以设置最小1ms循环中断;

2,查看选型手册,选择合适的ai模块,综合考虑的话,cpu314c比较合适,集成的12位ai,ad转换时间刚好是1ms;

3,将ob35设置成1ms,在ob35里编程,当ai检测值低于3v时,开始采样并计数,可以调用库程序fc84,填表指令
4,ai检测值大于3v时,采样完成,在ob1中对fc84的表进行排序,找到中值。


AD转换时间1ms是在那块看到的?


keep moving !
以下网友喜欢您的帖子:

  
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
回复:S7-300PLC如何捕捉到高速信号
推荐帖


只看楼主 楼主 3楼 2019-03-24 17:15:32


实际运行时发现无法监测到触发条件。PIW284是模拟量输入值。实际需要测量的值是12036。这个条件达不到。数据变化太快了。



keep moving !
以下网友喜欢您的帖子:

  
至圣

经验值: 19408
发帖数: 2077
精华帖: 73
回复:S7-300PLC如何捕捉到高速信号
推荐帖


只看楼主 4楼 2019-03-24 21:26:26
以下是引用陆上行舟在2019-03-24 17:09:47的发言 >2楼

AD转换时间1ms是在那块看到的?

以下是引用看雪001在2019-03-24 14:41:17的发言 >1楼:1, 必须是cpu314v3.3...

引用1楼详细内容:

1, 必须是cpu314v3.3以上,它可以设置最小1ms循环中断;

2,查看选型手册,选择合适的ai模块,综合考虑的话,cpu314c比较合适,集成的12位ai,ad转换时间刚好是1ms;

3,将ob35设置成1ms,在ob35里编程,当ai检测值低于3v时,开始采样并计数,可以调用库程序fc84,填表指令
4,ai检测值大于3v时,采样完成,在ob1中对fc84的表进行排序,找到中值。


http://www.ad.siemens.com.cn/productportal/prods/published/300list/inf_list1.html

https://support.industry.siemens.com/cs/document/12996906/simatic-s7-300-cpu-31xc-%E5%92%8C-cpu-31x%EF%BC%9A%E6%8A%80%E6%9C%AF%E8%A7%84%E8%8C%83?dti=0&lc=zh-CN

8.7章节312页:

31xC CPU 采用实际值编码测量原理。 采样率使用 1 kHz。 即,在外围设备输入字寄存
器上每毫秒会提供一个新值,然后可通过用户程序读取(如 L PEW)。 如果访问时间短
于 1 毫秒,则再次读取“前一个”值。

如果你的cpu不是带C的,可能需要HF模块,AD转换有低于100us的,具体型号你可以通过上面的链接查选型手册,不过这个模块的价格可以买几个200smart了,你这个测量200smart都可以做到。

论坛里有个帖子,意思是相同的程序运行在不同的硬件上,结果不同,你的cpu可能满足要求,但AI模块可能是6ms的,具体技术规范你可以在硬件配置里直接联网查到。
 


大道至简,知易行难
以下网友喜欢您的帖子:

  
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
回复:S7-300PLC如何捕捉到高速信号
推荐帖


只看楼主 楼主 5楼 2019-03-24 22:22:56



是不是上面的参数?


keep moving !
以下网友喜欢您的帖子:

  
至圣

经验值: 15532
发帖数: 1735
精华帖: 0
回复:S7-300PLC如何捕捉到高速信号
推荐帖


只看楼主 6楼 2019-03-25 07:26:50

 描述清楚点!




海纳百川,厚德务实!
以下网友喜欢您的帖子:

  
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
回复:S7-300PLC如何捕捉到高速信号


只看楼主 楼主 7楼 2019-04-16 13:51:06
以下是引用看雪001在2019-03-24 14:41:17的发言 >1楼

1, 必须是cpu314v3.3以上,它可以设置最小1ms循环中断;

2,查看选型手册,选择合适的ai模块,综合考虑的话,cpu314c比较合适,集成的12位ai,ad转换时间刚好是1ms;

3,将ob35设置成1ms,在ob35里编程,当ai检测值低于3v时,开始采样并计数,可以调用库程序fc84,填表指令
4,ai检测值大于3v时,采样完成,在ob1中对fc84的表进行排序,找到中值。


数据采集的问题已经解决。

FC48记录下来的数据,我想用新值减去旧值。

然后一直这个循环测量着。利用差值去做别的功能。

问题是:

FC48对应的DB块记录的数据,记录两个数据,差值=DBxxx.DBW6-DBxxx.DBW4。

DBxxx.DBW0=2,当DBxxx.DBW2=DBxxx.DBW0时,将DBxxx.DBW2清零。

在固定位置,转轮去掉。实际测量时发现差值在跳变,一会正值,一会负值。

跟传感器的稳定性有关系,但不是关键。

问题还是程序里面的,没有现入现出。比如上坡时,差值都应该是正值。下坡时差值应该是负值。跟理论上不一样。程序应该怎么处理呢?


keep moving !
以下网友喜欢您的帖子:

  
至圣

经验值: 19408
发帖数: 2077
精华帖: 73
回复:S7-300PLC如何捕捉到高速信号


只看楼主 8楼 2019-04-17 12:09:23
以下是引用陆上行舟在2019-04-16 13:51:06的发言 >

数据采集的问题已经解决。

FC48记录下来的数据,我想用新值减去旧值。

然后一直这个循环测量着。利用差值去做别的功能。

问题是:

FC48对应的DB块记录的数据,记录两个数据,差值=DBxxx.DBW6-DBxxx.DBW4。

DBxxx.DBW0=2,当DBxxx.DBW2=DBxxx.DBW0时,将DBxxx.DBW2清零。

在固定位置,转轮去掉。实际测量时发现差值在跳变,一会正值,一会负值。

跟传感器的稳定性有关系,但不是关键。

问题还是程序里面的,没有现入现出。比如上坡时,差值都应该是正值。下坡时差值应该是负值。跟理论上不一样。程序应该怎么处理呢?

FC48是什么?



大道至简,知易行难
以下网友喜欢您的帖子:

  
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
回复:S7-300PLC如何捕捉到高速信号


只看楼主 楼主 9楼 2019-04-18 09:05:37
以下是引用看雪001在2019-04-17 12:09:23的发言 >8楼:FC48是什么?


以下是引用陆上行舟在2019-04-16 13:51:06的发言 >:数据采集的问题已经...

引用详细内容:

数据采集的问题已经解决。

FC48记录下来的数据,我想用新值减去旧值。

然后一直这个循环测量着。利用差值去做别的功能。

问题是:

FC48对应的DB块记录的数据,记录两个数据,差值=DBxxx.DBW6-DBxxx.DBW4。

DBxxx.DBW0=2,当DBxxx.DBW2=DBxxx.DBW0时,将DBxxx.DBW2清零。

在固定位置,转轮去掉。实际测量时发现差值在跳变,一会正值,一会负值。

跟传感器的稳定性有关系,但不是关键。

问题还是程序里面的,没有现入现出。比如上坡时,差值都应该是正值。下坡时差值应该是负值。跟理论上不一样。程序应该怎么处理呢?

写错了,是FC84


keep moving !
以下网友喜欢您的帖子:

  
至圣

经验值: 19408
发帖数: 2077
精华帖: 73
回复:S7-300PLC如何捕捉到高速信号


只看楼主 10楼 2019-04-19 13:03:23

是不是可以这样理解你的需求:测量两次,取差值,接着再测量两次,取差值?

嗖一热!在ob30(循环中断时间设为测量周期)中编程:

L PIW284

L MW 200

-I

T MW202

L PIW 284

T MW200

(这段你来写注释?)


大道至简,知易行难
以下网友喜欢您的帖子:

  
版主

经验值: 76206
发帖数: 19147
精华帖: 378
回复:S7-300PLC如何捕捉到高速信号


只看楼主 11楼 2019-04-20 13:33:48

建议使用S7-1500的高速模拟量输入模块及过采样的功能


Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
回复:S7-300PLC如何捕捉到高速信号


只看楼主 楼主 13楼 2019-06-12 11:49:43
以下是引用看雪001在2019-04-19 13:03:23的发言 >10楼

是不是可以这样理解你的需求:测量两次,取差值,接着再测量两次,取差值?

嗖一热!在ob30(循环中断时间设为测量周期)中编程:

L PIW284

L MW 200

-I

T MW202

L PIW 284

T MW200

(这段你来写注释?)

我用了绝对值的方法。就不需要每次减前一个数了。

我只需要设置一个标准参考值。每次绝对坐标减去参考值就是差值。

相对简化了。


keep moving !
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
S7-300PLC如何捕捉到高速信号
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。