STEP7-快速入门.doc_第1页
STEP7-快速入门.doc_第2页
STEP7-快速入门.doc_第3页
STEP7-快速入门.doc_第4页
STEP7-快速入门.doc_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STEP7 V5.3快速入门 合肥锐锋自控工程有限公司2007.3一 硬件组态首先打开STEP7 V5.3软件(Simatic Manager)进入STEP7的编程画面. 在名称(NAME)栏目内填上要建的项目名称,按OK即可。此时打开的是名为CHEN的空项目,里面仅有一个MPI(1)的图标,在它下方空白处按鼠标右键,在弹出的窗体上点击“Insert New Object”,选择SIMATIC 400 Station,首先建立S7400站。系统自动在项目“CHEN”下面生成“SIMATIC 400(1)”图标,它表示S7400站已建立,但此时的S7400站里是空的,软件和硬件的组态都没有。双击Simatic 400(1)图标,打开400站的组态,里面只有硬件组态(Hardware)图标,双击它进入硬件组态画面,这是S730/400 PLC编程的基础,所有的硬件信息、通讯方式、通讯地址、外部的输入/输出地址都要在此定义,必须按照硬件组态的地址编写用户软件。 SIEMENS S7300/400 PLC的硬件是模块化的,系统就是由这些模块以搭积木的方式组成,硬件组态的任务就是用软件的方式模拟这些模块组成的过程。右边的栏目所列的是SIEMENS S7400/300系列PLC的硬件配置库,组态时要从这些库中找到与实际应用模块型号完全一致的模块按照SIEMENS的硬件组态标准进行“安装”,当然是指软件上的安装。首先是安装底板。所有的PLC模块都是安装在底板上的,S7400的底板功能有:A、 固定硬件模块B、 模块之间的通讯连接(内部有通讯线路),这一点不同于S7300,S7300的底板仅仅是个支架。 在“RACK-400”中找到“UR1”,这是我们实际用到的底板型号,如果不能确定众多同类型号中哪种才是我们要找的,可以依次用鼠标单击,在右下角会出现被点中模块的详细型号( “6ES7 400-1TA01-0AA0”),直到找到完全相符的模块(实际用到的模块型号可以在控制柜的PLC模块面板上找到)。找到后,双击“UR1”,可以看到图中打圈的底板示意图,图中左侧的数字表示底板插槽号(SLOT),“1”表示最左侧的插槽,依次类推,共18个插槽。第一个插槽是固定用来插电源模块的,点击底板上的1号插槽,然后按上面的方法,在PS-400下找到型号为“6ES7 407-0KA01-0AA0”的电源模块,双击即可安装,如图所示,插槽上显示出电源模块的基本型号PS 407 10A ,在下方的模块列表上则显示了它的详细型号:6ES7 407-0KA01-0AA0;该模块体积较大,占据了1、2两个插槽,所以接下来的模块,只能插在3号及以后的插槽上。与上面的方法相同,在硬件组态库中的CPU-400文件夹中,找到6ES7 414-2XG04-0AB0型号,选择V4.1版本号,双击安装,出现一个对话框,这是有关通讯方式的选择,默认的方式是没有任何网络选项。因为本系统的控制层选择了PRIFIBUS-DP方式,所以必须要添加PROFIBUS方式,按“NEW“,弹出如下画面:按“OK”即可。进一步的信息可以选择Network Settings 打开如下画面默认的通讯速率是1.5Mbps,通讯方式为DP方式。需要说明的是,尽管PROFIBUS的通讯速率最高可达12Mbps,但在实际应用中大都选用1.5Mbps,因为通讯速率受很多条件制约,如:通讯距离、电磁干扰、通讯电缆的质量等,选择1.5Mbps是为了保证在上述不利条件下系统通讯的可靠性。其它的参数都不要改变。这样地址为2、名称为PROFIBUS(1)的PROFIBUS总线就建立了。关闭上面的窗口,就可看到在“DP”的右侧生成了形似轨道的(打圈的部分)PROFIBUS总线,所有的从站都将“挂”接到该总线上。对于本系统选择的CPU414-2DP而言,除了DP口以外,还有一个通讯口,见上图中的MPI/DP,这是一个两用通讯口,可以选择MPI协议,也可选择PROFIUBUS协议,在CPU的实物上,MPI/DP口在上面,DP口在下面,它们在使用上稍有不同,一般来说,上位计算机通过MPI/DP口与CPU相连接;ET200从站、触摸屏等现场设备(后面介绍)接到DP口上。在上图中,双击“MPI/DP”,可以进入其设置画面。 在画面上点击属性(Properties) 如果选择MPI方式,按默认配置就可以了,如果选择PROFIBUS方式,则按“NEW”键,建立PROFIBUS(2),加上前面建立的PROFIBUS(1),系统则组成了双PROFIBUS总线方式。但本系统是按MPI方式设定的,因为用MPI方式调试更为方便。在最初的状态下,CPU模块中没有硬件设置,不能识别PROFIBUS方式,用户的硬件组态信息和软件不能通过PROFIBUS方式下载到CPU模块中,如果计算机到PLC的距离较远(超过50M),通讯方式必须是PROFIBUS协议,只有先在硬件组态中将MPI/DP口定义为PRIFIBUS方式,然后将硬件组态下载到CPU400中,然后才可以实现计算机与PLC之间的PROFIBUS协议通讯。在4号插槽插入以太网模块(6GK7 443-1EX11-0XE0)。如果要修改模块内的参数,可直接双击模块的插槽,打开模块的设置画面。在画面上点击属性(Properties)打开参数设定画面,这里要确定IP地址 就按默认地址(192.168.0.1)确定就可以了,这个IP地址在上位机的程序中用到。到此,S7-400PLC的硬件组态就结束了。再切换到项目的主画面下就可以看到项目中增加了PROFIBUS和Ethernet两个子项。接下来就要组态S7300站。S7-300和S7-400的硬件组态方式和步骤完全一样,按SIEMENS的硬件组态原则,S7-300的电源模块可以不组态,CPU模块必须插在2#插槽,3号插槽用来安装通讯模块(本系统未用),输出/输入模块只能安装在4-11共8个插槽上。因为S7300的底板不同于S7-400,底板仅是安装导轨,并没有真正的插槽,所以对S7-300来说,所谓的插槽号仅仅表示各种模块的前后次序,如本系统的硬件中3#插槽(通讯模块用)是空的,但在控制柜内的PLC实物上,对应位置并没有空缺,因为组态的仅是它们的顺序。按照上面的方法,从硬件信息库中找到与实际型号一致的模块,将S7-300 PLC上所有的模块安装在对应的插槽上。下一步就是定义各输入/输出模块内部的地址或信号类型,对于开关量输入/输出模块而言,只需要定义其地址就可以了,信号类型(24V或220V、继电器或晶体管)是由模块型号决定的,组态中不能改变,本系统中,S7-300 PLC的第一块输入/输出模块是DI16XDC24V(6ES7 321-1BH02-0AA0)注: SIEMENS的常用模块的命名: 6ES7 ABC 6ES7是S7 PLC的统称,S7200、S7300、S7400的模块型号都以6ES7开始;“A” 表示PLC的系列,对于S7-200 PLC,A=2;S7-300和S7-400 “A”分别是3和4;“B” 表示是开关量还是模拟量,模拟量为3,开关量为2;“C” 表示是输入还是输出,1为输入,2为输出,5表示为输入/输出混合模块; 例:6ES7 321表示是S7300 PLC的开关量输入模块; 6ES7 235 表示S7200 PLC的模拟量输入/输出模块SIEMENS S7-300/S7-400 PLC的开关量输入为I、输出为Q,图中“DI16XDC24” 模块地址在“I Address”栏,为(打圈的)01,它表示该16点DI模块在PLC中占有输入字的“0”、“1”两个字节,模块上的16个开关量输入点,从上到下依次对应的逻辑地址(程序中将用到)分别是I0.0-I0.7、I1.0-I1.7。在模块列表上双击DI16XDC24V模块图标,打开其属性对话框,可以修改它的起始地址,也可以选择系统默认地址(选System Default),SIEMENS PLC的通用模块只有四大类:开关量输入(DI)、开关量输出(DO)、模拟量输入(AI)、模拟量输出(AO),硬件组态时,同类模块的逻辑地址不能有重复和交叉,否则在编译时会出现错误信息。同样,下面的DO32X24V地址设为47,它表示模块上32个开关量输出地址分别是Q4.0-Q4.7、Q5.0-Q5.7、Q6.0-Q6.7、Q7.7-Q7.7。对于下面的模拟量输入和输出模块则有所不同,首先是地址表示方法上的不同:如第6插槽上的8AIX12bit模块,它的地址是600-615,每个模拟输入点占有两个字节(16BIT),地址分别表示为PIW600、PIW602、PIW604、PIW606、PIW608、PIW610、PIW612、PIW614;对于8号插槽的4AO模块,四个模拟量输出通道地址分别为PQW600、PQW602、PQW604、PQW606。除了要定义逻辑地址以外,还要定义信号类型,SIEMENS S7300/S7-400 PLC的同一种模拟量输入/输出模块一般都可以选择多种信号类型,除了硬件上的跳线外(见硬件部分说明),还需要在硬件组态时做出相应的选择。在模块的属性列表里,可以选择多种信号,如电压(E)、4线制电流(4-wire transducer)、热电阻(Resistor)等,选择时要注意两点:A、 8AI模块上可检测8个模拟量输入信号,但定义的信号类型只有四组,分别对应与通道的0-1、2-3、4-5、6-7,这样在实际使用时,同组内的两个模拟量输入信号类型必须完全一样,不然就会出现检测错误。B、 当改变任一组的信号类型时,选择框下方的类别标志,如“D”会发生相应的改变,这个字母“D”与模块上的硬件跳线直接相关,(硬件跳线块的箭头必须对着“D”,见硬件说明)所有模块都定义好之后,S7-300 PLC的组态就结束了,但在本系统中,它与S7400之间还是互不相关的,所以要在它们之间建立PROFIBUS协议的主从连接。在模块列表中,单击CPU模块上的“DP”图标,打开其属性对话框: 因为在组态S7400时,已经建立了一条PROFIBUS总线(“PROFIBUS(1)”),所以这里只要选中就可以了,系统给S7-300自动分配的PROFIBUS地址为“3”,S7-400的地址为2,就按默认地址就可以了。在本系统中S7-300是S7-400的从站,它们之间是主从通讯,所以在属性窗口的Opreating Mode 选项中,选择从站方式(DP-SLAVE),其它都按默认值。 然后切换到S7400的硬件组态窗口,先单击PROFIBUS(1)总线,选中它,再双击CONFIGURED STATIONS 下的CPU31X图标,打开通讯数据组态画面,这时 S7-400系统已经自动识别出CPU315-2DP在PROFIBUS(1)上,地址为“3”,按连接(CONNECT)即可。 到这里,两个CPU之间的通讯已经建立起来了,在S7-400的硬件组态窗口上,可以看到3号站的PLC图标,下面要做的就是定义两个CPU之间数据交换的地址空间。 SIEMENS PROFIBUS通讯协议是个成熟的软件包,用户在使用中可以忽略数据通讯的具体格式和各种约定,那都是系统软件自动完成的。所谓的定义地址空间就是定义两个CPU发送数据的地址及接受数据的地址。在上图中,双击3号从站的图标,打开configration选项,如下图:现在的数据列表是空的,也就是说,两个CPU之间只是理论上可以通讯,但通讯的字节数是0,按“NEW”,弹出对话框:图中标注的1表示通讯方式为MS(Master-Slave的缩写),即主从方式,经过上述组态,实际上到这里已经确定了,不能再次选择了; 标注2表示的是输入还是输出。图中左侧为主站,即CPU414;右侧为从站,即CPU315,如果将主站设定为输入(INPUT),则从站自动设定为输出(OUTPUT),反之亦然。在数据交换中,从站可以发送数到主站,对从站来说,是输出,主站接受数据当然是输入;主站也可以发送数到从站,输入输出关系自然就颠倒过来了。 标注3表示交换数据的起始地址,为在程序调用时便于记忆,可以将主从站的地址设定为相同的数值。 标注4表示传送的字数,共16个字。按“OK”,可以看到如下画面: 这很类似硬件组态中的输入/输出模块的列表框,实际上,SIEMENS的PROFIBUS通讯数据就是用模块的概念来设置的,图中第一行就相当于硬件组态中给S7-300和S7-400 PLC的底板上各插一个16点的模拟量输入/输出“软”模块,只不过,对S7-300来说是输入模块,地址是PIW256、PIW258直到PIW286;对S7-400来说,是输出模块,地址是PQW256、PQW258直到PQW286,编址方式等同于模拟量输入/输出的硬件模块,而且在程序内部,这些地址在使用上也是完全一样的,所以这就要求这些“软”模块的地址不能与实际的模拟量模块的地址冲突。系统运行中,S7-400的PQW256开始的16个字的数据会自动送到S7-300的PIW256开始的16个字中,用户所要做的就是将S7-400中需要发送到S7-300的数据送到PQW256-PQW286中,就可以了,S7-300程序中要用到这些数据,可以到PIW256-PIW286中直接读取就可以了。当然在实际应用中,单这一块“软”模块可能不够,可以像添加硬件模块一样,添加新的“软”模块,按“NEW”即可。本系统插了8个16字的“软”模块,这就意味着S7-300可以将从PQW256开始的64个字送到S7-400的PIW256开始的64个字中;同样,S7-400也可以将从PQW256开始的64个字送到S7-300的PIW256开始的64个字中。现在S7-300和S7-400之间的通讯组态全部结束,接下来组态S7-400的I/O从站,首先做一简单介绍。 SIEMENS的现场I/O从站(PROFIBUS-DP协议)有很多种,从硬件组态库图中可以看到有ET200B、ET200C、ET200M等,它们分别适用于不同的控制对象和场合,但用得最为广泛的还是ET200M,从硬件组成上看,它和普通的S7-300 PLC系统很相似,ET200M系统上所有的硬件模块实际上就是S7-300系列PLC的模块,根本性的差别在于,S7-300 PLC是完整的控制系统,它拥有一块S7-300系列的CPU,可独立运行;而ET200M仅仅是个远程I/O从站,可以接到S7-400主站上,也可接到S7-300主站上,没有CPU模块,不能独立运行,可以简单地理解为,ET200M系统就是将PLC底板上的输入/输出模块,“搬”到远离CPU模块的现场,这些模块通过IM153 PROFIBUS通讯模块与CPU通讯,这种用法在工业控制上非常广泛,因为在实际使用中,各个控制对象之间,往往距离很远,如果都将信号接到PLC控制柜内,不仅需要大量的电缆,而且施工难度也很大,在这种情况下,可以使用现场总线方式(PROFIBUS),就是在检测、控制点相对集中的地方,就近安装ET200M从站,现场信号就近接到从站上,而从站到主站之间只需要一跟双芯的PROFIBUS-DP的通讯线就可以了,不仅节省了大量的电缆,而且也省去了架设电缆桥架、铺设电缆的工作,经济效益十分明显,这是现场总线得以迅速发展的一个重要原因。回到S7-400硬件组态的主画面,单击PRIFIBUS(1)选中它,再在“ET200M”下,单击IM153-1,插入一个从站。 第一个现场I/O站是控制柜中S7-300 PLC下方的ET200M站,站地址是6,在IM153的模块上的拨码开关设置为110,及二进制数的6,站地址的设定原则如下:A、 地址号为0-127之间;B、 同一条PROFIBUS总线上的各个站,不管是主站还是从站,地址不能重复,前面的组态中已将S7-400和S7-300的地址分别定义为2和3,所以这里就不能再使用了;C、 软件设定的地址(图中复选框中选中的地址)和硬件模块上的拨码开关对应的地址要一致。通讯速率还是选择1.5Mbps,每个站设定的通讯录速率必须相同。确定后在S7-400硬件组态的窗口上就可以看到6号从站的图标,但下方的 详细列表中是空的,没有任何模块,可以按S7-300 PLC的组态方式添加各种模块,同S7-300的规则一样,只有4-11共8个插槽可供安装各种输入/输出模块,这就意味着一个ET200M从站最多可以接8个I/O模块。 在6号站上有四个模块,前三种模块都是通用型的,组态方法与前面一样,所要注意的就是不要与已组态好的模块发生地址冲突。第7插槽的FM350是高速计数模块,用来接受高频变化的开关量信号,普通的DI模块只能接受40HZ左右的信号,无法接受旋转编码器这样的高速脉冲信号,本系统的两只旋转编码器是1024线的,即旋转一周,发出1024个脉冲,用来检测两个传送带的速度,减速机输出端的最快转速为50转/每分钟,约853个脉冲/S。在硬件组态库中的COUNTER MODULS 下,双击FM350-2 COUNTER MODULE,安装到第7插槽。FM350-2模块的使用相当复杂,有一本这里FM350-2手册专门介绍模块的使用,SIEMENS 公司提供了专门的软件模块用来组态该模块,它不是STEP7 V5.3的一部分,所以在硬件组态前需要安装该软件。切换到STEP7 V5.3主窗口,在FILE下按“OPEN”,在弹出的对话框中选择“Labaraies”,显示如下:第一行fn_cntli就是有关FM350-2的库文件,双击打开,将BLOCK下的FC2-FC5、UDT1全部选中,COPY到项目“CHEN”里的S7-400 PLC BLOCK下。在复制过来的软件模块中,FC2-FC5都是专为FM350-2使用的系统程序块,FC2为控制块,FC3为写数据程序块,FC4为读数据程序块,FC5为诊断程序块,这些程序块都打不开,系统只是提供了相应的调用入口,开发时直接调用就可以了。UDT1实际上提供了一种数据结构,有关FM350-2的所有信息和数据都存在一个数据块内(DB),而该数据块的结构就是UDT1。现在就建立这个数据块选择数据块为DB5,类型为UDT1,实际上就是定义了DB5的内部存储格式。 DB5将用来存放FM350模块的各种参数。 再回到S7-400的硬件组态画面,双击6号站的第7插槽,打开硬件组态信息窗。 如图选择0-7通道为单个计数,按OK关闭。双击编码器(ENCODE)图标,选择第一项脉冲加方向模式。双击Operating,打开测量方式对话框,选择频率测量(Frequency Measurement),因为高速计数模块FM350-2有多种工作方式,本系统是用来测量由编码器来的减速机角速度信号,即每秒产生了多少脉冲,所以选用频率测量。FM350-2共有8个通道,可接受8路高速脉冲信号输入,上述过程只是组态了其中一个通道(CHANNEL 0),其它通道可根据需要,一一组态。打开FM350-2的地址组态画面,如图填写I/O开始地址,注意该地址与已组态模块的地址不能冲突,在本系统的应用程序中实际上没有用到该地址,但它是FM350-2组态中不可缺少的一部分,必须要定义。按“OK”,弹出MODULE ADDRESS FOR DATABLOK,这实际就是要求选择将所有该模块的所有信息放在哪个数据块中。按SELECT DATA BLOCK,显示数据块列表框,选择DB5,所有组态和修该的数据都被送到DB5中。 打开DB5数据块,就会发现I/O地址528已送到数据块内(16进制数#210)。7#站(PLC柜内S7-400下方的ET200M从站)的组态方法与6#站完全相同,只是模块内的地址和信号类别不一样,参照实际程序中的配置定义就可以了,这里不再介绍。下面介绍模拟电梯从站的组态过程,模拟电梯实际上是由S7-200PLC控制的,在SIEMENS内部,S7-200系列PLC是于S7-300/400完全不同的PLC,它们的编程软件也不一样,分别是STEP7 V5.3和S7 MICRO/WIN32,所以在硬件上S7-400/300系列PLC不能直接与S7-200 PLC通讯,STEP7 V5.3中也没有有关S7-200 的硬件信息库,实际上它们之间的通讯是通过一个EM277 PROFIBUS模块实现的,EM277的硬件信息库(SIME089D.GSD,实际上就是驱动程序)需要另外安装。同样,EVIEW公司也为S7-300/400 PLC 编写了ECIEW 总线桥的驱动程序(BRIDGE.GSD),在组态EM277和EVIEW触摸屏的总线桥之前,要首先安装这两个驱动程序,将它们的硬件信息加入到STEP7 V5.3的硬件信息库中。 在硬件组态窗体上,打开OPTIONS下的INSTALL GSD FILE 找到上述两个文件的路径,点击安装即可。现在STEP7 V5.3可以将EM277和总线桥当作内部的模块进行组态。 单击PROFIBUS(1)图标,在右侧的硬件信息库内找到“EM277 PROFIBUS-DP”双击安装,在它的属性中,选择PROFIBUS地址为8,在PROFIBUS(1)总线图上就可以看到EM277的图标。选中EM277的1#插槽,在EM277下选择16WORD OUT/16WORD IN “软”模块。 将默认地址都改为400,表示在S7-200和S7-400之间开辟了一个32个字的数据交换区,S7-400 PLC可以将从PQW400开始的16个字传送到S7-200 PLC,也可以将S7-200 PLC 发送的16个字接收到PIW400开始的16个字内。但S7-200的发送数据区和接收数据区并没有确定,在硬件组态窗上右击EM277图标,打开属性页,给I/O Offset in the V-memory 赋值400,这个参数实际上就是规定了与S7-400PLC所要交换数据的缓冲区地址。 在S7-200中数据区不同于S7-300/400的数据块(DB)结构,它是存放在唯一的V存储区内,如VW0表示数据区第0个字,VB40表示数据区第40个字节等,这里将I/O Offset in the V-memory 定义为400,就表示数据交换区的首地址是VW400,根据EM277的规定,S7-200发送的数据排在前,接收的数据排在后,这一点不同于上面说的S7-400端的缓冲区,S7-400是将发送和接收的数据分开在PQW和PIW两个缓冲区中;S7-200中VW400到VW431 16个字是要接收的数据,而VW432到VW463 16个字是发送的数据。 按上述方式定义好后,两边交换数据的地址如下图:在程序中要做的就是将需要发送的数据送到发生缓冲区内,如果用到对方来的信息就到各自的接收缓冲区中读取就可以了。 最后一个从站就是触摸屏了。实际上从S7-400 PLC上看不到触摸屏的任何信息,对它来说,触摸屏是不存在的,它只是与总线桥存在数据交换,从这一点上说,总线桥的功能与S7-200上的EM277完全一样,都是“桥梁”的作用,因而在组态方式上也很相似。单击PROFIBUS(1)图标,在右侧的硬件信息库内找到“B_M01”,双击安装,在地址框内选择5,这是总线桥的站号(总线桥的地址设置开关必须也设为5),EVIEW的图标就会出现在PROFIBUS(1)上,单击EVIEW图标,在下面的1#插槽上插入12 BYTE I/O“软”模块,这时必选的模块,其他可根据需要传送的数据量一一选定,总线桥传送数据的数量是有限的,本系统共用了58个字,输入/输出的地址都是从100开始的,分别为PIW100-PIW205和PQW100-PQW205。在实际应用中,这些数据是不够的,特别是风机系统,大量的浮点型设定参数,占有很大的地址空间,所以在程序中,采用的是不同系统分时传送、地址空间重复使用的方法,在后面的软件说明中将详细介绍。在这里只是定义了S7-400与总线桥的数据交换地址,但没有涉及触摸屏与总线桥之间的通讯。所有的S7-300/400 PLC的组态都已完成了,系统的网络也在这个过程中形成了,点击硬件组态画面上的工具栏“Configure Network”就可以看到网络的全貌。 在这个网络中,S7-400是核心,是PROFIBUS总线中的主站,其它系统(包括S7-300PLC系统、ET200M现场站、EM277、总线桥)通过现场总线,与S7-400PLC进行主从通讯;CP443作为工业以太网的通讯模块,安装在S7-400底板上,相当于CPU414的协处理器,负责将S7-400PLC连接到以太网交换机上,实现与工控机和其它计算机的通讯,另外为体现通讯的多样化,系统保留了MPI通讯方式,在这种方式下,计算机可以通过PLC的MPI接口同时与S7-300和S7-400通讯,可以下载程序,运行监控软件(WINCC、MCGS、VB),这一点不同于工业以太网通讯,因为在S7-300PLC中没有配置以太网模块,所以对它的访问只能通过S7-400PLC来实现。 硬件组态结束后,要下载到PLC中。首先要设置计算机与PLC的通讯协议。在控制面板中打开PG/PC设置。 选择5611卡,通讯协议为MPI(如果距离较远就要改为PROFIBUS)。这时候就可以下载工程了。 在STEP7项目“CHEN“的主窗口上,单击SIMATIC 400(1),再按下载,所有的有关S7-400的软件和硬件都下载到了PLC中。用同样的方法把S7-300下载下去就可以了。二 软件设计1、符号表在硬件组态中,所有的外部输入/输出地址信号都已经定义好了,在软件设计时,必须严格地按照这些地址编程。 为方便软件的编写和调试,提高软件的可读性,一般地在开始写程序前要编写符号表,在程序中就可以详细地显示出每一点的地址、变量名、说明。在S7 PROGRAM下,双击SYMBOLS,打开符号表编辑器(如果要建S7-300PLC的符号表,就要在SIMATIC 300(1)路径下打开符号表)。在打开的符号表中,已经有了四项,就是FM350-2系统程序块的符号,这是在前面的组态过程中自动生成的。现在所能编写的只有外部输入/输出点的符号,其它如程序中将要用到的变量可在用到时,在符号表中添加,也可以在程序中直接定义。2 编程基础2.1 STEP7程序结构STEP7是模块化的程序结构,用户所编写的所有的程序块都放在项目的BLOCK内,从功能上分为以下几大类:A、OB(Organnization Block)STEP7中的组织块很多,各有不同的功能;不是所有的CPU都支持所有的组织块,具体使用情况要视实际需要和CPU的硬件功能而定,这里只介绍本系统中用到的组织块OB1 是循环扫描程序块 ,从CPU上电初试化开始,CPU自动扫描执行OB1中的程序,结束后立刻执行下一轮扫描,周而复始,它扫描的周期由CPU的处理速度和执行的指令数即程序长短有关。所以它一般被当作主程序使用,所有的其它子程序(FC、FB等)都由OB1调用。OB35 是时间中断程序块,OB35内的所有程序都在固定的时间周期里执行一次,它于CPU的性能无关,与程序的长短也没有关系,只要时间到,CPU会中断其它程序,运行OB35内的程序指令,这一功能经常被用在时间触发事件的处理上。OB35的执行周期是在硬件组态中定义的。在硬件组态中,点击CPU模块图标,打开CPU的硬件组态窗口:在OB35的执行周期栏目(EXECUTION)写入100,就表示OB35中程序段将每100MS执行一次。OB100 初始化程序段,在CPU上电后,立即执行OB100内的程序,但扫描执行一次后,将不再执行。OB100一般用来编写初始化程序,设定某些默认值,如:在生产过程中停电后,有些状态还保留在PLC内,像手/自动切换标志等,上电后,系统状态不明,应该无条件回到手动,在操作人员检查确定条件满足后,才允许切换到自动,在这种情况下,可以在OB100内将自动标志位清零,所有的输出信号也关闭,这当然在瞬间就完成了,然后OB100内的程序将不再运行,不至于影响系统的正常运行。OB82 模块容错程序块 触发诊断中断时,发生故障的模块自动在诊断中断OB的启动信息以及诊断缓冲区中输入4字节的诊断数据以及它们的启动地址。这可提供错误发生时间和错误所在模块的信息。通过使用OB82中的合适程序,可以进一步评估模块的诊断数据(在哪个通道上发生错误,发生何种错误)。通过SFC51 RDSYSST,可以读取模块诊断数据,并使用SFC52 WRUSRMSG在诊断缓冲区中输入绍信息。还可以将用户定义的诊断信息发送到监控设备。OB82可以不用编写任何程序。如果在CPU中没有OB82,那么当模块上诊断出故障时,CPU将停止运行;而如果有了OB82,则CPU仍将运行,但给出故障信息,在CPU模块上的SF红色指示灯会亮。并不是所有的模块都有诊断功能,本系统中用到的AI和AO模块都有,如果图中将打圈的选择框都点上,那么该模块就具备了诊断功能,如果在接在模块的第0和第1通道的模拟量信号超过量程或中断,那么就会触发模块的诊断错误,首先表现在该模块上的红色指示灯会亮,如果CPU中没有OB82,那么CPU就会停止工作。一般情况下,模块的诊断是不用的,除非模块上接的是非常重要的信号,比如,该信号如果输入回路有问题,不能正确地检测,影响了整个系统的安全,需要整个系统停下来,这种情况就需要使用诊断功能。OB85 也是个容错程序块,在下列情况下,CPU操作系统调用OB85: 存在中断OB 的启动事件,但由于还没有将OB 下载到CPU 而不能执行绍OB。 访问系统功能块的背景数据块时发生错误。 更新过程映像表时发生错误(模块不存在或处于故障状态)。如果CPU中没有OB85,上述错误发生时,CPU将停止运行,反之则继续运行,但给出诊断信息,OB85内可以不编写任何程序。OB86 底板诊断程序块如果没有编程OB86,那么当检测到机架故障时,CPU进入STOP模式;例如: 机架故障(IM丢失或出故障或连接电缆断裂) 机架上发生分布式电源故障 在SINEC L2DP总线系统的主站系统中,DP从站发生故障 如果下载了OB86,那么当上述故障出现后,CPU正常运行。OB122 I/O访问错误程序块当STEP 7指令访问在最后一次热重启动时没有分配模块的信号模块的输入或输出时,CPU操作系统调用OB122,例如: 直接I/O访问错误(模块故障或丢失) 访问CPU未知的I/O地址。该程序块在本系统中是必须的,如果没有OB122,那么S7-400PLC中的任何一个从站停电或移走,CPU都将停止,这就意味着,如果把模拟电梯系统不接入系统,那么整个系统都将无法运行;下载0B122后,尽管CPU上的SF故障灯亮了,但仅仅表示系统不完整,不影响其它几个控制对象的正常运行。B、FC(Function) 相当于子程序,在软件设计中,为了方便阅读、理解,一般把那些功能相对独立的控制算法放在不同的FC中,这也是块化设计的需要。 FC不能自动运行,要用OB或其它FC块调用,格式为CALL FC n(n为背景数据块,有时候不需要),FC可以是无参数调用,也可以是带参数调用,这要根据需要而定,如果某个FC块内含一个固定的算法,而且系统要在多处用到该算法,那就需要在FC定义一些参数,相当于“形参”,是FC的接口参数,这些参数只是CPU内存中开辟的虚拟变量,用完便释放,不属于CPU内的任何实际地址,但在调用这些参数时,就要给FC的这些接口参数赋值,这些值都存放在实际地址中,所以就是实参。带参数的FC大都用在数值计算上。下面举例说明,建一个子程序FC101,用来将一个百分数的设定值转换为PLC的AO输出(PLC的AO输出0-100%对应的数据是0-27648)。新建FC101,双击打开,在程序块上面的变量表中的IN下新建一个变量INPUT_REAL,类型为REAL型;用同样的方法在OUT中建一个变量OUT_INT,类型为INT型,这样FC101就有了两个接口参数,即形参,存盘结束在OB1或其它FC块中可以调用FC101。打开OB1,右击插入网络(INSERT NETWORK),在程序元素栏中找到FC101,选择FC101,填写实参地址。这段程序中两次调用了FC101,第一次是将MD0中存储的REAL型的输出百分数转换为PLC输出格式的INT型数据,送到MW10中,第二次是将MD4转换到MW12中,FC101方框图上有两个参数:INPUT_REAL和OUT_IN,都是在FC101程序块中定义过的,但在第一次调用时,是将MD0送到INPUT_REAL中,计算结果OUT_INT送到MW10中; 在第二次调用时,是将MD4送到INPUT_REAL中,计算结果OUT_INT送到MW12中。如果调用的次数较多,这样的方法是非常高效的,MW都是PLC中的实际地址,在PLC监控模式下,可以看到MW的值;但FC101中的形参,在每次调用时都被刷新,也没法监控,对用户来说,它是不存在的。除了用户编写的FC外,系统自带的软件包中也提供一些FC块,用来实现一些特殊功能,如上面提到的FC2-FC5,它们都是用来处理FM350-2的内部功能。系统程序块是打不开,用户不能监控和编辑。C、 DB(DATA BLOCK)数据块 S7-300/400PLC中的DB是指断电保持的数据块,相当于计算机硬盘上的数据,主要用来存放用户数据,支持位、字、双字及结构型的数据。一般说来,DB中的数据,要在编程过程中逐步添加,因为预先很难估计将会用到哪些数据、哪些中间计算结果,所以往往到编程序结束时,DB的数量和长短才能确定。一般把这类数据块叫“共享”数据块。 除了用户自定义的数据块以外,在调用某些功能块(FB)时会自动生成某些DB块,这些数据块因为服务于特殊功能块,所以它的结构是特定的,不能改变的,所以叫结构数据块。如用来存放FM350-2的DB5。D、 FB(FUNCTION BLOCK)功能块,从它实际应用来说,与FC非常相似。不同之处在于,FC的接口参数或内部的中间计算结果,都是虚拟的,没有实际地址,也不保存;而对于有些控制逻辑,要求把中间的计算结果保存下来(如后面提到的PID程序块),这就要求为之开辟一个数据块,保留这些数据,以便在下次再次调用时,还能找到上次调用时的一些信息,可以简单地理解为FB就是FC+DB。下面就用SIEMENS提供的例子来说明FB的使用方法。 如图打开SAMPLE PROJECTS中的项目。在该项目下打开FB1,这是个电机控制功能块,第一段程序是手动控制电机启动/停止,第二段程序是判断电机的转速是不是达到了设定的速度。 在该项目的OB1中第4和第5网络两次调用了FB1,分别控制两台电机(PE和DE),在这个例子中有关电机的状态是需要保存的,这些数据就保存在DB1内,如果打开DB1数据块,就会看到里面的数据都是在FB1程序顶部的参数定义段中定义过的。调用时,分别指定了DB1和DB2(符号分别是Petrol、Diesel),它们的结构完全一样,每次调用中两台电机的当前状态都分别保存在DB1、DB2中,不会丢失。综上所述,S7-300/400的所有程序结构归结起来只有4类:OB、FC、FB、DB,其中前三个是程序块,而DB只是保存数据的,没有任何控制功能。2.2地址类型 S7-300/400 PLC分为以下几大类:A、 开关量输入 位表示方法为Im.n,其中m是字节地址, n是位地址,如I4.0,I类地址支持字节操作、字操作、双字操作,字节操作表示方式为IBm,包含了Im.0到Im.7共8个开关量输入信号;字操作的表示方法为IWm,包含了IBm和IBm+1两个字节;双字的表示方式为Idm,包含了IWm和IWm+1两个字。B、 开关量输出 位表示方法为Qm.n,其中m是字节地址, n是位地址,如Q4.0,Q类地址支持字节操作、字操作、双字操作,字节操作表示方式为QBm,包含了Qm.0到Qm.7共8个开关量输入信号;字操作的表示方法为QWm,包含了QBm和QBm+1两个字节;双字的表示方式为QDm,包含了QWm和QWm+1两个字。C、 模拟量输入 表示方式为PIWn,如PIW256,是个16位的字。D、 模拟量输出 表示方式为PQWn,如PQW256,是个16位的字。 对于每个开关量或模拟量输入点地址,在硬件组态中实际上已经决定了,使用中必须对照硬件中实际的接线位置,确定其地址。E、 DB类地址,存在该地址空间的数据都是断电保持的,DB地址包含有DB块号、块内偏移地址等,如DB1.DBW0表示DB1中第0个字,包含DB1.DBB0和DB1.DBB1两个字节;DB块数据也支持双字,如DB1.DBD10,包含DB1内DBW10、DBW12;支持位操作,如DB1.DBX1.0表示DB1的第1个字节的第0位(最低位)。F、 M(MEMORY)类地址,该类地址是指CPU的内存地址,一般断电后就会回到0,M位表示方式为M字节.位的方式,如M220.3、M5.7等,支持字节操作、字操作、双字操作,如MB20、MW12、MD80等,一般把程序中用到的中间状态存放在M地址中,但在较大的系统中,可能M地址就会出现不够用的情况(如CPU315-2DP只提供MW0-MW254共256个字节的内存地址),所以要用DB块来代替,DB数据量要大的多,不同档次的PLC大小不同,但都不少于几十K。DB和M除了断电保持上的不同外,在使用上也略有不同,M可以直接使用,DB的数据要在使用前定义,如DB1.DBW50,如果PLC中没有DB1或DB1的长度不到52个字节都会出错。G、 T(TIMER)定时器地址,一般表示为TN(不同CPU支持的定时器数量不等),如T1、T16等。H、 C(COUNTER)计数器地址,表示为CN(不同CPU支持的计数器数量不等),如C1、C35等。2.3 STEP7基本指令 STEP7系统的软件很复杂,不同型号的CPU的寻址空间甚至指令也有差别,所以这里只介绍最为常用的、本系统使用过的指令,更详细的信息请参阅SIEMENS相关的资料和在线帮助系统。A、 位逻辑指令概述位逻辑指令使用1和0两个数字。这两个数字组成了名为二进制数字系统基础。将1和0两个数字称作二进制数字或位。在触点和线圈领域中,1表示激活或激励状态,0表示未激活或未激励状态。位逻辑指令对1和0信号状态加以解释,并按照布尔逻辑组合它们。这些组合会产生由1或0组成的结果,称作“逻辑运算结果”(RLO)。由位逻辑指令触发的逻辑运算可以执行各种功能。有可以执行下列功能的位逻辑指令: -| |- 常开触点(地址) -| / |- 常闭触点(地址) ( ) 输出线圈 -( S ) 置位线圈 -( R ) 复位线圈其它指令将对上升沿或下降沿过渡做出反应,执行下列功能: -( N )- 下降沿检测 -( P )- 上升沿检测 1)对于常开/常闭触点、线圈,PLC中沿用的是电气控制的继电器的概念,名称也与继电器的用法完全一样,实际上这三个元素在程序中,就形成了“软”继电器回路。在上图中,当M500.0为ON,而M500.1为OFF时,M500.2为ON,否则M500.2为OFF,以触点的通断来控制线圈M500.2的通断,而M500.2的线圈接通后,它的常开点闭合,Q0.0接通,输出到外部执行机构,这也是这是梯形图的表示方法,它模拟的是电气回路的原理图。在顺序控制中,这是最为常用的表达方式。 STEP7 软件基本编程方式有三种:LAD(梯形图)、STL(语句表)、FBD(功能图),另有很多其它的编程工具如高级语言C、PASCAL等,但不属于STEP7的基本软件包内,需要另外订购,一般不用,这里不作介绍。 在编程窗口中,可以在三种编程工具中来回切换。要注意的是,复杂的STL格式有时可能无法变成LAD格式,而LAD格式在任何情况下都可以变成STL和FBD格式。如果选择FBD,则上述程序自动变成以下格式:从上图可以看到,FBD模式是符号化的逻辑运算表达方式,如果说LAD是模拟电气控制回路的话,那么FBD模拟的是数字逻辑中的门电路。STL实际上就是单片机的编程语言汇编,当然它仅是S7-300/400系列PLC专用的指令系统,不具备通用性。从直观程度上说,它不如LAD和FBD,但它的功能要强大一些,编程效率高

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论