三菱PLC编程实例和编程优化9篇.._第1页
三菱PLC编程实例和编程优化9篇.._第2页
三菱PLC编程实例和编程优化9篇.._第3页
三菱PLC编程实例和编程优化9篇.._第4页
三菱PLC编程实例和编程优化9篇.._第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.一个逻辑很强的程序【q】检测出口温度来控制20个风扇, 温度高于设定值就启动一台风扇,一分钟后温度还高于设定值就启动下一台风扇,。一分钟后温度降到设定值以下就关闭一台风扇。上面的动作容易实现,现在的问题是每个风扇都有手动和自动两个状态。假如说现在1,6,9,18,20。5台在自动,其余手动温度高于设定值启动1,温度还高于设定值怎么才能跳过2,3,4,5    直接启动6呢?我考虑的是为每台风扇编号,首先检测哪几台在自动状态,然后控制,可是这样逻辑太复杂了有没有简单的办法?【a】fx3u可以对位变址,程序比较简单,循环控制即可: fx2n就要

2、用移位,间接获得自动位,m0仍为1min计时,m10m29为自动状态标识,m100m119为对应的风扇输出,其他为缓存位:2.三菱plc程序动作分析【q】这是其中的一部分  为什么c1线圈已得电,可下面的 rst m100却没有得电 这里的动作为什么是m19得电一次,m100置位一次,m19再得电一次,变复位一次。如此循环。我用的是在线模拟,有关系吗?【a】考虑一个扫描周期内的状态:首先m100是off的,c1被m100的常闭触点一直复位中;m19置on后第一个扫描周期第一句指令:当m19第一次为on时,c0计数到1,线圈变为on;第二句指令:c0将m100置位为

3、on;(注意此时程序还没有扫描到后面,c1仍然是在被复位的状态。而内存中的m100状态已经由off变为on了)第三句指令:m100将c0复位;第四句指令:虽然m19和m100同时为on,但是因为c1仍在被复位的状态,所以此时没有计数。虽然输出线圈显示为on了,但计数值仍为0;第五句指令:c1计数值为0,未达到设定值1,触点保持为off,未能复位m100;第六句指令:m100保持为on,未能继续复位c1;第二个扫描周期:第一句指令:当m19仍为on时,但m100也为on了,所以c0不计数,保持上一次被复位的状态off;第二句指令:c0状态为off,对m100线圈无影响,m100仍为on;第三句指

4、令:m100继续将c0复位;第四句指令:虽然m19和m100同时为on,但c1仍没有计数。因为计数器计数需要前边的条件状态有个off->on的状态变化,而此时m10和m100保持了上一个扫描周期的状态,一直是on,没有变化,所以c1计数值保持为0,虽然输出线圈的状态是on 的,但因实际计数值为0,未达到1,所以c1触点的状态仍为off;第五句指令:c1保持为off,未能复位m100;第六句指令:m100保持为on,未能继续复位c1;此后就继续保持这种状态,也就是楼主图片中的情况;直到m19再次出现off->on的状态,使c1得到一个计数值使其触点状态变为on,将m100复位,再由m

5、100的常闭触点将c1复位。这个过程中应该也能观察到c0前面m19和m100都为on而c0计数值也为0的情况。3.三菱plc的for-next指令中脉冲指令如何动作【q】:for  k4m8013    incp    d10nextm8013  incp  d20按照指令说明执行的结果 应该是 d10  是 d20的四倍但是我在 gx  developer中仿真的结果是d10  = d20请问为

6、什么【a】:分 析:incp 是脉冲型的,程序从下扫到下,只执行一次inc行为程序本来的意思是 for k4 后,next前的程序四次循环后再执行next以下的句子由于incp限制它只执行一次,所以是相同的,如果改成inc就应该是4倍了(仿真通过) 进 展说实话,我也是看了楼主的贴才好好看这个指令,同时做了几次试验仍然是inc的情况下,我把m8013改成上升沿,果然,结果也是两者相等!试验一和试验二证明,在for next里面,脉冲型也是有效果的,一个扫描周期只执行一次。深 入然后我又把条件改成m8000,结果果然就是相差四倍!每一个扫描周期for k4执行四次,for k

7、1执行1次。【a】:每一个扫描周期for next之间执行4次;但因为incp是脉冲指令,在m8013、m8000这样的条件下每个扫描周期里没有on-off-on的变化,所以这4次程序执行结果还是只+1而已,故d10与d20结果相等。改为inc后,只要是前面条件为通路,每个扫描周期fornext的执行效果就是+4了,所以d10为d20的4倍。注:本例中用m8013,通断时间为500ms,而仿真默认扫描周期为100ms,循环四次后刚好到达m8013的off段,故直接将incp指令改为inc指令无异常。若为实际plc监控,d10数值并非是d20的4倍。4.三菱plc编程实例:让数值在010之间来回

8、变化要求:1,使用fx2n系列plc2,让d0每秒变化一次,0,1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1,0这样循环【a】【a】【a】【a】【a】 【a】【a】 【a】 【a】【a】 【a】 【a】 5.子程序调用终止时其内部继电器的状态分析【q】程序如下:                    

9、60;               m0            | zrst m10 m20                   

10、  m0            |     | call p0              fend p0              

11、;  m8000                  |       |  set m11                  

12、60; m11                  |   |  set m12                       

13、60; sret              end现在的问题是第一次按m0,m11 m12可以同时被置位,第二次按下是只能m11置位,m12时钟为低电平。到底是什么问题子程序p0,修改为                     m11 &#

14、160;                |   |  set m12                  m8000        

15、          |       |  set m11 m11 m12可以同时被置位,哪位高手给解释一下到底是怎么回事。第二种情况:程序如下:                     &#

16、160;              m0            | zrst m10 m20                     m0&

17、#160;           |     | call p0              fend p0                m8000 &

18、#160;                |       |  set m11                    m11   

19、               |    |  set m12                            &#

20、160;  |_ incp d0                                  sret              en

21、d子程序改成这样,m11 m12都可以被置位,但是d0就加一次数,是什么问题子程序p0,修改为                    m11                  |   | &

22、#160;set m12                                      |_ incp d0          

23、          m8000                  |       |  set m11 子程序改成这样。m11 m12可以同时被置位,d0计数正常,是什么问题【a】第一段:第一次按下m0时m11/m12被置位,因为

24、执行了p0程序;松开m0时m11/m12被复位,这是没有问题的,因为主程序在一直运行。但要注意此时子程序p0没有被调用,其中的程序不被执行。第二次按下m0时,再次调用p0程序,首先m11就被置位了,所以程序执行到m12的时候,m11的状态是从第一次松开m0前的on状态切换到了之后按下m0时的on状态,中间没有on-off-on的变化,也就谈不上上升沿之类,所以m12无法被置位。第二段:直接把子程序被调用时的程序放到主程序中去分析即可。6.关于三菱cml指令【q】请问取反k10 等于多少啊,我记得的是k5,但是三菱plc编程软件显示11,怎么都想不通啊【a】k10换成二进制为: 0000 000

25、0 0000 1010对其取反的结果为: 1111 1111 1111 0101=对于带符号的数,计算机存储时为其补码形式,但显示时仍还原为原码。这样,对1111 1111 1111 0101除去第一位的符号位,其他位取反得其反码1000 0000 0000 1010,再加一得其补码1000 0000 0000 1011 。最后得到的这个1000 0000 0000 1011 显示出来即为-11 。【q】为什么取反后 还要加一个补码了【a】是加1求其补码,而不是加一个补码。补码的补码为其原码,补码=发码+1 。=对于正数  原码=反码=补码7.这两个基本的程序有什么区别【q

26、】 说说这两个基本的程序有什么区别【a】首先默认y1为off,x1为off到on的扫描周期:图1例中第一句执行时将y1置位,第二句执行时立刻将y1复位。这样y1永远不会有输出on的状态。图2例中第一句执行时无效果,第二句执行时将y1置位。即使在第二扫描周期中第一句会将y1复位,在执行第二句时再次置位y1,这样y1应是输出为on的状态。综上:当x1为off时两者y1皆为off;当x1为on时图1中y1为off,图2中y1为on。8.三菱plc编程实例:灯的流程控制程序【q】在fx2n上的y0-y23上接有20个信号灯,x1上接有一个开关,控制要求如下:在程序初始化后当x1为on时信号灯依次点亮至全亮(从1#开始至20#时间间隙为2s),当x1为off时,信号灯依次由全亮至全灭.(从1#开始至20#时间间隙为2s),在灯的点亮过程中(也就是x1为on,时)转入在灯的灭过程中(也就是x1为off时)信号灯也同样按程序工作,说明一下:例当x1为on时,灯依次点亮至10#灯(时间间隙为2s);这时将x1设为off

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论