登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:求助,圆盘筛选机数据处理问题

点击:1345 回复:8

如题,项目CPU是s7-1200,第一次使用S7-1200的指令,感觉不对劲,来请教一下论坛的各位大佬。
目前在该项目上,玻璃圆盘是有直流电机驱动,带上一个编码器,能时刻检测转了多少个脉冲。
控制思路大概如下:有传感器检测到有产品了,就开始把那个产品的脉冲值传入一个DB块中,然后继续脉冲数一直累加,等相对脉冲50个的时候,触发1工位相机工作,相对100个脉冲时候触发2工位相机工作,相机拍照结果存放到另一个新的DB块中,到了相对350个脉冲时候触发排料工作
我的思路是建立,建立一个Array【0..250】dword的DB块用于存放每个产品的脉冲数
有一个传感器,当传感器检测到有产品时,会记录当前脉冲数,把数据存放到DB块第一个寄存器中,检测到下一个产品时,会在把脉冲存到下一个寄存器中。
疑惑点1:数据存放在DB块以后,也要保持数据块中的数据和外面的脉冲数同步增加【因为要计算相对位置】
疑惑点2:一个圆盘最多放250个产品,第251个的产品的时候,需要把脉冲数重新放到DB块第一个寄存器中。
疑惑点3:拍照结果和产品脉冲结果DB块要不要链接起来,因为最后排料的时候,应该是第一个产品,根据多工位的拍照不良来排放不同的不良
以上三点我想了一下没有什么好办法,我自己对SCL和STL不是很精通,想请教一下各位大佬,在基于S7-1200的平台上有什么好方法能够实现我上述的控制思路?
附件 微信图片_20190925104452.jpg
附件 微信图片_20190925104456.jpg
附件 微信图片_20190925104500.jpg
附件 微信图片_20190925104503.jpg
附件 微信图片_20190925104506.jpg
附件 微信图片_20190925104513.jpg
19-09-29 08:17
瞎摸了一下,误打误撞做了一大半出来……待会把现在的程序打包发上来,现在有个问题请教就是如何把红框改成用指针递加的方式…………
附件 微信图片_20190929101456.jpg
19-09-29 10:16
表情
19-09-29 10:19
以前有个类似项目我是用三菱PLC做的,用他们SFC加跳转,也是碰碰撞撞弄好了,西门子应该也可以但是数据量大的话,我估计内存会不够,西门子太吃内存了
19-10-02 13:38
版主这个问题也麻烦关闭下……
19-11-13 20:00

引用 273708367 在 2019/10/2 13:38:53 发言【内容省略】

我发现了S7-1200用地址变址也能做
把地址变址的值得丢在一个循环周期1MS的OB块里面。。。
然后需要保存的数据都丢数据块里面,然后要调用的时候就直接用DB1.DB[地址变量]的形式
我用了这个方法,把程序从92%的占比压缩到11%……
19-11-13 20:02
我也有同样的问题,大神解决了吗??能教一下我怎么做吗表情
20-12-17 10:27
早就搞好了~~对CPU要求有点高
20-12-25 08:25
版主,有没有程序能发一份参考一下。
21-07-27 23:36

工控新闻

更多新闻资讯