GE PLC的plc编程入门梯形图图程序中有很多直接出现的T型变量,又没有地址...所以不是很能理解,求助一下大神

怎样学习PLC编程,,看了一点关于用梯形图编写的程序,,很多都不是很清楚,有没有系统学习有关PLC编程 三路知识网
怎样学习PLC编程,,看了一点关于用梯形图编写的程序,,很多都不是很清楚,有没有系统学习有关PLC编程
来源:网络收集 & 发布时间: &
怎样学习PLC编程,,看了一点关于用梯形图编写的程序,,很多都不是很清楚,比如POU调用、POU返回元件等等,,有没有系统学习有关PLC编程的书籍、文档、或视频呐???求大神指点!!!
建议从基础学习
这样以后到后面才能跟的上
网上有很多
视频也有很多
本文地址:https://www.slzays.com/4893.html
怎样学习PLC编程,,看了一点关于用梯形图编写的程序,,很多都不... ……建议从基础学习 这样以后到后面才能跟的上 具体书籍 网上有很多 视频也有很多
零基础怎么学PLC编程
……其实他们只是缺少了一些PLC的实践经验,只要再进行一些实际的梯形图编写、程序下载...
在学习PLC书本知识的过程中,肯定会对许多指令不是很了解,如果看不懂指令的话,那么...……
怎样学习PLC编程语言 ……看你~那个头都大了。刚开始时S7的软件都不会用,还是5.2的英文版~直接看梯形图,看常... 没有买。往后就搞来一些非常复杂的程序,功能块块数据块特别多,强硬着头皮看,又发现...……
怎样学PLC编程
……个方向上,不过对于各个牌子的PLC都有所了解,包括进 口的,国产的,这些都有相对应了解... 编程语言梯形图、语 句表语言。达到这个水平你只能读懂编好的程序,并可 以设计一些...……
西门子PLC用什么语言编程,用梯形图么?还是什么语言 ……利用指令表编制的PLC程序,可以用简易型编程器进行输入/输出与编辑;当梯形图编程出... 程序与断点暂停功能),也只能在指令表格式时才能应用;因此,目前的PLC编程过程中,仍然...……
怎么学习plc编程 ……不必担心自己写的程序会有什么问题,会影响PLC的正常工作。程序有没有问题,只有让... 学习PID最好的方法就是读书。几乎所有讲解过程控制的书籍都有关于PID的内容,多读...……
如何学习plc编程 ……用在应用最广泛、有潜力、有发展的一 个方向上,不过对于各个牌子的PLC都有所... 集散控制系统。在一些大型程序 中还需要用到数据库的知识。(PLC入门很快但要...……
plc如何画梯形图?用的是松下中文版plc。谢谢高手了。 ……不管是三菱,西门子还是松下plc,梯形图画法都差不多,软件操作不难,但指令必须熟练掌握.以下仅提供一点基本知识,后面的几个链接资料较详细,有视频,仅供参考.
第三章 基本指令...……
PLC梯形图编好后怎么试运行,没有连接PLC可以吗 ?就是一些... ……有的PLC有模似器程序,搜一下或了解一下有无相应的模拟器程序。
我就是用模拟器学梯形图的,不过是OMRON与S7……
所有问题分类分享西门子plc梯形图中的5大常用的编程元件以及其它的编程元件
在西门子plc梯形图中,将其触点和线圈等称为程序中的编程元件。编程元件也称为软元件,是指在plc编程时使用的输入/输出端子所对应的存储区以及内部的存储单元、寄存器等。
根据编程元件的功能,西门子plc梯形图中的常用的编程元件主要有输入继电器(I)、输出继电器(Q)、辅助继电器(M、SM)、定时器(T)、计数器(C)和一些其他较常见的编程元件等。
1、输入继电器(I)的标注
西门子PLC梯形图中的输入继电器用&字母I+数字&进行标识,每个输入继电器均与PLC的一个输入端子对应,用于接收外部开关信号。
输入继电器由PLC端子连接的开关部件的通断状态(开关信号)进行驱动,当开关信号闭合时,输入继电器得电,其对应的常开触点闭合,常闭触点断开,如图1所示。
图1 &西门子PLC梯形图中的输入继电器
2、输出继电器(Q)的标注
西门子PLC梯形图中的输出继电器用&字母Q+数字&进行标识,每一个输出继电器均与PLC的一个输出端子对应,用于控制PLC外接的负载。
输出继电器可以由PLC内部输入继电器的触点、其他内部继电器的触点或输出继电器自己的触点来驱动,如图2所示。
图2 &西门子PLC梯形图中的输出继电器
3、辅助继电器(M、SM)的标注
在西门子PLC梯形图中,辅助继电器有两种,一种为通用辅助继电器,一种为特殊标志位辅助继电器。
(1)通用辅助继电器的标注。通用辅助继电器,又称为内部标志位存储器,如同传统继电器控制系统中的中间继电器,用于存放中间操作状态,或存储其他相关数字,用&字母M+数字&进行标识,如图3所示。
图3 &西门子PLC梯形图中的通用辅助继电器
由图3可以看到,通用辅助继电器M0.0既不直接接受外部输入信号,也不直接驱动外接负载,它只是作为程序处理的中间环节,起到桥梁的作用。
(2)特殊标志位辅助继电器的标注。特殊标志位辅助继电器,用&字母SM+数字&标识,如图4所示,通常简称为特殊标志位继电器,它是为保存PLC自身工作状态数据而建立的一种继电器,用于为用户提供一些特殊的控制功能及系统信息,如用于读取程序中设备的状态和运算结果,根据读取信息实现控制需求等。一般用户对操作的一些特殊要求也可通过特殊标志位辅助继电器通知CPU系统。
图4 &西门子PLC梯形图中的特殊标志位辅助继电器
4、定时器(T)的标注
在西门子PLC梯形图中,定时器是一个非常重要的编程元件,用&字母T+数字&进行标识,数字从0~255,共256个。不同型号的PLC,其定时器的类型和具体功能也不相同。在西门子S7-200系列PLC中,定时器分为3种类型,即接通延时定时器(TON)、保留性接通延时定时器(TONR)、断开延时定时器(TOF),三种定时器定时时间的计算公式相同,即
(T为定时时间,PT为预设值,S为分辨率等级)
其中,PT预设值根据编程需要输入设定值数值,分辨率等级一般有1ms、10ms、100ms三种,由定时器类型和编号决定,见表3所示。
表3 &西门子S7-200定时器号码对应的分辨率等级及最大值等参数
(1)接通延时定时器(TON)的标注。接通延时定时器是指定时器得电后,延时一段时间(由设定值决定)后其对应的常开或常闭触点才执行闭合或断开动作;当定时器失电后,触点立即复位。
接通延时定时器(TON)在PLC梯形图中的表示方法如图5所示,其中,方框上方的&???&为定时器的编号输入位置;方框内的TON代表该定时器类型(接通延时);IN为起动输入端;PT为时间预设值端(PT外部的&???&为预设值的数值);S为定时器分辨率,与定时器的编号有关,可参照表3。
图5 &接通延时定时器(TON)在PLC梯形图中的表示方法
例如,某段PLC梯形图程序中所用定时器编号为T37,预设值PT为300,定时分辨率为100ms,如图6所示。
可以计算出,该定时器的定时时间为300&100ms=30000ms=30s;则在该程序中,当输入继电器I0.3闭合后,定时器T37得电,延时30s后控制输出继电器Q0.0的延时闭合的常开触点T37闭合,使输出继电器Q0.0线圈得电。
图6 &接通延时定时器(TON)应用
(2)保留性接通延时定时器(TONR)的标注。保留性接通延时定时器(TONR)与上述的接通延时定时器(TON)原理基本相同,不同之处在于在计时时间段内,未达到预设值前,定时器断电后,可保持当前计时值,当定时器得电后,从保留值的基础上再进行计时,可多间隔累加计时,当到达预设值时,其触点相应动作(常开触点闭合,常闭触点断开)。
保留性接通延时定时器(TONR)在PLC梯形图中的表示方法如图7所示,其中,方框上方的&???&为定时器的编号输入位置;方框内的TONR代表该定时器类型(接通延时);IN为起动输入端;PT为时间预设值端(PT外部的&???&为预设值的数值);S为定时器分辨率,与定时器的编号有关,可参照表。
图7 &保留性接通延时定时器(TONR)在PLC梯形图中的表示方法
(3)断开延时定时器(TOF)的标注。断开延时定时器(TOF)是指定时器得电后,其相应常开或常闭触点立即执行闭合或断开动作;当定时器失电后,需延时一段时间(由设定值决定),其对应的常开或常闭触点才执行复位动作。
断开延时定时器(TOF)在PLC梯形图中的表示方法与上述两种定时器基本相同,如图8所示为断开延时定时器(TOF)的典型应用。
图8 &断开延时定时器(TOF)的应用
由图8可以看到,该程序中所用定时器编号为T33,预设值PT为60,定时分辨率为10ms。
可以计算出,该定时器的定时时间为60&10ms=600ms=0.6s;则该程序中,当输入继电器I0.3闭合后,定时器T38得电,控制输出继电器Q0.0的延时断开的常开触点T38立即闭合,使输出继电器Q0.0线圈得电;当输入继电器I0.3断开后,定时器T38失电,控制输出继电器Q0.0的延时断开的常开触点T38延时0.6 s后才断开,输出继电器Q0.0线圈失电。
5、计数器(C)的标注
在西门子PLC梯形图中,计数器的结构和使用与定时器基本相似,也是应用广泛的一种编程元件,用来累计输入脉冲的次数,经常用来对产品进行计数。用&字母C+数字&进行标识,数字从0~255,共256个。
不同型号的PLC,其定时器的类型和具体功能也不相同。在西门子S7-200系列PLC中,计数器分为3种类型,即增计数器(CTU)、减计数器(CTD)、增减计数器(CTUD),一般情况下,计数器与定时器配合使用。
(1)增计数器(CTU)的标注。增计数器(CTU)是指在计数过程中,当计数端输入一个脉冲式时,当前值加1,当脉冲数累加到等于或大于计数器的预设值时,计数器相应触点动作(常开触点闭合,常闭触点断开)。
在西门子S7-200系列PLC梯形图中,增计数器的图形符号及文字标识含义如图9所示,其中方框上方的&???&为增计数器编号输入位置,CU为计数脉冲输入端,R为复位信号输入端(复位信号为0时,计数器工作),PV为脉冲设定值输入端。
图11 &增计数器的图形符号及文字标识含义
例如,某段PLC梯形图程序中计数器类型为CTU,增计数器,编号为C1,预设值PV为80,复位端由输出继电器Q0.0的常闭触点控制,如图12所示。
可以看到,该程序中,初始状态下,输出继电器Q0.0的常闭触点闭合,即计数器复位端为1,计数器不工作;当PLC外部输入开关信号使输入继电器I0.0闭合后,输出继电器Q0.0线圈得电,其常闭触点Q0.0断开,计数器复位端信号为0,计数器开始工作;同时输出继电器Q0.0的常开触点闭合,定时器T37得电。
图12 &增计数器(CTU)的应用
在定时器T37控制下,其常开触点T37每6min闭合一次,即每6min向计数器C1脉冲输入端输入一个脉冲信号,计数器当前值加1,当计数器当前值等于80时(历时时间为8h),计数器触点动作,即控制输出继电器Q0.0的常闭触点在接通8h后自动断开。
(2)减计数器(CTD)的标注。减计数器(CTD)是指在计数过程中,将预设值装入计数器当前值寄存器,当计数端输入一个脉冲式时,当前值减1,当计数器的当前值等于0时,计数器相应触点动作(常开触点闭合、常闭触点断开),并停止计数。
在西门子S7-200系列PLC梯形图中,减计数器的图形符号及文字标识含义如图13所示,其中方框上方的&???&为减计数器编号输入位置,CD为计数脉冲输入端,LD为装载信号输入端,PV为脉冲设定值输入端。
图13 &增计数器的图形符号及文字标识含义
当装载信号输入端LD信号为1时,其计数器的设定值PV被装入计数器的当前值寄存器,此时当前值为PV。只有装载信号输入端LD信号为0时,计数器才可以工作。
例如,某段PLC梯形图程序中计数器类型为CTD,减计数器,编号为C1,预设值PV为3,如图14所示。
图14 &减计数器(CTD)的应用
由图14可以看到,该程序中,由输入继电器常开触点I0.1控制计数器C1的装载信号输入端;输入继电器常开触点I0.0控制计数器C1的脉冲信号,I0.1闭合,将计数器的预设值3装载到当前值寄存器中,此时计数器当前值为3,当I0.0闭合一次,计数器脉冲信号输入端输入一个脉冲,计数器当前值减1,当计数器当前值减为0时,计数器常开触点C1闭合,控制输出继电器Q0.0线圈得电。
(3)增减计数器(CTUD)的标注。增减计数器(CTUD)有两个脉冲信号输入端,其在计数过程中,可进行计数加1,也可进行计数减1。
在西门子S7-200系列PLC梯形图中,增减计数器的图形符号及文字标识含义如图15所示,其中方框上方的&???&为增减计数器编号输入位置,CU为增计数脉冲输入端,CD为减计数脉冲输入端,R为复位信号输入端,PV为脉冲设定值输入端。
当CU端输入一个计数脉冲时,计数器当前值加1,当计数器当前值等于或大于预设值时,计数器由OFF转换为ON,其相应触点动作;当CD端输入一个计数脉冲时,计数器当前值减1,当计数器当前值小于预设值时,计数器由OFF转换为ON,其相应触点动作。
图15 &增减计数器的图形符号及文字标识含义
例如,某段PLC梯形图程序中计数器类型为CTUD,增减计数器,编号为C48,预设值PV为4,如图16所示。
图16 &增减计数器(CTUD)的应用
由图16可以看到,当输入继电器常开触点I0.0闭合一次,为计数器CU输入一个脉冲,计数器当前值加1,当累加至4时,计数器C48动作,其常开触点C48闭合,输出继电器Q0.0线圈得电;当输入继电器常开触点I0.1闭合一次,为计数器CD输入一个脉冲,计数器当前值减1,当减至4时,计数器C48动作,其常开触点C48闭合,输出继电器Q0.0线圈得电。
6、其他编程元件(V、L、S、AI、AQ、HC、AC)的标注
西门子PLC梯形图中,除上述5种常用编程元件外,还包含一些其他基本编程元件。
(1)变量存储器(V)的标注。变量存储器用字母V标识,用来存储全局变量,可用于存放程序执行过程中控制逻辑操作的中间结果等。同一个存储器可以在任意程序分区被访问。
(2)局部变量存储器(L)的标注。局部变量存储器用字母L标识,用来存储局部变量,同一个存储器只和特定的程序相关联。
(3)顺序控制继电器(S)的标注。顺序控制继电器用字母S标识,用于在顺序控制和步进控制中,是一种特殊的继电器。
(4)模拟量输入、输出映像寄存器(AI、AQ)的标注。模拟量输入映像寄存器(AI)用于存储模拟量输入信号,并实现模拟量的A/D转换;模拟量输出映像寄存器(AQ)为模拟量输出信号的存储区,用于实现模拟量的D/A转换。
(5)高速计数器(HC)的标注。高速计数器(HC)与普通计数器基本相同,其用于累计高速脉冲信号。高速计数器比较少,在西门子S7-200系列PLC中,CPU226中高速计数器为HC(0~5),共6个。
(6)累加器(AC)的标注。累加器(AC)是一种暂存数据的寄存器,可用来存放运算数据、中间数据或结果数据,也可用于向子程序传递或返回参数等.西门子S7-200系列PLC中累加器为AC(0~3),共4个.
原文标题:西门子PLC常用指令举例(新手值得收藏)
文章出处:【微信号:gk-plc,微信公众号:工控PLC网】欢迎添加关注!文章转载请注明出处。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
发布评论请先
当前,随着锂电技术的不断发展,制造技术的不断进步,单打独斗难以适应快速的发展需求,企业之间必须协同创....
一、项目描述
按下电动机启动按钮,电动机启动运行在5Hz所对应的转速;延时10s后,....
TI公司的TIDA-01421是用于无传感器位置测量的汽车有刷马达脉冲计数器参考设计,可配置用于许多....
Infineon公司的TLE9842-2QX是TLE984x系列中一员,集成了32位ARM Cort....
伴随着全球数字经济迅猛发展与行业需求的日益旺盛,以智能技术为代表的新一轮科技革命正在迅速崛起。
M0闭合,PLC在Y0口发脉冲以500的速度共发出2000脉冲,发完脉冲后M8029动作,复位M0。....
优良的网络性能始于合理的网络设计,而合理的网络设计依赖于对每一个网络节点的通讯行为和用来承载网络信息....
定时 / 计数器 PWM设计要点 根据 PWM ((脉宽调制(PWM:(Pulse Width Mo....
根据FTI报告显示,2017年,全球新增风电机组共2万多台,容量达到52GW,共由46家风电整机制造....
电气设备智能化是电气制造企业必须考虑的问题,智能制造就是要生产出智能化的产品,在加快实现工业信息化的....
动力线、控制线以及PLC的电源线和I/O线应分别配线,隔离变压器与PLC和I/O之间应采用双胶线连接....
BMOV指令是从源操作数指定的元件开始的n个数组成的数据块传送到指定的目标。如果元件号超出允许的元件....
模拟量信号:一般为各种类型的传感器,例如:压力变送器,液位变送器,远传压力表,热电偶和热电阻等等信号....
是西门子s7200 PLC的,启动,保持,停止的控制电路和程序,我们知道右边的这个程序,它是用单纯的....
实现MODBUS通讯时,需要在CP341/CP441-2模块上插入相应协议的硬件狗(硬件狗、Dong....
使用扩展基板时,第一块扩展基板的首地址顺接主基板的末地址,扩展基板的地址赋值与电缆连接顺序无关,取决....
继电器就是当输入量(或激励量)满足某些规定的条件是能在一个或多个电器输出电路中产生跃变的一种器件。
时间继电器是指当加入(或去掉)输入的动作信号后,其输出电路需经过规定的准确时间才产生跳跃式变化(或触....
2018年1月,美国阿拉巴马大学亨茨维尔分校某安全专家发现多种运行固件版本(21.002及更早版本的....
一台组合机床主要由滑台、钻削头、夹具、多轴箱、动力箱、立柱、立柱底座、中间底座、侧底座以及辅助部件等....
FX2N PLC用FX3U替代后,原来的功能扩展板(通讯用的BD板和特殊适配器如FX2N-485BD....
除固态电池外,万向A123于2017年间,还在磷酸铁锂及分布式储能领域大放异彩。毫不夸张的说,这样的....
在工业自动化控制中,DCS控制系统和PLC控制系统都是我们常用的自动化控制系统,两者各有千秋,都可以....
本文主要介绍了双稳态继电器的工作原理详解,双稳态继电器就是给它一个正脉冲电压它由常闭闭合状态改为常开....
本文开始阐述了博世和西门子的关系以及分析了西门子和博世哪个更好,其次分析了西门子和博世的冰箱哪个更好....
本文开始介绍了德国倍福的的主要产品以及介绍了德国倍福产品优点,其次介绍了倍福PLC与西门子plc的区....
本文开始介绍了西门子是哪个国家的品牌以及西门子的发展历史,其次介绍了西门子的发明成果,最后对西门子的....
PLC编程中的计时器可通过设置预设时间触发计时器。定时器完成位元件的不正确放置可能导致涉及定时器完成....
S7-1200是西门子公司的新一代小型PLC,代表了下一代PLC的发展方向。它集成了以太网接口和很强....
操作屏采用工业级人机界面,主要完成直流系统运行监控、故障报警、记录和排除提示、参数设置、模拟键盘操作....
输出继电器是用来将PLC的输出信号传递给负载,是专设的输出过程映像寄存器。它只能用程序指令驱动。在....
本文主要介绍了CD4040中文资料汇总(CD4040引脚图及功能_工作原理及应用电路),CD4040....
为了使A3获得更加优异的碰撞性能,在A3的车身结构中,大量的采用高强度钢板,同时纵梁等关键结构采用激....
本文介绍了一种用Atmel89S51单片机仿真PLC控制的方法,设计适合刚性离合器冲床的控制器,介绍....
PLC = Programmable Logic Controller,可编程逻辑控制器,一种数字运....
利用先进的物理仿真技术和创新的传感器数据处理技术,西门子推出的新款解决方案专为帮助汽车制造商及其供应....
Maxim MAXREFDES11 Fresno 参考设计是 16 位高精度工业模拟前端(AFE),....
随着电网基础设施建设和电力能源投入的发展,电气成套设备需求量逐年增加,产品升级换代速度加快,生产设备....
什么样的PLC可以算是高端PLC?可靠性?稳定性?信息安全?网络连通能力……哪些是未来我们对高端PL....
PLC的内部存储器有两类,一类是系统程序存储器,主要存放系统管理和监控程序及对用户程序作编译处理的程....
目前已使用多个驱动晶体管集成的集成电路,使用这种集成电路能简化驱动多个继电器的印制板的设计过程。
导读: 用物联网控制器通过8050三极管与51单片机通信来控制八路继电器。 01准备材料 物联网控制....
导读: 利用物联网控制器来控制12V16路继电器。须用到8050作为通信转发,51单片机作为IO扩展....
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-1 Pages: 1/2& & &Go
级别: 家园常客
发帖数量: 136 个
工控威望: 663 点
下载积分: 138 分
在线时间: 160(小时)
注册时间: 最后登录:
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调用子程序时,输入参数被复制到子程序的局部存储器,子程序执行完后,从局部存储器复制输出参数到指定的输出参数地址。
级别: 家园常客
发帖数量: 136 个
工控威望: 663 点
下载积分: 138 分
在线时间: 160(小时)
注册时间: 最后登录:
  西门子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用中断来快速处理上述事件。    例如电力系统出现故障时,可能引发多个断路器相继跳闸。为了分析故障的起因,需要及时准确记录事故发生的时间。可以用硬件中断来完成这一任务。    由于PLC的扫描工作方式,普通定时器的定时误差很大,定时时间到了也不能马上去处理要作的事情。可以用定时中断来实现高精度定时,在定时时间到时CPU自动调用定时中断程序。    在出现一个中断事件时,当前正在执行的程序在当前指令执行完后被停止执行(被中断),操作系统将会调用一个用户编写的分配给该事件的中断程序(S7-300/400称为组织块)。中断程序被执行完后,被暂停执行的程序将从被中断的地方开始继续执行。这一过程不受PLC扫描工作方式的影响,因此使PLC能迅速响应中断事件。换句话说,中断程序不是在每次扫描循环中处理,而是在需要时才被及时地处理。    2.中断的优先级    中断事件有不同的优先级,高优先级的中断程序可以中断低优先级的中断程序。    如果在执行中断程序时,又检测到一个中断请求,CPU将比较两个中断源的中断优先级。如果优先级相同,按照产生中断请求的先后次序进行处理。如果后者的优先级比正在执行的中断源的优先级高,将中止当前正在处理的中断程序,改为调用较高优先级的中断源的中断程序,这种处理方式称为中断程序的嵌套调用。    3.中断的控制    不是所有的用户都需要PLC的中断功能,用户一般也不需要处理所有的中断事件,因此允许用户用指令来控制是否需要中断和需要哪些中断。    S7-200的中断允许指令EI允许处理中断事件。至于需要处理哪些中断事件,需要单独设置。禁止中断指令DI禁止处理所有的中断事件。    S7-200进入RUN模式时自动禁止中断,在RUN模式执行中断允许指令后,各中断事件发生时是否会执行中断程序,取决于是否执行了该中断事件的中断连接指令ATCH。    中断分离指令DTCH用来断开某个中断事件与中断程序之间的联系,从而禁止单个中断事件。    4.编写中断程序应注意的问题    因为不能预知系统何时调用中断程序,为了避免在中断程序中改写其他程序使用的存储器,在中断程序中应尽量使用局部变量。    应优化中断程序,使中断程序尽量短小,以减少中断程序的执行时间,减少对其他处理的延迟,否则可能引起主程序控制的设备操作异常。设计中断程序时应遵循“越短越好”的格言。为了减少中断程序的执行时间,可以在中断程序设置一个软件标志,在主程序中根据标志处理对于快速性要求不是很高、执行时间很长的任务。    5.中断程序为什么没有输入、输出变量?    中断程序不像子程序那样,被用户程序调用,而是在中断事件发生时,由操作系统调用,因此S7系列PLC的中断程序不需要输入参数和输出参数,它的局部变量表中只有临时变量。S7-300/400的中断程序称为组织块,它有自动生成的20字节的临时局部变量,包含了与触发组织块的事件有关的信息,它们由操作系统提供。
级别: 家园常客
发帖数量: 136 个
工控威望: 663 点
下载积分: 138 分
在线时间: 160(小时)
注册时间: 最后登录:
图片: =600) window.open('http://www.ymmfa.com/attachment/Mon_149_60db2b.jpg');" onload="if(this.width>'600')this.width='600';if(this.height>'3000')this.height='3000';" >
???????
级别: 略有小成
发帖数量: 128 个
工控威望: 242 点
下载积分: 3739 分
在线时间: 165(小时)
注册时间: 最后登录:
你的故事不好听!手册上都有 但我还是要说一句谢了!
级别: 家园常客
发帖数量: 136 个
工控威望: 663 点
下载积分: 138 分
在线时间: 160(小时)
注册时间: 最后登录:
引用引用第3楼曾文庆3于 21:48发表的&&:你的故事不好听!手册上都有 但我还是要说一句谢了!赚点分
努力学习,做好工控
级别: 网络英雄
发帖数量: 1664 个
工控威望: 5915 点
下载积分: 18466 分
在线时间: 489(小时)
注册时间: 最后登录:
级别: 工控侠客
发帖数量: 1873 个
工控威望: 2578 点
下载积分: 98417 分
在线时间: 2033(小时)
注册时间: 最后登录:
谢谢老师分享讲的非常好
最近一天希望
书山有路勤为径,学海无涯苦作舟!
级别: 论坛先锋
发帖数量: 201 个
工控威望: 1200 点
下载积分: 7129 分
在线时间: 399(小时)
注册时间: 最后登录:
级别: 工控侠客
发帖数量: 86 个
工控威望: 2290 点
下载积分: 11715 分
在线时间: 198(小时)
注册时间: 最后登录:
踏实是幸福的基础
级别: 论坛先锋
发帖数量: 67 个
工控威望: 1659 点
下载积分: 6579 分
在线时间: 57(小时)
注册时间: 最后登录:
本着,无私奉献,共同进步的原则,论坛需要楼主这样好态度的人一切贵在坚持学习。楼主辛苦了
钱不是万能,没钱就万万不能!!!
级别: 论坛先锋
发帖数量: 681 个
工控威望: 1102 点
下载积分: 4827 分
在线时间: 2261(小时)
注册时间: 最后登录:
song2013007
级别: 正式会员
发帖数量: 7 个
工控威望: 86 点
下载积分: 185 分
在线时间: 3(小时)
注册时间: 最后登录:
谢谢坚持学习
1 Pages: 1/2& & &Go

我要回帖

更多关于 plc梯形图编程实例 的文章

 

随机推荐