新闻中心

EEPW首页>嵌入式系统>设计应用> 一组PLC程序的逻辑错误分析

一组PLC程序的逻辑错误分析

作者: 时间:2014-01-13 来源:网络 收藏


这是一个比较严重的错误,因为此处本应经过绿灯闪烁转为红灯,但系统却始终保持绿灯。这样的系统是无法接受的。

这一问题的解决比较复杂一点。由于我们的主要任务是发现错误,此地我们不再讨论如何修正这一错误的问题。

图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领域,离线的调试工具比较薄弱,迄今为止最好的调试方式依然是现场调试,但是这一方式过于耗费时间,而且一般教师和学生都没有这样的条件。这是程序错误率高的根本原因。

作者简介

陈钢 男 现就职于镇江灵芯软件试验室,从事plc测试软件的开发和商业化工作。

参考文献

[1]陈钢,宋晓宇,顾明等.coq定理证明器辅助plc程序验证和分析[j].北京大学学报,2010(1).

[2]求是科技.plc应用开发技术与工程实践[m].北京:邮电出版社,2005.

[3]贾德胜.plc应用开发实用子程序[m].北京:邮电出版社,2006(1).

西门子plc相关文章:西门子plc视频教程



上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭