PLC程序是如何运行的?

[复制链接]
查看4635 | 回复11 | 2006-11-1 10:33:00 | 显示全部楼层 |阅读模式

我本以为PLC是硬件逻辑编程,应该和普通硬件逻辑元件一样,比如触发器,只要输入信号满足要求,就自动触发,输出相应改变,不需要CPU监督执行。

但现在感觉不是那么回事了,好像PLC要像普通软件一样,在运行时要占用CPU?

比如一个10ms延时元件,如果它在运行时,是否CPU就不能做其它事情了?

哪位大虾能给我一个明确的答案,在此多谢了!

ye_w | 2006-11-1 19:58:00 | 显示全部楼层

PLC的工作就是对一段程序连续扫描。我们可以把这种扫描看成包括三个重要的步骤。虽然肯定不止三个步骤,但是我们集中精力考虑重要的部分,而不用担心其余的部分。其余部分的典型作用是作系统检查和刷新当前内部计数器和定时器的值。

步骤1-检查输入状态:首先,PLC检查一下每个输入点,看它们是闭合还是打开。换句话说,连接到第一个输入点的传感器闭合吗?第二个呢?第三个呢?......它将这些数据存入内存,以备在下一步使用。
步骤2-执行程序:然后,PLC执行你的程序,每次执行一步。你的程序或许是这样的:如果第一个输入点闭合,那么闭合第一个输出点。因为程序已从上一步中知道输入的开关状态,所以它能够根据第一个输入点的状态,决定第一个输出点是否应该闭合。PLC将执行结果存起来以备下一步使用。
步骤3-刷新输出结果:最后PLC刷新输出点的状态。它刷新的根据是第一步中读取的输入点状态和第二步中程序执行的结果。还是举第2步中的例子,此时PLC应将第一输出点闭合。原因是第一个输入点是闭合的,而且你的程序要求在这种状态下闭合第一个输出点。

第三步执行完毕,PLC返回到第一步,连续重复以上步骤。一次扫描时间(one scan time)就是PLC执行以上所列的3个步骤所需的时间。

条件满足,程序就会执行。没有等待之说

wang66 | 2006-11-2 09:34:00 | 显示全部楼层

感谢二楼的回答!

但我还是有些不清楚,就是“一次扫描时间(one scan time)就是PLC执行以上所列的3个步骤所需的时间。”假设我程序中要执行一个延时100ms的元件,是否我的一次扫描时间就要大于等于100ms呢?即如果在这100ms期间发生事件输入变化,我们的PLC是监控不到的?

我的直觉是这样的,即PLC只是实现程序的输入输出,至于程序中执行的逻辑、延时,相当于实际电路中的电路元件,是不受PLC控制(不包括输入变化)的。即PLC不需要等100ms的时间,而是在这期间不停的扫描输入输出。扫描周期就是所有程序的输入输出端口扫描时间。

还希望大家不吝赐教!

[此贴子已经被作者于2006-11-2 9:46:59编辑过]
zhyang444 | 2006-11-2 15:11:00 | 显示全部楼层
:)
wang66 | 2006-11-6 13:56:00 | 显示全部楼层

因为运行方式很重要,如果是PLC解释运行,就要考虑程序运行时间对扫描时间的影响。如果是象实际电路一样,就要考虑存储单元不能公用,以免出现逻辑混乱。

zdelia | 2006-11-8 13:52:00 | 显示全部楼层
多谢,我有学到了!
tyw我有子弹 | 2006-11-8 14:31:00 | 显示全部楼层
慢慢体会中啊
wang66 | 2006-11-9 09:45:00 | 显示全部楼层

还是有些不明白啊!

2楼的“步骤2-执行程序”,应该怎么理解?比如项目中有三个网络(p1、p2、p3),plc扫描输入后,三个网络是否就同时更新了输入,然后象硬件逻辑电路一样,自动根据输入变化而使输出变化,然后就是“步骤3”?

还是plc先执行p1,然后p2,然后p3。如果是这样先后执行,那么在执行p1(假设p1中有多个逻辑门串联)时,p1中的各个逻辑门执行需要多少个脉冲周期(根据逻辑门的多少和复杂程度变化?)。

因为在学习单片机的时候,记得每个指令有自己的执行时间,复杂指令占用时间要长。plc是否也是如此呢?每个逻辑门根据功能复杂程度,有长短时间的区分,还是象硬件逻辑的元件一样,只有响应时间的区别,而不是执行逻辑门耗用多少脉冲?

wang66 | 2006-11-9 16:35:00 | 显示全部楼层

http://www.melectron.com/download/PLC%B5%C4%B9%A4%D7%F7%D4%AD%C0%ED.pdf

对这个问题感兴趣的可以看看上面这文章,但还有个问题就是输入输出扫描是不是我们编程控制?

如果不是,那么我们编程中用到的上升(下降)沿触发电路,对输入信号来说还有意义吗?

因为plc扫描到的是1或0,没有上升下降的区分,如果要区分就要加入对比逻辑了!

wlixiang | 2007-1-13 16:02:00 | 显示全部楼层

谢谢我有点明白了

ken1890 | 2007-1-24 20:25:00 | 显示全部楼层

zhangjjqb | 2007-6-25 11:10:00 | 显示全部楼层

为懂

炽热

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则