注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

中国古代易经之精华四柱八字之研究和实践

偏印是人类潜藏的灵感和智慧,火克金初形成之水是智慧之源泉。

 
 
 

日志

 
 

西门子S7系列PLC的硬件结构和软件环境  

2009-11-03 15:01:27|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

第一节 PLC概念



1、PLC的基本概念
可编程控制器(Programmable Controller)是计算机家族中的一员,是为工业控制应用而设计制造的。早期的可编程控制器称作可编程逻辑控制器(Programmable Logic Controller),简称PLC,它主要用来代替继电器实现逻辑控制。随着技术的发展,这种装置的功能已经大大超过了逻辑控制的范围,因此,今天这种装置称作可编程控制器,简称PC。但是为了避免与个人计算机(Personal Computer)的简称混淆,所以将可编程控制器简称PLC 

2、PLC的基本结构 




PLC实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同,如图所示:
a. 中央处理单元(CPU)
中央处理单元(CPU)是PLC的控制中枢。它按照PLC系统程序赋予的功能接收并存储从编程器键入的用户程序和数据;检查电源、存储器、I/O以及警戒定时器的状态,并能诊断用户程序中的语法错误。当PLC投入运行时,首先它以扫描的方式接收现场各输入装置的状态和数据,并分别存入I/O映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后按指令的规定执行逻辑或算数运算的结果送入I/O映象区或数据寄存器内。等所有的用户程序执行完毕之后,最后将I/O映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环运行,直到停止运行。
为了进一步提高PLC的可*性,近年来对大型PLC还采用双CPU构成冗余系统,或采用三CPU的表决式系统。这样,即使某个CPU出现故障,整个系统仍能正常运行。



b、存储器
存放系统软件的存储器称为系统程序存储器。
存放应用软件的存储器称为用户程序存储器。



C、电源 
PLC的电源在整个系统中起着十分重要得作用。如果没有一个良好的、可*得电源系统是无法正常工作的,因此PLC的制造商对电源的设计和制造也十分重视。一般交流电压波动在+10%(+15%)范围内,可以不采取其它措施而将PLC直接连接到交流电网上去。



3、PLC的工作原理



一. 扫描技术

当PLC投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,PLC的CPU以一定的扫描速度重复执行上述三个阶段。


(一) 输入采样阶段

在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应得单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。

(二) 用户程序执行阶段

在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。

即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。

(三) 输出刷新阶段

当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。

比较下二个程序的异同:

程序1:


程序2:


这两段程序执行的结果完全一样,但在PLC中执行的过程却不一样。

※ 程序1只用一次扫描周期,就可完成对%M4的刷新;

※ 程序2要用四次扫描周期,才能完成对%M4的刷新。


这两个例子说明:同样的若干条梯形图,其排列次序不同,执行的结果也不同。另外,也可以看到:采用扫描用户程序的运行结果与继电器控制装置的硬逻辑并行运行的结果有所区别。当然,如果扫描周期所占用的时间对整个运行来说可以忽略,那么二者之间就没有什么区别了。

一般来说,PLC的扫描周期包括自诊断、通讯等,如下图所示,即一个扫描周期等于自诊断、通讯、输入采样、用户程序执行、输出刷新等所有时间的总和。


二. PLC的I/O响应时间

为了增强PLC的抗干扰能力,提高其可*性,PLC的每个开关量输入端都采用光电隔离等技术。

为了能实现继电器控制线路的硬逻辑并行控制,PLC采用了不同于一般微型计算机的运行方式(扫描技术)。

以上两个主要原因,使得PLC得I/O响应比一般微型计算机构成的工业控制系统满的多,其响应时间至少等于一个扫描周期,一般均大于一个扫描周期甚至更长。


所谓I/O响应时间指从PLC的某一输入信号变化开始到系统有关输出端信号的改变所需的时间。其最短的I/O响应时间与最长的I/O响应时间如图所示: 
第(n-1)个

扫描周期


最短I/O响应时间:



最长I/O响应时间
SIEMENS PLC在中国的产品,根据规模和性能的大小,主要有 S7-200 S7-300 和S7-400三种,下面就简单介绍一下该三种产品的一些特性。

S7-200

针对低性能要求的摸块化小控制系统,它最多可有7个模块的扩展能力,在模块中集成背板总线,它的网络联接有RS-485通讯接口和PROFIBUS两种,可通过编程器PG访问所有模块,带有电源、CPU和I/O的一体化单元设备。

其中的扩展模块(EM)有以下几种:数字量输入模块(DI)——24VDC 和 120/230VAC;数字量输出(DO)——24VDC 和 继电器;模拟量输入模块(AI)——电压、电流、电阻和热电偶;模拟量输出模块——电压和电流。   还有一个比较特殊的模块-通讯处理器(CP)——该块的功能是可以把S7-200作为主站连接到AS-接口(传感器和执行器接口),通过AS-接口的从站可以控制多达248个设备,这样就可以显著的扩展S7-200的输入和输出点数。

CPU设计   

有3种手动选择操作模式:STOP——停机模式,不执行程序;TERM——运行程序,可以通过编程器进行读/写访问;RUN——运行程序,通过编程器仅能进行读操作。

状态指示器(LED):SF——系统错误或(和)CPU内部错误;RUN——运行模式,绿灯;STOP——停机模式,黄灯;DP——分布式I/O(仅对CPU-215)。

存储器卡——用来在没电的情况下不需要电池就可以保存用户程序。PPI口用来连接编程设备、文本显示器或其他CPU。

S7-300

相比较S7-200,S7-300针对的是中小系统,他的模块可以扩展多达32个模块,背板总线也在模块内集成,它的网络连接已比较成熟和流行,有MPI(多点接口)、PROFIBUS和工业以太网,使通讯和编程变的简单和多选性,并可以借助于HWConfig工具可以进行组态和设置参数。

S7-300的模块稍微多一点,除了信号模块(SM)和200的EM模块同类型之外,它还有接口模块(IM)——用来进行多层组态,把总线从一层传到另一层;占位模块(DM)——为没有设置参数的信号模块保留一个插槽或为以后安装的接口模块保留一个插槽;功能模块(FM)——执行特殊功能,如计数、定位、闭环控制相当于对CPU功能的一个扩展或补充;通讯处理器(CP)——提供点对点连接、PROFIBUS和工业以太网。

CPU设计

模式选择器有:MRES=模块复位功能;STOP=停止模式,程序不执行;RUN=程序执行,编程器只读操作;RUN-P=程序执行,编程器可读写操作。

状态指示器:SF,BATF=电池故障;DC5V=内部5 V DC电压指示;FRCE=表示至少有一个输入或输出被强制;RUN=当CPU启动时闪烁,在运行模式下常亮;STOP=在停止模式下常亮,有存储器复位请求时慢速闪烁,正在执行复位时快速闪烁。

MPI接口用来连接到编程设备或其他设备,DP接口用来直接连接到分布式I/O。

S7-400

同300的区别主要是规模和性能上更强大,启动类型有冷启动(CRST)和热启动(WRST)之分,其他基本一样。哦,它还有一个外部的电池电源接口,当在线更换电池时可以向RAM提供后备电源。

编程设备

编程设备主要有PG720 PG740 PG760——可以理解成装有编程软件的手提电脑;也可以直接用安装有STEP7(SIEMENS的编程软件)的PC来完成。而实现通讯(要编程首先要和PLC的CPU通讯上)的要求主要在于接口:1.可以在PC上装CP5611卡——上面有MPI口,可用电缆直接连接。2.加个PC适配器,把MPI口转换成RS-232口后接到PC上。3.PLC加CP343卡,使它具有以太网口。

一个工程的建立
项目管理

每个自动化过程都是由许多较小的部分和子过程组成,所以工程建立的第一个任务是分解子任务。而每个子任务定义了自动化系统要完成的硬件和软件要求。其中硬件包括输入/输出数目和类型,对应模块序号和类型,所用机架号,CPU型号和容量,HMI(人机界面)系统,网络系统。软件方面主要是程序结构,自动化过程中的数据管理,组态数据、通讯数据及程序和项目文档。在SIEMENS的S7中,上述工作都在项目管理(SIMATIC 管理器),包括必须的硬件(+组态),网络(+组态),所有程序和自动化解决方案的数据管理。   F1在线帮助。

SIMATIC管理器管理STEP 7项目,编写 STEP 7用户程序的工具,有梯形图LAD,语句表STL,和功能块图FBD,编程语言。利用编程器或外部编程器可以把用户程序保存到EPROM卡上。

SIMATIC管理器是一个在线/离线编辑S7对象的图形化用户界面,这些对象包括项目、用户程序、快、硬件站和工具。此管理器的用户界面中工具条和WINDOWS差不多,就是多了几个PLC菜单——显示访问节点、存储器卡、下载、仿真模块。

注::由于目前主流系统是S7-300,所以下面的操作基本以S7-300为主,而实际过程由于配置的不同可能会有所不同。


STEP 7项目结构:项目中,数据以对象形式存储,按树型结构组织。

第一级:包含项目图表,每个项目代表和项目存储有关的一个数据结构。

第二级:站(如S7-300)用于存放硬件组态和模块参数等信息,站是组态硬件的起点。

S7程序文件夹是编写程序的起点,所有S7系列的软件均放在S7程序文件夹下,它包含程序块文件和源文件夹。

SIMATIC的网络图表(MPI、PROFIBUS、工业以太网)

第三级和其他级:和上级对象类型有关。


编程器可离线/在线查看项目——OFFLINE:编程器硬盘上的内容;ONLINE:通过网线从PLC读到的内容。


菜单选项: 在OPTIONS-CUSTOMIZE  设置语言、助记符、常用特性(存储位置、系统信息显示)。

创建一个项目:FILE  NEW  NEW PROJECT

插入 S7程序块:INSERT  PROGRAM S7 PROGRAM

插入 S7 块: INSERT S7 BLOCK 然后可选:1:组织块(OB)被操作系统调用,他们是操作系统和用户程序的接口。 2:功能FC和功能块FB是实际的用户程序利用他们可以 把复杂的程序分解成小的,易于调试的单元。3:数据块存储用户的数据。选择所需块类型后,会打开一个属性对话框,其中可输入块序号和要使用的编程语言,及其他设置。

补充一下:

1、内存总清——MRES=MEMORY RESET,经过MRES的模块相当于一个新模块,所以请务必谨慎。方法是:放在MRES足够时间,到STOP指示灯闪2下;弹回到STOP再迅速放到MRES,此时STOP快速闪6下——内存清空,将删除所有用户程序数据,硬件测试和初始化,如果此时装有EPROM卡,把卡内容COPY到内部RAM区。

2、SIEMENS的信号模块(SM)结构设计,接线非常方便,更换摸板无需接线(可拔下来)。固定方式有弹簧和螺钉连接两种。

3、对于软件的授权:在光盘安装后以后,一定要用软盘(权盘)授权,对于重装系统或软件的,一定要先”收回“权到软盘以后,才进行,以便重装以后再次授权,否则只能联系西门子了。

硬件组态和存储器概念



S7-300的存储器概念:

装载存储器是一个可编程模块,它包括建立在编程设备上的装载对象(逻辑块、数据块和其他信息),它可以是存储器卡或内部集成的RAM。存储器卡一般有两种,其中,当采用RAM存储器卡时,系统必须配备电池,当采用Flash EPROM存储器卡时,则断电不会丢失,但内部RAM中的数据仍需电池保持。工作存储器仅包含和运行时间使用的程序和数据,RAM工作存储器集成在CPU中,通过后备电池保持。系统存储器包括过程映象输入和输出表(PII,PIQ),位存储器,定时器,计数器和局部堆践。保持存储器是非挥发的RAM,即使没有安装后备电池也可用来保持某些数据,设置CPU参数时要指定保持的区域。

从上述概念可知,假如我们在线修改程序,被修改的块存放在工作存储器中,当把程序上载到编程器时,就从工作存储器传到编程器。由于断电会导致RAM数据的丢失,所以假如要安全保存被修改的程序,就必须保存在FEPROM或硬盘上。


硬件组态和参数分配




一些概念:组态就是指在硬件组态的站窗口中分配机架、块可分布式I/O,可从硬件目录中选择部件;参数分配就是建立可分配参数模块的特性,例如启动特性、保持区等;设定组态就是设定好的硬件组态和参数分配;实际组态指已存在的实际组态和参数分配,一般是在已装配的系统中,从PLC的CPU中读出来的。

组态过程:

启动硬件组态:新建一个项目(PROJECT),选择该项目,并插入(INSERT)一个站(STATION),在SIMATIC管理器中选择硬件站(HARDWARE)双击OPEN即可,我们同时可以打开硬件目录——VIEW-CATALOG,如果选择标准硬件目录库,它会提供所有的机架、模块和接口模块。

产生硬件组态:主要选择机架,指定模块如何在机架摆放。具体是:

1、  在硬件目录中打开一个SIMATIC300站的RACK-300(例如是300),双击或拖到左边窗口。这样在左边的窗口中就出现两个机架表:上面的部分显示一个简表,下面的部分显示带有定货号、MPI地址和I/O地址的详细信息。

2、  电源:双击或拖拉目录中的“PS-300”模块,放到表中的一号槽位上。

3、  CPU:从CPU-300的目录中选择你所配置的CPU,列入2号槽位。

4、  3号槽—一般接口模块保留(用于多层组态),在实际配置中,如果这个位置要保留以后安装接口模块,在安装时就必须插入一个占位模块。

5、  信号模块:从4号槽位开始最多可以插入八块信号模块(SM卡),包括通讯处理器(CP)和功能模块(FM)。

6、CP卡(通讯处理卡):如以太网卡CP-343,PROFIBUS CP-341、342等。当然我们也可以直接用CPU上的MPI口,省钱但速度相对慢点。

分配参数:按要求对各种模块参数进行设置。双击模块打开属性对话框(Properties)

CPU——属性包括通用属性General(主要提供模块的类型,位置和MPI地址—如果要把几个PLC通过MPI接口组成网络,每个CPU分配不同的MPI地址);启动项目START.UP(主要选择三种启动方式,HOT—从断电时的语句,也就是程序断电处开始,WARM—从头,也就是程序第一步开始,COLD—冷启动;监视时间包括从模块读准备的信息时间和传递参数到模块的时间;可保存数量Retentive Memory:用来指定当出现断电或从STOP到RUN切换时需要保持的存储器区域;循环/时钟存储器;保护功能(设定钥匙权限和各种级别及口令);诊断/时钟。




保存下载及上传:经过上述设置以后,我们就可以保存、编译、一致性检查后,把设定组态下载到PLC中。当然,对实际运行的PLC,我们也可以通过上传(Upload Station)把实际组态读到编程器。




硬件诊断及组态中可能出现的问题:在SIMATIC管理器中可以用PLC-Diagnose Hardware来获得PLC的诊断状态。在实际组态过程中最可能出现的问题是以下几点:

1、  在S7-300中,组态中有空位置,此时组态不能编译通过;

2、  不正确的CPU(例如:是CPU 315-2DP,不是CPU 314)此时组态不能下载;

3、  模拟量模块分配到不正确的槽位置,此时CPU会因为参数分配错误进入STOP模式;

4、模拟量模块不正确的测量范围,导致模拟量模块组态错误。
块的编辑

STEP 7编程语言:LAD 梯形图/FBD功能块图/STL语句表,更加丰富,更加灵活,但对初学者比较难以理解,当然某些语言不能用LAD表达。

块编辑的启动:选择所需编程语言,双击打开需编辑的块,如OB1或FC1等。当采用LAD或FBD编程语言时,可用工具条来插入简单的程序文件,当采用STL,则可用在线帮助得到有关语言的语法和功能——HELP-Help on STL。

编程器组成:声明表:属于块,为块声明变量和参数;代码区:包含程序本身;编程元件:可选打开或关闭,内容依赖于所选择的编程语言,双击插入或拖拉插入。

VIEW菜单:可切换到另一种语言,并可实现LAD/FBD/STL之间的转换,要知道,LAD/FBD转换成STL的,在语句表中可能不是最有效程序。而STL转换成其他则不一定行,转换不了的仍用语句表示,转换过程绝不会丢失程序。

其他菜单由于篇幅较大,请最好结合教材及软件自己熟悉。

在讨论调用块前先介绍一下OB1块——主循环块,绝对不能改名或删除,它是由操作系统循环调用,可以访问其他的S7程序块,它包括自身程序和其他块的调用。所以,当我们编辑好一个块以后,如FC1,为了让新块集成在CPU中的循环程序中,必须在OB1中调用。即在OB1中CALL F1。 子程序(新块FC 1)执行的条件有以下三个:已经下载到PLC中,必须在OB1调用,PLC处于运行状态。 下载到实际的PLC时,我们可以选择所有块或其中的一个或几个,再Download到PLC中。


程序的执行过程:当PLC得电或从STOP切换到RUN模式,CPU会执行一次全启动(使用OB100)在全启动期间,操作系统清除非保持位存储器、定时器和计数器,删除中断堆笺和块堆笺,复位所有保存的硬件中断,并启动扫描循环监视时间。

CPU的循环操作包括三个主要部分:CPU检查输入信号的状态并刷新过程影象输入表(PII..);执行用户程序,也就是OB1中的程序及一些事件(中断等);把过程输出影象输出表(PIQ)写到输出模块。上面所提到的PII/PIQ是CPU中特定的存储器,用来保存输入模块/输出模块的信号,在用户程序中检查时,可以保证在一个扫描周期内为同样的信号状态。

程序结构:上面曾经提到过,一个比较简单的程序,我们可以不用各种子程序块(如FC.FB),而是直接把整个程序直接写在一个块上(通常是OB1主块上),CPU逐条的处理指令,我们称这种叫线形编程;而对稍微有点复杂的程序,我们可以把它分成几个块,每块包含处理一部分任务的程序,在每一个块中可以进一步分解、成几个段,可以为相同类型的段生成段模块,组织块OB1包含按顺序调用其他块的指令,我们把这种方法叫分块编程;另外,对可重复使用的功能装入单个块中,OB1(或其他块)调用这些块并传递相关参数,这种方法叫结构化编程。用户块(程序块)包括程序代码和用户数据,在结构化程序中,一些块循环调用处理,一些块需要时才调用。程序块共有组织块(OB)、功能块(FB)、功能(FC)、系统功能块(SFB)和系统功能(FC)5种,其中系统块是在CPU操作系统中预先定义好的功能和功能块,这些块不占用用户程序空间。

在下节讨论位指令前先讨论一下SIEMENS的模块地址:在不带DP口的S7-300和不组态的S7-400采用固定槽位编址,使用带DP口的S7-300和S7-400,可以分配模块的起始地址。但要注意,由于CPU存储器复位后,参数和地址会丢失,这就意味着所有地址都回到和槽位有关的地址或是缺省地址。我们还是以S7-300为例,在S7-300中,机架上的插槽号简化了模块地址,模块的第一个地址由机架上的模块地址决定。一般槽1给电源,槽2是CPU,槽3为IM(接口模板)所用,4~11为I/O卡、CP卡和FM卡。他们的固定地址就是为每个槽位保留4个字节——就是说,槽4(第一块I/O卡),地址为0.0~3.7(共32位),槽5(第二块I/O卡)地址为4.0~7.7,假设第一卡是DI,那么他们的地址就是I0.0、I0.1、、、I3.7,若第二卡为DO卡,地址为Q4.0、Q4.1、、、、Q7.7,请注意,当使用16通道的DI/DO模块时,每个槽位就会失去两个字节(16位)。
基本逻辑指令 






与 &(FBD) A(STL) (AND指令)

或 >=1(FBD) O (STL) (OR指令)

异或 XOR(FBD) X(STL) (XOR指令)

注意:异或操作是指:当两个信号中仅有一个满足时,输出状态才是“1”,这个指令不能使用于多个地址的异或逻辑操作(N个中有一个1时才是1),所以三个及三个以上的异或指令,旧的RLO(逻辑操作结果)和另一个输入作异或运算。

赋值语句 =

置位 S 光是置位,一直保持到它被另一个指令复位为止。

复位 R 光是复位,一直保持到它被另一个指令置位为止。

触发器的置位复位:同时有置位输入和复位输入,如果两个输入端同时出现RLO=1,根据优先级。在LAD/FBD中,分别有置位优先和复位优先的不同符号,在STL中,最后编写的指令具有高优先权。

注意:如果用置位命令把输出置位,当CPU全启动时它被复位,但如果声明保持,则当CPU全启动时,它就一直保持置位状态。

连接器:M0.0(#),为中间赋值元件,它把当前RLO保存到指定地址,当它和其他元件串联时,连接器指令和触点一样插入。

注意连接器不能:

直接连接到电源母线

直接跟一个分支;

用在分支末尾。

但连接器可以用“NOT”元件对它进行取反操作。

影响RLO的指令:

NOT=取反;CLR=复位(仅用在STL中);SET=置位(仅用在STL中);SAVE=把RLO保存到状态寄存器中的“BR”;BR=用来重新检查保存的RLO。

主控继电器功能 MCR:是一个用来接通或断开电流的逻辑主开关。如果MCR条件不满足:0分配给输出线圈,置位线圈和复位线圈指令不改变当前值,MOVE指令把0传到目的地址。MCRA指令启动主控继电器功能/MCRD指令取消MCR功能,直到另一个MCRA指令起作用。

无条件转移(不依赖于RLO) JMP




在LAD/FBD中,在线圈符号上面输入作为表示的标号或符号,如NEW1,NEW2等,标号最多有4个字符,第一个字符必须使用字母或“_”。

跳转规则:可以向前或向后跳转,跳转指令和跳转目的必须在同一个块中(最大跳转长度为64K字节);在一个块中跳转目的只能出现一次;跳转指令可以用在FB、FC和OB中。

条件跳转:有两个:JC——当RLO=1时,JC才执行,当RLO=0时,不跳转,继续执行下面的程序,但置RLO=1。 JCN——当RLO=0时,JCN才执行,当RLO=1时,不跳转。

边沿检测:RLO-边沿检测和信号-边沿检测。

RLO-边沿检测:当逻辑操作结果变化时,产生RLO边沿。检测正边沿FP——RLO从“0”变化到“1”,“FP”检查指令产生一个“扫描周期”的信号“1”;检测负边沿FN,则RLO从“1”变化到“0”,“FN”检查指令产生一个“扫描周期”的信号“1”。上述两个结果保存在“FP(FN)”位存储器中或数据位中,如M 1.0…,同时,可以输出在其他线圈。

信号-边沿检测:同上面的RLO指令类似,当信号变化时,产生信号边沿,也有正/负边沿之分:POS/NEG。

上述各种指令,最好请结合实际软件,掌握其方法、特性和不同之处,其他复杂指令请参考各种高级编程手册。

数字指令 

在讨论数字指令前先了解一下各种数据格式,关于二进制、十进制及其他数的表示方法,在其他地方都有介绍,这里就不再重复。

一、数据格式(16位):数据类型INT是整数(16位),其中符号(位15)表示是正数或是负数(“0”=正数,“1”=负数),16位整数的数值范围是-32768~+32767。在二进制格式中,整数的负数形式用正数的二进制补码表示。(二进制补码利用取反加1得到) 负数的位格式,对零的位置加权求和,再加1,然后在前面放一个负号。

BCD码:十进制的每一位用四个二进制数表示,因为最大为9,所以需要四位二进制才能表示出来(十进制的9=1001二进制),要注意,从0~9的十进制数的BCD码表示与二进制数表示相同,但BCD码一般用作显示,并非二进制。上面的INT(整数)主要是用来运算。

如BCD码W#16#296,在CPU中表现为0000,0010,1001,0110(直接为+,2,9,6=+296);而整数+296则表示为0000,0001,0010,1000(即28+25+23=296),再例如整数-413表示为1111,1110,0110,0011(因为是负数,所以用补码,取反加1,所以上面的二进制数=-(28+27+24+23+22+1)=“-413”,而在BCD码该数(W#16#F413)则可以简单的表示为1111,0100,0001,0011。

二、数据格式(32位):DINT类型的数据——带符号位的32-位整数,定义为“双整数”或“长整数”,它的表示方法及范围是:L#-2147483648~L#+2147483647;还有一个是实数型REAL型(也叫浮点数),是1.175495*10-38~3402823*1038之间,实数的通用格式为(Sign)*(1.f)*(2e-127),其中Sign为符号位第31位(即最高位),低位的0~22位为f=底数位,23~30为e=指数。STEP 7中的实数是按照IEEE标准表示的。

数据的装入和传递:MOVE(LAD/FBD)或L和T(STL):如果输入EN有效,输入“IN”处的值拷贝到输出“OUT”。装载和传递指令的执行与RLO无关,数据通过累加器交换,装载指令把右边源地址的值写到累加器1(不够32位用0补齐),传递指令拷贝累加器中一些或所有内容到指定的目的地址。如先装载L +5 / L L#523312 / L B#16#EF (分别为装载一个整数+5/一个双整数523312/一个十六进制数EF)到第一累加器(ACCU1),然后再传输到目的地,如T MB5等。累加器是CPU中的辅助存储器,它们用于不同地址之间的数据交换、比较和数学运算操作。S7-300有两个32位的累加器,S7-400有四个32位的累加器。在装载过程中,ACCU 1中的值先移入ACCU 2,在新值写入前先清零,然后在把要装入的值写入ACCU 1,传递时则从ACCU 1中读出。装载和传递指令可以指定32位中的一个字节或是字及双字,如果仅传递一个字节,只使用右边的8位。在LAD/FBD中,我们可以使用MOVE的允许输入(EN)把装载和传递操作和RLO联系起来,在STL中,则总是执行装载和传递操作,而和RLO无关,但是,我们可以利用条件跳转指令来执行和RLO有关的装入和传递功能。

定时器:STEP 7中,CPU为定时器保留了一个特殊存储器,这个区专门为每个定时器地址保留一个16位字。定时器的位0~9包含用二进制表示的时间值,12、13位为时间基准——0表示10ms,1表示100ms,2=1秒,3=10秒,时间基准定义的是一个单位代表的时间间隔。时间值可以直接用常数来表示(此时时间基准自动由系统自动分配),例如S5T#100ms,S5T#2h2m2s20ms。

S5定时器格式:时间的指定可以如上述所说直接输入固定的时间常数,或由操作人员用拨轮按扭改变或和存储器字或数据字中的时间值有关的过程和配方。在使用中可以用L命令(读出)定时器BI输出端的地址(包含10位二进制数表示的时间值,不带时间基准),如 L T5;也可以用LC命令读出定时器BCD端的地址(3位BCD数表示的时间值和12、13位的时间基准)。具体介绍几种常用的定时器:下面只介绍功能,具体符号可以在元件表中找。

接通延时(SD)定时器:当定时器的“S”输入端的RLO从0变到1时,定时器启动。只要输入S=1,定时器起作用,当到达指定的TV值(预设值)时定时器启动(输出Q=1),同时该定位器还有一个复位端R端,当等于1时,就清除定时值并且复位Q输出。当前时间可以在BI输出端以二进制数读出,在BCD端以BCD码形式读出,当前时间值是TV的初始值减定时器启动以来的经过时间。

带保持接通延时定时器(SS):与上面SD定时器基本一致,唯一不同的就是具有保持功能,也就是说:一旦S输入端的RLO从0变到1,定时器便启动,即使定时过程中出现输入S端=0,定时器仍继续记时。但有一点,在保持过程中,如果S输入端再次从0变1,则定时器重新开始。

关断延时定时器(SF):从某些方面说,和上面提到的SD接通延时定时器状态正好相反。当定时器的S输入端的RLO从“1”变到“0”时,定时器启动,输出信号Q=0,其他功能和输出与SD一样。个人理解,是否SD接通延时定时器,较多的用于正逻辑,而SF更多的用于事故安全型(有时也叫反逻辑,就是在正常的工况中,输入输出都为1或是带电情况)中。

脉冲(SP):这个比较好理解,当“S”输入端从0变到1时,启动定时器,输出Q=1(最多一个脉冲。输出Q复位的情况为:定时器时间到或启动信号从1变到0或复位输入R信号=1。

扩展脉冲(SE):当输入端的RLO从0变到1时,定时器启动,输出Q置1,即使当中S端输入变到0,输出Q仍保持1。当定时器正在运行,如果启动信号从0变到1,定时器被再次启动。它的复位情况是定时器时间到或复位R端有信号1。

位指令定时器:所有的定时器也可以用简单的位指令启动,这种方法和前面讨论的定时器功能的相似处在于:启动条件在S端,指定时间值,复位条件在R端输入,信号响应在Q端。不同的是(对LAD/FBD)不能检查当前时间值(没有BI/BCD输出)。

第二节

西门子PLC的几种编程语言 

    不同的商家的PLC有不同的编程语言,但就某个商家而言,PLC的编程语言也就那么几种。下面,以西门子PLC的编程语言为例,说明一下,各种编程语言的异同。 

  1、顺序功能图(SFC-Seauential Fuction Chart)

  这是位于其它编程语言之上的图形语言,用来编程顺序控制的程序(如:机械手控制程序)。编写时,工艺过程被划分为若干个顺序出现的步,每步中包括控制输出的动作,从一步到另一步的转换由转换条件来控制,特别适合于生产制造过程。

  西门子STEP7中的该编程语言是S7 Graph。

  2、梯形图(LAD-LAdder Diagram)

  这是使用使用最多的PLC编程语言。因与继电器电路很相似,具有直观易懂的特点,很容易被熟悉继电器控制的电气人员所掌握,特别适合于数字量逻辑控制。

  梯形图由触点、线圈和用方框表示的指令构成。触点代表逻辑输入条件,线圈 代表逻辑运算结果,常用来控制的指示灯,开关和内部的标志位等。指令框用来表示定时器、计数器或数学运算等附加指令。

  在程序中,最左边是主信号流,信号流总是从左向右流动的。

  不适合于编写大型控制程序。

  3、语句表(STL-STatement List)

  是一种类似于微机汇编语言的一种文本编程语言,由多条语句组成一个程序段。语言表适合于经验丰富的程序员使用,可以实现某些梯形图不能实现的功能。

  4、功能块图(FBD-Function Block Diagram)

  功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示,适合于有数字电路基础的编程人员使用。功能块图用类似于与门、或门的框图来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框用“导线”连在一起,信号自左向右。

  5、结构化文本(ST-Structured Text)

  结构化文本(ST)是为IEC61131-3标准创建的一种专用的高级编程语言。与梯形图相比,它实现复杂的数学运算,编写的程序非常简洁和紧凑。

  STEP7的S7 SCL结构化控制语言,编程结构和C语言和Pascal语言相似,特别适合于习惯于使用高级语言编程的人使用。


  评论这张
 
阅读(1501)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017