随着西门子plc在工业行业中广泛应用,西门子plc子程序调用在编程过程中最常常见的手段,今天小编给给大家介绍一下西门子plc的程序结构及子程序调用在编程过程中的使用方法。
所谓的西门子PLC程序结构是构成PLC程序的各种网络(网络)或“功能程序段”。 PLC内的组织和管理形式。PLC控制系统是否复杂,都是使用最基本的指令组合。
设计者可以根据控制对象的各个部分的不同要求,通过使用基本指令,创建相应的程序网络(网络)或由多个网络组成的简单“功能块”。在此基础上,只要这些程序网络或功能程序段按照S7程序指定的格式按照控制系统的动作要求进行排列和组合,就可以形成完整的PLC程序。
西门子plc程序结构与子程序调用方法:
1. 西门子plcS7-200的程序结构 过程映像输入/输出,存储器V,内部存储器位M,时间定时器T,计数器C等属于全局变量。 S7-200的程序组织单元(POU)包括主程序,子程序和中断程序。每个POU都有64字节局部变量,局部变量只能在它所在的POU中使用。相反,全局变量可用于每个POU。 以下是子例程可以使用的局部变量:
西门子plc子程序调用TEMP(临时变量)是临时存储在本地数据区域中的变量。仅在执行POU时,才使用定义的临时变量。执行POU后,不再保存临时变量的值。IN是由调用它的POU提供的输入参数。OUT是返回给调用它的POU的输出参数(子程序的执行结果)。
西门子plc子程序调用IN_OUT是一个input_output参数,西门子PLC编程软件初始值由调用它的POU传送到子程序,并将子程序的执行结果返回给使用相同变量调用它的POU。 主程序和中断程序的局部变量是TEMP。 具有输入,输出参数和局部变量的子程序易于实现结构化编程。
2. 通过程序之间的通话。这就像使用数字集成电路芯片来形成复杂的数字电路。 如果子例程没有输入和输出参数,则它与调用它的程序之间没有明确的接口,并且很难实现结构化编程。 如果子例程中没有局部变量,则它只能通过调用它的程序与全局变量交换数据。只能在子程序中使用全局变量。
将子例程和中断移植到其他项目时,需要重新排列它们使用的全局变量,以确保没有地址冲突。当程序非常复杂时,有许多子程序和中断程序,重新分配地址的工作量非常大。 如果子例程和中断例程具有局部变量,并且它们仅在内部使用局部变量,则它们不使用全局变量。由于与其他POU没有地址冲突,因此您可以将子例程迁移到其他项目而不进行任何更改。
3. S7-300/400的功能与S7-200的功能基本相同。S7-300/200都有输入,输出参数和临时变量,并且函数的本地数据中的返回值实际上属于输出参数。它们没有专用的内存区域,临时变量中的数据是根据调用程序执行结束而定的。 全局变量可用于保存函数执行完毕后需要保存的数据,但会影响函数的可移植性。
4.西门子plc子程序调用功能块是由用户用其自己的专用存储区域(即,背景数据块)写入的程序块。功能块的输入,输出参数和静态变量存储在指定的实例数据块中,临时变量存储在本地数据堆栈中。程序每次调用FB背景功能块时,都会指定实例数据块。执行功能块后,后台数据块中的数据不会丢失,但本地数据堆栈中的数据不会丢失保存。 S7-300/400的共享数据块可用于所有逻辑块。
以上就是小编为大家介绍西门子plc子程序调用以及结构说明,希望对大家在编程过程中有所帮助,如果有西门子plc编程方面的疑问,可以联系我们的在线客服或者热线电话咨询!我们为客户提供量身定制的自动化解决方案,是专业的自动化控制系统集成服务商。