超难的PLC编程 点击:6125 | 回复:119



解永辉

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 24回
  • 年度积分:0
  • 历史总积分:139
  • 注册:2004年6月06日
发表于:2010-12-21 16:42:12
楼主
使用PLC(FX2n-48MT)中的16个输出端子Y0-Y17,,编写产生随机6个输出端子置高电平的程序,欢迎各位大虾指点!谢谢!



wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-30 20:11:28
41楼

 

  回复<lly>网友的“输出结果会引来中奖者争议的”:

 

  如果题目中有<lly>网友的这个要求“目标功能中应该有能避免发生争议的项”,那么我的程序就可以这样来写:

 
  程序中增加了一个由“游戏主持人”掌握的解锁开关X00。譬如说这是一个“幸运转轮的抽奖游戏”,当某一位抽奖者放开按钮X05之后,在满足字“K4Y0”中有6个输出位为高电平的时刻让高速滚动着的字“K4Y0”的16个bit定格下来之后,抽奖者就无法再改变字“K4Y0”16个bit的状态了!若欲再次抽奖,须由主持人按了解锁开关X00之后抽奖操作才能再次有效。
           

解永辉

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 24回
  • 年度积分:0
  • 历史总积分:139
  • 注册:2004年6月06日
发表于:2010-12-31 08:37:58
42楼
wanggq如果方便,请用·您的邮箱联系!

lly

  • 精华:0帖
  • 求助:0帖
  • 帖子:69帖 | 907回
  • 年度积分:0
  • 历史总积分:1633
  • 注册:2004年8月23日
发表于:2010-12-31 12:36:36
43楼

wanggq 这种方法是不错的。

我只是提醒一下,PLC的输出不确定性,要考虑输入条件不确定性,例如抖动这种情况。其实这已经是题目的要求,并不是我的要求。

这与按一下按钮启动泵输出确定性是有差别的。

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-31 15:40:35
44楼

引用解永辉 的内容:

 

   “wanggq如果方便,请用·您的邮箱联系!”

 


 


  回复:

 

  我已经把我的电话号码发到您的邮箱里了!             

                                     

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-31 16:44:01
45楼

   回复43楼<lly>的提醒

           

  我们写程序都是在准确理解“目标功能”的前提下直奔“目标功能”去的!譬如我们要为产品生产线写一个控制程序,首先是要向生产工艺师了解清楚产品在生产线上加工过程的工艺流程和工艺要求,然后再拟定出生产线上各个设备的控制“目标功能”。围绕这些“目标功能”再写出最简洁、最合理的控制程序来!

 

  在这个主题里,楼主的题目是:

                                                                              
  请大家看仔细:目标功能是<使用PLC(FX2n-48MT)中的16个输出端子Y0~Y17,编写产生随机6个输出端子置高电平的程序> 。
                                                                                
        而21楼的答案程序的“目标功能”正好是楼主的要求!即便你的按键接点发生颤抖,但这个颤抖所引起的“0 / 1”变化被X05上<OR>联接的M8099接点所覆盖,因而它根本就不能影响字<K4Y0>之16个位最后的“随机状态”的“随机”资格!
   
  实际上,操作开关X05所产生的信号只是其操作前沿才是有效的,之后的时间里由M8099来短接,合成的驱动信号是反映不出X05上发生的“颤抖”情况的!
                                  
  逻辑代数里有一条著名的<公理>:A +1= 1   根据这条<公理>可知:操作开关X05所产生的颤抖信号将被M8099的<1>信号所覆盖!
        

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-12-31 20:57:32
46楼
引用<sunhong >的内容:

  我觉得难就难在随即上,你们的随机是否就为“随机”!?




  Wanggq的回复:

 

  我在给出21楼的答案程序之前就有顾虑:可能有的网友对“随机”的概念是不清楚的。要是我直接的把答案贴出来,可能会有人说这个程序产生出来的输出状态不是“随机”的!所以,我在把答案程序给出来之前就先用了一些篇幅来阐述“随机”的定义!看见没人对这个“随机”定义提出异议,我才把答案程序贴出来的!

 

  如果<sunhong >认为21楼的答案程序所产生的输出状态不是“随机”的状态,那么就请您说说看,什么才是“随机”的状态?!一个硬币随意的抛向天空,当它落下来时它的哪一面朝上不是“随机”状态?又哪一面朝上才是“随机”状态?!

          

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2011-01-01 11:58:03
47楼

 

   引用解永辉 的内容:

 

   “wanggq如果方便,请用·您的邮箱联系!”

 


 


  回复:

 

  我已经把我的电话号码发到您的邮箱里了!             

                                     

老菜鸟

  • 精华:22帖
  • 求助:0帖
  • 帖子:301帖 | 8609回
  • 年度积分:0
  • 历史总积分:24924
  • 注册:2003年6月15日
发表于:2011-01-01 13:26:31
48楼

楼住需要的是伪随机还是绝对随机的随机数呢?

老杨同志

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 58回
  • 年度积分:0
  • 历史总积分:618
  • 注册:2010年5月25日
发表于:2011-01-01 14:55:56
49楼
楼住需要的是伪随机还是绝对随机的随机数呢?
赌博机上有应用吧,伪随机就是能控制结果吗?

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2011-01-01 15:35:46
50楼

 

  请教<老菜鸟>网友:“伪随机”与“绝对随机”分别应该怎样来定义?

 

  下面我给出两组以39楼的答案片断所实验得出的字“K4Y0”(即Y0~Y17这16个输出位)的“状态数据”,每组60个数据,记录在D1至D60寄存器中。请大家研究一下它们是不是属于“随机状态”?并请说出这120个“状态数据”是“绝对随机”还是“伪随机”?要用道理来说服人!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2011-01-01 16:40:35
51楼

 

  在楼主的题目中所包含内容的确有两种成分:即“随机现象”和“确定现象”。
        

  先说“确定现象”的成分

     

  题目“使用PLC(FX2n-48MT)中的16个输出端子Y0~Y17,编写产生随机6个输出端子置高电平的程序”中这要求“6个输出端子置高电平”就是一个“确定的现象”。您们哪位如果搞出一个由Y0~Y17(OFF/ON)构成“绝对随机”的组合状态,若其中的ON位不足6个或超过6个就拿来当正确答案。那就说明该位网友是没有准确理解楼主的题目要求!输出端子Y0~Y17中只有刚好为6个ON位才能算是圆满完成了楼主“目标功能”所提的要求!!

 

  您们该不会因为一枚硬币每次被抛上去再落下来时总还仍旧是一枚硬币这个“确定现象”您们就说一枚硬币被随意的抛向空中,当它落下来后到底哪一面朝上的问题是一个“伪随机”的问题吧?!

 

  再说“随机现象”的成分

                                      

  题目中的“16个输出端子Y0~Y17中随机产生6个ON状态”这个“随机”就是指限制为6个ON位在16个位置上完全不可能受操作者意愿掌控的随机安排!

  譬如它们的排列组合可能是:10100000 11100100 也可能是:00101000 00111010  等等………。

                            
  第21楼的程序就是针对楼主的这两个成分所做出的正确答案,说21楼的程序之功能是使Y0~Y17这16个bit 的状态生成“随机的组合状态”是因为下述3点:

 

  第1、操作按钮X05是由操作者人工摁下的,所以这个摁下时刻对于CPU时钟信号的相位关系来说是一个“随机现象”,您们哪一位可以保证说由您们凭人工操作X05能够做到精确的和CPU时钟信号成一个确定的相位关系?
                  
  第2、高速环形计数器“D8099”最低两个bit内容MOV给M0及M1。所以M0每隔 0.1 mS 翻转一次状态,M1每隔 0.2 mS 翻转一次状态。您们哪一位能够准确的把握这样高速翻转的 M1 M0 的组合状态?!况且,程序的扫描周期并不是每个周期都是一样长的,对它们还有最大扫描周期及最小扫描周期之分。所以程序扫描周期与D8099的计数步伐根本合不上拍子!所以,由 M1 M0 的组合状态来作为移位寄存器<K4Y0>的输入信号源对于操作X05者来说是绝对的“随机现象”!

  第3、移位寄存器“K4Y0”把信号源的信息从低位朝高位方向高速的滚动传递着。您们哪一位能够在操作X05时准确把握移位寄存器“K4Y0”其16个输出位的当前组合状态?!!

 

  基于以上3点,我们完全可以判定21楼的答案程序所产生的输出状态是一类“绝对”的“随机现象”!即便在实验中输出位的组合状态可能出现有相同的情况,但这也是概率论所允许的情况!

        

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2011-01-03 07:57:23
52楼

 

  温馨提示解永辉网友:

 

  您这个<悬赏5积分>的帖子的结帖期限(元月5日)已经临近了!一定要在这个期限之前自主决定把这个5积分送给哪一个跟帖。否则,《工控网》会代您作主把这个‘悬赏分’扣下来给第一个跟帖。那样就会造成别人的误会:以为您解永辉昏庸,分不清哪个帖子内容才是应该得到<奖励>的!

                

wanggq

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

 

  “伪随机”就是“假的随机”!本来“随机现象”是事前不可预言的现象,即在相同条件下重复进行试验,每次结果未必相同,或知道事物过去的状况,但未来的发展却不能完全肯定。而“伪随机码”却是人为预先设计的,可以用某种公式来计算从而得出确定的结果来的现象!

 

  下面我们举例说明“伪随机码”序列的特点:

 

  序列α= 0110100,其中0和1的个数相差1。把α看成周期为7的无限序列,左移1位得,α1 = 1101000,把α1也看成周期为7的无限序列。

  α= 0110100 ; α1=1101000  在一个周期里,α和α1的对应位置元素相同的位置有3个,元素不同的位置有4个,它们的差等于-1,这个数称为α的自相关函数在1处的值,记作s 。类似地,把α左移2位,3位,…6位,可以求出α的自相关函数在2处,3处,…6处的值也等于-1。当0 < │s│ <7时,称为α的自相关函数的旁瓣值。从刚才所求出的结果知道,α= 0110100的自相关函数的旁瓣值只有一个:-1。像这样的序列称为伪随机序列或拟完美序列。即,一个周期为v的无限序列,如果在一个周期里,0和1的个数相差1,并且它的自相关函数的旁瓣值只有一个:-1,则称它为伪随机序列或拟完美序列。α的自相关函数的旁瓣值的绝对值越大,就表明(或把0和1互换得到的序列)与α越像。因此如果周期为v的序列α是一个伪随机序列,那么α不管左移几位(只要不是v的倍数),得到的序列都和α很不像,这样就很难分辨出α是什么样子。好比川剧的变脸,由于每一次都变得和演员的脸很不一样,因此很难知道演员自己的脸是什么样子。反之如果演员每一次化装后都跟他自己的脸有许多相同之处,那么就容易辨认演员长得什么样。这说明了用伪随机序列作为密钥序列,有一点点安全性,但是真正随机数列比伪随机的数列更安全。

                          

  伪随机序列是用函数生成伪随机数。它并不真正是随机的,只是比较近似随机 。

                   
  一个简单的伪随机数产生方法如下:

                        

       X0=345

     
         Xn=(Xn-1*A+B)/C

 

       其中A,B,C是常数,上式每执行一次就生成一个伪随机数。 
                  

  大家现在明白什么是真“随机”,什么是伪“随机”的吧?!

        

水边清浅横枝瘦

  • 精华:0帖
  • 求助:4帖
  • 帖子:78帖 | 3488回
  • 年度积分:8
  • 历史总积分:5664
  • 注册:2006年7月11日
发表于:2011-01-05 09:22:49
54楼
引用lly 的回复内容:本人想还是通过上位机生成随机数,发给PLC。

感觉用上位机做才是比较随机的。

wanggq

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

 

  “随机”本是一种现象的名称,又不是什么“程度”!哪有什么“比较随机”的说法?!

  

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2011-01-05 13:49:46
56楼

 

  <liy>想通过上位机生成随机数发给PLC来当这个主题帖题目的答案,是因为<liy>不能准确理解题目之“题意”所造成的!

 

  跟着附和的<水边清浅横枝瘦>当然的属于不能准确理解“题意”的一类网友。

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2011-01-06 07:30:18
57楼
引用<wanggq> 的内容:

 

『  温馨提示解永辉网友:

 

  您这个<悬赏5积分>的帖子的结帖期限(元月5日)已经临近了!一定要在这个期限之前自主决定把这个5积分送给哪一个跟帖。否则,《工控网》会代您作主把这个‘悬赏分’扣下来给第一个跟帖。那样就会造成别人的误会:以为您解永辉昏庸,分不清哪个帖子内容才是应该得到<奖励>的! 』

                


 


 


  不幸言中了!看,今天《工控网》把<悬赏分>公布出来了。到底是《工控网》昏庸,还是解永辉昏庸?!

   

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2011-01-07 19:34:15
58楼

 

  解永辉网友约我今晚8点在《超难的PLC编程》帖子里联系。

 

  我来了!

       

解永辉

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 24回
  • 年度积分:0
  • 历史总积分:139
  • 注册:2004年6月06日
发表于:2011-01-07 20:22:58
59楼

在吗?wanggq.

解永辉

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 24回
  • 年度积分:0
  • 历史总积分:139
  • 注册:2004年6月06日
发表于:2011-01-07 20:24:27
60楼

刚下班!不好意思让你久候了。

 


热门招聘
相关主题

官方公众号

智造工程师