西门子的S7-200的程序结构
过程映像输入/输出(I/Q)、变量存储器V、内部存储器位M、定时器T、计数器C等属于全局变量。S7-200的程序组织单元(ProgramOrganizationalUnit,简称为POU)包括主程序、子程序和中断程序。每个POU均有自己的64字节局部变量,局部变量只能在它所在的POU中使用。与此相反,全局变量可以在各POU中使用。
下面是子程序可以使用的局部变量:
1)TEMP(临时变量)是暂时保存在局部数据区中的变量。只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再保存临时变量的数值。
2)IN是由调用它的POU提供的输入参数。
3)OUT是返回给调用它的POU的输出参数(子程序的执行结果)。
4)IN_OUT是输入_输出参数,其初始值由调用它的POU传送给子程序,并用同一变量将子程序的执行结果返回给调用它的POU。
主程序和中断程序的局部变量中只有临时变量TEMP。
具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。这些厂家的编程人员为设备的各组件或工艺功能编写了大量的通用的子程序。即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以通过程序之间的调用快速“组装”出满足不同用户要求的控制程序。就好像用数字集成电路芯片组成复杂的数字电路一样。
子程序如果没有输入、输出参数,它和调用它的程序之间没有清晰的接口,很难实现结构化编程。
子程序如果没有局部变量,它和调用它的程序之间只能通过全局变量来交换数据,子程序内部也只能使用全局变量。将子程序和中断程序移植到别的项目时,需要重新统一安排它们使用的全局变量,以保证不会出现地址冲突。当程序很复杂,子程序和中断程序很多时,这种重新分配地址的工作量非常大。
如果子程序和中断程序有局部变量,并且它们内部只使用局部变量,不使用全局变量,因为与其他POU没有地址冲突,不需作任何改动,就可以将子程序移植到别的项目中去。
Square D QOB320VH Circuit Breaker 20 AMP 3 Pole 22AIC
SQUARE D QOB2100H Circuit Breaker, Bolt-On, 2 Pole, 100A
Square D QOB130GFI 1p 30a 120v Ground Fault Circuit Breaker 1- yr Warranty
Square D QOB130EPD Ground Fault 30 amp Circuit Breaker *QUANTITY
SQUARE D QOB120GFIX10 QO-X EARTH LEAKAGE CIRCUIT BREAKER
Square D QOB120EPD Ground Fault 20 amp Circuit Breaker *QUANTITY
Square D QOB 2p 90a QOB290
Square D QOB 2p 80a QOB280 Circuit Breaker
Square D QOB 2p 70a QOB270 Circuit Breaker
Square D QOB 2p 100a QOB2100 Circuit Breaker
SQUARE D QMB361TW 30 AMP SERIES E1 PANELBOARD SWITCH QMB (7F)
SQUARE D Q2M-3200-MT 200 AMP CIRCUIT BREAKER 3 POLE Q2M3200MT (L6)
SQUARE D Q2M-3200-MT 200 AMP CIRCUIT BREAKER 3 POLE Q2M3200MT (L6)
SQUARE D LOAD CENTER TYPE 1 WITH 15 CIRCUIT BREAKERS QOC24US
SQUARE D LIMIT SWITCH CLASS:9007 TYPE:B62B2 SERIES:B FORM:MJ
SQUARE D HU-363 SERIES E1 SAFTEY SWITCH 100AMP 600V (5E)
Square D H361N 30 Amp 600 Volt 3 Phase Fusible Safety Disconnect Series E1
SQUARE D H323N SAFETY SWITCH 100AMP SERIES F1 (4C / 7F)
Square D H321NRB 30 amp 240 volt fusible 3R safety switch ser F05
Square D H221N Heavy Duty Safety Switch 30Amp 240V Fusible
SQUARE D FH36070 3 POLE 70 AMP 600 V I-LINE CIRCUIT BREAKER 2/15
Square D FAL34015 Thermal Magnetic Circuit Breaker 480VAC
Square D FA36040 I-Line Circuit Breaker 40 Amps 600VAC Black Face
SQUARE D FA36040 40A CIRCUIT BREAKER 3 POLE 600V
Square D FA32070 I-Line Circuit Breaker 70 Amps 240VAC Black Face
Square D FA32070 I-Line Circuit Breaker 70 Amps 240VAC
SQUARE D FA32070 3 POLE 70 AMP 250 V I-LINE CIRCUIT BREAKER 2/15
Square D FA24030BC I-Line Circuit Breaker 30 Amps 480VAC 2 Pole Black Face