历史上的今天
返回首页

历史上的今天

今天是:2024年09月13日(星期五)

正在发生

2021年09月13日 | PLC编程最容易犯的错

2021-09-13 来源:elecfans

可编程序控制器(PLC)的应用中,我们常会碰到对继电器控制系统的改造问题,这时我们往往要参考原有的继电器控制电路来编制PLC的应用程序。因此,在编程时,我们应注意PLC控制系统与继电器控制系统工作方式上的一些不同。


1.扫描方式不同

我们看一个例子:一个继电器控制回路如图1所示。

PLC编程最容易犯的错

图一

因继电器控制系统是以“并行”方式工作的,而且其触点的通断需要一定的动作时间。所以当该电路起动后,时间继电器KT延时时间到时,KT是否能继续保持通电状态,需要同时考虑“并行”的两个动作过程:KT的常闭延时触点断开,KA1失电,KA1常开触点断开;KT的常开延时触点闭合,KA2得电,KA2常开触点闭合。这两个过程作用的结果,来决定KT的状态。同时,触点动作时间的存在,使得电路出现时序竞争。因此该电路不能可靠工作。如果加人虚框中的回路,并如图1把KA2的常开触点换成KA3的常开触点(见图1中括号)。结果是KT动作后,KT自身失电,就不会继续保持通电状态。


同样是这个电路,我们用PLC来实现,梯形图如图2所示。 PLC是以“串行”方式工作的,也就是以扫描的方式,循环地、连续地、顺序地,逐条执行程序的方式工作。同时在PLC中,软触点的动作可认为是瞬时完成的,且其能把本次动作的结果记忆保持到下一次扫描运算时为止。即具有记忆保持功能。按这样一个顺序“串行”的工作方式,梯形图动作顺序如下:

PLC编程最容易犯的错

图二

当在某一扫描周期中T38延时到后,则:网络1中T38 常闭触点断开(OFF) Q0.0 OFF(无输出);网络2中T38常开触点闭合(ON),Q0.1 ON;网络3中Q0.0常开触点OFF,Q0.1常开触点ON,T38继续保持通电状态。而且不论我们在Q0.1与T38之间再加多少级前面继电器电路所加的虚框中的回路,并把Q0.1常开触点换成所加回路最后一级继电器的常开触点,T38仍能继续保持通电状态。


2.输入控制方式不同

我们再看一个例子。大家都比较熟悉的电动机正反转控制电路,见图3。

PLC编程最容易犯的错

图三

在这个电路里面,启动按钮我们使用SB1、SB2的常开按钮,而停止按钮则使用的是SB3的常闭按钮。PLC程序里面也是这样设计的。(见图4)

PLC编程最容易犯的错

图四

但是我们给PLC设计硬件输入时,停止按钮SB3却不能像继电器控制电路那样使用常闭触点而是使用的常开触点,见图5。这是为什么呢?这是因为继电器控制电路里按钮开关直接控制接触器的线圈,而在PLC控制程序里,按钮开关控制的却是与之对应的输入继电(I),而由这个输入继电器再去控制其触点,不能把硬件按钮开关看出程序里的软触点,就相当是拐了个弯一样。程序里的软触点受相应的输入继电器控制,而输入继电器的状态又受外部所接的输入信号元件(比如按钮开关)的控制。这是初学者容易搞混淆的地方。

PLC编程最容易犯的错

图五

假设这个例子里的停止按钮SB3我们像继电器控制电路一样,使用常闭触点的话,那么PLC一上电,SB3对应的输入继电器I0.2立即为ON,则相应的软触电I0.2就会改变状态常闭触点立即就断开了,如果再按下启动按钮SB1,输出继电器Q0.0或Q0.1就不会有输出,即一直为OFF。


通过全面的两个例子我们知道同样的电路,由于继电器控制系统和PLC控制系统工作方式上的差异,两者会有不同的动作结果。注意到这一点,我们在编程时,就会避免犯不应该的错误。同时学会PLC这样一些特点,会编出功能更强、更好的程序。


PLC编程最容易犯的错

在编制plc程序时,不管是新手还是老手,都会犯下这种低级错误。因为这种错误是非语法上的,所以用编程软件也不能检查出错误之处。此错误一旦发生,自己有时还很难发现,直至上机调试运行时,所控设备不能运行或运行到某个位置停止不前,才察觉出来有问题,再对PLC程序逐条逐句查找分析,或采取对程序逐条逐句执行,费时费工。


那么究竟是什么问题易使我们犯下这种低级错误呢?继电器电气控制的固有思维,在编制程序时,某个或几个输入点采用物理常闭触点(如停止开关、行程限位开关),在程序中,仍延续继电器电气控制方式编制,即仍采用常闭接点作为导通条件使用。

下面用一个简单的启停与自锁电路示例来说明。

PLC编程最容易犯的错

根据上图编制的不能运行的错误PLC程序如下:

PLC编程最容易犯的错

PLC上电后,X000、X002常闭点就会断开。即逻辑值为“0”

Y0=(Y0+X001)×X000×X002

从上面数字逻辑表达式可知,在按下启动按钮SB1后,X001的逻辑值为“1”,而Y0的逻辑值永远不会变化,始终为“0”。原因是与PLC内部输入电路有关,以下是PLC内部输入等效电路:

PLC编程最容易犯的错

正确的PLC程序如下:

PLC编程最容易犯的错

PLC上电后,X000、X002常开点就会闭合。即逻辑值为“1”

Y0=(Y0+X001)×X000×X002

只要按下启动按钮SB1后,X001的逻辑值为“1”,Y0逻辑值就为“1”。松开启动按钮SB1,X001的逻辑值为“0”但Y0逻辑值为“1”,Y0与X001是或的关系,保证了Y0逻辑值始终为“1”,即自锁。直至按下停止按钮或出现过载 (FR0动作),Y0的逻辑值才变为“0”。


通过上面的简单示例可知,新手可能还未弄懂外部为常闭输入时,经PLC内部输入电路后逻辑值发生了“非”的变化。以及继电器电气控制固有思维影响,老手是出于疏忽。这虽然是低级错误,也易发生在程序编制过程中。

推荐阅读

史海拾趣

Davies Molding公司的发展小趣事

Davies Molding公司自创立之初,就将产品质量视为企业的生命线。在早期,公司创始人意识到,只有提供高品质的塑料注塑成型产品,才能在竞争激烈的电子行业中立足。因此,公司投入大量资源在研发、生产和质量控制上,确保每一件产品都符合严格的标准。这种对品质的坚持,不仅赢得了客户的信任,也为Davies Molding公司赢得了良好的口碑。

Galaxy ( Bel )公司的发展小趣事

Davies Molding公司深知,人才是企业发展的核心动力。因此,公司高度重视团队建设与人才培养。通过建立完善的培训体系,Davies Molding公司不断提升员工的技能和素质,打造了一支高素质、专业化的团队。这支团队不仅为公司的发展提供了有力保障,还为行业的进步做出了积极贡献。

FCT Electronics公司的发展小趣事

在国内市场取得成功后,FCT Electronics开始将目光投向国际市场。公司积极参加国际电子展会,与多家国际知名企业建立了合作关系。凭借出色的产品性能和专业的客户服务,FCT Electronics的测试设备逐渐在海外市场上占据了一席之地,为公司的国际化发展奠定了坚实基础。

BB公司的发展小趣事

如今,BB公司已经走过了数十年的发展历程,成为电子行业中一颗璀璨的明星。然而,公司并没有因此停下脚步。相反,BB公司始终保持着强烈的创新意识和进取精神,不断寻求新的发展机遇和挑战。未来,BB公司将继续致力于技术创新和市场拓展,为电子行业的繁荣发展贡献更多力量。

以上是关于BB公司发展起来的五个相关故事。这些故事不仅展现了BB公司的成长历程和发展成就,也凸显了其在电子行业中的重要地位和影响。相信在未来的日子里,BB公司将继续书写更加辉煌的篇章。

Gowanda Electronics公司的发展小趣事

在电子行业竞争日益激烈的背景下,BB公司深知技术创新是企业发展的核心动力。因此,公司投入大量研发资金,积极引进和培养人才,不断推动技术创新。经过多年的努力,BB公司在模拟集成电路领域取得了多项重大突破,推出了一系列具有自主知识产权的创新产品。这些产品不仅提升了BB公司的市场竞争力,也为整个电子行业的发展做出了贡献。

德国ACAM公司的发展小趣事

ACAM公司在超声波计量领域也取得了革命性的突破。2012年,ACAM公司与世强电讯合作,在第二届供热计量技术与管理国际研讨会上推出了业内领先的超声波热量表解决方案。这一解决方案利用ACAM公司的先进测量技术,为热量表厂商和流量计量专家提供了全新的解决方案,受到了广泛关注。

问答坊 | AI 解惑

845E电脑主板原理图

845E电脑主板原理图…

查看全部问答>

zigbee

刚学习zigbee,给点资料…

查看全部问答>

B题目 到现在晚上3点没有解决声音检测 希望能有高手给些指导 大家讨论

本帖最后由 paulhyde 于 2014-9-15 09:08 编辑 B题目 最基本声音检测 。 我先共享我做的方案 1超声波不要考虑了,大赛主委会说不行。2做了几个电路,但是接收距离非常近,对着才有反应。3买了声控灯头,把原理图抄出来了,没办法解决它的延时 ...…

查看全部问答>

基于便携式医疗系统改进CO中毒的治疗方法

近50年来,公认的一氧化碳中毒最原始的治疗方法就是在将病人送入高压舱之前,给病人输入含氧100%的气体。但是这项技术在20世纪20年代就得到改进,人们采用氧气和二氧化碳的混合气体取代了纯氧气输入治疗方法。遗憾的是,这项技术没有得到商业化的许 ...…

查看全部问答>

DSP上电后,GPIO(EPWM)是什么状态

DSP上电后,GPIO(EPWM)是什么状态。这个口是高电平的状态吗。…

查看全部问答>

如何在Window平台创建sqlce数据库?

如题,我想在Window平台创建sqlce数据库,然后把sql2000的数据导出到这个sqlce数据库中,如何实现?最好有VC++6的代码。…

查看全部问答>

8962开发板学习笔记1_玩转OLED_1

前几天收到了8962的开发板,按照个人习惯先在上面跑了一些里面的演示程序,谁知这一跑就跑了三天。知道是哪个程序有这么大的吸引力吗?就是那个Hello程序。在OLED显示器上显示“Hello world!”的程序。于是我就决定从它入手来学习8962。这个Hello ...…

查看全部问答>

请教版主一个开关总中断的问题.

请教版主一个开关总中断的问题; 我现在在发送串口数据的时候要关,开总中断,时间要求比较严,我看你以前的贴子 ///////////////////////////////////////////////////////////////////////////////////// 香水城发表于 2010-1-13 11:51 ...…

查看全部问答>

3D打印机,挺神奇的一个东东,大家有关注过么?

南京鼓楼科技局办的创客技术成果展,其中3D打印机还是挺吸引人眼球的,闲话少说,上图: …

查看全部问答>