编程特点范文(精选4篇)
编程特点 第1篇
1.1 数值计算
MATLAB的“矩阵计算思想”能够高效地解决很多复杂计算问题。在MATLAB中, 矩阵运算、向量运算是MATLAB的计算基础, 是“最底层”的计算, 快过任何高效的语言。如:一行代码就可以对数据矩阵做标准化:
在数值计算方面, MATLAB提供了丰富的工具包 (Toolbox) , 能够满足日常研究的绝大部分需求。
1.2 数据分析
MATLAB在这方面是有一条龙服务的:数据采集、处理、分析、可视化。
如图1, Matlab可通过图像的方式将数据处理结果直观的呈现给用户。数据采集还支持很多的文件格式, 包括一些新兴的数据文件 (net CDF等) 。而且MATLAB提供I/O函数, 理论上可以用它实现对任何格式数据文件的处理。而且, 现在的MATLAB和硬件的结合越来越紧密, 可以直接从硬件读取数据。数据处理和数据分析方面, 通过现有的工具包, 几乎涵盖各行各业。
1.3 集成性
在集成的众多模块基础上, 又提供了很多接口来使用其他平台诸如Excel等。M语言的使用使得搭建一个混合平台的开发环境成了可能。matlab能够提供几乎全平台的功能又同时提供方法让你去自由选择方法。即使只会C、C++、Java、shell等其中的任一语言, 也可以迅速融入到平台。如:如何编写一个能求出两个矩阵相乘的算法?可以用C编写,
也可以用matlab实现:C=A*B, 从另一方面也可以看出Matlab在数值计算方面的优势。MATLAB给并不是一个封闭的、受限的平台, 用户可以拥有高度的自由度与自我定制的选择权。
2 程序性能优化
2.1 程序的执行效率
要想提高程序的运行效率, 改进算法是最关键的。算法是影响程序运行效率的主要因素, 在编写不同程序时要选择合适的算法。例如求1+2+…+99, 可以按照顺序依次加起来, 也可以采用 (1+99) + (2+98) +…的方法来计算, 显然第二种方法更适合人们计算, 它的效率比顺序相加快的多, 甚至口算就能迅速得到答案。但对于计算机来说, 第二种方法如果程序编制不当, 反而会降低计算速度。因此, 选择适当的算法是提高运行效率的关键。此外, 影响程序运行速度的地方都是在执行次数最多的地方, 例如乘法和除法都是相当浪费CPU运算时间的运算。
综上所述, 在使用Matlab进行程序设计时, 可通过如下方法来提高程序的执行效率:
(1) 尽可能地使用load函数和save函数, 而不是文件I/O操作函数。
(2) 避免更改变量的数据类型或维数。
(3) 尽可能使用实数运算。如复数可转换为多个实数的运算。
(4) 在进行逻辑运算时, 采用&&等短路逻辑运算具有更高的效率。
(5) 代码向量化。向量化是指将for和while循环转换为等价的向量或矩阵操作。
(6) 可以将耗时很长的循环操作放在MEX文件内实现。
(7) 尽可能使用函数M文件而不是脚本M文件。
2.2 内存优化技术
了解matlab对内存的使用情况, 我们可以通过一系列函数来进行相关操作, 如whos函数, clear函数, save函数, load函数, quit函数, pack函数。
为了更加有效的利用内存, 需注意以下几点:
(1) 在函数开始处创建变量。
(2) 从内存中清除不再使用的变量, 建议周期性的把数据存入磁盘。
(3) 当使用大的矩阵变量时, 提前指定维数并分配内存, 避免临时扩充维数。
(4) 将满秩矩阵转换为稀疏矩阵。
摘要:MATLAB作为当代研究算法开发、数据可视化、数据分析以及数值计算的高级计算语言和交互式环境。其中, 充分理解MATLAB编程的特点, 分析代码的运行时间, 研究如何高效的利用内存空间很有意义。本文对MATLAB编程的特点进行阐述, 介绍了加速程序运行速度的编码技巧, 并且对有效使用内存的方法给出合理的建议。
关键词:MATLAB,编程,优化
参考文献
[1]唐洪浪.MATLAB程序优化的方法[J].洛阳师范学院学报, 2005 (5) :72-74.
主流编程语言的特点与比较 第2篇
1 基本数据类型
C语言的基本数据类型包括整型(int、short、long)、浮点型(float、double、long double)和字符型(char)。C语言的整型数据类型和字符型数据类型都分为有符号[signed](默认)和无符号unsigned两种。相应的无符号数据类型的取值范围也会有所变化。
VB中的数据类型包括整型(Integer、Long)、浮点型(Single、Double)和字符型(String),此外还有布尔型(Boolean)、字节型(Byte)、货币型(Currency)、日期型(Data)、对象型(Object)和变体型(Variant),数据类型可谓很丰富。
VB.NET中的数据类型与VB基本相同,但多了个定点数Decimal型,在内存中占128bit,比Currency型拥有更高精度。此外,字符型分string(宽度自动)和char(16位)两种,取消了变体型(Variant)。
Java中的数据类型与C语言基本相同,不同之处是浮点型没有long double型,另外新增了逻辑型(boolean)和字节型(byte)。
上述数据类型的具体宽度、类型符或前缀后缀在不同语言里也略有差异,这里就不详述了。图1给出了C语言、Java、VB.NET的数据类型转换关系。
2 常用控制语句
编程语言中控制语句是写代码最常用的了。这里我们将分别比较条件控制语句if、case和循环控制语句for、while这些简单语法在不同语言中的区别。C语言和Java的语法比较像,VB和VB.NET的语法比较像,所以这里我们只比较Java和VB.NET。
2.1 条件控制语句
2.1.1 If语句
(1)在Java中最简单的形式
如果要设定多个条件语句,可以在else的后面继续写i(表达式),这里不再给出。
(2)在VB.NET中最简单的形式。
这里需要注意的是if与else是就最近的一组来配对,因此嵌套时最好要有缩进,以增强程序的可读性。从上面的对比很容易看出VB.NET在“If表达式”后面一定要有Then来引导后续的语句,而且结束时比Java多了End if。最特别也最容易忽略的问题就是Java的else if中间是有空格的,而VB.NET的Elseif是一个关键字,但是在最后的End if中间是空开的。另外Java每个表达式都要用小括号括起来,每个语句结束要有“;”。
2.1.2 Case语句
(1)Switch…Case
在Java中与case配对的是switch,如果所有case中的算术表达式的值都不能与switch的表达式相匹配,则执行default后面的语句。switch只能接收byte、short、int和char型变量的判断,并且要用小括号括起来。
(2)Select…Case
在VB.NET中与Case配对的是Select,如果所有Case中的算术表达式的值都不能与Select表达式相匹配,则执行Case Else后面的语句,VB.NET在最后有End Select。
2.2 循环控制语句
2.2.1 for循环
(1)Java中的形式
(2)VB.NET中的形式是:
2.2.2 while循环
(1)Java中的形式
(2)VB.NET中的形式
这种形式的循环叫前测循环,还有一种形式是后测循环,条件表达式放在Loop后面。在后测循环中循环体语句至少会被执行一次。
3 编码规则
3.1 C语言的编码规则
C语言的特点是由函数构成,至少包含一个main函数,编写C程序就是编写一个个函数。C程序总是从main()开始执行,main()可以放在任何位置。
在C语言中,整型与字符型数据可以通用,对数组下标越界不做检查。变量必须先定义后使用。区分大小写,习惯上符号常量用大写,变量用小写。变量命名必须是以字母或下划线开头,由字母、数字及下划线组成。用/*……*/表示注释。每个语句后必须有一个分号,一行可写多句,一句可写在多行。
3.2 VB的编码规则
VB变量可以不必声明,直接使用,默认为Variant类型。但VB使用数组,必须事先用Dim或Redim进行定义。不区分字母大小写,为了便于阅读,每个单词首字母一般用大写。变量命名必须是以字母或汉字开头,由字母、汉字、数字及下划线组成,长度小于255个字符。注释可以用“Rem”或“’”引导。同一行上可写多条语句,用“:”分隔;一句可分若干行写,在要续行的行尾加入续行符“_”,一行最多允许255个字符。VB在调用函数时,必须在函数名后跟一对括号。此外,VB对变量的使用范围重新做了规范,在Basic里把隐含变量都当作全局变量,而在VB里把隐含变量都当作局部变量。
3.3 VB.NET的编码规则
VB.NET继承了VB的语法,变量命名规则、注释和语句书写格式都与VB基本相同。不同点是VB.NET强制使用显示变量声明;公有变量名中每个独立的单词都以大写字母开头,如CustomerName;局部或私有变量名第一个单词的首字母小写,如newCustomer。
3.4 Java的编码规则
Java语言的特点是由类构成,必须含有一个可被外界(通常是Java编译器)所直接调用的类,也就是主类,编写Java程序就是编写一个个类。Java Applet程序的主类是继承自Applet的子类;Java Application程序的主类是包含main方法的类,整个应用程序就是从main方法开始执行的。
在Java中变量必须先定义后使用。严格区分字母大小写,习惯上常量用大写,变量以小写字母开始,类以大写字母开始。变量命名必须以字母、下划线或美元符号“$”开头,由字母、数字、下划线及美元符号组成。下划线通常用于常量名的单词分隔。如果一个变量名由多个单词构成,第一个单词后面的单词要以大写字母开始,例:anInt。注释和语句书写格式与C语言同。
4 技术性能
C语言是当代最优秀的程序设计语言之一。它作为一门面向过程的计算机语言,至今己有三十多年的历史。C语言集汇编和高级语言优点于一身,它的可移植性好,表达运算能力强,硬件控制能力高,既可以用来写系统软件,也可以用来写应用软件,尤其适合在操作系统和系统实用程序以及需要对硬件进行操作的场合使用。由于C语言具有广泛的库程序支持,所以目前在嵌入式系统中是应用最广泛的编程语言。
VB语言即“Visual Basic”,诞生于20世纪90年代初。VB以扩展了的BASIC语言为基础,因其简单易学,一直作为编程初学者的入门语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易地使用DAO、RDO、ADO连接数据库,或者轻松地创建ActiveX控件。用户可用VB快速创建Windows程序或编写企业水平的C/S程序。VB的缺陷是程序的运行不能脱离VB的运行库和所使用的控件;对于复杂运算或多层循环嵌套没有特别的优化,执行速度远不如C程序;缺乏链表、图和二叉树等数据结构;不支持端口操作。
VB.Net是VB的后续版本,它是基于.NET框架重新设计的,可以用它来轻松地创建用于Windows操作系统和Web的下一代应用程序。如果说VB是基于对象的,那么VB.Net是真正的面向对象的语言。这意味着比在以前的VB版本里,你将获得更多的内在功能,将很少被迫使用Windows API。这些提升的性能包括继承、重载、接口、委托、异常、命名空间和多线程等。.NET平台拥有公共语言运行时环境CLR,而且实现了类库的通用。通过CLR,VB.Net可以与C#等其他.NET语言协同工作。
Java语言是Sun公司于1995年发布的程序设计语言。如果要用一句话来描述Java,它是“一种简单的、面向对象的、解释型的、健壮的、安全的、结构中立的、可移植的、高性能的、多线程的、动态的语言”(引自Sun的Web页面)。Java继承了C/C++的语法,丢弃了其中不常用又容易引起混淆的功能,取消了C语言的结构、指针、预处理、多重继承、操作符重载、自动类型转换等。Java写成的源代码需要被编译成字节码,然后再由Java虚拟机(JVM)解释执行,从而保证了Java的与平台无关性和可移植性。Java“一次编程到处可用”的特性使得它在很多领域倍受欢迎。Java不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发。目前Java主要应用于电子商务领域,同时Java正在向无线应用、端对端(P2P)计算和嵌入式等新领域迈进。相信随着网络技术的不断发展,Java的应用也将越来越广泛。
VB.Net是为建造基于因特网的分布式计算的新时代的解决方案提供基础构造的一个转变。.Net平台的推出对Java在企业开发中的应用构成了强有力的竞争。总的来说,Java比.Net早发展5年,Java技术更自由、更成熟,涉足的领域更广泛。然而.NET则比Java更加先进。虽然仅仅是先进一点点,但在开发中却益处很大。
5 结语
近年来计算机语言发展很快,新的语言不断产生,流行语言不断完善,逐步形成了百花齐放、百家争鸣的局面。未来的编程语言谁主潮流,现在还很难预测。本文仅对应用比较广泛的C语言、VB、VB.NET和Java的一些基本特征做一番比较。其实没有哪种语言是完美的,都有优势,也都有劣势。选择哪种语言应该根据实际应用及自身的基础,适合的就是最好的。编程的难点主要是算法,语言只不过是算法的实现工具。学习语言要在会用的基础上学会编程的思想和方法,这才是根本。
摘要:计算机编程语言种类很多,但仅有少数几种语言得到了比较广泛的应用。本文选择了C语言、VB、VB.NET和Java作为讨论对象,首先总结比较了它们的数据类型、控制语句的语法,然后对编码规则的细节进行了阐述,最后讨论了这几门语言的技术性能特点。
关键词:数据类型,控制语句,编码规则,技术性能
参考文献
[1][美]Herbert Schildt等著,邓劲生(译).JAVA编程艺术[M].北京:清华大学出版社,2004,09.
[2]谭浩强.C语言程序设计[M].北京:清华大学出版社,2005.
[3]VB入门教程.http://vbworld.sxnw.gov.cn/vbbooks/index.asp.
[4]任亚洲.计算机二级考试程序设计语言分析[J].电脑知识与技术,2008,(02).
编程特点 第3篇
关键词:影片剪辑,对象,事件
学过动画制作的人都有这样一个体会, 要制作出一个好的Flash动画, 使用AS编写动作脚本是必不可少的, 即使只是很简单的几句代码, 也会在整个Flash动画中起到画龙点睛的作用。然而, AS又有别于其他的编程语言, 它的编程环境、语法结构有自己的特点和规则, 需要我们在使用之前有一定的了解。
1 AS的编程环境
选取某一桢、某一个按钮或某一个影片剪辑元件的实例, 右键打开动作面板, 就进入了AS的编程环境。
1) 帧:要把AS写在桢上, 需要选取这一桢, 右键打开动作面板。写在关键帧上面的AS, 当时间轴上的指针走到这个关键帧的时候, 写在这个帧上面的AS就被触发执行了。
实例:选取影片结尾的一个关键帧, 然后打开AS面板, 在桢上写入stop () 。那么在播放影片的时候, 播放到最后一桢时, 将会停止。
2) 按钮:要把AS写在按钮上, 需要点选目标按钮, 右键打开动作面板。与帧上的AS不同, 按钮上面的AS是要有触发条件的。
实例:要实现按下按钮后停止播放影片, 那么我们需要做一个按钮, 放到主场景, 点选按钮, 然后打开AS面板。如果在按钮上写stop () ;那么, 输出的时候就会提示错误。正确的应该这样写:
on (release) {
stop () ;
}
整个代码翻译过来就是:当 (松开鼠标) {停止播放}。写在按钮上面的AS的格式应该是:on (发生的事件) {要执行的动作代码}
3) 影片剪辑MC:写在MC上面的AS和写在按钮上的大同小异。首先点选MC, 然后右键打开AS面板。
实例:要实现播放影片时先停止场景中影片剪辑MC的播放, 需要先点选影片剪辑MC, 在打开的动作面板上输入如下代码:
onClipEvent (load) {
stop () ;
}
整个代码翻译过来就是:当影片剪辑 (载入) {停止播放}。写在影片剪辑上面的AS的格式应该是:on影片剪辑 (发生的事件) {要执行的动作代码}。
2 AS的语法结构
2.1 AS中的对象
虽然AS不是真正的面向对象的编程语言, 但是它也有对象的概念。这个概念贯穿整个AS的始终, 所以, 对对象的理解, 比对语法或其他的理解更为重要。
在前面的实例中我们可以看到, AS中任何动作都离不开桢、影片剪辑和按钮这些元素, 他们是动作的主体, 有时是执行动作的主体, 有时又是被执行动作的主体, 在AS中, 我们称它们为对象。
2.2 AS中对象的路径
AS中对象的路径用点语法来表示。路径分两种:绝对路径和相对路径。
2.2.1 绝对路径
例如:要指定场景里面的一个影片剪辑里面的按钮对象, 需要这样确定他的路径“场景.影片剪辑.按钮”, 即“场景 (里面的) 影片剪辑 (里面的) 按钮”。这是绝对路径。
实例:要实现播放场景 (_root) 里面的MC, 需要输入如下代码:
_root.MC.play () ;
这里为什么要在play后面加 () 呢?因为播放是方法不是对象, 为了让Flash知道这是个方法, 我们必须加上 () , 否则它会以为场景里面有“播放”这个东西。
绝对路径的语法结构为:对象的绝对路径.方法 () 。
2.2.2 相对路径
例如:主场景中有一个MC, 在播放影片的时候我们希望它不被播放, 那么我们可以选中它, 在动作面板里面输入如下代码:
_root.Mc.stop () ;
那么, 当我们把它移动到其它场景当中去或者我们给这个MC改了名字之后, 这段代码就得重新写了。要实现无论把对象移到哪里区或者把对象的名字如何改都不影响代码的执行, 只需要把我们要执行的代码写在对象的内部就可以了。即在Mc的Timeline的第一帧上写上如下代码:
this.stop () ;
这里的this是Flash的关键词, 指AS所在的这条Timeline, 现在不管这个MC放在哪里, 名字是什么, 肯定会停下来。如果在这里写上_root.stop () ;那就错了。
这个this就是相对路径的一个关键词, 用来表示“当前指定的这个对象”。另外的一个关键词就是_parent, 用来表示当前指定对象的父级。
例如:“教室.黑板.字”是这样一个从属关系, 那么如果在“字”这个对象上写如下代码:
_parent.敲 () ;
则表示敲“黑板”, 而不是敲“字”。
相对路径的语法结构为:对象的相对路径.方法 () 。
3 AS中的常用事件
AS中的动作代码通常要依靠一些事件的发生来触发, 针对按钮和影片剪辑有几个常用的事件:
1) 按钮的常用事件:
On (release) {要执行的动作代码}//当 (松开) {执行动作}
On (release Outside) {要执行的动作代码}//当 (在按钮外面松开) {执行动作}
On (press) {要执行的动作代码}//当 (按下) {执行动作}
On (rollover) {要执行的动作代码}//当 (鼠标进入按钮的感应区) {执行动作}
On (rollout) {要执行的动作代码}//当 (鼠标离开按钮的感应区) {执行动作}
2) 影片剪辑MC的常用事件:
on Clip Event (load) {要执行的动作代码}//当影片剪辑 (载入) {执行动作}
on Clip Event (unload) {要执行的动作代码}//当影片剪辑 (卸载) {执行动作}
on Clip Event (mouse Down) {要执行的动作代码}//当 (按下鼠标) {执行动作}
on Clip Event (mouse Move) {要执行的动作代码}//当 (移动鼠标) {执行动作}
on Clip Event (mouse Up) {要执行的动作代码}当// (松开鼠标) {执行动作}
4 AS中的常用动作代码
4.1 控制场景播放的动作代码
play () ;//让时间轴的指针播放
stop () ;//把时间轴的指针停止在程序触发时候的那个帧
goto And Play () ;//让指针跳转到括号中指定的帧, 然后继续播放
goto And Stop () ;//让指针跳转到括号中指定的帧, 并停止在那个帧
next Frame () ;//在时间线上往后走一帧
prev Frame () ;//在时间线上往前走一帧
实例:制作一个气泡不断从水底升起的动画。
第一步:制作一个气泡的图形元件, 再制作一个气泡从水底升起的影片剪辑元件, 时间线长度为50桢。
第二步:在场景中拖入多个影片剪辑元件, 不规则分布在场景下方区域, 并位于不同的图层。
第三步:为每一个图层上面的元件写入动作代码如下:
onClipEvent (load) {gotoAndPlay (n) ;
goto And Play (n) ;
}
其中给n赋值1~50之间的数值即可。
当播放影片时, 会出现气泡不断从水底升起的动画。
4.2 描述对象的属性的代码
_x//表示对象所在位置的横坐标
_y//表示对象所在位置的纵坐标
_alpha//表示对象的透明度
_width//表示对象的宽度
_name//描述对象的名称
实例:使用按钮控制影片剪辑沿水平方向和竖直方向移动。
第一步:制作一个闪动的星星的影片剪辑元件和一个按钮元件。
第二步:在场景中拖入一个影片剪辑元件实例, 给实例命名为mc1, 并拖入一个按钮元件。
第三步:在按钮元件的动作编辑窗口中输入如下代码:
on (press) {
mc1._x=mc1._x+20
}
播放影片, 当点击按钮时, 闪动的星星会沿X轴方向向右移动20个像素的位移。同样的方法可以制作其他按钮控制闪动的星星元件向左、向上或向下移动。
了解了AS的编程环境和语法结构的特点, 对于进一步学习使用Flash的AS编程语言实现更多更复杂的动画效果会有很大的帮助。
参考文献
[1]明丽宏, 彭德林.Flash CS4中文版模块教程[M].北京:中国铁道出版社, 2011.
[2]沈大林, 张晓蕾, 罗红霞.《Flash网站设计师》就业技能培训教程 (附光盘) [M].北京:中国铁道出版社, 2008.
编程特点 第4篇
1.1 外部设备故障
外部设备就是与实际过程直接联系的各种开关、传感器、执行机构、负载等。这部分设备发生故障, 直接影响系统的控制功能。
1.2 系统故障
影响系统运行的全局性故障。系统故障可分为固定性故障和偶然性故障。故障发生后, 可重新启动使系统恢复正常, 则可认为是偶然性故障。重新启动不能恢复而需要更换硬件或软件, 系统才能恢复正常, 则可认为是固定故障。
1.3 硬件故障
这类故障主要指系统中的模板 (特别是I/O模板) 损坏而造成的故障。这类故障一般比较明显, 影响局部。
1.4 软件故障
软件本身所包含的错误, 主要是软件设计考虑不周, 在执行中一旦条件满足就会引发。在实际工程应用中, 由于软件工作复杂、工作量大, 因此软件错误几乎难以避免。
对于可编程控制器组成的控制系统而言, 绝大部分故障属于上述四类故障。根据这一故障分类, 可以帮助分析故障发生的部位和产生的原因。
2 PLC控制系统的故障自诊断
2.1 PLC的自诊断测试
可编程序控制器具有极强的自诊断测试功能。在进行自诊断测试时, 要使用诊断调试工具。利用可编程控制器本身所具有的各种功能, 自行编制软件、采取一定措施、结合具体分析确定故障原因。用户通过程序可以编辑组织块, 来告诉CPU当出现故障时应如何处理, 如果相应的故障组织块OB没有编程, 当出现该故障时, CPU转到“STOP”状态。
2.2 PLC控制系统的故障自诊断
任何PLC都具有自诊断功能, 当PLC异常时应该充分利用其自诊断功能以分析故障原因。下面以FX系列PLC为例, 来说明根据指示灯状况以诊断PLC故障原因的方法。
(1) 电源指示 ([POWER]LED指示) 。当向PLC基本单元供电时, 基本单元表面上设置的[POWER]LED指示灯会亮。如果电源合上但[POWER]LED指示灯不亮, 请确认电源接线。另外, 若同一电源有驱动传感器等时, 请确认有无负载短路或过电流。若不是上述原因, 则可能是PLC内混入导电性异物或其他异常情况, 使基本单元内的保险丝熔断, 此时可更换保险丝解决; (2) 出错指示 ([EPROR]LED闪烁) 当程序语法错误 (如忘记设定定时器或计数器的常数等) , 或有异常噪音、导电性异物混入等原因而引起程序内存的内容变化时, [EPROR]LED会闪烁, PLC处于STOP状态, 同时输出全部变为OFF。在这种情况下, 应检查程序是否有错, 检查有无导电性异物混入和高强度噪音源。 (3) 出错指示 ([EPROR]LED灯亮) 。由于PLC内部混入导电性异物或受外部异常噪音的影响, 导致CPU失控或运算周期超过200ms, 则WDT出错, [EPROR]LED灯亮, PLC处于STOP, 同时输出全部都变为OFF。此时可进行断电复位, 若PLC恢复正常, 请检查一下有无异常噪音发生源和导电性异物混入的情况。另外, 请检查PLC的接地是否符合要求。检查过程如果出现[EPROR]LED灯亮→闪烁的变化, 请进行程序检查。如果[EPROR]LED依然一直保持灯亮状态时, 请确认一下程序运算周期是否过长 (监视D8012可知最大扫描时间) 。如果进行了全部的检查之后, [EPROR]LED的灯亮状态仍不能解除, 应考虑PLC内部发生了某种故障, 请与厂商联系。 (4) 输入指示。不管输入单元的LED灯亮还是灭, 检查输入信号开关是否确实在ON或OFF状态。如果输入开关的额定电流容量过大或由于油侵入等原因, 容易产生接触不良。如果使用光传感器等输入设备, 由于发光/受光部位粘有污垢等, 引起灵敏度变化, 有可能不能完全进入“ON”状态。在比PLC运算周期短的时间内, 不能接收到ON和OFF的输入。如果在输入端子上外加不同的电压时, 会损坏输入回路。 (5) 输出指示。不管输出单元的LED灯亮还是灭, 如果负载不能进行ON或OFF时, 主要是由于过载、负载短路或容量性负载的冲击电流等, 引起继电器输出接点粘合, 或接点接触面不好导致接触不良。
3 故障排除方法
PLC控制系统大多数故障95%在外设, 仅有5%发生在PLC本身。而控制器内的故障只占10%, 90%发生在I/O模板中。
故障发生时, 先利用PLC输入、输出指示灯判断。指示灯亮与否是一个有效而又直观的检查和发现故障的手段。外设故障一般发生在继电器、接触器;阀门、闸板;开关、限位开关、安全保护、就地和远控转换开关;接线盒、接线端子、螺栓螺母处;传感器、仪表;电源、地线和信号线的噪音等等, 排除比较容易。再通过梯形图进行监控。如软触点显示不同的颜色代表不同的状态。如果输入输出的某端口坏了, 可以利用冗余端口, 将程序稍作改动, 就可以恢复正常运行。判断控制器内CPU是否出现故障, 可以将CPU主板中锂电池取出, 用短接线在CPU与电池正、负极连接处短接放电, 从而用户程序消失, 然后再接好锂电池。再通过编程器, 将一个仅有一个语句的用户软件传输到CPU, 这个程序仅有一个, “END”语句。断开所有的外部I/O控制与扫描、通信等, 对CPU进行冷态启动, 如果冷态启动仍然失败, 只能说明包括CPU在内的主机箱系统的硬件需要再检查。当冷态启动正常时, 说明主机系统没有故障。这时可以通过编程器或上位机重新下载用户程序, 再将硬件和软件一点点地或分片与分区地投入, 去寻找故障点。
参考文献
[1]刘美俊.PLC在全自动液压压砖机中的应用[J].电气传动自动化, 2001, (4) .