S7-300程序家族的故事
深入浅出西门子s7-300plc

深⼊浅出西门⼦s7-300plc(2)基于PROFIBUS 的分布式I/O基于PROFIBUS的分布式与本地I/O的组态采⽤了统⼀的⽅式,因此,⽤户在编程时⽆须分辨I/O类型,可以像使⽤本地I/O⼀样⽅便地使⽤分布式I/O。
(3)系统中集成的路由功能TIA中的各种⽹络可以进⾏互联。
TIA中集成的路由功能可以⽅便地实现跨⽹络的下载、诊断等,使整个系统的安装调试更加容易。
(4)集成的系统诊断和报告功能TIA系统集成了⾃动诊断和错误报告功能,诊断和故障信息可以通过⽹络⾃动发送的相关设备⽽不需要编程。
1.1.3 TIA的开放性TIA是⼀个⾼度集成和统⼀的系统,同时它也是⼀个具有⾼度开放性的系统。
TIA的开放性体现在以下⼏个⽅⾯。
1.对所有类型的现场设备开放通过PROFIBUS,TIA对范围极⼴的现场设备开放。
⽬前,该总线已经实现了在防爆环境的应⽤和与驱动设备同步。
开关类产品和安装设备还可以通过AS-Interface。
总线接⼊⾃动化系统,作为PROFIBUS总线的扩展。
楼宇⾃动化与⽣产⾃动化的连接也可以通过instabus○R EIB实现。
2.对办公系统开放并⽀持Internet以太⽹通过TCP/IP协议将TIA与办公⾃动化应⽤及Internet/ Intranet世界相连接。
TIA采⽤OPC作为访问过程数据的标准接⼝,通过该接⼝,可以很容易地建⽴所有基于PC 的⾃动化系统与办公应⽤之间的连接,⽽不论它们所处的物理位置如何。
Internet 技术使在任意位置对⼯⼚进⾏远程操作和监视成为可能。
3.对新型⾃动化结构开放⾃动化领域当中的⼀个明显的技术趋势就是系统的模块化程度⼤⼤提⾼,即由带有智能功熊的技术模块组成的⾃动化结构。
这些模块可以预先进⾏组态、启动和测试。
这样,实现整个⼯⼚的投运要快得多,更改系统也不会影响到⽣产运⾏。
通过PROFInet,TIA使⽤与⼚商⽆关的通讯、⾃动化和⼯程标准,使系统使⽤智能仪表(甚⾄不同⼚家)⾮常容易,不必管它们是否与PROFIBUS或者以太⽹相连接。
PLC-8N 第三章 S7-300PLC 第5节 用户程序结构与编程

说明: 1)程序写在OB1中。 2)计数值存储在DB1中,需先建立DB1。 DB1的0 ~ 47共48个字节为24个INT数(16位,
2字节),用于存储各小时的计数值。 第48 ~ 55共8个字节用于存储日期-时间。 Byte48:年, Byte49:月, Byte50:日 Byte51:时, Byte52:分, Byte53:秒 Word54:毫秒。 日期-时间均为BCD格式。 3)SFC21为存储器初始化模块。 4)SFC1为读日期-时间模块。
循环处理组织块:如OB1(主程序循环,每个扫描 周期执行一次)
时间中断组织块:如OB10(日期时间中断,即在 设置的日期和时间时启动),OB35(时间循环中 断,即以设定的时间为周期循环执行)
事件中断组织块:如OB20(延时中断,过程事件 出现后延时一段时间再执行中断程序),OB40 (硬件中断,快速响应过程事件)
500 IN2
OB1程序
Network1 I0.1
MW10 MW12 MW14 MW16
FC1
EN
ENO
INn0 OUTn8
INn2
INn4
INn6
<0 MW18
Q4.1 ()
Network2 I0.3
MW20 MW22 MW24 MW26
FC1
EN
ENO
INn0 OUTn8
INn2
INn4
INn6
FC没有静态存储空间,调用后其程序中的 临时变量不保留,其它程序不能使用这些临时 变量。
功能调用方法
3、STEP 7库中的功能块与功能的调用
在STEP 7编程软件中提供了一些常用的功能块 (FB)和功能(FC),用户不用再创建这些子 程序,编程时可直接调用,其方法与调用用户自 己编写的FB或FC相同。
S7-300PLC简单介绍

S7-300是模块化小型PLC系统,能满足中等性能要求的应用。
SIMATIC S7-300 可编程序控制器是模块化结构设计。
各种单独的模块之间可进行广泛组合以用于扩展。
一.系统组成:中央处理单元 (CPU)各种 CPU 有各种不同的性能,例如,有的 CPU 上集成有输入/输出点,有的 CPU 上集成有 PROFIBUS-DP 通讯接口等。
信号模块 (SM)用于数字量和模拟量输入/输出通讯处理器 (CP)用于连接网络和点对点连接功能模块 (FM)用于高速计数,定位操作 (开环或闭环定位) 和闭环控制。
负载电源模块 (PS)用于将 SIMATIC S7-300 连接到 120/230 伏交流电源,或 24/48/60/110 伏直流电源。
接口模块 (IM)用于多机架配置时连接主机架 (CR) 和扩展机架 (ER)。
S7-300 通过分布式的主机架 (CR) 和 3 个扩展机架 (ER),可以操作多达 32 个模块。
运行时无需风扇。
SIMATIC S7-300 适用于通用领域:高电磁兼容性和强抗振动,冲击性,使其具有最高的工业环境适应性。
PLC控制系统示意图SIMATIC-S7-300实物模拟图S7-300 有两种类型:标准型温度范围从 0℃到 60℃环境条件扩展型温度范围从 -25℃到 +60℃更强的耐受振动和污染特性。
二.功能SIMATIC S7-300 的大量功能支持和帮助用户进行编程、启动和维护高速的指令处理0.6~0.1μs的指令处理时间在中等到较低的性能要求范围内开辟了全新的应用领域。
浮点数运算用此功能可以有效地实现更为复杂的算术运算方便用户的参数赋值一个带标准用户接口的软件工具给所有模块进行参数赋值,这样就节省了入门和培训的费用。
人机界面 (HMI)方便的人机界面服务已经集成在 S7-300 操作系统内。
因此人机对话的编程要求大大减少。
SIMATIC人机界面 (hmi) 从 S7-300 中取得数据,S7-300 按用户指定的刷新速度传送这些数据。
S7-300PLC的基本结构及工作原理幻灯片

能力目标: 1、掌握PLC的结构,PLC的工作原理技术性能指标。 2、理解PLC与其他工业控制装置的比较。
四川机电职业技术学院 .电子电气工程系
23.06.2020
第一章 可编程控制器概述 3
SIMATIC S7-300/400PLC 原Hale Waihona Puke 及应用第一章 可编程控制器概述
前言
1.1 可编程控制器的发展过程及基本功能 1.2 可编程控制器的特点、性能指标及分类 1.3 可编程控制器的基本结构及工作原理 1.4 可编程控制器的编程语言 1.5 可编程控制器与其他工业控制装置的比较 1.6 可编程控制器的发展趋势
随着计算机技术的发展,开始采用微处理器作为可编程控制器
的中央处理单元,从而扩大了其功能,现在的可编程控制器不仅可
以进行逻辑控制,还可以实现顺序控制、定时、计数和算术运算等
操作及通信联网的功能。后来美国电气制造协会将它命名为可编程
控制器(Programmable Controller),简称PC。但PC这个名称已
SIMATIC S7-300/400PLC 原理及应用
SIMATIC S7-300/400PLC 原理及应用
四川机电职业技术学院.电子电气工程系
四川机电职业技术学院 .电子电气工程系
23.06.2020
第一章 可编程控制器概述 1
SIMATIC S7-300/400PLC 原理及应用
学习情境1:PLC在攀钢的广泛应用
SIMATIC S7-300/400PLC 原理及应用
第三阶段:通信阶段(70年代中末期至80年代中期)
PLC随着计算机通信的发展,形成了分布式通信网络。PLC就 已经从汽车行业迅速扩展到其它行业,作为继电器的替代品进入了
第1章 SIMATIC S7-300 PLC硬件系统简介

1.5.2
SM334模拟量模板
在SM334(AI4/AO2×8BIT)型号中,各 符号的含义是:
SM —— 信号模板;
A I4 —— 模拟量输入通道,通道数目为4;
AO2—— 模拟量输出通道,通道数目为2; 由此可知,该模板是一块具有4个模拟量输 入通道、2个模拟量输出通道的模拟量模板。
1.6
学生活动:观察S7-314 PLC的结构
1.活动目的
⑴通过观察、拆装S7-314 PLC的组成模块,使学生 进一步了解S7-300 PLC的结构,了解各组成模块的型 号、接线图符号的含义。 ⑵培养学生的观察能力及实际动手内容。
2.活动内容
⑴在教师的指导下,拆卸S7-314 PLC装置,并将一至 二个信号模板从机架上拆下来,观察S7-314 PLC的结构 及组成情况;
1' 数字量 2' 数字量
3' 数字量
IM
640
656
672
688
704
720
736
752
例1.3
4号槽的模拟量模板的地址分配为:
通道0:地址 256 通道1:地址 258 通道2:地址 260 : : : :
1.4
CPU工作模式
SIEMATIC S7-300系列的CPU有四种工作模式,模式的选择是 通过一个钥匙开关进行操作的。只有当钥匙开关插上时,才可改变 工作模式。当工程技术人员调试好设备后,应将钥匙开关取下,以 防止因无关人员改变运行模式或改变用户程序而造成安全事故。
1.2
S7-300 PLC的结构
1.2.1 单机架PLC的结构 当PLC 的组成模块较少时,只需要一个机架即可安 装下全部模块组件,这就是单机架结构PLC。此种结构 最多可安装的信号模板(包括SM、FM、CP)总数为8个。
S7-300的简单介绍

S7-300∙模块化微型PLC系统,满足中、小规模的性能要求∙各种性能的模块可以非常好地满足和适应自动化控制任务∙简单实用的分布式结构和多界面网络能力,应用十分灵活∙方便用户和简易的无风扇设计∙当控制任务增加时,可自由扩展∙大量的集成功能使它功能非常强劲S7-300自动化系统采用模块化设计。
它拥有丰富的模块,且这些模块均可以独立地组合使用。
一个系统包含下列组件:o CPU:不同的CPU 可用于不同的性能范围,包括具有集成I/O 和对应功能的CPU 以及具有集成PROFIBUS DP、PROFINET 和点对点接口的CPU。
o用于数字量和模拟量输入/输出的信号模块(SM)。
o用于连接总线和点对点连接的通信处理器(CP)。
o用于高速计数、定位(开环/闭环)及PID 控制的功能模块(FM)。
根据要求,也可使用下列模块:o用于将SIMATIC S7-300 连接到120/230 V AC 电源的负载电源模块(PS)。
o接口模块(IM),用于多层配置时连接中央控制器(CC) 和扩展装置(EU)。
通过分布式中央控制器(CC) 和3 个扩展装置(EU),SIMATIC S7-300 可以操作多达32 个模块。
所有模块均在外壳中运行,并且无需风扇。
o SIPLUS 模块可用于扩展的环境条件:适用于-25 至+60℃的温度范围及高湿度、结露以及有雾的环境条件。
防直接日晒、雨淋或水溅,在防护等级为IP20 机柜内使用时,可直接在汽车或室外建筑使用。
不需要空气调节的机柜和IP65 外壳。
设计简单的结构使得S7-300 使用灵活且易于维护:o安装模块:只需简单地将模块挂在安装导轨上,转动到位然后锁紧螺钉。
o集成的背板总线:背板总线集成到模块里。
模块通过总线连接器相连,总线连接器插在外壳的背面。
o模块采用机械编码,更换极为容易:更换模块时,必须拧下模块的固定螺钉。
按下闭锁机构,可轻松拔下前连接器。
前连接器上的编码装置防止将已接线的连接器错插到其他的模块上。
基于PLC(S7-300)控制的智能家居系统

河北建材职业技术学院Hebei Vocational & Technical College of Building Materials毕业设计( 2016届)题目:基于PLC(S7-300)控制的智能家居系统所属系部机电工程系专业电气自动化技术班级 13 电气姓名吕宁学号 0418130118指导教师邢满荣完成日期: 2016 年 6 月13日摘要随着社会的不断发展进步,人们不断去追求更舒适、方便、高效、安全的生活环境。
传统的家居环境无法满足人们越来越高的要求。
本文的设计思路是将家居自动化、家居安全防护等功能集中在一个综合管理系统上,采用模块化的编程方法,分为智能窗帘开合系统、智能车库系统、电动衣架系统、智能洗衣机系统、智能烧水系统、夜间模式和防盗模式,在保证稳定可靠、环保节能和降低成本的前提下,提高家居环境的安全性、舒适性、方便性。
并且可以根据用户的实际需求,进行添加、删除和修改模块功能。
关键词:可编程控制器智能家庭 PLC编程目录绪论 (1)1.PLC选型 (2)2.智能家庭系统设计 (3)2.1智能家庭系统编程结构 (3)2.2智能家庭系统编程方法 (3)3.PLC编程部分 (4)3.1总输入输出分配表和总符号表 (4)3.2主程序部分 (4)3.3智能窗帘开合系统 (5)3.4智能车库系统 (5)3.5电动衣架系统 (5)3.6智能洗衣机系统 (6)3.7智能烧水系统 (8)3.8夜间模式系统 (8)4.调试 (8)结论 (9)致谢 (9)参考文献 (10)附录1 主程序 (11)附录2 智能窗帘程序 (13)附录3 智能车库程序 (15)附录4 电动衣架程序 (18)附录5 智能洗衣机程序 (20)附录6 智能烧水程序 (26)附录7 夜间模式程序 (28)表1 总输入输出分配表 (29)表2 总符号表 (30)绪论随着计算机技术、自动化技术的发展,智能家庭这种时代的产物应运而生。
S7-300的组成原理

PLC的特殊功能寄存器
累加器
两个32位累加器用来处理位,字节,字和双字。 累加器的运作方式如下: 1. 装载指令总是影响累加器1,旧的内容存入累加器2。 2. 传送指令不影响累加器中的内容。 3. TAK指令对换累加器1和2的内容。 嵌套堆栈 具有一个字节宽度的存储区域。用于存储当前的逻辑操作的结果 (RLO)并开始一个新的逻辑操作。 状态字 8 7 6 5 4 3 2 1 0
移量部分相加来计算出地址的存储单元。利用十进制来计算 字节部分,利用八进制来计算位部分。这能进行位部分与字 节部分的进位。 指针格式: 0~2位,被寻址位的位编号。 3~18位,被寻址字节的字节编号(0~65535)。 31位,为0则指明是区域内寄存器间接寻址。 6.区域间寄存器间接寻址:与区域内的区别在与区域内利用地址 标识符来确定寻址的空间,而区域间则利用指针的第24,25,26 位的数值来指定寻址空间。 指针格式: 0~2位,被寻址位的位编号。 3~18位,被寻址字节的字节编号(0~65535)。 24~26位,区域标识。 31位,为1则指明是区域间寄存器间接寻址。
数字操作的结果 被移位指令或循环移位指令移出的位 (2-14) 二进制结果位(BR):对与此位的使用有两点: 一是对于自己编写的功能块FB或功能FC,在结束时应当Байду номын сангаас程 序结束时用SAVE指令在BR中存放RLO位。 正确执行:BR为1 错误执行:BR为0 二是在程序中调用系统功能块SFB或系统功能SFC,可以 通过BR位指明是否准确无误的执行了系统功能: 错误:BR位为0 正确:BR位为1
寻址方式
1.立即寻址 立即寻址的指令直接跟着它要操作的数值,如: SET(把RLO置1),L 27(把整数27装入ACC1) 2.直接寻址 指令具有以下两部分的地址:地址标识符和确切的地址单元,如: A I0.0(用输入I0.0进行与操作),= M5.4(指定RLO到存储区M5.4) 3.存储器间接寻址 指令具有以下两个部分的地址,指明将要处理的数值单元: 1. 一个地址标识符 2. 以下指针之一: 一个字,包含了定时器(T),计数器(C),数据 块(DB),功能(FC),功能块(FB)的编号。或一个双字,它包含了地 址标识符在存储区域中确切的数值单元。地址通过指针指明数字 或编号的单元,这些字或双字应在以下的区域中: 位存储区(M),背景数据块(DI),数据块(DB),局部数据(L)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序家族的故事一、程序家族有哪些成员?PLC的控制程序一般由主程序、子程序和中断程序组成。
西门子的S7-300/400将子程序分为功能(Function,或称为函数)和功能块(Function Block)。
在每一个扫描循环周期,CPU都要调用一次主程序,用户程序必须有一个并且只能有一个主程序。
小型控制系统可以只有主程序。
中断程序用于快速响应中断事件。
在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。
执行完中断程序后,继续执行被暂停执行的程序或任务。
二、哪些情况需要使用子程序?当系统规模很大、控制要求复杂时,如果将全部控制任务放在主程序中,主程序将会非常复杂,既难以调试,也难以阅读。
使用子程序可以将程序分成容易管理的小块,使程序结构简单清晰,易于调试、查错和维护。
子程序也可以用于需要多次反复执行相同任务的地方,只需要编写一次子程序,别的程序在需要的时候多次调用它,而无需重写该程序。
三、怎样调用子程序?主程序可以调用子程序,子程序也可以嵌套调用别的子程序。
嵌套调用的层数是有限制的,例如S7-200的最大嵌套深度为8级。
执行完子程序后,返回调用它的程序中的调用指令的下一条指令。
四、每个扫描周期都会执行子程序吗?子程序的调用可以是有条件的,在被调用期间,每个扫描周期都要执行一次被调用的子程序。
调用条件不满足时不会执行子程序中的指令,因此使用子程序可以减少扫描循环时。
五、停止调用子程序后,子程序中的线圈处于什么状态?停止调用子程序后,不再执行子程序中的指令。
子程序中线圈对应的编程元件如果没有受到别的程序的控制,将保持子程序最后一次执行后的状态不变。
即使控制这些线圈的触点的状态变化,该线圈对应的元件的状态也不会变化,因为这时根本就没有执行子程序中的指令。
六、怎样实现子程序的无条件调用?有的PLC的子程序调用指令不能直接接到左侧的垂直“电源”线上,需要通过触点电路来控制是否调用子程序,即子程序的调用是有条件的。
可以用一直为ON的特殊位元件(例如S7-200的SM0.0或FX系列的M8000)的常开触点来实现子程序的无条件调用。
七、什么是全局变量和局部变量?不同品牌的PLC的子程序大致可以分为两种,一种子程序没有输入、输出参数和局部变量,另一种则有。
以西门子的S7-200为例,输入I、输出Q、变量存储器V、内部存储器位M、定时器T、计数器C等属于全局变量,可以在符号表中为全局变量定义符号名。
程序组织单元(Program Organizational Unit)简称为POU,包括主程序、子程序和中断程序。
每个POU均有自己的64字节局部变量,局部变量用L(Local)来表示,局部变量只能在它所在的POU中使用。
与此相反,全局变量可以在各POU中使用。
八、局部变量有哪些类型?子程序可以使用下列局部变量:1、TEMP (临时变量)是暂时保存在局部数据区中的变量。
只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再保存临时变量的数值。
主程序和中断程序的局部变量表中只有TEMP变量。
2、IN(输入参数)由调用它的POU提供的传入子程序的输入参数。
3、OUT(输出参数)是子程序的执行结果,它被返回给调用它的POU。
4、IN_OUT(输入_输出参数)的初始值由调用它的POU传送给子程序,并用同一变量将子程序的执行结果返回给调用它的POU。
主程序和中断程序的局部变量表中只有临时变量TEMP。
九、子程序的输入、输出参数有什么作用?具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。
编程人员为设备的各部件或工艺功能编写了大量的通用的子程序。
即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以用它们快速“组装”出满足不同的用户要求的控制程序。
就好像可以用数字集成电路芯片组成复杂的数字电路一样。
如果子程序没有输入、输出参数,这种子程序没有明确的软件接口,使用起来很不方便。
十、局部变量有什么优点?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_V AL)。
返回值实际上属于输出参数。
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)功能块是用户编写的有自己的存储区(背景数据块)的程序块,功能块的输入、输出变量和静态变量(STA T)存放在指定的背景数据块(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用中断来快速处理上述事件。
例如电力系统出现故障时,可能引发多个断路器相继跳闸。