MDFKARS080-22模块
MDFKARS080-22模块
MDFKARS080-22模块
1.某些国外的小型PLC的程序结构
这些PLC的用户程序由主程序、子程序和中断程序组成。在每一个扫描循环周期,CPU都要调用一次主程序。主程序可以调用子程序,小型控制系统可以只有主程序。中断程序用于快速响应中断事件。在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。执行完中断程序后,继续执行被暂停执行的程序或任务。它们的子程序和中断程序没有局部变量,子程序没有输入、输出参数。
2.西门子的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没有地址冲突,不需作任何改动,就可以将子程序移植到别的项目中去。
3.西门子的S7-300/400的程序结构
S7-300/400将子程序分为功能(Function,或称为函数)和功能块(FunctionBlock)。
S7-300/400的功能与S7-200的子程序基本上相同。它们均有输入、输出参数和临时变量,功能的局部数据中的返回值实际上属于输出参数。它们没有专用的存储区,功能执行结束后,不再保存临时变量中的数据。
可以用全局变量来保存那些在功能执行结束后需要保存的数据,但是会影响到功能的可移植性。
功能块是用户编写的有自己专用的存储区(即背景数据块)的程序块,功能块的输入、输出参数和静态变量存放在的背景数据块中,临时变量存储在局部数据堆栈中。每次调用功能块时,都要一个背景数据块。功能块执行完后,背景数据块中的数据不会丢失,但是不会保存局部数据堆栈中的数据。
功能块采用了类似于C++的封装的概念,将程序和数据封装在一起,具有很好的可移植性。
S7-300/400的共享数据块可供所有的逻辑块使用。
4.IEC61131-3的程序结构
IEC61131-3是PLC的编程语言标准。IEC61131-3是世界上个,也是至今为止的工业控制领域的编程语言标准。IEC
61131-3有三种POU:程序、功能块和功能。
功能是有多个输入参数和一个输出参数(返回值)的POU,返回值的名称与功能的名称相同,需要定义返回值的数据类型。调用具
有相同输入值的功能总是返回相同的结果。功能可以调用其他功能,但是不能调用功能块或程序。功能可定义的局部变量有VAR和VAR_INPUT。
功能块是有多个输入/输出参数和内部存储单元的POU,功能块的输出参数值与其内部存储单元的值有关。功能块可以调用其他功能
块或功能,但是不能调用程序。
在调用功能块之前,必须在要调用功能块的POU中为每次调用声明功能块的实例,操作系统将为每次调用分配功能块专用的存储区
(类似于S7-300/400的背景数据块)。
功能因为没有内部存储区,调用时不需要实例化。
程序的行为和用途类似于功能块,程序具有输入和输出参数,而且可以具有内部存储区。程序通常包含有对功能和功能块的调用。
IEC61131-3定义了若干标准的功能和功能块。
5.S7-300/400与IEC61131-3程序结构的区别
1)S7-300/400的功能可以有多个输出参数,返回值也属于输出参数。IEC61131-3的功能只有一个返回值。
2)IEC61131-3的功能块用于保存局部变量的专用存储区是在声明功能块的实例时分配的,它对用户是不透明的,其他POU不能直接访问该存储区。
S7-300/400的功能块的局部变量(不包括临时变量)保存在它的背景数据块中。其他POU可以访问背景数据块中的变量。如果需要多次调用同一个功能块来控制同一类型的被控对象,每次调用都需要一个背景数据块,但是这些背景数据块中的变量又很少,这样在项目中就出现了大量的背景数据块。可以使用多重背景数据块来减少背景数据块的数量。但是需要增加一个用来管理多重背景的功能块。
3)S7-300/400的功能块的局部变量有临时变量和静态变量,IEC61131-3的功能块的内部变量Var相当于S7-300/400的静态变量。
4)S7-300/400将数据区划分为数据块来使用,数据块的大小与数据块中定义的变量的数据类型和变量的个数有关。IEC61131-3没有数据块的概念。
Panasonic AC Servo Motor MSM3AZA2AX Free Ship
TEXAS INSTRUMENTS PLC 505-3532 USPP 5053532
TEXAS INSTRUMENTS MODEL 510-2101 I/O EXPANSION MODULE
ADEPT TECH 100 USPP 100
IRCON MX-MR03-C000-0-3-0-0-0 USPP MXMR03C00003000
ALLEN BRADLEY 2711-K6C10L1 USPP 2711K6C10L1
LUCENT TECHNOLOGIES D-CI-B2 USPP DCIB2
Panasonic AC Servo Motor MSMA082A1E New In Box Free Ship
NEW TEXAS INSTRUMENTS 520C-1102
TEXAS INSTRUMENTS PLC VPU-200-3102 USPP VPU2003102
TEXAS INSTRUMENTS PLC 505-4317 NSFP 5054317
Texas Instruments Field Interface Module 505-7202
ARO 93970309 USPP 93970309
PANASONIC AC SERVO MOTOR MDM082Q2V
Panasonic Servo Motor MSMA***ZP1A with Gear 1:50
Panasonic AC Servo Driver MSDZ043A1A Free Ship
ASEA BROWN BOVERI EHDB-360C1 USPP EHDB360C1
TEXAS INSTRUMENTS PLC 5136-DNS-200X-8DI NSFP 5136DNS200X8DI
ALLEN BRADLEY 1771-NT1 USPP 1771NT1
Texas Instruments 500-5056
TEXAS INSTRUMENTS PLC 2497435 USPP 2497435
ASEA BROWN BOVERI 57171847 USPP 57171847
DENSO MSM082Q2U Panasonic SERVO MOTOR
SIEMENS TI PLC DRIVE INTERFACE MODULE 6SE31900XX878BF0
Expedited shipping ailable
TEXAS INSTRUMENTS PLC 560-2124 NSFP 5602124
PANASONIC MSM011A34 AC SERVO MOTOR w/ Reducer Gear
TEXAS INSTRUMENTS PLC 944935-15V/AE USPP 94493515VAE
ALLEN BRADLEY 196258 USPP 196258
Texas Instruments RTU-HSA-1 System Circuit Board RTUHSA1
PANASONIC AC SERVO DRIVER MSDA3A3D1A Free Ship
Panasonic MSM041A1E AC Servo Motor Free Ship
LEEDS & NORTHRUP 074419 NSPP 074419
TEXAS INSTRUMENTS PLC 2261690-1-AA USPP 22616901AA
PANASONIC MFA024LA2NS 240W 3500RPM AC SERVO MOTOR*NNB*
BROWNING 107SC25-200D USPP 107SC25200D
ALLEN BRADLEY 1771-E2C NSPP 1771E2C
SIEB & MEYER SM026381C NSPP SM026381C
ASEA BROWN BOVERI ACH501-020-4-NOP2 USPP ACH5010204NOP2
ASEA BROWN BOVERI YB161102-BU NSPP YB161102BU
ASEA BROWN BOVERI YT212001-AM USPP YT212001AM
RELIANCE ELECTRIC 41040358BB FNFP 41040358BB
TOTAL CONTROL PRODUCTS GCK2D100L2P USPP GCK2D100L2P
ASEA BROWN BOVERI EH260C-1 USPP EH260C1
SQUARE D KHL3612517DC1616 NSPP KHL3612517DC1616
GRAPHTEC WR3101 USPP WR3101
ALLEN BRADLEY 1326AB-B410G-S2L NSFP 1326ABB410GS2L
PANASONIC AC SERVO MOTOR MDM082Q2V
Texas Instruments 5TI-1023
ALLEN BRADLEY 1336S-BRF15-AE-EN5 NSFP 1336SBRF1***EEN5
Panasonic AC Servo Driver MDD083A1VV Free Ship
Panasonic MSDA041D1A AC Servo Driver 82V 400W
ASEA BROWN BOVERI 57088567 USPP 57088567
TEXAS INSTRUMENTS PLC RTU-8635-SSD USPP RTU8635SSD
Texas Instruments 305-OPTO
Panasonic AC Servo Motor MSMA082A1A Free Ship
AMETEK ZF2-480-60-UB-01 USPP ZF248060UB01
TEXAS INSTRUMENTS PLC 505-4616 NSFP 5054616
ASEA BROWN BOVERI 57770163 NSFP 57770163
XYCOM PM8500 USPP PM8500