西门子PLC编程的工作原理:当PLC投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,PLC的CPU以一定的扫描速度重复执行上述三个阶段。
输入采样
在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应得单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。
用户程序执行
在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。
即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。
输出刷新
当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。
同样的若干条梯形图,其排列次序不同,执行的结果也不同。另外,采用扫描用户程序的运行结果与继电器控制装置的硬逻辑并行运行的结果有所区别。当然,如果扫描周期所占用的时间对整个运行来说可以忽略,那么二者之间就没有什么区别了。
西门子PLC编程中应该注意的问题:
1.中断程序中可以调用子程序
累加器和逻辑堆栈式的存蓄器在中断程序和被调用的子程序中都是共用的
2.中断程序和主程序下数据是可以共享的
中断程序虽说是可以共享的,但是我们要注意的是中断事件中事情异步特性的因数影响,来解决共享数据的一致性问题,在中断事件中主程序执行的任何一个地方都是有可能出现的。
3.通信接口的中断
PLC的串行通信口是可以有梯形图或者语句表程序控制的。通信口的这种操作模式称为自有端口的模式。在自由的情况下,就可以用程序定义波特率,每个字节的位数等等,在执行主程序的过程中,申请中断,才能定义自由端口模式,利用接收和发送中断可以简化程序对通信的控制。
4.I/O中断
I/O中断包括上升或下降沿中断,告诉计数器中断和脉冲串输出中断。
S7-200CPU用输入I0.0~I0.3的上升或下降产生了中断,则发生的事件被输入端子捕获,这样的上升沿或者下降可被用来指示当某个事件发生时必须引起注意的条件。
5.时基中断
6.中断的优先级和排队
7.中断的限制