首页 上一页 1 2 3 4 5 6 下一页 尾页

我觉得这个程序有问题大家帮忙看看 点击:8675 | 回复:115



邪恶的方丈

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 81回
  • 年度积分:0
  • 历史总积分:31
  • 注册:2008年10月25日
发表于:2009-04-17 20:56:16
楼主

今天在教课书上看到一个编程题目:用跳步指令设计用一个按钮X0控制Y0的电路,第一次按下Y0变位ON第二次按下Y0变为OFF

它给出的答案是这样的

LDP X0

OUT M0

LDI M0

CJ   P0

LDI Y0

OUT Y0

P0

大家看看可行吗?




wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-18 18:31:00
1楼

 

  这个用“跳转”来实现“一键启停”的程序在《殊途同归》第5页中贴出来过。它是没有问题的,完全可行!

 

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-18 19:06:03
2楼

 

  在有“反转指令(INV)”的PLC上,这个功能的程序还可以简化成:

 

         LDP   X0

INV
         CJ      P0 
         LDI     Y0 
         OUT   Y0
P0

newchp

  • 精华:3帖
  • 求助:0帖
  • 帖子:113帖 | 3966回
  • 年度积分:0
  • 历史总积分:9364
  • 注册:2006年7月15日
发表于:2009-04-18 19:13:32
3楼
搞得太复杂了!有简化的方法实现这个功能

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-18 19:17:51
4楼

 

  最简单的写法是用“ALTP命令”来实现:

 

LD        X0

ALTP    Y0

   

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-18 19:23:09
5楼

 

  问题是要求您不用“ALT命令”(包括不用“ALTP命令”)来实现“一键启停”功能,这就有许多的答案了!

 

  楼主提出请大家看看:教科书上有一则(一键启停)程序片断,有没有问题?可不可行?!我的回答是教科书上的这一则程序片断(也就是《殊途同归》一帖中的《图9》)是没有问题的,是完全可行的。

  

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-18 19:37:01
6楼

 

  这个“一键启停”功能的程序在《殊途同归》一帖中的相关图片如下:

 

  

gaoqiang

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 212回
  • 年度积分:0
  • 历史总积分:618
  • 注册:2006年6月27日
发表于:2009-04-18 19:38:55
7楼

这个用“跳转”来实现“一键启停”

不行

gaoqiang

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 212回
  • 年度积分:0
  • 历史总积分:618
  • 注册:2006年6月27日
发表于:2009-04-18 19:40:19
8楼

每次按按键两下开   两下关

  

gaoqiang

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 212回
  • 年度积分:0
  • 历史总积分:618
  • 注册:2006年6月27日
发表于:2009-04-18 19:41:34
9楼
这个用“跳转”来实现“一键启停”

不行
每次按按键两下开 两下关

大话东游

  • 精华:2帖
  • 求助:6帖
  • 帖子:39帖 | 1815回
  • 年度积分:7
  • 历史总积分:8251
  • 注册:2008年12月19日
发表于:2009-04-18 20:24:30
10楼
楼主写的这个程序不行,如果P0后边没有程序,会自动的   Y0  由0变1变0变1.。。。。。。。。。。。。循环。我不知道为什么。如果,P0后边有程序,则能行。我刚用FX2N-32MR测试过。

大话东游

  • 精华:2帖
  • 求助:6帖
  • 帖子:39帖 | 1815回
  • 年度积分:7
  • 历史总积分:8251
  • 注册:2008年12月19日
发表于:2009-04-18 20:33:22
11楼

LDP X0

OUT M0

LDI M0

CJ P0

LDI Y0

OUT Y0

P0 

如果不加END结束程序,不行,

加了END这个程序实现了你的要求。刚做了试验。 

大话东游

  • 精华:2帖
  • 求助:6帖
  • 帖子:39帖 | 1815回
  • 年度积分:7
  • 历史总积分:8251
  • 注册:2008年12月19日
发表于:2009-04-18 20:36:42
12楼
回复内容:
对:wanggq 关于

 

  在有“反转指令(INV)”的PLC上,这个功能的程序还可以简化成:

 

         LDP   X0


INV

         CJ      P0

         LDI     Y0

         OUT   Y0

P0

内容的回复:

在程序的最后一定要加END,如果到了P0这一步后边没有程序在梯形图中,P0显示不出来。我用的这个版本的编程软件:FXGPWIN.EXE

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-18 21:36:44
13楼

 

  嘿嘿!任何程序都要有“END”!我们只说一个“片断”时,就省略了“END”及程序的其它部分,因为一个程序只可以使用一个“END命令”来表示程序的结束。

 

      验证一个功能的程序(片断)是否可行,最好的办法就是“实践”,把它写进一个程序里(在整个程序的最末尾当然少不了END),并让PLC运行。结果怎样一试便知!

 

  下面就是曾经在《殊途同归》一帖中贴出的验证《图3》至《图11》所示梯形图功能的实验程序:

 

   这是一个高速验证《图3》至《图11》这9个梯形图所示逻辑功能“完全等效”的程序。  在高速的情形下,为了不致影响PLC输出继电器硬件的寿命,所以要选用晶体管输出型的PLC。如果您只有继电器输出型的PLC,那就请您将程序第10步的操作元件改成“M8013”,这样也有利于您用肉眼观察PLC的“Y000、Y002至Y010”这8个输出点的翻转是否“步调一致”。   在做这个实验时,需要您做一点儿“硬件接线”把PLC的输入点“X000”联接到输出点“Y001”。由“Y001”控制“X000”的“ON/OFF”。

 

  

  上面这个验证程序中的“X007”是复位各计数器的按钮,用于使试验从零开始。“C16”是用于设置一个试验次数(本例中为3000次),网友们可以自己另选一个次数。当“X000”经历从“OFF”跃变到“ON”的次数达到你所设定的数目时“Y013”指示灯就亮起,表示试验次数已满,“Y000”、“Y002”至“Y010”这8个输出点就停止翻转。“C17”至“C24”的设定值取最大值:k32767,是为了让计数器有充足的余量,以便验证某些人宣扬的“PLC在恶劣环境下程序使用了‘中间继电器M’就比不用‘中间继电器M’要可靠些”的“理论”是一个彻头彻尾的谬论所做的特殊考虑!

 

大话东游

  • 精华:2帖
  • 求助:6帖
  • 帖子:39帖 | 1815回
  • 年度积分:7
  • 历史总积分:8251
  • 注册:2008年12月19日
发表于:2009-04-18 21:55:06
14楼
回复内容:为什么在编程的最后,如果有指针,没有写END,指针会不见了呢?
对:wanggq 关于

 

  嘿嘿!任何程序都要有“END”!我们只说一个“片断”时,就省略了程序的其它部分。

 

      验证一个功能的程序(片断)是否可行,最好的办法就是“实践”,把它写进一个程序里(程序当然少不了END),并让PLC运行。结果怎样一试便知!

 

  下面就是曾经在《殊途同归》一帖中贴出的验证《图3》至《图11》所示梯形图功能的实验程序:

 

内容的回复:


wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-18 22:08:00
15楼

                                 

  再给大家贴两个片断:

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-18 22:38:11
16楼

 

  下面是《图9》和《图11》所示程序功能的“时序”对比:

 

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-18 22:59:20
17楼

 

  与№13楼的图片相关的另一个图片也展示给大家:

 

168888

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 2103回
  • 年度积分:0
  • 历史总积分:4601
  • 注册:2005年3月23日
发表于:2009-04-19 00:07:24
18楼
不错,顶一下,学习了。

ddkk4477

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:19
  • 注册:2008年7月23日
发表于:2009-04-19 20:24:22
19楼

我在编程的过程中,也觉得很多程序用M是有优势的

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-20 07:50:47
20楼

                                                           

  我认为该用M的时候才用!看您是否能用得恰当!您如果认为M有什么“优势”,就应该具体举出实例来!

 

  本来“辅助继电器M”是用来暂存“运算”中间结果,或用作状态暂存、移动运算等。用了它们可以使程序的编写变得简单。但是,不问情况,滥用“辅助继电器M”,相反还使程序变得复杂!那么这种滥用就是笨拙的!如果认为:只有用了“辅助继电器M”才标志着写程序的人“有水平”。那就是极端无知的,可笑的外行观点!!

 

  我们用如下的实验程序通过 Y001 若干个 3000 次的接通 X000,我们可以观察到C17至C24这8个计数器的当前值都是一致的。这就充分说明:分别等效于《图3》至《图11 》所示的9个程序的这些程序片断在同一个PLC中,不管是否使用了“中间继电器M”,各程序片断的执行可靠性都是一样的。客观事实表明:“laolan”和“通讯网”先生的“用了M才可靠”及“M优先论”是彻头彻尾的“谬论”!!

 


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 4 5 6 下一页 尾页