PLC程序家族的故事
S7-300程序家族的故事

程序家族的故事一、程序家族有哪些成员?PLC的控制程序一般由主程序、子程序和中断程序组成。
西门子的S7-300/400将子程序分为功能(Function,或称为函数)和功能块(Function Block)。
在每一个扫描循环周期,CPU都要调用一次主程序,用户程序必须有一个并且只能有一个主程序。
小型控制系统可以只有主程序。
中断程序用于快速响应中断事件。
在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。
执行完中断程序后,继续执行被暂停执行的程序或任务。
二、哪些情况需要使用子程序?当系统规模很大、控制要求复杂时,如果将全部控制任务放在主程序中,主程序将会非常复杂,既难以调试,也难以阅读。
使用子程序可以将程序分成容易管理的小块,使程序结构简单清晰,易于调试、查错和维护。
子程序也可以用于需要多次反复执行相同任务的地方,只需要编写一次子程序,别的程序在需要的时候多次调用它,而无需重写该程序。
三、怎样调用子程序?主程序可以调用子程序,子程序也可以嵌套调用别的子程序。
嵌套调用的层数是有限制的,例如S7-200的最大嵌套深度为8级。
执行完子程序后,返回调用它的程序中的调用指令的下一条指令。
四、每个扫描周期都会执行子程序吗?子程序的调用可以是有条件的,在被调用期间,每个扫描周期都要执行一次被调用的子程序。
调用条件不满足时不会执行子程序中的指令,因此使用子程序可以减少扫描循环时。
五、停止调用子程序后,子程序中的线圈处于什么状态?停止调用子程序后,不再执行子程序中的指令。
子程序中线圈对应的编程元件如果没有受到别的程序的控制,将保持子程序最后一次执行后的状态不变。
即使控制这些线圈的触点的状态变化,该线圈对应的元件的状态也不会变化,因为这时根本就没有执行子程序中的指令。
六、怎样实现子程序的无条件调用?有的PLC的子程序调用指令不能直接接到左侧的垂直“电源”线上,需要通过触点电路来控制是否调用子程序,即子程序的调用是有条件的。
PLC发展历史

PLC发展历史PLC(可编程逻辑控制器)是一种用于自动化控制系统的计算机控制器,广泛应用于工业领域。
本文将详细介绍PLC的发展历史,从其起源、发展到现代应用。
1. 起源和发展初期PLC的起源可以追溯到20世纪60年代,当时工业自动化的需求日益增长,传统的继电器控制系统已经无法满足复杂的控制需求。
于是,工程师们开始寻求一种更灵便、可编程的控制器。
1968年,德国的工程师Richard E. Morley发明了第一台可编程控制器,标志着PLC的诞生。
这种早期的PLC使用了类似于计算机的硬件和软件结构,但功能相对简单,主要用于控制继电器的开关。
2. 发展阶段随着技术的进步,PLC逐渐发展壮大。
1970年代,PLC的硬件结构得到了改进,采用了更先进的微处理器和存储器,使得PLC的处理速度和存储容量得到了提高。
此时的PLC已经具备了更强大的逻辑控制能力,可以实现更复杂的控制任务。
1980年代,随着集成电路技术的快速发展,PLC的体积进一步缩小,功耗降低,可靠性提高。
同时,PLC的编程软件也得到了改进,变得更加易于使用和灵便。
3. 现代应用随着计算机技术的飞速发展,PLC的应用范围也在不断扩大。
现代的PLC具备了更强大的处理能力,可以同时处理多个输入输出信号,实现更高级的控制算法。
PLC不仅广泛应用于工业自动化领域,如创造业、能源、交通等,还被应用于建造、航天、农业等领域。
PLC的应用使得工业生产过程更加高效、稳定和可靠,大大提高了生产效率和质量。
4. PLC的未来发展趋势随着物联网和人工智能技术的兴起,PLC正朝着更智能化、网络化的方向发展。
未来的PLC将更加注重与其他设备的连接和数据交换,实现更高级的控制和优化。
同时,PLC将更加注重安全性和可靠性,以应对日益复杂的工业环境。
此外,PLC的编程软件也将进一步简化和智能化,使得用户能够更轻松地进行编程和调试。
总结:PLC的发展历史可以追溯到20世纪60年代,从最初的简单控制器发展到现代的高性能、智能化的控制系统。
PLC发展历史

PLC发展历史PLC(Programmable Logic Controller,可编程逻辑控制器)是一种专门用于工业自动化控制的电子设备。
它可以根据预先设定的程序,对输入信号进行逻辑运算和控制输出信号,实现对生产过程的自动控制。
PLC的发展历史可以追溯到20世纪60年代,下面将为您详细介绍PLC的发展历程。
1. 早期自动化控制系统在PLC出现之前,工业自动化控制主要依靠继电器控制系统。
这些系统使用大量的继电器和电气元件,布线复杂,维护困难。
由于继电器的可靠性和寿命限制,系统的可靠性和可扩展性受到限制。
2. 第一代PLC第一代PLC于20世纪60年代末问世。
它们采用固定的硬连线逻辑,由专门的工程师进行编程和调试。
这些PLC具有较低的处理能力和存储容量,通常只能处理简单的逻辑控制任务。
然而,它们的出现极大地简化了自动化控制系统的设计和维护工作。
3. 第二代PLC随着计算机技术的快速发展,第二代PLC在20世纪70年代初出现。
这些PLC采用了可编程的存储器和微处理器技术,使得程序的编写和修改更加方便。
此外,第二代PLC还具备更高的处理能力和存储容量,能够处理更复杂的控制任务。
4. 第三代PLC第三代PLC在20世纪80年代初出现,它们采用了更先进的微处理器和存储器技术。
这些PLC具有更高的速度和更大的存储容量,能够处理更复杂的控制逻辑和算法。
此外,第三代PLC还引入了模块化设计,使得系统的扩展和维护更加灵活和方便。
5. 现代PLC随着计算机技术的不断进步,现代PLC具备了更强大的处理能力、更大的存储容量和更高的可靠性。
现代PLC通常采用开放式结构,支持多种通信接口和网络协议,可以与其他设备进行数据交换和远程监控。
此外,现代PLC还具备更友好的用户界面和更强大的编程工具,使得工程师能够更快速、更高效地进行程序开发和调试。
6. PLC在工业自动化中的应用PLC在工业自动化中的应用非常广泛。
它们可以用于控制机械设备、生产线、工艺过程等。
PLC发展历史

PLC发展历史引言概述:PLC(可编程逻辑控制器)是一种专门用于工业自动化控制的电子设备。
它在工业领域中起着至关重要的作用,经历了多年的发展和演变。
本文将详细介绍PLC的发展历史,包括其起源、发展阶段、应用领域和未来趋势。
一、起源1.1 发明背景:20世纪60年代,随着工业自动化的兴起,传统的继电器控制方式已经无法满足工业生产的需求。
1.2 发明者:PLC的发明可以追溯到1968年,由美国的发明家理查德·莫尔(Richard Morley)首次提出。
1.3 初期应用:最初,PLC主要用于汽车创造业和工业生产线的控制,以提高生产效率和质量。
二、发展阶段2.1 第一代PLC:1970年代,PLC开始商业化生产,采用基于硬线逻辑的控制方式,功能相对简单。
2.2 第二代PLC:1980年代,PLC开始采用微处理器,具备更强的计算能力和灵便性,支持更复杂的控制任务。
2.3 第三代PLC:1990年代,PLC的集成化程度大幅提升,支持更多的输入输出点,具备更强大的通信能力。
三、应用领域3.1 创造业:PLC广泛应用于各类创造业,包括汽车、电子、食品等,用于生产线的自动化控制和监测。
3.2 能源行业:PLC在电力、石油、天然气等能源行业中被广泛应用,用于设备的监控和控制。
3.3 建造领域:PLC在建造领域中用于楼宇自动化系统,包括照明、空调、安防等设备的集中控制。
四、未来趋势4.1 智能化发展:随着人工智能和物联网技术的发展,PLC将更加智能化,具备自学习和自适应能力。
4.2 云平台应用:PLC将与云计算技术结合,实现远程监控和数据分析,提高生产效率和质量。
4.3 安全性提升:PLC的安全性将得到进一步提升,防止黑客攻击和数据泄露。
五、结论PLC作为工业自动化领域的核心控制设备,经历了多年的发展和演变。
从最初的简单控制到如今的智能化系统,PLC在提高生产效率、降低成本和改善产品质量方面发挥着重要作用。
PLC发展历史

PLC发展历史引言概述:PLC(可编程逻辑控制器)是一种用于工业自动化控制的电子设备。
它在过去的几十年里经历了长足的发展,从最初的简单控制器到如今的高级可编程控制器。
本文将探讨PLC的发展历史,从其起源到现代应用,以展示其在工业自动化领域的重要性。
一、起源和发展1.1 早期自动化控制在20世纪60年代,工业自动化控制主要依赖于机械继电器和电气控制面板。
这种控制方式复杂且不灵活,限制了自动化的发展。
1.2 第一代PLC的出现20世纪70年代,第一代PLC出现了。
这些PLC使用了集成电路和存储器,可以编程进行逻辑控制。
相比于机械继电器,PLC提供了更高的可靠性和灵活性。
1.3 PLC的功能不断扩展随着技术的进步,PLC的功能不断扩展。
第一代PLC只能进行简单的逻辑控制,而现代PLC可以进行复杂的数学计算、数据处理和通信。
PLC的发展推动了工业自动化的快速发展。
二、PLC的应用领域2.1 制造业PLC在制造业中的应用非常广泛。
它可以控制生产线上的机器和设备,实现自动化生产和流程控制。
PLC的高可靠性和灵活性使得制造业能够提高生产效率和质量。
2.2 能源领域PLC在能源领域的应用也非常重要。
它可以控制发电厂的发电机组和输电系统,实现对电力的稳定供应。
此外,PLC还可以优化能源系统的运行,提高能源利用效率。
2.3 交通运输在交通运输领域,PLC被广泛应用于交通信号控制系统和地铁系统。
它可以实现交通信号的智能控制,提高交通流量的效率和安全性。
同时,PLC还可以控制地铁列车的运行和安全系统。
三、PLC的发展趋势3.1 更高的性能和可靠性随着技术的进步,PLC的处理能力和可靠性将不断提高。
更快的处理速度和更高的存储容量将使得PLC能够处理更复杂的控制任务。
3.2 更广泛的通信能力未来的PLC将具备更强大的通信能力,能够与其他设备和系统进行实时的数据交换。
这将使得PLC在工业互联网和物联网的应用中发挥更重要的作用。
PLC发展历史范文

PLC发展历史范文
一、PLC发展历程
1、PLC发展的早期(1966-1980)
1966年,美国宾夕法尼亚大学研发出第一台PLC,型号为RACACOMP。
它采用替代型电路设计,用一个简单的自动控制程序控制它们的行为,是
当时主要实现模拟控制的技术。
1970年,世界上第一台商业化的PLC诞
生了,型号为MODACOM,由英国康明斯公司开发。
此后,由于可编程控制器在模拟控制领域的应用,PLC发展迅速。
但
由于技术比较落后,PLC在控制上并不能满足现代工业的需求,功能有限,偶尔会出现Write的失灵现象,可靠性较低。
2、PLC发展的高潮(1980-2000)
1980年,康明斯和日本三菱公司合作开发出了新一代的PLC,它采用
了更多的微处理器技术,可以实现更复杂的模拟控制和数字控制,在速度、稳定性、可靠性等方面也得到了极大的提高。
随着微处理器技术的不断发展,PLC在电路设计、软件设计、模拟电
路设计、应用程序设计等方面也在不断发展。
此外,应用各种技术,如遥控、遥调,还可以实现远程运行。
由于技术的进步,PLC还增加了很多新的功能。
PLC发展历史

PLC发展历史引言:PLC(可编程逻辑控制器)是一种用于自动化控制系统的数字电子设备,广泛应用于工业生产中。
本文将详细介绍PLC的发展历史,从其起源、发展到现代应用,以及对工业自动化的影响。
1. 起源与发展初期PLC的起源可以追溯到20世纪60年代。
当时,传统的继电器控制系统在工业自动化中使用广泛,但存在诸多缺点,如布线复杂、维护困难等。
于是,工程师们开始思考如何利用电子技术改进自动化控制系统。
1968年,美国康奈尔大学的工程师Richard E. Morley首次提出了使用可编程逻辑控制器的概念,并于1971年获得了PLC的专利。
2. 发展阶段2.1 第一代PLC(1970s-1980s)第一代PLC采用了离散电子元件和继电器,具有一定的逻辑功能和存储能力。
这些PLC主要用于简单的控制任务,如流水线控制、灯光控制等。
然而,由于硬件限制,第一代PLC的功能和性能受到了很大的限制。
2.2 第二代PLC(1990s-2000s)随着集成电路和计算机技术的发展,第二代PLC出现了。
这些PLC采用了微处理器和存储芯片,具有更强大的计算和存储能力。
此外,第二代PLC还支持多种通信协议,使其能够与其他设备进行数据交换和远程监控。
这使得PLC在工业自动化中的应用范围得到了扩大。
2.3 第三代PLC(2000s至今)第三代PLC在硬件和软件方面都有了巨大的改进。
PLC的体积更小,功耗更低,性能更强大。
现代PLC具有高速处理能力、多通道输入输出、模拟信号处理等功能,可以满足复杂的控制需求。
此外,PLC的编程软件也更加友好和强大,使得工程师能够更便捷地进行PLC的编程和调试。
3. 现代应用现代PLC已经成为工业自动化领域的核心设备之一,广泛应用于各个行业。
以下是几个典型的应用领域:3.1 制造业在制造业中,PLC被用于控制和监控生产线,实现自动化生产。
PLC可以根据传感器的信号进行判断和控制,确保生产线的稳定运行。
1 PLC的发展史

1 PLC的发展史1.1PLC的起源PLC是从早期的继电器逻辑控制系统发展而来的。
自1836年继电器问世,人们就开始用导线将它同开关器件巧妙地连接,构成用途各异的逻辑控制或顺序控制。
上世纪60年代末,它不断吸收微电脑技术使之功能不断增强,逐渐适合复杂的控制人物。
随着微电子技术、计算机技术和数据通信技术的飞速发展、微处理器的出现,以及流程加工行业对生产流程迅速、频繁变更的需求,PLC技术出现并快速发展。
1.2PLC的诞生1969年美国DEC公司研制出世界上第一台PLC(PDP-14),并在GM公司汽车生产线上应用成功,这标志着PLC第一次进入人们的视野·1969年,美国研制出世界第一台PDP-14·1971年,日本研制出第一台DCS-8·1973年,德国研制出第一台PLC·1974年,中国研制出第一台PLC1.3PLC的特点、现状与发展1.3.1特点①体积小。
②可靠性高。
③编程方便,可在线更改程序。
④适应工业环境。
适应高温、振动、冲击和粉尘等恶劣环境以及电磁干扰环境。
⑤与DCS相比,价格低廉。
⑥安装、维修简单。
1.3.2 现状当前PLC产品紧跟现场总线的发展潮流,80%以上的行业,80%以上的设备均可使用PLC。
据统计,当今世界PLC生产厂家约有150家,生产300多个品种。
2000年销售额约为86亿美元,占工控机市场份额的50%,PLC将在工控机市场中占有主要地位,并保持继续上升的势头。
1.3.3 发展史第一代:1969年至1972年,代表产品有·美国DEC公司的PDP-14/L·日本立石电机公司的SCY-022·日本北辰电机公司的HOSC-20第二代:1973年至1975年,代表产品有·美国GE公司的LOGISTROT·德国SIEMENS(西门子)公司的SIMATIC S3、S4系列·日本富士电机公司的SC系列第三代:1976年至1983年,代表产品有·美国GOULD公司的M84、484、584、684、884·德国SIEMENS(西门子)公司的SIMATIC S5系列·日本三菱公司的MELPLAC-50、550第四代:1983年至现在,代表产品有·美国GOULD公司的A5900·德国SIEMENS(西门子)公司的S7系列1.3.4 发展趋势PLC作为工控机的一员,在主要工业国家中成为自动化系统的基本电控装置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.程序家族有哪些成员?PLC的控制程序一般由主程序、子程序和中断程序组成。
西门子的S7-300/400将子程序分为功能(Function,或称为函数)和功能块(Function Block)。
在每一个扫描循环周期,CPU都要调用一次主程序,用户程序必须有一个并且只能有一个主程序。
小型控制系统可以只有主程序。
中断程序用于快速响应中断事件。
在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。
执行完中断程序后,继续执行被暂停执行的程序或任务。
2.哪些情况需要使用子程序?当系统规模很大、控制要求复杂时,如果将全部控制任务放在主程序中,主程序将会非常复杂,既难以调试,也难以阅读。
使用子程序可以将程序分成容易管理的小块,使程序结构简单清晰,易于调试、查错和维护。
子程序也可以用于需要多次反复执行相同任务的地方,只需要编写一次子程序,别的程序在需要的时候多次调用它,而无需重写该程序。
3.怎样调用子程序?主程序可以调用子程序,子程序也可以嵌套调用别的子程序。
嵌套调用的层数是有限制的,例如S7-200的最大嵌套深度为8级。
执行完子程序后,返回调用它的程序中的调用指令的下一条指令。
4.每个扫描周期都会执行子程序吗?子程序的调用可以是有条件的,在被调用期间,每个扫描周期都要执行一次被调用的子程序。
调用条件不满足时不会执行子程序中的指令,因此使用子程序可以减少扫描循环时间。
5.停止调用子程序后,子程序中的线圈处于什么状态?停止调用子程序后,不再执行子程序中的指令。
子程序中线圈对应的编程元件如果没有受到别的程序的控制,将保持子程序最后一次执行后的状态不变。
即使控制这些线圈的触点的状态变化,该线圈对应的元件的状态也不会变化,因为这时根本就没有执行子程序中的指令。
6.怎样实现子程序的无条件调用?有的PLC的子程序调用指令不能直接接到左侧的垂直“电源”线上,需要通过触点电路来控制是否调用子程序,即子程序的调用是有条件的。
可以用一直为ON的特殊位元件(例如S7-200的SM0.0或FX系列的M8000)的常开触点来实现子程序的无条件调用。
不同品牌的PLC的子程序大致可以分为两种,一种子程序没有输入、输出参数和局部变量,另一种则有。
1.什么是全局变量和局部变量?以西门子的S7-200为例,输入I、输出Q、变量存储器V、内部存储器位M、定时器T、计数器C等属于全局变量,可以在符号表中为全局变量定义符号名。
程序组织单元(Program Organizational Unit)简称为POU,包括主程序、子程序和中断程序。
每个POU均有自己的64字节局部变量,局部变量用L(Local)来表示,局部变量只能在它所在的POU中使用。
与此相反,全局变量可以在各POU中使用。
2.局部变量有哪些类型?子程序可以使用下列局部变量:1) TEMP (临时变量)是暂时保存在局部数据区中的变量。
只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再保存临时变量的数值。
主程序和中断程序的局部变量表中只有TEMP变量。
2) IN(输入参数)由调用它的POU提供的传入子程序的输入参数。
3) OUT(输出参数)是子程序的执行结果,它被返回给调用它的POU。
4) IN_OUT(输入_输出参数)的初始值由调用它的POU传送给子程序,并用同一变量将子程序的执行结果返回给调用它的POU。
主程序和中断程序的局部变量表中只有临时变量TEMP。
3.子程序的输入、输出参数有什么作用?具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。
编程人员为设备的各部件或工艺功能编写了大量的通用的子程序。
即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以用它们快速“组装”出满足不同的用户要求的控制程序。
就好像可以用数字集成电路芯片组成复杂的数字电路一样。
如果子程序没有输入、输出参数,这种子程序没有明确的软件接口,使用起来很不方便。
4.局部变量有什么优点?1) 子程序如果没有局部变量,它和调用它的程序之间只能通过全局变量来交换数据,子程序内部也只能使用全局变量。
将它移植到别的项目时,需要对各POU使用的全局变量作统一安排,以保证不会出现地址冲突。
当程序很复杂,子程序很多时,这种地址分配是很花时间的。
如果子程序有局部变量,并且在子程序中只使用局部变量,不使用全局变量,因为与其他POU没有地址冲突,不作任何改动,就可以将子程序移植到别的项目中去。
为了减少移植子程序的工作量,在子程序中应尽量避免使用全局变量和全局符号。
2) 如果使用局部变量表中的临时变量(TEMP),同一片物理存储器可以在不同的程序中重复使用。
下面以S7-200为例,介绍子程序的编程和调用的过程。
1.创建子程序生成项目时,自动生成一个子程序。
打开程序编辑器,执行“编辑”菜单中的命令“插入”→“子程序”,将自动生成和打开新的子程序。
2.生成局部变量名为“模拟量计算”的子程序如下图所示,在该子程序的局部变量表中,定义了3个输入(IN)参数,一个输出(OUT)参数,和名为“暂存1”的临时(TEMP)变量。
局部变量表最左边的一列是自动分配的每个变量在局部存储器(L)中的地址。
3.编写子程序的梯形图局部变量表的下面是程序区(见上图),输入参数“转换值”是来自模拟量输入模块的与模拟量成正比的转换值,输出参数“模拟值”是计算出的对应的模拟量(例如压力、温度等)的工程值。
子程序中变量名称前的“#”表示该变量是局部变量,它是编程软件自动添加的,输入局部变量时不用输入“#”号。
特殊存储器位SM0.0的常开触点总是闭合。
4.子程序的调用可以在主程序、其他子程序或中断程序中调用子程序,调用子程序时将执行子程序中的指令,直至子程序结束,然后返回调用它的程序中该子程序调用指令的下一条指令之处。
创建子程序后,在上图左边指令树最下面的“调用子程序”文件夹中自动生成刚创建的子程序“模拟量计算”对应的图标。
在梯形图程序中插入子程序调用指令时,首先打开主程序,显示出需要调用子程序的网络。
打开指令树最下面的“调用子程序”文件夹,用鼠标左键按住需要调用的子程序图标,将它“拖”到程序编辑器中需要的位置。
放开左键,子程序块便被放置在该位置。
子程序方框中左边的“转换值”等是在子程序“模拟量计算”的变量声明表中定义的输入参数,右边的“模拟值”是输出参数。
它们被称为子程序的形式参数,简称为形参,形参在子程序内部的程序中使用。
调用子程序时,需要为每个形参指定实际的参数(简称为实参),例如为形参“转换值”指定的实参为模拟量输入字AIW2(见上图)。
子程序调用指令中的实参的有效操作数为存储器地址、常量、全局符号和调用指令所在的POU中的局部变量,不能指定被调用子程序中的局部变量。
CPU调用子程序时,输入参数被复制到子程序的局部存储器,子程序执行完后,从局部存储器复制输出参数到指定的输出参数地址。
西门子S7-300/400的子程序分为功能(Function)和功能块(Function Block)。
1.功能(FC)功能是用户编写的没有固定的存储区的程序块,其临时变量存储在局部数据堆栈中,功能执行结束后,不再保存这些数据。
可以用共享数据区来存储那些在功能执行结束后需要保存的数据。
功能与S7-200的子程序的局部变量基本上相同(见下图)。
与S7-200的子程序相比,其局部变量多了个返回值(RET_VAL)。
返回值实际上属于输出参数。
2.参数类型用于块之间传送数据的形式参数可以定义为12种基本数据类型、5种复杂数据类型(见上图),也可以为块之间传送数据的形式参数定义下列的参数类型:1)Timer或Counter:指定执行块时要使用的定时器或计数器。
例如定义功能中的输入变量TON1的数据类型为Timer,两次调用功能时分别设置TON1的实参为T5和T6。
2)块:指定用作输入或输出的特定块。
例如定义某个输入变量的数据类型为Block_FB,在调用块时指定块地址(例如FB 3)作为实参。
3)POINTER:指针是变量的地址而不是变量的值。
POINTER参数类型的形参应为地址,例如P#M50.0。
在STEP 7中,指针也可以用地址作实参(例如M 50.0)。
4)ANY:用于将任意的数据类型传递给声明的形参。
ANY可用于实参的数据类型未知,或实参可以使用任意数据类型的情况。
例如P#DB2.DBX50.0 BYTE 10表示DB 2中的DBB50~DBB59。
ANY也可以用地址作实参,例如DB2.DBW30和Q12.5,但是只能指向一个变量。
5)UDT:用户自定义的数据类型。
3.功能块(FB)功能块是用户编写的有自己的存储区(背景数据块)的程序块,功能块的输入、输出变量和静态变量(STAT)存放在指定的背景数据块(DI) 中,临时变量存储在局部数据堆栈中。
功能块执行完后,背景数据块中的数据不会丢失,但是不会保存局部数据堆栈中的数据。
4.背景数据块背景数据块是专门指定给某个功能块(FB)使用的数据块,它是FB专用的工作存储区。
背景数据块用来保存FB的实参和静态数据,背景数据块中的数据是自动生成的。
它们是功能块的变量声明表中的数据(不包括临时变量)。
调用功能块时应指定对应的背景数据块。
5.功能与功能块的区别FB和FC均为用户编写的子程序,局部变量表中均有IN、OUT、IN_OUT和TEMP变量。
FC的返回值Ret_Val实际上属于输出参数。
下面是FC和FB的区别:1)功能块有背景数据块,功能没有背景数据块。
2)只能在功能内部访问它的局部变量。
其他逻辑块可以访问功能块的背景数据块中的变量。
3)功能没有静态变量(STAT),功能块有保存在背景数据块中的静态变量。
功能如果有执行完后需要保存的数据,只能存放在全局变量(例如共享数据块和M区)中,但是这样会影响功能的可移植性。
如果功能或功能块的内部不使用全局变量,只使用局部变量,不需要作任何修改,就可以将它们移植到其他项目。
如果块的内部使用了全局变量,在移植时需要考虑每个块使用的全局变量是否会与别的块产生地址冲突。
4)功能块的局部变量(不包括TEMP)有初始值,功能的局部变量没有初始值。
调用功能时应给所有的形参指定实参。
调用功能块时可以不设置某些输入、输出参数的实参,此时这些参数将使用背景数据块中的初始值。
1.中断与中断程序有很多PLC内部或外部的事件是随机发生的,例如外部开关量输入信号的上升沿或下降沿、通信事件、高速计数器的当前值等于设定值和定时中断等,事先并不知道这些事件何时发生,但是它们出现时需要尽快地处理它们,PLC用中断来快速处理上述事件。
例如电力系统出现故障时,可能引发多个断路器相继跳闸。