西门子plc的程序结构是构成PLC程序的各种网络(网络)或“功能块”的组织和管理形式。 西门子plc无论plc控制系统有多复杂,西门子plc程序编辑量基本编程指令的集合。 设计者可以根据控制对象的各个部分的不同要求,通过使用基本指令,创建相应的程序网络(网络)或由多个网络组成的简单“功能块”。在此基础上,只要这些程序网络或功能块按照S7程序指定的格式按照plc控制系统的动作要求进行排列和组合,就可以形成完整的PLC程序。
1、西门子plc的程序结构S7-200 过程映像输入/输出(I/Q),可变存储器V,内部存储器位M,定时器T,计数器C等是全局变量,S7-200的程序组织单元(POU)包括主程序,子程序和中断程序。相反,全局变量可用于每个POU。
以下是子例程可以使用的局部变量:
1)TEMP(临时变量)是临时存储在本地数据区域中的变量。仅在执行POU时,才使用定义的临时变量。执行POU后,不再保存临时变量的值。
2)IN是调用子程序提供的输入参数。
3)OUT是返回给调用的输出参数。
4)IN_OUT是一个input_output参数,其初始值由调用它的POU传送到子程序,并将子程序的执行结果返回给使用相同变量调用它的POU。临时变量temp通常用于中断程序的局部变量。这些制造商的程序员为设备的每个组件或过程函数编写了大量通用子程序。通过程序之间的通话,这就像使用数字集成电路芯片来形成复杂的数字电路。 如果子例程中没有局部变量,则它只能通过调用它的程序与全局变量交换数据。只能在子程序中使用全局变量。
将子例程和中断移植到其他项目时,需要重新排列它们使用的全局变量,以确保没有地址冲突。当程序点数非常多时,子程序和中断程序重新分配地址的工作量非常大。 如果子例程和中断例程具有局部变量,并且它们仅在内部使用局部变量,则它们不使用全局变量。由于与其他POU没有地址冲突,因此您可以将子例程迁移到其他项目而不进行任何更改。
临时变量temp通常用于中断程序的局部变量。具有输入、输出参数和局部变量的子程序实现结构化编程,这些制造商的程序员为设备的每个组件或过程函数编写了大量通用子程序。调用的子程序即使你不知道子程序的源程序,但要知道程序的功能和输入输出参数的含义,你就可以快速“捕获”满足不同用户需求的控制程序。它们没有专用的内存区域,临时变量中的数据是根据函数执行结束而定的。
西门子plc全局变量可用于保存函数执行完毕后需要保存的数据,但会影响函数的可移植性,功能块是由用户用其自己的专用存储区域(即,背景数据块)写入的程序块。功能块的输入,输出参数和静态变量存储在指定的实例数据块中,临时变量存储在本地数据堆栈中,后台数据块中的数据不会丢失,但本地数据堆栈中的数据不会丢失保存,功能块采用C ++的概念 - 就像封装一样,它封装了程序和数据,非常便于携带。