三菱PLC编程实例和编程优化9篇.docx

上传人:b****5 文档编号:7318773 上传时间:2023-05-11 格式:DOCX 页数:20 大小:502.67KB
下载 相关 举报
三菱PLC编程实例和编程优化9篇.docx_第1页
第1页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第2页
第2页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第3页
第3页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第4页
第4页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第5页
第5页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第6页
第6页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第7页
第7页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第8页
第8页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第9页
第9页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第10页
第10页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第11页
第11页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第12页
第12页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第13页
第13页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第14页
第14页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第15页
第15页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第16页
第16页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第17页
第17页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第18页
第18页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第19页
第19页 / 共20页
三菱PLC编程实例和编程优化9篇.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

三菱PLC编程实例和编程优化9篇.docx

《三菱PLC编程实例和编程优化9篇.docx》由会员分享,可在线阅读,更多相关《三菱PLC编程实例和编程优化9篇.docx(20页珍藏版)》请在冰点文库上搜索。

三菱PLC编程实例和编程优化9篇.docx

三菱PLC编程实例和编程优化9篇

1.一个逻辑很强的程序

【Q】

检测出口温度来控制20个风扇,温度高于设定值就启动一台风扇,一分钟后温度还高于设定值就启动下一台风扇,。

一分钟后温度降到设定值以下就关闭一台风扇。

上面的动作容易实现,现在的问题是每个风扇都有手动和自动两个状态。

假如说现在1,6,9,18,20。

5台在自动,其余手动

温度高于设定值启动1,温度还高于设定值怎么才能跳过2,3,4,5    直接启动6呢?

我考虑的是为每台风扇编号,首先检测哪几台在自动状态,然后控制,可是这样逻辑太复杂了

有没有简单的办法?

【A】

fx3u可以对位变址,程序比较简单,循环控制即可:

 

FX2N就要用移位,间接获得自动位,

M0仍为1min计时,M10~M29为自动状态标识,M100~M119为对应的风扇输出,其他为缓存位

2.三菱PLC程序动作分析

【Q】这是其中的一部分  

为什么C1线圈已得电,可下面的RSTM100却没有得电 

这里的动作为什么是M19得电一次,M100置位一次,M19再得电一次,变复位一次。

如此循环。

我用的是在线模拟,有关系吗?

【A】

考虑一个扫描周期内的状态:

首先M100是OFF的,C1被M100的常闭触点一直复位中;

M19置ON后第一个扫描周期

第一句指令:

当M19第一次为ON时,C0计数到1,线圈变为ON;

第二句指令:

C0将M100置位为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;

第三句指令:

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复位,再由M100的常闭触点将C1复位。

这个过程中应该也能观察到C0前面M19和M100都为ON而C0计数值也为0的情况。

 

3.三菱PLC的FOR-NEXT指令中脉冲指令如何动作

【Q】:

for  k4

m8013    incp    d10

next

m8013  incp  d20

按照指令说明

执行的结果应该是d10  是d20的四倍

但是我在gx  developer中仿真的结果是d10  =d20

请问为什么

【A】:

分析:

INCP 是脉冲型的,程序从下扫到下,只执行一次INC行为

程序本来的意思是FORK4后,NEXT前的程序四次循环后再执行NEXT以下的句子

由于INCP限制它只执行一次,所以是相同的,如果改成INC就应该是4倍了(仿真通过) 

进展

说实话,我也是看了楼主的贴才好好看这个指令,同时做了几次试验

仍然是INC的情况下,我把M8013改成上升沿,果然,结果也是两者相等!

试验一和试验二证明,在FORNEXT里面,脉冲型也是有效果的,一个扫描周期只执行一次。

深入

然后我又把条件改成M8000,结果果然就是相差四倍!

每一个扫描周期FORK4执行四次,FORK1执行1次。

【A】:

每一个扫描周期FOR……NEXT之间执行4次;但因为INCP是脉冲指令,在M8013、M8000这样的条件下每个扫描周期里没有ON--OFF--ON的变化,所以这4次程序执行结果还是只+1而已,故D10与D20结果相等。

改为INC后,只要是前面条件为通路,每个扫描周期FOR……NEXT的执行效果就是+4了,所以D10为D20的4倍。

注:

本例中用M8013,通断时间为500ms,而仿真默认扫描周期为100ms,循环四次后刚好到达M8013的OFF段,故直接将INCP指令改为INC指令无异常。

若为实际PLC监控,D10数值并非是D20的4倍。

 

4.三菱PLC编程实例:

让数值在0~10之间来回变化

要求:

1,使用FX2N系列PLC

2,让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】

程序如下:

                

                    M0

            ——|↓|————————[ ZRSTM10M20 ]

                    M0

            ——|     |————————[ CALLP0]

            ————————————————————[ FEND]

P0                M8000      

            ——|       |————————[  SETM11 ]

                   M11      

            ——| ↑  |————————[  SETM12 ]

           

            ————————————————————[ SRET]

            ————————————————————[ END]

现在的问题是第一次按M0,M11M12可以同时被置位,第二次按下是只能M11置位,M12时钟为低电平。

到底是什么问题

子程序P0,修改为

                     M11      

            ——| ↑  |————————[  SETM12 ]

                 M8000      

            ——|       |————————[  SETM11 ]

M11M12可以同时被置位,哪位高手给解释一下到底是怎么回事。

第二种情况:

程序如下:

                

                    M0

            ——|↓|————————[ZRSTM10M20]

                    M0

            ——|     |————————[CALLP0]

            ————————————————————[FEND]

P0                M8000      

            ——|       |————————[  SETM11]

                   M11      

            ——|    |————————[  SETM12]

                              |___________[INCPD0]  

                  

            ————————————————————[SRET]

            ————————————————————[END]

子程序改成这样,M11M12都可以被置位,但是D0就加一次数,是什么问题

子程序P0,修改为

                    M11      

            ——|↑  |————————[  SETM12]

                                     |___________[INCPD0]  

                 M8000      

            ——|       |————————[  SETM11]

子程序改成这样。

M11M12可以同时被置位,D0计数正常,是什么问题

【A】

第一段:

第一次按下M0时M11/M12被置位,因为执行了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换成二进制为:

0000000000001010

对其取反的结果为:

1111111111110101

=====================================

对于带符号的数,计算机存储时为其补码形式,但显示时仍还原为原码。

这样,对1111111111110101除去第一位的符号位,其他位取反得其反码1000000000001010,再加一得其补码1000000000001011。

最后得到的这个1000000000001011显示出来即为-11。

【Q】为什么取反后还要加一个补码了

【A】

是加1求其补码,而不是加一个补码。

补码的补码为其原码,补码=发码+1。

==============================

对于正数  原码=反码=补码

 

7.这两个基本的程序有什么区别

【Q】

 

说说这两个基本的程序有什么区别

【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#灭至5#(时间间隙为2S);这时将X1设为ON灯依次从11#亮至20#再至5#(时间间隙为2S);不知我说清没有.

总之在X1的信号变换后,,灯亮灭遵循先亮先灭的原则,每个灯的点亮的时间平衡并循环.

【A】

今天看到,试了下,后面一段改为后面的就可以了

【A】

提供一个用“移位寄存器”的思路。

除衔接点外,仿真基本通过,未用PLC试。

【注】本例中第一段和第二段程序原始文件可进入下载

 

9.PC与FX30DUE传输数据办法

前段时间改造旧设备,遇到了一块FX30DU-E的操作面板。

从网上东查西找,才搞定了怎么用电脑跟它通讯,并上传和下载程序。

虽然过程不太复杂,但也有几项需要注意的地方。

1.首先是准备资料。

1.1编程软件版本:

SW0PC-FXDU/WIN-C。

1.2电脑端口设置:

1.3通讯线缆制作方法:

F2-232CAB-1 

OK,这样的话,需要的软硬件准备工作就已经作完了。

但是直接将通讯线插到电脑上和DU连接起来就可以了吗?

不一定。

因为,DU上也是需要一些设置的。

2.人机设置步骤:

(参照FX-PCS-DU_WIN-ESOFTWAREMANUAL)

2.1根据以上提示,首先检查DU后盖的DIP开关设置情况,其SW1和SW2都要设置在OFF状态。

2.2将DU重新上电,进入模式选择画面,选择“OTHERMODE”;

2.3进入“OTHERMODE”后,选择“DATATRANSFER”模式;

2.4这样DU就会等待与电脑的通讯了。

好了,现在终于可以打开FXDU/WIN了。

3.打开SW0PC-FXDU/WIN-C软件,选择传送――通讯口设置,看端口选择是否与电脑通讯端口一致。

然后选择传送――DU,进入项目传送页面。

  

然后点击“接收”,传送栏就会显示文件传输进度,达到100%时,就将整个文件下载下来了。

我是在操作过程中没有首先阅读手册,直接联线试验,结果搞了好久,事倍功半啊。

希望这个案例,对大家以后的工程能有所帮助。

【Q】F2-232CAB-1通讯线缆制作方法:

和你的不一样呀,为什么?

【A】主要通讯方式一致,可能都可使用。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2