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

(已结帖)工控PLC擂台第51期-如何编程来实现这5个执行动作能准确无误的执行新的设定顺序 点击:3735 | 回复:36



玻璃的心

    
  • 精华:43帖
  • 求助:2帖
  • 帖子:1215帖 | 5801回
  • 年度积分:0
  • 历史总积分:57711
  • 注册:2010年6月11日
发表于:2011-08-14 00:22:48
楼主

有5个执行动作其动作顺序可以任意改变,如何编程来实现这5个执行动作能准确无误的执行新的设定顺序?
这是一网友求助帖提出的,原文是:“ 有5个执行动作我转换为操作数,姑且定为D10、D20、D30、D40、D50,它们每一个都可能写入从0 到5的数值。最后执行是从1到5 依次执行输出,是0的不执行跳过,不知如何编,请高手指点,谢谢了!”又“……如这一次是按1/2/3/4/5依次动作,下一次也许设置为按5/3/2/动作,再下一次就1/5/2/3/。。。。。”“两次执行的间隔时间可设定,暂定3秒看设备运转情况而定”

 

是编程实现之,PLC类型随便选择!

 

原创最多,阐述最详细,程序越准确者获一等奖

工控PLC擂台每周一期,本期待50期结束一周后结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:30积分。

MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。

MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。



楼主最近还看过



wyb2866255

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

怎么没人打擂?顶一下!

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-08-20 20:07:37
2楼
先占楼构思一下

longfeiming

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:29
  • 注册:2011年6月23日
发表于:2011-08-20 21:04:03
3楼

顶一下!我菜鸟一个。

小的

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 98回
  • 年度积分:0
  • 历史总积分:383
  • 注册:2011年8月15日
发表于:2011-08-20 22:17:15
4楼
学习学习

shuilian

  • 精华:8帖
  • 求助:0帖
  • 帖子:238帖 | 1929回
  • 年度积分:0
  • 历史总积分:15326
  • 注册:2008年4月24日
发表于:2011-08-20 22:49:39
5楼
这题不简单的。                 

xiaozun1117

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 54回
  • 年度积分:0
  • 历史总积分:278
  • 注册:2011年6月04日
发表于:2011-08-20 22:59:13
6楼

嗯 挺难的啊 !  慢慢想........

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-08-21 17:27:20
7楼
       这个题目可以锻炼编程思维,从中可以看出:要想编好程序,不仅要熟练PLC编程语言,更要扩大知识面与编程技巧,该程序我已编好(经上机运行验证),下周就贴出了,望大家踊跃参加,共同商榷如何编程。

沂蒙人家

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 107回
  • 年度积分:0
  • 历史总积分:671
  • 注册:2010年10月23日
发表于:2011-08-21 19:13:06
8楼

期待。。。。。学习中。。。。。。

 

skyeagle

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 64回
  • 年度积分:0
  • 历史总积分:295
  • 注册:2005年5月19日
发表于:2011-08-21 20:08:11
9楼
只做了3个,原理相同可任意增减。

GK2011_1579010

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:30
  • 注册:2011年7月13日
发表于:2011-08-22 00:54:53
10楼

我是菜鸟

呵呵,我是菜鸟,请多指教!

说明:D0是两次循环动作之间的间隔时间  1/2/3/4/5<----->5/2/3/1/4

         t0:每个动作的执行时间现在设的是1秒

         D10V0:当V0=1时,D10V0即为D11;V0=5时,D10V0=D15;

         动作1,2,3,4,5即对应的Y0/Y1/Y2/Y3/Y4

         

zhanggodd

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 67回
  • 年度积分:0
  • 历史总积分:61
  • 注册:2010年3月16日
发表于:2011-08-22 15:06:35
11楼
一眼望去,皆是人才啊

广州啊四

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 139回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2010年10月25日
发表于:2011-08-22 18:19:14
12楼
人才们   上啊..............

GK2011_1579010

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:30
  • 注册:2011年7月13日
发表于:2011-08-22 18:49:01
13楼

昨晚贴的看不清楚,重新贴,不好意思

因为是截屏图片,可能会有重复或者断线的地方,实在不好意思。

我是菜鸟,谢谢楼主提供的练习的机会。

PLC类型:三菱 FX系列

第五纪冰川

  • 精华:3帖
  • 求助:5帖
  • 帖子:37帖 | 4224回
  • 年度积分:3
  • 历史总积分:12263
  • 注册:2005年2月18日
发表于:2011-08-22 20:13:07
14楼

原贴写得有些混乱,梳理一下,其实就是有5个步序,这5个步序按照设定顺序执行,并且不是每个步序每次都会执行。

5个步序对应5个子程序,0不执行任何指令。

然后再做一个6*n的表(6列n行,停电保持,1到5为动作值,6位暂停时间),用于存放动作表,依次从左至右,从上到下顺序执行。

在执行表之前应该对表的行做数值检查(1到5),避免出现超数值和两个或两个以上同数值。

然后还需要设置一个表指针(停电保持),防止断电后步序丢失。

移动指针就OK了,该执行哪个子程序就执行哪个子程序,该执行定时就执行定时!

welfare87

  • 精华:0帖
  • 求助:4帖
  • 帖子:44帖 | 2827回
  • 年度积分:0
  • 历史总积分:25853
  • 注册:2009年2月20日
发表于:2011-08-23 21:01:54
15楼
感觉大家都想复杂了,其实很简单的,由于有些细节描述的不很清楚,自己就发挥了一下



杨家有女初长成

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2011年6月30日
发表于:2011-08-24 15:05:42
16楼
我是新手,来虚心学习的




SFP

shtq

  • 精华:0帖
  • 求助:1帖
  • 帖子:16帖 | 101回
  • 年度积分:0
  • 历史总积分:1203
  • 注册:2005年6月14日
发表于:2011-08-24 17:02:16
17楼

我认为,应定义五个子程序,第一个子程序输出第一个点,第二个至第五个依次类推。每个子程序内应用D值做比较,然后输出。这五个子程序按顺序执行,间隔时间可放在一个D值内设定

icegrave

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 91回
  • 年度积分:0
  • 历史总积分:653
  • 注册:2010年8月03日
发表于:2011-08-25 10:57:59
18楼

本人菜鸟一个,写这小程序都花了一天半。欢迎大家指点。

填表子程序

wyb2866255

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

一、 PLC的硬件设置及有关事项说明:选用S7-200PLC编程。
1、其输入口:
   I1.0 为启动按钮,
   I1.1 为停止动作按钮。
   *** 以下的I0.0 ~ I0.5 六个输入点是为手动设置参数的按钮地址。是为在没有上位机或触摸屏与PLC通讯的条件下,可用这6个按钮,对5路执行机构的动作顺序号及动作间隔时间进行手动设置。其各输入点定义如下:
   I0.0 为设置第1路执行机构执行动作的顺序号按钮
   I0.1 为设置第2 ~ 5路执行机构执行动作的顺序号按钮,设置值:0~5
   I0.2 为设置第2 ~ 5路执行机构执行动作的顺序号左移8位按钮
   I0.3 为复位按钮,即将第1~ 第5 路机构的顺序号清0,起作用是为更改5个机构动作的顺序号值做清0准备。
   I0.4 为相邻二个机构动作时间间隔值的个位数设置按钮,设置值:0~F(16进制数)
   I0.5 将时间设定值左移4位按钮

2、其输出口:
   Q0.0 为第1路执行机构输出
   Q0.1 为第2路执行机构输出
   Q0.2 为第3路执行机构输出
   Q0.3 为第4路执行机构输出
   Q0.4 为第5路执行机构输出
3、VB10、VB11、VB12、VB13、VB14分别为第1~第5执行机构动作顺序号设置区
      为节省设置按钮,将VB11、VB12、VB13、VB14合并为一个双字存储器VD11。
4、VW30 为相邻二个机构动作时间间隔设置区。
             二、S7-200编程的梯形图:


      该程序是经过上机运行及调试,证明程序是正确的、好用的。VB10、VD11及VW30可由上位机或触摸屏设置,如没有上位机或触摸屏,可用几个按钮与PLC输入口I0.0~I0.5相连,用按钮可对其参数进行设置,以下就是用按钮直接在PLC上设定参数的程序。

 
     为了帮助大家学会使用按钮设置参数(特别对VD11的设置)现举二例:
第一例:
一、要求:
      1、5个执行机构在启动后的动作顺序为:
机构3动 -> 机构1动-> 机构4动-> 机构5动-> 机构2动。相邻二个机构动作的间隔时间为:20秒。
即:设置动作顺序号应为 VB12=1、VB10=2、VB13=3、VB14=4、VB11=5
       整理:VB10=2       VD11=05010304

     2、相邻机构动作间隔时间为:20(秒) 即: VW30 = 20 = $ 14 (16进制数)
     二、设置5个执行机构动作顺序号数:
   (1)、设置VB10: 用手连按二下 I0.0 ,监视VB10,其VB10=2,即VB10顺序号=2。
   (2) 设置VD11: 先按I0.1五下,此时VD11=5,再按一下I0.2,使VD11左移8位,此时VD11=1280 (即16进制数:$ 500).再按I0.1一下,VD11=1281(即16进制数:$ 501),再按I0.2一下,此时VD11左移8位 ,VD11=327936(即16进制数$ 50100).再连按I0.1三下,VD11=327939(16进制数:$ 50103),按一下I0.2,VD11=83952384(即16进制数:$5010300),最后再连按I0.1四下,其VD11=83952388(即16进制数:5010304),到此VD11设置完毕。
   (3)、设置VW30:VW30的设置数应为16进制数,故20秒应转换为16进制数($14),设置:先按I0.4一下,即:VW30=1,再按I0.5 一下,VW30左移4位,此时VW30=16,再连按I0.4四下,此时 VW=20(即16进制数:$ 14)。VW30设置完毕。
     第二例:
     设置要求:5个执行机构的动作顺序号为:VB10=3、VB11=2、VB12=0、VB13=3、VB14=5
整理得:VB10=3、VD11=02000305

      对VD11参数的设置过程应为:
     按I0.1二下 ―> 按I0.2二下 ―> 按I0.1三下 ―> 按I0.2一下 ->按I0.1五下,设置完毕。
    其动作顺序是:启动后,5个机构皆不动作,延时VW30设定时间,VB11动作,再延时VW30设定时间,VB10与VB13同时动作,再延时VW30设定时间,无机构动作,再延时VW30设定时间,VB14动作.到此整个动作结束。
对以上两例的说明如有不清楚之处,可以提出,本人定会给予解答。谢谢!

icegrave

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 91回
  • 年度积分:0
  • 历史总积分:653
  • 注册:2010年8月03日
发表于:2011-08-26 09:37:01
20楼

楼上能不能说说你流程程序,是不是部分程序没贴上了,或者贴了没显示。

我看了,但是没看懂。


热门招聘
相关主题

官方公众号

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