浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
西门子太原授权代理商

西门子太原授权代理商

总线连接器   

90°无编程口  6ES7972-0BA12-0XA0 总线接头     

90°带编程口  6ES7972-0BB12-0XA0 总线接头     

35°无编程口  6ES7972-0BA41-0XA0 总线接头      

35°带编程口  6ES7972-0BB41-0XA0 总线接头    

90°无编程口  6ES7972-0BA50-0XA0 总线接头       

90°带编程口  6ES7972-0BB50-0XA0 总线接头       

总线接头      6ES7972-0BA52-0XA0           

总线接头      6ES7972-0BB52-0XA0         

总线接头      6GK1500-0FC00                     

总线接头      6GK1500-0EA02       

6ES7972-0BB12-0XA0 网络总线连结器,带编程口,垂直电缆出线

6ES7972-0BA12-0XA0 网络总线连结器,不带编程口,垂直电缆出线

6ES7972-0BA42-0XA0 网络总线连结器,不带编程口,35度垂直电缆出线

6ES7972-0BB42-0XA0 网络总线连结器,带编程口,35度垂直电缆出线

通信功能

数据通讯用于可编程序控制器之间(如 PROFIBUS FMS) ,或一台可编程序控制器与智能伙伴(工控机、P C等)之间的数据交换。

下面的通讯功能可用于此目的:

PG/OP 通信

包括集成的通讯功能,它用于 SIMATIC,以便与 HMI 设备(例如 TP/OP)和 SIMATIC PG编程器(STEP 7)交换数据。 编程器/OP 通讯由 MPI、PROFIBUS 及工业以太网支持。

S7 路径选择

利用S7路由选择, PG/OP通讯可用于网络之间。

S7 通信

S7 通讯是 SIMATIC S7/C7 内优化的集成通讯功能。 用于连接 PC 与工作站。 每个作业的用户数据量zui大为 64K 字节。 S7 通讯为所有网络提供简单、功能强大的通讯服务以及与软件接口无关的网络。

S5 可兼容通信(发送/接收)

S5 兼容通讯(发送/接收)能使 SIMATIC S7/C7 与现有的系统,特别是 SIMATIC S5,SIMATIC S7通讯,经过 PROFIBUS 和工业以太网,也可与 PC 通讯。

标准通讯

这包括标准化的数据通讯协议。

PROFIBUS-FMS(现场总线信息规范)

于几个工作站(zui多16个)范围内的不同制造商提供的不同自动化系统(如PLC, PC)之间的通讯。 可以与装有FMS接口的现场设备进行通讯。

由于FMS READ, WRITE和INFORMATION REPORT服务, 应用程序可以读或写访问对方的变量或将自已的变量值传送给通讯伙伴。 支持对变量值的部分访问。 通讯通过非循环连接 (主/主, 主/从), 带从动或循环连接的非循环连接 (主/从) 进行处理。 利用 INFORMATION REPORT服务,允许通过广播服务向所有的网络节点发送信息 。 此外, 可以启动FMS IDENTIFY (请求伙伴的识别特性) 和 STATUS (请求伙伴的状态) 服务。

OPC 服务器

OPC(OLE for Process Control,用于过程控制的 OLE)的基本原理是,OPC 客户应用程序可以通过一个标准/开放式的多供应商(multi-vendor)接口,与 OPC 服务器进行通讯。

IT 通讯可通过 OPC XML DA 接口实现。

OPC 服务器,在通讯软件的供货范围内

系统连接

对于许多数据终端来说,可使用集成通讯功能的通讯处理器(CP),以减轻数据终端的通讯任务负荷(例如流量控制,模块化等)。

 

CPU单元设计

集成的24V负载电源:可直接连接到传感器和变送器(执行器),CPU 221,222具有180mA输出, CPU 224,CPU 224XP,CPU 226分别输出280,400mA。可用作负载电源。

不同的设备类型。

CPU 221~226各有2种类型CPU,具有不同的电源电压和控制电压。

本机数字量输入/输出点。

CPU 221具有6个输入点和4个输出点,CPU 222具有8个输入点和6个输出点,CPU 224具有14个输入点和10个输出点,CPU 224XP具有14个输入点和10个输出点,CPU 226具有24个输入点和16个输出点。

本机模拟量输入/输出点。

CPU 224XP具有2个输入点,1个输出点。

中断输入。

允许以极快的速度对过程信号的上升沿作出响应。

高速计数器。

CPU 221/222

4个高速计数器(30KHz),可编程并具有复位输入,2个独立的输入端可同时作加、减计数,可连接两个相位差为90°的A/B相增量编码器。

CPU224/224XP/226。

6个高速计数器(30KHz),具有CPU221/222相同的功能。

CPU 222/224/224XP/226。

可方便地用数字量和模拟量扩展模块进行扩展。可使用仿真器(选件)对本机输入信号进行仿真,用于调试用户程序。

模拟电位器

CPU221/222 1个。

CPU224/224XP/226 2个。

CPU221/222/224/224XP/226还具有。

脉冲输出

2路高频率脉冲输出(zui大20KHz),用于控制步进电机或伺服电机实现定位任务。

实时时钟

例如为信息加注时间标记,记录机器运行时间或对过程进行时间控制。

EEPROM存储器模块(选件)

可作为修改与拷贝程序的快速工具(无需编程器),并可进行辅助软件归档工作。

电池模块

用于长时间数据后备。用户数据(如标志位状态,数据块,定时器,计数器)可通过内部的超级电容存贮大约5天。选用电池模块能延长存贮时间到200天(10年寿命)。电池模块插在存储器模块的卡槽中。

编程:CPU 221/222/224/224XP/226

STEP 7-Micro/WIN32 V3.1编程软件可以对所有的CPU 221/222/224/224XP/226功能进行编程。同时也可以使用STEP 7-Micro/WIN16 V2.1软件包,但是它只支持对S7-21x同样具有的功能进行编程。

STEP 7-Micro/DOS不能对CPU 221/222/224/224XP/226编程。如果使用PG/PC的串口编程,则需要使用PC/PPI电缆。

如果使用STEP 7-Micro/WIN32 V3.1编程软件,则也可以通过SIMATIC CP 5511或CP 5611编程。在这种情况下,通讯速率可高达187.5kbit/s。

可以利用PC/PPI 电缆和自由口通讯功能把 S7-200 CPU 连接到许多和RS-232标准兼容的设备。

有两种不同型号的 PC/PPI 电缆

带有RS-232口的隔离型 PC/PPI 电缆,用5个DIP开关设置波特率和其它配置项 (见下图)。

带有RS-232口的非隔离型 PC/PPI 电缆,用4个DIP开关设置波特率。 有关非隔离型PC/PPI电缆的技术规范,请参阅S7-200 可编程控制器系统手册。

当数据从RS-232传送到RS-485口时,PC/PPI 电缆是发送模式。当数据从RS-485传送到RS-232口时,PC/PPI 电缆是接收模式。当检测到RS-232的发送线有字符时,电缆立即从接收模式转换到发送模式。当RS-232发送线处于闲置的时间超过电缆切换时间时,电缆又切换到接收模式。这个时间与电缆上的DIP开关设定的波特率选择有关。

各型号的优点

CPU 221

本机集成6输入/4输出共10个数字量I/O点。无I/O扩展能力。6K字节程序和数据存储空间。4个独立的30kHz高速计数器,2路独立的20kHz高速脉冲输出。1个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力。非常适合于小点数控制的微型控制器。

CPU 222

本机集成8输入/6输出共14个数字量I/O点。可连接2个扩展模块。6K字节程序和数据存储空间。4个独立的30kHz高速计数器,2路独立的20kHz高速脉冲输出。1个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力。非常适合于小点数控制的微型控制器。

CPU 224

本机集成14输入/10输出共24个数字量I/O点。可连接7个扩展模块,zui大扩展至168路数字量I/O点或35路模拟量I/O 点。13K字节程序和数据存储空间。6个独立的30kHz高速计数器,2路独立的20kHz高速脉冲输出,具有PID控制器。1个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力。I/O端子排可很容易地整体拆卸。是具有较强控制能力的控制器。

CPU 224XP

本机集成14输入/10输出共24个数字量I/O点,2输入/1输出共3个模拟量I/O点,可连接7个扩展模块,zui大扩展值至168路数字量I/O点或38路模拟量I/O点。20K字节程序和数据存储空间,6个独立的高速计数器(100KHz),2个100KHz的高速脉冲输出,2个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力。本机还新增多种功能,如内置模拟量I/O,位控特性,自整定PID功能,线性斜坡脉冲指令,诊断LED,数据记录及配方功能等。是具有模拟量I/O和强大控制能力的新型CPU。

 西门子6ES7972-0BB42-0XA0接头

西门子PLC保养

一、 保养规程、设备定期测试、调整规定

  (1) 每半年或季度检查PLC柜中接线端子的连接情况,若发现松动的地方及时重新坚固连接;

  (2) 对柜中给主机供电的电源每月重新测量工作电压;

二、 设备定期清扫的规定

  (1) 每六个月或季度对PLC进行清扫,切断给PLC供电的电源把电源机架、CPU主板及输入/输出

板依次拆下,进行吹扫、清扫后再依次原位安装好,将全部连接恢复后送电并启动PLC主机。认真清扫

PLC箱内卫生;

  (2) 每三个月更换电源机架下方过滤网;

三、 检修前准备、检修规程

  (1) 检修前准备好工具;

  (2) 为保障元件的功能不出故障及模板不损坏,必须用保护装置及认真作防静电准备工作;

  (3) 检修前与调度和操作工好,需挂检修牌处挂好检修牌;

四、 设备拆装顺序及方法

  (1) 停机检修,必须两个人以上监护操作;

  (2) 把CPU前面板上的方式选择开关从“运行”转到“停”位置;

  (3) 关闭PLC供电的总电源,然后关闭其它给模坂供电的电源;

  (4) 把与电源架相连的电源线记清线号及连接位置后拆下,然后拆下电源机架与机柜相连的螺

丝,电源机架就可拆下;

  (5) CPU主板及I/0板可在旋转模板下方的螺丝后拆下;

  (6) 安装时以相反顺序进行;

五、 检修工艺及技术要求

  (1) 测量电压时,要用数字电压表或精度为1%的表测量

  (2) 电源机架,CPU主板都只能在主电源切断时取下;

  (3) 在RAM模块从CPU取下或插入CPU之前,要断开PC的电源,这样才能保证数据不混乱;

  (4) 在取下RAM模块之前,检查一下模块电池是否正常工作,如果电池故障灯亮时取下模块PAM

内容将丢失;

  (5) 输入/输出板取下前也应先关掉总电源,但如果生产需要时I/0板也可在可编程控制器运行

时取下,但CPU板上的QVZ(超时)灯亮;

  (6) 拨插模板时,要格外小心,轻拿轻放,并运离产生静电的物品;

  (7) 更换元件不得带电操作;

  (8) 检修后模板安装一定要安插到位

1、引言
可编程序控制器(简称plc)是一种工业自动控制中使用的计算装置。它广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、航天、环保及文化娱乐等各个行业。小到家用设备,大到航天器材,都有plc的应用。
典型的plc由一个专用的cpu,一个存储器和一组输入输出端口构成,如图1所示。它通过输入端口接收来自传感器的信号,并通过输出端口发出控制信号驱动同它连接的外部设备。存储器中安放控制程序,系统的活动由控制程序所驱动。
plc系统每隔一定的时间间隔(比如5毫秒)从输入端口读入信号,执行计算,然后向输出端口发送输出信号。每一“输入-计算-输出”周期称为一个扫描周期。plc程序在每个扫描周期中重复执行一遍。plc的简单应用有洗衣机控制,电梯控制。复杂的应用有自动机床控制,自动化工程控制。
plc程序设计具有不寻常的软件编程模式。设计中需要考虑多个并行线程,它们之间的交互作用,以及在时间域上的行为。在plc的五种主要的编程语言当中,源自继电器控制系统的梯形图语言采用了一种简单的方式巧妙地处理了并行程序设计问题,然而,由于plc编程问题的固有复杂性,以及测试手段的缺乏,许多plc程序中依然存在大量的错误。
为了解决这一问题,灵芯实验室正在开发plc测试系统,为plc程序的调试提供解决方案。在这一系统的试用过程中,在两本plc入门教科书的6个简单程序例子中发现其中的4个程序里面至少包含8个错误。
●一个抢答器程序在两个参赛者同时按下抢答按钮时,只有其中一个人的警报器能够发出警报;
●一个喷泉程序中,喷水组在几个指定时间上没有按要求停止喷水,或开始喷水;
●一个交通灯控制程序中,绿灯闪烁控制不正常;系统启动的时候,一个方向绿灯亮,另一个方向的红灯却不亮;强通结束之后,交通灯没有立即恢复正常运行;
●在另一个交通灯程序中,按下停止按钮之后,所有的灯熄灭,但两个方向人行道上却亮红灯。
我们认为这一发现是不同寻常的。虽然每个程序员和教师都会犯编程错误,但是我们还从未在任何一本程序设计的教科书中发现如此高比例的程序错。这一现象初步证实了plc程序 错误的广泛性和严重性。
本文将逐一分析上述每一个程序的错误,指出错误原因。其中大部分程序,我们给出纠正了错误的新程序。期望这一分析能够帮助plc程序员和教师提高plc程序设计的正确性。plc程序的执行原理以及梯形图的语义将在例子的介绍中同时给予解释。我们相信,通过分析错误来学习是掌握遍程技巧的好方法。

  

图1  plc构造原理图
2、抢答器程序
题目:抢答器程序
来源:plc应用技术开发与实践
编程平台:西门子公司 s7-200
问题描述:
(1)主持人控制开始按钮;
(2)3个抢答者每人控制自己的抢答按钮;
(3)开始按钮按下之后所有警报器断电;
(4)之后每个抢答按钮按下将使自己的警报器得电,并锁住其他抢答者输入信号的有效性。
  变量分配:
  i0.0 主持人按钮;
  i0.1,i0.2,i0.3 分别为三个抢答者按钮;
  q0.0,q0.1,q0.2 分别为对应于抢答者的警报器输出;
  原书给出的抢答器梯形图程序(见图2)。

 

图2  抢答器梯形图程序
plc程序语义:
上述梯形图程序的语义可以用比较简短的方式表达出来:
q0.0 := (i0.1 or q0.0) and ~i0.0 and ~q0.1 and ~q0.2;
q0.1 := (i0.2 or q0.1) and ~i0.0 and ~q0.0 and ~q0.2;
q0.2 := (i0.3 or q0.2) and ~i0.0 and ~q0.0 and ~q0.1;
其中~i0.0表示i0.0的逻辑非。
plc的程序周期性地重复执行,每个周期时间很短。在一个周期中,plc将读入输入值(这里是i0.1,i0.2和i0.3),经过对上述程序的计算之后,把输出变量(这里是q0.0,q0.1和q0.2)的值送到外部。注意上述程序在每个周期中都重复执行。在每个周期中,程序的执行由上往下由左至右。
当一个抢答按钮按下之后(比如i0.1=1),对应的输出(q0.0)马上变成1。在下一周期中,即使该按钮方开(i0.1=0)程序的输出依然会保持为0,原因是程序依靠自反馈作用(or q0.0)。同时,由于在另外两个程序段中含有~q0.1,因此它们的输出都无法变成1,直到主持人按钮i0.0把q0.0重新置0为止。
●程序问题
如果两个抢答者在同一时刻按下按钮,在程序中处于前面的抢答者的警报器输出正常,另一个抢答者的警报器没有输出。
●程序分析
本问题分成三个程序段,它们本应并行执行方能达到公平的效果。但plc的cpu只能顺序执行程序,因此在程序中位置处于前面的抢答者的输出产生之后,后面的程序输出就被立即阻断。因此两个按钮同时按下时,只有其中的一个得到响应。
plc的编程模式来源于继电器电路控制系统,在那些系统中,上述三个程序段对于三个并行运行的电路,但是转到cpu中之后,这些程序就不得不顺序执行。并行模型与顺序执行的冲突是许多程序错误的原因。在作者先前的论文中就对这一问题进行了分析[1]。
在顺序执行的机器上面实现plc并行语义是可能的。但是依然需要小心各种陷阱。下面的次尝试存在一个错误,再后面一个程序改正了这个错误,通过了程序测试。
●程序修正尝试
克服上面问题的一个自然的想法是使用中间变量保存每个程序段的输出。这一思路导致下面的程序实现(见图3):

 

图3  程序修正尝试程序实现图
使用这一程序时,如果两个抢答者的按钮同时按下,对应的两个警报器会同时响。但是,在下一周期,两个警报器的输出又会同时恢复到0。原因是每一个抢答输入都会导致另一个抢答无效,两个抢答输入就会同时导致对方无效。
●终程序
下面的程序克服了上述问题,并且通过了基本的测试检查(见图4)。
它同前面程序不同之处在于把q0.0等变量的管辖范围放宽了,因此一旦q0.0为1,只要主持人按钮不按下,它的值就能继续保持下去。

  

图4  基本测试检查结果
3、喷泉程序
题目:plc在喷泉中的应用
来源:plc应用技术开发与实践
编程平台:三菱公司fx2n系列
问题描述
(1)喷泉有a,b,c 3组喷头;
(2)按动开始按钮后,a组先喷,10秒后停,然后b组和c组同时喷;
(3)b和c喷10秒后b停,再10秒后c停;
(4)a,b又喷,5秒后,c也喷,持续10秒后全部停;
(5)再5秒后重返上述(2)到(4)步;
(6)按动停止按钮后,a,b,c 3组喷头全部停。
输入输出变量分配:
x0001:开始按钮
x0002:结束按钮
y0001:a组喷头
y0002:b组喷头
y0003:c组喷头
内部继电器:m0—m5
定时器分配(见图5):
t0:a组喷10秒; 0—10
t1:b,c组喷10秒; 10—20
t2:c组喷10秒; 20—30
t3:a,b组喷5秒;30—35
t4:a,b,c组喷10秒;  35—45
t5:a,b,c组停喷5秒; 45—50
同前一程序相比,这一程序中增加了t0,t1等定时器。定时器用t标识,它的上方是定时器变量名,下方是预定的定时延迟。本例使用的是ton类型定时器,这种定时器只要输入端由0转1计时就开始,在计时过程中,输入端必须始终保持为1,一旦定时器到时,它所对应的变量就立即由0转1。在计时过程中,如果输入端转0,则计时停止,定时器到时之后,只要输入端继续为1,那么计时器变量也继续保持为1,一旦输入变0,计时变量也转为0。本例中的定时器按十分之一秒为单位计时。
这个程序含有三个错误,它的某些喷头在预定停止的时刻没有停止,在预定开始的时刻没有开始。
程序错误(1):按照要求程序开始后20秒,c组喷发应该停止,但该程序却没有停止c的喷发。
原因分析
c的喷发受到m1,m2和m3的控制,它们分别控制c组的,第二和第三次喷发。在第二次喷发结束之后,m2为0,喷发本应停止,但调试中发现c的输出(y0002)继续为1,单步调试发现, 此时m1为1,由此造成c组输出继续。分析发现,产生m1的梯形图有错。应该使用m1来产生反馈,但程序中用了b组的输出变量y0001。 该变量恰好在c组第二次喷发之后重新置1,因此造成了c组继续喷发。将此处改成m1之后这一错误即可消除。
程序错误(2):程序开始后50秒,a组喷发应该重新开始,但实际运行中并未开始。
原因分析:
这是一个定时时间写错的简单错误。定时器t4设定的时间应为5秒(50),但梯形图中错写成100(该书指令表程序中也是写50,梯形图中是一个失误)。
程序错误(3):在纠正了上面两个错误之后,程序依然无法通过测试。50秒之后,c组不应该开始喷发,但实际运行中喷发。
原因分析:
50秒之后,程序进入下一周期。此时程序该如何运行在原书中没有清楚描述,这属于描述不全。根据程序的具体实现,可以看出作者的意图是在50秒之后把整个喷发过程重演一遍。基于这样的理解,程序应该在50秒之后开始a组喷发,但程序运行结果是,不但a组喷发,而且c组也喷发,后一行为不符合规定。
出现这一现象的原因在于,m0的梯形图中使用了y000来实现反馈。这一错误同个错误类似,只是这一方式在一个周期的运行中没有问题,在第二周期中就会出现问题。在该图中用m0取代y000就能消除这一错误。
在消除了以上问题之后得到梯形图如图6所示。

  

图5  定时器分配程序图

  

图6  梯形图
4、十字路口交通灯控制程序
题目:交通灯控制程序
来源:plc应用技术开发与实践
编程平台:omron公司cqm1系列
●任务描述
工作顺序:启动按钮,南北绿灯,东西红灯,东西绿灯,南北红灯。按此顺序循环。
时序控制:(90秒周期)
●主干道
南北左转灯:绿10秒,黄2秒,红78秒; 
南北直行灯:红10秒,绿30秒,绿闪3秒,黄2秒,红45秒;
东西方向左转灯和直行灯的工作方式与上相仿,但延迟45秒。人行道灯与主干道直行灯相同。
●强通控制
打开强通开关,强通方向绿灯亮,断开强通开关,绿灯闪3秒,恢复正常控制;
闪烁控制,亮0.5秒,暗0.5秒,持续3秒; 
这个程序比较长,不便全部抄录在此。这里仅指出程序中的几个错误,并列出相关的程序段。

图7程序的实现
程序错误(1):闪烁控制错误。闪烁过程通过一个专门的程序段控制,按要求该程序应该每隔0.5秒输出1,然后0.5秒输出0,不断循环。图7是书中该程序的实现:
其中只用到tim050一个定时器,计时单位为十分之一秒。omron的tim型定时器的工作方式同西门子ton型定时器相仿,当输入为1时启动计时,一旦输入转0,立即停止计时,定时器变量输出复位为0。
起始状态tim050的值为0,取反后送入定时器1,启动计时,5个单位之后到时定时器产生信号1。该信号经反馈之后,把0送入定时器,这一输入值立即把定时器输出重新变为0。因此,该段程序只能产生非常短暂的1,而不是持续0.5秒的1。当该信号用于驱动绿灯时,无法产生正常的均匀闪烁效果。
●程序修正(见图8)

图8  程序修正图
这里用了两个定时器,当个定时器tim050到时之后,它的输出信号1送到第二个定时器tim051启动后者计时。但tim051需要5个单位之后才能到时,在这段时间内,tim050依然的输入依然是1,因此它能够把1继续保持0.5秒,由此产生一个均匀的每隔0.5秒变化的脉冲。
程序错误(2):在系统初始启动阶段,南北方向绿灯亮,但东西方向的左转红灯和直行红灯没有同时点亮
原因分析:由于相关程序比较长,不便在这里展示,这里我们仅分析一下出错的原因及解决的办法。原程序中采用顺序启动各个颜色灯的方法。即左转绿灯10秒后启动直行绿灯,30秒后绿闪,2秒后黄灯,然后55秒红灯。(http://www.diangon.com/版权所有)然而,按这一顺序运行时,一开始南北直行红灯的10秒缺掉了,东西左转红灯45秒漏了,后东西直行红灯55秒也漏了。要改变这一情况,需要改变后一程序,同时再引入两个定时器,把红灯控制切分成两段完成。
可能人们认为上一个问题不算严重,因为原来程序在启动一分钟之后就能达到正常。但下面的强通控制的错误确是比较严重的。所谓强通是指紧急车辆到达路口时,人工控制按下相应方向的强通开关,使得这一方向的绿灯亮,另一方向亮红灯。紧急车辆过去之后,强通开关方块,强通方向绿灯闪动三下之后,恢复原来的系统运行。
程序错误(3):强通按钮放开之后,按规定强通方向绿灯应该闪烁三下,然后熄灭,但实际情况是绿灯没有按照规定闪烁和停止,而是持续发亮。
原因分析:
我们以东西向直行绿灯控制程序段为例分析这一问题。
该程序中100.12为控制东西向绿灯的输出变量。该方向的强通通过hr0.00控制,强通按钮按下之后,该变量为1,从而引起100.12输出为1,绿灯亮。强通按钮放开之后,这条通路切断,hr0.01变为0之后,hr0.03会变为1,过程在这里略去。hr0.03所在的通路将产生一个3秒钟的闪烁脉冲。编程者的意图是通过它在结束强通之后制造一个绿灯闪烁过程。然而,由于变量100.12的反馈存在,一旦该变量为1,它将自动地继续保持为1。只有两种方式可以使它恢复为0,一种是30秒定时器到时(tim010),另一个是另一方向的强通信号hr0.01。在同方向强通信号结束之后,一般情况下,上述两个信号均不会转为1,因此绿灯无法马上停止。系统并不产生规定的效果。
这是一个比较严重的错误,因为此处本应经过绿灯闪烁转为红灯,但系统却始终保持绿灯。这样的系统是无法接受的。
这一问题的解决比较复杂一点。由于我们的主要任务是发现错误,此地我们不再讨论如何修正这一错误的问题。

图9  东西向直行绿灯控制程序分析图

5、第二个十字路口交通灯控制程序
本节讨论另一本书上的交通灯控制程序中的错误。这一程序没有处理强通控制这样的复杂问题,但是人行道控制同主干道控制分开处理,结果在人行道控制上出现了错误。
题目:交通灯控制程序
来源:plc应用开发实用子程序
编程平台:西门子s7-200
时序控制:(90秒周期)
南北主干道  左转绿10秒,绿30秒,绿闪3秒,黄2秒,红45秒;
东西人行道:红13秒,绿27秒,绿闪3秒,红47秒;
东西主干道: 红45秒,左转绿10秒,绿30秒,绿闪3秒,黄2秒;
南北人行道:红58秒,绿27秒,绿闪3秒,红2秒。
注:
(1)绿闪包括转向绿灯和转向绿灯;
(2)东西人行道指东西两端的人行道。
测试显示该程序时序上运行正确,但是在关机时出了问题。
程序错误:按下系统停止开关,大部分灯都熄灭,但两个方向的人行道上亮起红灯。
程序分析:
我们以控制东西方向人行道红灯的变量q1.3的计算为例进行分析。下面把相关程序段专门抽出来进行分析(见图10)。

 

 图10  相关程序段分析图
图中可见,当m0.4为0 时q1.3将输出1。当t7,t8为0时m0.4必定为0。系统停止开关是i0.2,它按下之后会使m0.1变为0,该变量是控制系统活动的主要变量,它变为0将使一系列变量变为0,也包括t7和t8。然而这样做却没有关掉东西两端人行道的红灯。南北两端人行道红灯采用的是类似程序,因此也没有关掉。
程序修正:
只需把m0.1直接加入到人行道红灯的控制中即可。

6、结束语
本文分析了来自两本plc教材的4个程序例子,从中找出大大小小8个错误,并对这些错误的原因进行了分析。我们希望这个分析能够帮助程序员减少编程错误。
本文目的是为了揭示plc程序错误的普遍性。这些错误不能简单归咎于作者的失误,主 要原因是编程模式的复杂性以及测试手段的缺乏。
失误是人类的普遍行为。对于计算机程序这样复杂的对象,出错经常出现。程序编制过程本身就是一个不断尝试不断纠正错误的过程。然而,在plc领域,离线的调试工具比较薄弱,迄今为止好的调试方式依然是现场调试,但是这一方式过于耗费时间,而且一般教师和学生都没有这样的条件。这是程序错误率高的根本原因


展开全文
优质商家推荐 拨打电话