s7-300怎么实现多点计数 点击:885 | 回复:7



syc200304

    
  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 29回
  • 年度积分:0
  • 历史总积分:69
  • 注册:2007年10月30日
发表于:2012-08-12 19:41:57
楼主
一个按钮,一个传感器。按一下按钮,启动一个计数器C1开始减计数,比如从1000减到0。在C1计数期间,再次按下按钮,启动另外一个计数器C2,也是从1000减到0.  在C1从1000减到0期间,多次按下那<此处内容被屏蔽>,怎么实现多次计数功能(比如按了500次),不会要500个计数器吧?有简单的办法吧?


楼主最近还看过



wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-08-12 23:18:19
1楼

     用一个计数器计数(MW2),传感器输出脉冲接PLC输入点(I0.7),用一个按钮(I0.0)每按一下按钮将产生一路计数器输出,第一次按钮使M0.0=1,且将MW2值通过间接寻址送入首址(DB1.DBW100),用MW2 - DB1.DBW100作为一路计数输出(MW10)。第二次按钮使M0.1=1(单脉冲),且将MW2值通过间接寻址送入首址(DB1.DBW102),用MW2 - DB1.DBW100作为第一路计数输出(MW10)。用MW2 - DB1.DBW102作为第二路计数输出(MW12)。。。。见梯形图:

      按程序段8的思路,每按一次按钮就多一路计数器输出,每路计数器输出值=原计数器MW2值- 该路计数器产生时的MW2的瞬间值

阿水--王者之师

  • 精华:23帖
  • 求助:347帖
  • 帖子:1611帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2012-08-13 08:25:45
2楼
学习啦,楼上都将详细程序帖图出来啦,真是好样的           

syc200304

  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 29回
  • 年度积分:0
  • 历史总积分:69
  • 注册:2007年10月30日
发表于:2012-08-13 18:35:51
3楼
先谢了,我先研究研究,等会再来回复

syc200304

  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 29回
  • 年度积分:0
  • 历史总积分:69
  • 注册:2007年10月30日
发表于:2012-08-13 20:00:47
4楼
好像不是我所想要的答案,可能是我一开始问题没描述清楚,我现在详细更新了问题

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2012-08-14 23:33:56
5楼
这样类型的问题我留意了很久了。确实不少人需要用这个功能,各行各业都有。在西门子官网200论坛里,我把这个功能做成了库发过。

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2012-08-14 23:36:58
6楼

程序目的:
 输送皮带被动轮上安装旋转编码器。皮带入口处安装对射电眼。物件无序地经过电眼进入皮带,受到皮带的输送。程序以数字量模拟皮带上的物件的移动。并在指定的仿真点形成一个虚拟的电眼输出信号。相当于在此地点有一个真实的电眼检测到物件而发出信号。

适用范围:
 只建议在主程序中使用SM0.0直接使能。使用次数只受内存空间限制,没有次数限制。每使用一次要增加扫描周期大约 1 毫秒。皮带不可反转。

程序接口:
 电眼  位值。位于皮带入口的检测电眼。
 仿真距离 使用前或运行过程输入,整数型。电眼到仿真点的毫米距离。
 编码器分辨率 使用前输入,整数型。测量带轮转一圈的脉冲数。
 直径  使用前输入,实数型。编码器处的皮带轮直径。
 数据数  使用前输入,整数型。记录数据占空间的长度。
 工作表  整数值。工作用内存的起始地址偏移。
 时钟  指令初始化,外部累计编码器脉冲,指令读取。
 仿真点  位值。输出仿真电眼的信号。
 临时  位值。任意使用未重复的I,Q,M,V,S,L

占用内存量及工作表结构:
 VBn 工作表  指令使用。(以后的数据请用户不要修改)
 . . . . . .
 VBn+14+数据数 最后一个数据 指令使用。最后一个数据的非LSB会超出此范围。

执行过程:
 程序一直执行,一直在仿真距离上得到虚拟电眼的检测效果。运行过程中可以更改"仿真距离"

补充说明:
 仿真距离。向减小方向更改将可能丢失被跳过的边缘数据。向增大方向更改将使当前输出状态一直延长到发生刷新。
 数据数。数值越大能够记录的边缘次数越多。一次检测边缘作为一个数据包。一个数据包占用4个字节。(所以请使用4的倍数作为设定值,以便简化计算内存占用容量。)至少要安排两个数据包的记录空间(8字节)。即最小值为4,4 5 6 7 的效果一样。此时在电眼到仿真点之间只能有一次边缘的变化。
 设定为 8   时有 3  个数据,工作表占用 0 至 25 字节。
 设定为 64 时有17个数据,工作表占用 0 至 81字节。
 设定为 4n 时有n+1 个数据,工作表占用 0 至 17+4n 字节。
 数据数一定要设定得足够宽裕。否则边缘数量超过数据数容量时,程序将一直出错,只有STOP可以清除。
使用变化:
 当时钟周期=T
 且当分辨率/周长=n
 仿真间隔=仿真距离×T×n
 或者
 当时钟周期=T
 且分辨率=πd
 仿真间隔=仿真距离×T

 本程序免费使用。也许不会适用于你的程序。当由于任何原因不适用时,程序作者不负有责任。请用户仔细复核程序内容,再继续使用。

小宇哥噢噢

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 105回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2019年4月27日
发表于:2019-12-22 13:56:25
7楼

我们的房屋事实 速度是多少的速度


热门招聘
相关主题

官方公众号

智造工程师