6ES7221-1BH22-0XA8型号参数
6ES7221-1BH22-0XA8型号参数
plc有两种基本的工作模式,即运行(RUN)模式与停止(STOP)模式。在运行模式,PLC通过反复执行反映控制要求的用户程序来实现控制功能。为了使PLC的输出及时地响应随时可能变化的输入信号,用户程序不是只执行一次,而是不断地重复执行,直至PLC停机或切换到STOP工作模式。
除了执行用户程序外,在每次循环过程中, PLC还要完成内部处理、通信处理等工作,一次循环可分为5个阶段(见图1-5)。PLC的这种周而复始的循环工作方式称为扫描工作方式。由于计算机执行指令的速度极高,从外部输入-输出关系来看,处理过程似乎是同时完成的。
在内部处理阶段,PLC检查CPU.模块内部的硬件是否正常,将监控定时器复位,以及完成一些其它内部工作。
在通信服务阶段,PLC与其它的带微处理器的智能装置通信,响应编程器键入的命令,更新编程器的显示内容。
当PLC处于停止(STOP)模式时,只执行以上的操作。PLC处于运行(RUN)模式时,还要完成另外三个阶段的操作。
在PLC的存储器中,设置了一片区域用来存放输入信号和输出信号的状态,它们分别称为输入映像寄存器和输出映像寄存器。PLC梯形图中的其他编程元件也有对应的映像存储区,它们统称为元件映像寄存器。
在输入处理阶段,PLC把所有外部输入电路的接通,断开状态读入输入映像寄存器。 外部输入电路接通时,对应的输入映像寄存器为l状态,梯形图中对应的输入继电器的常开触点接通,常闭触点断开。外部输入触点电路断开时,对应的输入映像寄存器为0状态,梯形图中对应的输入继电器的常开触点断开,常闭触点接通。
某一编程元件对应的映像寄存器为l状态时,称该编程元件为ON,映像寄存器为0状态时,称该编程元件为OFF。
在程序执行阶段,即使外部输入信号的状态发生了变化,输入映像寄存器的状态也不会随之而变,输入信号变化了的状态只能在下一个扫描周期的输入处理阶段被读入。
PLC的用户程序由若干条指令组成,指令在存储器中按步序号顺序排列。在没有跳转指令时,CPU从条指令开始,逐条顺序地执行用户程序,直到用户程序结束之处。在执行指令时,从输入映像寄存器或别的元件映像寄存器中将有关编程元件的0/1状态读来,并根据指令的要求执行相应的逻辑运算,运算的结果写入到对应的元件映像寄存器中,因此,各编程元件的映像寄存器(输入映像寄存器除外)的内容随着程序的执行而变化。
在输出处理阶段,CP/7将输出映像寄存器的0/1状态传送到输出锁存器。梯形图中某一输出继电器的线圈“通电”时,对应的输出映像寄存器为1状态。信号经输出模块隔离和功率放大后,继电器型输出模块中对应的硬件继电器的线圈通电,其常开触点闭合,使外部负载通电工作。
若梯形图中输出继电器的线圈“断电”,对应的输出映像寄存器为0状态,在输出处理阶段之后,继电器型输出模块中对应的硬件继电器的线圈断电,其常开触点断开,外部负载断电,停止工作。
在状态图的“新值(New Value)”栏,可以输入所需要的信号值进行状态的强制更新。为了运行的安全,建议信号强制在plc处于STOP状态时进行,为此,需要在主菜单“调试(Debug)”下选择“在STOP状态下强制输出(Write-Force Outputs in STOP)”选项。
在输入了新的强制值后,通过单击工具条中的状态强制(Force)按钮,可以对指定的信号进行强制操作;单击工具条中的状态强制解除( Unforced)按钮,可以解除指定的信号的强制操作;单击工具条中的所有信号强制解除( All unforced)按钮,可以解除所有信号的强制操作。
强制和取消强制工具条按钮选项仅在用于带有V、M、AI和AQ内存类型的字节、字和双字长度时才能使用。
可以选择主菜单命令“调试( Debug)”下的各种选项实现以下调试功能:
“单次读取( Single Read)”:获得“瞬态图”,即只对全部状态进行一次更新,而不从PLC连续获取状态更新信息。
“全部写入( Writ All)”:可以在“新值”全部改动完成后,使用“全部写入”,一次性将所改动的值全部传送至PLC。因此,可以通过本操作,通过向程序写入一组信号,从而模拟一组控制条件或实现一组控制动作。
“强制( Force)”:同工具条中的状态强制(Force)按钮,可将信号强制为某一数值。
“读取全部强制( Read All Force)”:将全部信号强制为设定数值。
“全部取消强制( Unforced All)”:同工具条中的所有信号强制解除(All unforced)按钮,可以解除所有信号的强制操作。
FB--功能块,带背景数据块
FC--功能,相当于函数
他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块
举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。
FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的大区别是,FB与DB配合使用,DB中保存着FB使用 的数据,即使FB退出后也会一直保留。FC就没有一个的数据块来存放数据,只在运行期间会被分配一个临时的数据区。在实际编程中,是使用FB还是 FC,要看实际的需要决定。FB的好处楼上以讲得很好了。
FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。
FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。
S7-300plc中的FB和FC的分别?FB带有自己的背景DB而FC没有自己的背景DB, 用FC 和FB 有什么分别呢,他们都能实现控制功能,到底该用FB还是该用FC,什么时候用FB什么时候用FC?
FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。 每次调用FC的I/O区域必须要自己每次手动输入,而FB就不要,省去不少麻烦,如果在上位机控制直接输入DB控制地址就可以。
举个例子来说,有50台电机需要控制,这些电机除了参数不一样,控制流程上是一样的,每个
电机需要不同的参数去运行,运行中的过程参数要参与到下一次的控制过程中。
这个要求,用FC做的话,你需要针对不同的电机分配好DB块,来逐一的确认参数地址,不能混
淆,保存和调用不能出错,可以想象会有多麻烦。如果用FB来做呢?写好控制过程和定义的参
数的调用就可以了。针对电机重复调用同一个FB,每次调用指定一个独立的DB作为背景数据块
,完全不必理会背景DB中的数据是怎么存储的。如果功能需要修改,只要修改该FB就行了。
还有其他的例子,比如PID、比如**累计等等。
fc就相当于流水线,加工完就过去了!没有任何纪录。fb+db不但可以加工,还能记录数据的。
一般有多个设备的时候,我们编写一个fb然后多次调用,自动生成相应的db,这样简化了我们
的工作。
FB的变量声明表中有静态变量,并可以进行多级的参数传递,因此在调用FB时需生成背景数据块,
而FC则没有这些.FB可以替代FC,反之则不行.
多级的参数传递即所谓的MULTI INSTANCE,你可以把FB,DB做为另外一个FB中的函数来调用,
如在FB2中可以使用FB1中的参数,而终只生成一个背景数据块。
Zane:
FB其实不会占用过多的资源,因为一个程序总是有这些变量的,无论是全局的还是局部变量。
我现在,大量使用的是FB,FC只用来编一些逻辑,及简单的子程序,或仅仅几个CALL指令调用
FB。使用FB及局部变量,更有利于程序的模块化,增加程序的可移植性,就象西门子公司提供的FB
块.
其实FB和FC根本的区别是:FB支持静态变量,而FC只支持临时变量。
静态变量:是调用FB返回时,仍然要为FB保留此变量区,因此不会改变这一区域的数据值。临
时变量却没有这样的特性。
所以在FC中如果在对临时数据变量处写入确定的数据前,就去读时就可能产生不可预见的结果
,而对于静态变量却不会,因为它会保留你上次写入的结果。
万泉河:
咱们编制的控制程序,FB极少用到。所说的用FB来替代FC实用的情况,更是少见,有谁曾经把
FC全部用光啦?恐怕系统都不能负担了。
提供的标准库中,FB倒是不少的。
如果你要编制的函数没有用到静态变量,恐怕没有必要使用FB吧?我看语言中,虽然静态
变量使用很容易,但实际用也很少啊。
侠客:我和zane的观点一样,我工作中也是把相同功能的工作编制成FB,然后在FC里调用,程
序修改起来方便,举个例子:如果你有10台电机,一般我们都要给他编制启动,停止逻辑,报
警,复位逻辑。如果我编一个FB把这些逻辑都做好了,为每一个电机分配一个背景数据块的话
,我在FC调用这些电机时,我只要把这些电机对应的I/O点添到FB的管脚上就可以了,完全不再
用考虑他里面的逻辑了,如果你全是用FC编这些逻辑的话,1、你要写10遍,2、如果你用粘贴
和复制的话,有可能有的I/O点忘记修改或其他一些错误,3、程序的结构性不强,维护起来浪费
时间。
所以,FB和FC结合起来用是方便的。
建议大家试试FB,当你理解了FB后,你会感到惊喜的
Zane:关于FB,FC的使用,我也是在具体的应用中一步一步地体会过来的,不过这仅是我个人
的看法与体会,并没有说一定要这样用,各位可以做不同的尝试。但有一点是肯定的,就是在
动手写程序之前,事先对整个项目要有一个很好的规划。
看老外的程序通常都是在FC里直接编程,而国内的多是在FB里编程然后再在FC里调用。这两种
方法各有什么优缺点呢?
用FC能实现的任务,就没必要用FB。
FC FB 本质上一样
调用FB相当于在FC里opn di ,并使用ar2来索引变量
FB的优点是数据块里的变量可按名字使用,仅仅是显示而已,执行效率和fc一样
补充:
实际上FC更加灵活,在fc里可以多次调用opn di 访问多个背景块,ar2也可以做多种用途
而fb里的ar2原则上是不能使用了,调用fb还要指定数据块,麻烦
补充2:
FB 实际上是编程环境玩的一个魔法而已
PLC的程序指令上实际是没有FB和FC的区别的
调用FB或者FC终都是转化为UC 或CC的调用指令
要观察编程环境的这个魔法,只需写一个带参子程序(FB 或 FC),并在另一个块里调用,全部
下载后,再更改子程序的参数接口,下载该子程序
(此时调用块的调用指令已无效),然后上载调用块
1,一般用FB编写一些常用的控制程序,例如阀泵的控制等等,在接口得stat变量里面可以定义一些阀门得开度预设值(不通过输入,直接在hmi上面可以控制的),并且可以把现场的故障信号写入stat变量中,直接送到HMI上面。
2,而FC一般就是调用这些FB,给一些输入输出即可。
3,FC的所有输入输出必须赋值,而FB只要给出背景数据块即可。
4,当然如果说我不需要什么过程的数值,那就FC好了,简单。
如果大家对计算机编程有点了解的话,我觉得可以这样理解:
1、FC象程序里的“函数”,直接调用,针对过程编程;
2、FB则象是“类”,具有接口、属性以及方法,用于对“控制对象”编程,而FB的DB就象是一个具体的“控制对象”的实例。
一:程序二:
以下为西门子单按扭实现启停的程序;其中I0.1为启停按扭,Q0.1为控制输出;
程序一:
程序二:
plc的程序分为主程序、子程序和中断程序,本文详细的介绍了西门子S7-200系列PLC中断程序的编程方法。具体的讲解不同种类的中断程序的实现方法。熟练的使用中断程序是PLC编程的一项必要技能。相信本文会对广大PLC编程人员有所帮助。S7-200的中断包括定时中断,IO中断和通讯中断。其中IO中断可以通过外部的IO点来触发中断子程序。可以设置成几种模式,例如上升沿触发,下降沿触发等。定时中断是固定时间间隔便触发一次中断程序。通讯中断可以在数据接收或发送完成时或报文接收完成时触发中断程序。
定时中断功能
定时中断是测量周期的一个很重要的工具。在使用编码器测速度时也要用到定时中断,即用周期和脉冲数的比例关系来计算速度。定时中断的中断号为10(定时中断0),11(定时中断1),21(定时器T32中断),22(定时器T96中断)。
通讯中断的实现
S7-200的自由口通讯需要设置相应的中断来判断
控制是指使系统的状态与行为产生所希望的变化而加给系统的作用。如果表达这个作用及系统状态,用的是逻辑量,则这个控制即为逻辑量控制。它是常用控制,对它进行控制是plc的优势,也是PLC基本的应用。
逻辑量控制的目的是,根据逻辑量的当前的输入组合与历史的输入顺序,使PLC产生相应的逻辑量输出,以使系统能按一定顺序工作,所以,有时也称其为顺序控制。
PLC对系统的顺序控制有手动,半自动或自动。而采用的控制原则有分散、集中与混合三种。PLC的逻辑问题有位逻辑和字逻辑,这些问题又各有组合逻辑与时序逻辑两个类型。
另外,如果把PLC梯形图理解为电路,若按输入的确定性分,则有确定电路与随机电路两种。确定电路的工作顺序是确定的。而随机电路的工作顺序是有分支的,根据不同的输入,沿着不同的分支工作
有的初学者在理论上花了很多功夫,结果半年下来还是没有把plc搞懂,其实他们只是缺少了一些PLC的实践经验,只要再进行一些实际的梯形图编写、程序下载、调试等操作,增加对PLC的感性认识,很快就可以掌握PLC这项技术了。开始阶段可以先学习一种品牌的PLC,因为所有的PLC原理都是差不多的,掌握了一种PLC其它的只要翻阅一下手册也就能上手使用了。
初学时可以编一些简单的梯形图,如触点的与、或、输出等,在PLC的机器里运行一下。成功了就会增加你学习的兴趣、和信心。然后再把PLC的主要功能逐个运用一次,比如高速计数器,你可以用PLC本身的脉冲输出端接到高速计数器的输入端,下载编好的梯形图,打开变量观察窗口,运行程序,观察计数的值是否正确。经过了这样的实践,你基本上知道PLC到底能做哪些事情了,在实际的工控应用中就能做到胸有成竹了。
自学PLC方法如下:
a.利用教学视频,有条件的好跟着教学视频系统科学地学习,涵盖三大主流plc学习视频及试看,有兴趣的初学者可以在这里将入门知识打扎实。
b.关于实践0元租机是个不错的选择,PLC技术是一门实践性非常强的技术,如果你想学好,那么你就必须去实践它。编程就像是一位习武之人,如果只是整天坐在家中看拳谱,不出门练武的话,那么就是一本再厉害的武林密集,再长的时间他的功力也不会**。学习PLC也是同样的道理,光看书是没有用的,一本PLC书您就是看了十遍以后您还是不会用,学过编程(不管什么语言)的都知道。
在学习PLC书本知识的过程中,肯定会对许多指令不是很了解,如果您没有一一解决的话,那么这将是您学习PLC的大障碍。因此进行实际应用,逐一攻破,这样,你的PLC知识不但会学得牢固,而且在学习的过程中你掌握了实际使用。
c.设计编程,在学习PLC有了一定的基础之后,可以自己独立编写一段自己设计的程式,然后传送到PLC中去运行程式。再经过不断的修改,调试,后运行成功,这样你的兴趣会大增,达到满意的效果。
d.资料下载, 可以下载到关于PLC、变频器、西门子、欧姆龙、触摸屏资、三菱等工控资料和工控软件