PLC 的程序是自动循环的吗?
我本想在程序中加上while 让它循环检测某个输入变量的值,结果它就不运行了,原来是这样,PLC真恶心!!有没有办法让它不循环执行某些语句啊?比如说初始化 只让它执行一次!! 展开
PLC 的程序是自动循环的。
工业上使用的可编程逻辑控制器已经相当或接近于一台紧凑型电脑的主机,其在扩展性和可靠性方面的优势使其被广泛应用于目前的各类工业控制领域。不管是在计算机直接控制系统还是集中分散式控制系统DCS,或者现场总线控制系统FCS中,总是有各类PLC控制器的大量使用。
PLC的生产厂商很多,如西门子、施耐德、三菱、台达等,几乎涉及工业自动化领域的厂商都会有其PLC产品提供。
扩展资料:
工作原理
当可编程逻辑控制器投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,可编程逻辑控制器的CPU以一定的扫描速度重复执行上述三个阶段。
输入采样
在输入采样阶段,可编程逻辑控制器以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应的单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。
PLC 的程序是自动循环的。
PLC的工作过程是循环扫描的过程,循环扫描时间的长短取决于指令执行速度、用户程序的长度等因素。
输出对输入的影响有滞后现象。PLC采用集中采样、集中输出的工作方式,当采样阶段结束后,输入状态的变化将要等到下一个采样周期才能被接收,因此这个滞后时间的长短又主要取决于循环周期的长短。此外,影响滞后时间的因素还有输入滤波时间、输出电路的滞后时间等。
扩展资料
在用户程序执行阶段,可编程逻辑控制器总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算。
然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。
即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用。
相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。
在程序执行的过程中如果使用立即I/O指令则可以直接存取I/O点。即使用I/O指令的话,输入过程影像寄存器的值不会被更新,程序直接从I/O模块取值,输出过程影像寄存器会被立即更新,这跟立即输入有些区别。
参考资料来源:百度百科-可编程逻辑控制器
1、刷新输入:开放输入回路接通外部信号状态,刷新输入内存区数据。
2、程序执行:从程序开始执行,一直到结束(END指令)。执行过程中
执行过程中咋样?
PLC的工作原理是循环扫描工作,即PLC上电后首先进行硬件自诊,之后循环执行如下过程:
1、刷新输入:开放输入回路接通外部信号状态,刷新输入内存区数据。
2、程序执行:按照自上而下、从左到右的顺序执行梯形图程序,一直到结束(END指令)。执行过程中同时刷新计时器/计数器、寄存器、输出内存区的数据。
3、控制输出:开放输出回路,按照输出内存区状态控制外部设备。
至此,一个扫描周期结束,重新从1开始下一个循环。
为了避免死循环,PLC还设计有一个“看门狗”的功能,即扫描周期时间超过“看门狗”的计数时间(一般设置少于500ms)时,会发生故障报警。
有些指令若只想让它执行一次(或叫初始化),常见的办法有:
1、有些高级的PLC设计有上电执行一次的子程序,只要把所需初始化的指令放到它里面就可以了。
2、大多数的PLC都有一个内部特殊触点——仅第1次扫描周期为ON的触点,用这个触点作为条件,把需要初始化的指令放在它的后面。