河南西门子代理商
初学plc梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以三菱FX系列PLC为例,简单介绍一下PLC梯形图编程时需要遵循的规则,希望对大家有所帮助。有一点需要说明的是,本文虽以三菱plc为例,但这些规则在其它plc编程时也可同样遵守。
一,梯形阶梯都是始于左母线,终于右母线(通常可以省掉不画,仅画左母线)。每行的左边是接点组合,表示驱动逻辑线圈的条件,而表示结果的逻辑线圈只能接在右边的母线上。接点不能出现在线圈右边。如下图(a)应改为(b):
二,接点应画在水平线上,不应画在垂直线上,如下图(a)中的接点X005与其它接点间的关系不能识别。对此类桥式电路,应按从左到右,从上到下的单向性原则,单独画出所有的去路。如图(b)所示:
三,并联块串联时,应将接点多的去路放在梯形图左方(左重右轻原则);串联块并联时,应将接点多的并联去路放在梯形图的上方(上重下轻的原则)。这样做,程序简洁,从而减少指令的扫描时间,这对于一些大型的程序尤为重要。如下图所示:
四,不宜使用双线圈输出。若在同一梯形图中,同一组件的线圈使用两次或两次以上,则称为双线圈输出或线圈的重复利用。双线圈输出一般梯形图初学者容易犯的毛病之一。在双线圈输出时,只有后一次的线圈才有效,而前面的线圈是无效的。这是由PLC的扫描特性所决定的。
PLC的CPU采用循环扫描的工作方式。一般包括五个阶段(如图所示):内部诊断与处理,与外设进行通讯,输入采样,用户程序执行和输出刷新。当方式开关处于STOP时,只执行前两个阶段:内部诊断与处理,与外设进行通讯。
1,输入采样阶段
PLC顺序读取每个输入端的状态,并将其存入到我们称之为输入映像寄存器的内在单元中。当进入程序执行阶段,如输入端状态发生改变.输入映象区相应的单元信息并不会跟着改变,只有在下一个扫描周期的输入采样阶段,输入映象区相应的单元信息才会改变。因此,PLC会忽视掉小于扫描周期的输入端的开关量的脉冲变化。
2,程序执行阶段
PLC从程序0步开始,按先上后下,先左后右的顺序扫描用户程序并进行逻辑运算。PLC按输入映象区的内容进行逻辑运算,并把运算结果写入到输出映象区,而不是直接输出到端子。
3,输出刷新阶段
PLC根据输出映象区的内容改变输出端子的状态。这才是PLC的实际输出。
以上简单说明了PLC的工作原理,下面我们再以实例说明为什么编写梯形图程序,不宜重复使用线圈。如下图所示,设输入采样时,输入映象区中X001=ON,X002=OFF,Y003-ON,Y004=ON被实际写入到输出映象区。但继续往下执行时,因X002=OFF,使Y003=OFF,这个后入为的结果又被写入输出映象区,改变原Y003的状态。所以在输出刷新阶段,实际外部输出Y003=OFF,Y004=ON。许多新手就碰到过这样的问题,为什么X001已经闭合了,而Y003没有输出呢?逻辑关系不对。其实就是因为双线圈使用造成的。
注意:我们所说的是不宜(好不要)使用双线圈,双线圈使用并不是禁止的,在一些特殊的场合也可以使用双线圈,这时就需要你有较丰富的编程经验和技巧了。下面我们会谈到这一点。但对于初学者还是不要冒这个险。其实,从以上的例子可以看出,重复利用线圈之所以会造成Y003的输出混乱,是由于程序是从上到下顺序执行的缘故造成的。但如果我们可以改变程序执行的顺序,保证在任何时刻两个线圈只有一个驱动逻辑发生,就可以使用双线圈。其中,常用的方法就是使用跳转指令。如下图所示:
程序分析:M0闭合,程序跳至P0处(不执行X001语句),M0常闭断开,CJP1不会发生,执行下一语句。此时,Y003将X002状态进行驱动。M0断开时,程序顺序执行并按X001的状态对T003进行驱动,M0常闭闭合,跳至P1按X003状态对Y004进行驱动,即跳过了X002驱动Y003的语句。可见,在同一时刻,Y003驱动只有一个可以发生。此时,双线圈利用是可以的。
但在梯形图编程时,我们还是要尽量避免使用双线圈,而引入辅助继电器是一个常用的方法。如下图所示:
图(b)中,X001和X002接点控制辅助继电器M000,X003~X005接点控制辅助继电器M001,再由两个继电器M000,M001接点的并联组合去控制线圈Y000。这样逻辑关系没变,却把双线圈变成单线圈。
1。启动、保持、停止电路
x1 x2
|--||---|/|-----(y1)
| |
| y1 |
|--||-
|
2.三相异步电机正反转控制电路
|
| x0 x2 x1 y1
|--||--------|/|------|/|-------|/|-------(y0) 正转
| |
| y0 |
|--||------
|
| x1 x2 x0 y0
|--||--------|/|------|/|-------|/|-------(y1) 反转
| |
| y1 |
|--||------
|
3.闪烁电路
x0 T1
|--||---|/|-----(To)k20
|
| T0
|--|(T1)k30
| |
|-----(y0)
4.延时接通/断开电路
x0
|--|------(T0)k90
|
| y1 x0
|--||--------|/|------(T1)k30
|
| t0 t1
|--||--------|/|------(y1)
| |
| y1 |
|--||------
|
5. DF上升沿微分,DFI下降沿微分
概述
DF:当检测到输入触发信号的上升沿时,仅将触点闭合一个扫描周期。
DFI:当检测到输入触发信号的下降沿时,仅将触点闭合一个扫描周期。
程序示例
示例说明
在检测到 X0的上升沿(OFF→ON)时,Y0仅为 ON一个扫描周期。
在检测到 X1的下降沿(ON→OFF)时,Y1仅为 ON一个扫描周期。
描述
当触发信号状态从 OFF 状态到 ON状态变化时,DF 指令才执行并且输出仅接通一个扫描周期。
当触发信号状态从 ON状态到 OFF 状态变化时,DFI 指令才执行并且输出仅接通一个扫描周期。
若执行条件初即为闭合,则 PLC接通电源,则不会产生输出。
编程时的注意事项
DF 和 DFI 指令的使用次数有限制,CX1-16R使用这两个指令的次数之和多为 128 次。
6。微分指令的应用示例
如果采用微分指令编程,可以使程序调试更加简单。
自保持回路应用示例
使用微分指令可以保持输入信号。
7。交替回路应用示例
使用微分指令也可以构成一个交替变化回路,实现利用同一个输入信号切换进行保持或释放。
图17 向导介绍
在此处选择模块的位置,在线的情况下,您也可以用读取模块按钮搜寻在线的CP243-1模块。点击下一步;
图18 读取模块
在此处填写IP地址和子网掩码。点击下一步;
图19 地址设置
需要填写模块的连接数目,如只和CP343-1通信则在此处填写1,点击下一步。
图20 模块占用地址设置
选择此为客户机连接,远程属性TSAP (Transport Service Access Point)填写为03.02,输入343-1的IP地址.,点击数据传输按钮进入数据交换的定义。
图21 连接设置
点击新传输按钮进入设置:选择是读取数据还是写入数据。填写通讯数据的字节个数,填写发送数据区和接收数据区的起始地址,本例中为从S7-300的MB200开始读取8个字节到vb1000开始的8个字节的区域中。
点击确认按钮:
西门子6ES7313-6CF03-4AB1图22 数据区域设置
选择CRC校验,使用缺省的时间间隔30秒,点击下一步按钮。
图23 使用CRC
填写模块所占用的V存储区的起始地址。你也可以通过Suggest Address按钮来获得系统建议的V存储区的起始地址, 点击下一步按钮。
图24 配置存储区
完成以太网向导配置后需要在程序中调用以太网向导所生成的ETHx_CTRL和ETH0_XFR, 然后,将整个项目到作CLIENT的S7-200 CPU上。
图17 向导介绍 在此处选择模块的位置,在线的情况下,您也可以用读取模块按钮搜寻在线的CP243-1模块。点击下一步; 图18 读取模块 在此处填写IP地址和子网掩码。点击下一步; 图19 地址设置 需要填写模块的连接数目,如只和CP343-1通信则在此处填写1,点击下一步。 图20 模块占用地址设置 选择此为客户机连接,远程属性TSAP (Transport Service Access Point)填写为03.02,输入343-1的IP地址.,点击数据传输按钮进入数据交换的定义。 图21 连接设置 点击新传输按钮进入设置:选择是读取数据还是写入数据。填写通讯数据的字节个数,填写发送数据区和接收数据区的起始地址,本例中为从S7-300的MB200开始读取8个字节到vb1000开始的8个字节的区域中。点击确认按钮: 西门子6ES7313-6CF03-4AB1图22 数据区域设置 选择CRC校验,使用缺省的时间间隔30秒,点击下一步按钮。 图23 使用CRC 填写模块所占用的V存储区的起始地址。你也可以通过Suggest Address按钮来获得系统建议的V存储区的起始地址, 点击下一步按钮。 图24 配置存储区 完成以太网向导配置后需要在程序中调用以太网向导所生成的ETHx_CTRL和ETH0_XFR, 然后,将整个项目到作CLIENT的S7-200 CPU上