基于SiemensS7FIFO功能的得实现_第1页
基于SiemensS7FIFO功能的得实现_第2页
基于SiemensS7FIFO功能的得实现_第3页
基于SiemensS7FIFO功能的得实现_第4页
基于SiemensS7FIFO功能的得实现_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

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

文档简介

1、基于 Siemens S7-300/400 PLC的 FIFO 功能实现摘要:本文详细介绍了基于西门子S7-300/400 PLC 中的 FIFO 功能,并利用西门子S7系列 PLC 编程软件Simatic STEP7 开发实现多字节的FIFO 功能。Abstract: This paper introduces FIFO function based Siemens S7-300/400 PL, Cand achieves several byte FIFO function by making use of Siemens PLC Programming software Simatic

2、STEP7 development.关键词西门子 S7-300/400 PLC ; FIFO ; Simatic STEP7Keywords: Siemens S7-300/400 PLC ; FIFO ; Simatic STEP7主要内容:1、前言,提出为什么要介绍Siemens PLC中的FIFO 功能2、首先介绍Siemens 公司提供的专用功能块,FC84与 FC85,并分别举例3、说明在设备间数据通讯,多余1 个字节的数据需要同时进行FIFO Buffer,然后在下一工序中弹出来。介绍多字节FIFO 功能的实现4、 Siemens PLC编程开发软件Simatic STEP7的介绍

3、, 编程开发同时20字节 FIFO 的程序,相关数据块结构的说明,在程序中的调用FIFO 功能块。此外可以通过SimaticSimulation 进行模拟确认。5、总结。一、前言FIFO 功能即 First Input First Output先进先出,在很多情况下要用到此功能。以前此技术主要在计算机高级语言开发和数据结构设计中应用,但随着PLC 技术的日益突飞猛进,需要通过PLC 进行数据传送、缓存存储的事件越来越多,尤其是在数据缓存过程中,对FIFO 功能使用场合越来越多。西门子S7-300/400 PLC是德国西门子公司的中型、大型PLC,也是当今世界上工控行业的主流产品。在Siemen

4、s S7系列 PLC 开发软件 Simatic STEP7工具中,Siemens公司提供了两个专用功能FC84 ATT和 FC85 FIFO,通过这两个FC 功能完成对FIFO 功能数据的写入和导出,但是每次只能允许一字,也就两字节长的数据。为了实现每次多字节的FIFO 功能,需要用户自己开发相应的功能块 FB 来实现, 在本文中就介绍了实现每次20字节FIFO 功能 FB200功能块的代码,以及实际应用举例。Siemens FC84 ATT和 FC85 FIFO 功能的介绍1、 FC84 ATT1.1、 FC 84 ATT功能和构成介绍FC 84 ATT 是实现增加数据到FIFO 功能的数据

5、存储区中,通过每次执行此指令实现把一字的数据增加到FIFO 功能数据存储区中,FIFO 功能存储区中以字为单位,具体组成如下:存储区表中第一字为FIFO 存储区允许的最大数据存储个数,即最多可以存储多少个字的数据。存储区表中第二字为FIFO 存储区当前已经存储数据的个数,即已经存储了多少个字的数据。存储区表中从第三字开始为FIFO 存储区实际存储的数据。1.2、 FC 84 ATT 功能参数说明通过 Simatic STEP7进行程序开发时,调用FC84 ATT功能,出现如下图:从图2 1 中可以看到,FC84 ATT 共有四个参数,分别为EN、 DATA、 TABLE 和ENO,在四门子资料

6、中对其描述如下表2-1:参数声明数据类型内存区域功能描述EN输入布尔I 、 Q、 M 、 D、 L使能激活信号ENO输出布尔I 、 Q、 M 、 D、 L使能输出DATA输入WordI、 Q、M、 D、 L、 P静态存储区域要增加到FIFO的数据TABLE输入指针I 、 Q、 M 、 D、FIFO 区域指针表 2-11.3、 举例说明如果信号M100.0 的状态为1(即被激活), FC84 ATT功能被执行。在下面的例子中,增加的数据写到FIFO 表中的第五行,FIFO 的容量也就是FIFO 表中第二行由4变为5。如果 FC84 ATT被执行而且没有错误发生,那么使能输出ENO 置为 1,具体

7、如下:2、 FC85 FIFO2.1、 、 FC 85 FIFO 功能和构成介绍FC85 FIFO 是完成把FIFO 表中的数据按照先进先出原则,依次读出,以供使用,与 FC84 ATT配合使用,完成 FIFO 的写进与读出功能。通过每次执行此指令实现把一个字的数据从FIFO 功能数据存储区中读出,FIFO 功能存储区中以字为单位,具体组成如下:存储区表中第一字为FIFO 存储区允许的最大数据存储个数,即最多可以存储多少个字的数据。存储区表中第二字为FIFO 存储区当前已经存储数据的个数,即已经存储了多少个字的数据。存储区表中从第三字开始为FIFO 存储区实际存储的数据,也是FIFO 指针所指

8、向的数据。2.2、 FC 85 FIFO功能参数说明通过 Simatic STEP7进行程序开发时,调用FC85 FIFO功能,出现如下图:图 2-2从图2 1 中可以看到,FC85FIFO 共有四个参数,分别为EN、 ENO、 TABLE 和RET_VAL ,在西门子资料中对其描述如下表2-2:参数声明数据类型内存区域功能描述EN输入布尔I 、 Q、 M 、 D、 L使能激活信号ENO输出布尔I 、 Q、 M 、 D、 L使能输出TABLE输入指针I 、 Q、 M 、 D、FIFO 区域指针RET_VAL输出字I 、 Q、 M 、 D、 L、 P读出的数据表 2-22.3、 举例说明如果信号

9、M100.0 的状态为1(即被激活), FC85 FIFO 功能被执行。在下面的例子中,从 FIFO 存储区域中读出的数据写到RET_VAL 指定的地址中,FIFO 的容量也就是FIFO表中第二行由5变为4。 同时整个FIFO中存储的数据依次向上移动一行。如果 FC85FIFO 被执行而且没有错误发生,那么使能输出ENO 被置为1。三、多字节FIFO 功能的实现1 、 从前面 FC84 ATT 和 FC85 FIFO 的说明中可以看出,虽然Siemens提供了针对S7系列 PLC 的 FIFO 功能模块,但是其只能每次写入或读出一个字节的数据,而实际上在很多情况下,每次均是一组数据需要运用FI

10、FO 功能来暂时存储起来,那么在这种情形下就不能采用Siemens 提供的标准功能FC84 和 FC85 了,需要自己开发一可以实现多字节读出写入功能的FIFO 指令。2 、 Siemens Simatic STEP7介绍Siemens Simatic S7 300/400系列PLC 是 Siemens公司主推的中、大型产品,也是当今世界上的主流产品。针对这两个系列PLC 开发软件工件为Simatic STEP7,此软件有多个版本,目前已经发展到V5.4,采用次软件可以实现开发、监控等功能。3、多字节FIFO 的实现打开Simatic STEP7软件,新建一FB 块,如 FB200 DB200

11、,然后进入FB100进行编程,本文中以20 字节为例,介绍如何开发实现FIFO 功能具体见如下画面:163-1源代码如下:FUNCTION_BLOCK FB 100TITLE =/此功能块用了完成20 字节的 FIFO 功能AUTHOR : HylotusVERSION : 0.1KNOW_HOW_PROTECTVAR_INPUTSOURCE_DB : BLOCK_DB ;INPUT : BOOL ;OUTPUT : BOOL ;SIZE : INT ;END_VARVAR_OUTPUTDONE_IN : BOOL ;DONE_OUT : BOOL ;ERROR : BOOL ;FULL :

12、BOOL ;EMPTY : BOOL ;END_VARVAR_IN_OUTLOCATION : INT ;END_VARVARIN_START : BOOL ;IN_ACTIVE : BOOL ;OUT_START : BOOL ;OUT_ACTIVE : BOOL ;COUNT : INT ;RET_VAL1 : INT ;END_VARBEGINNETWORKTITLE =A #INPUT;AN #IN_ACTIVE;=#IN_START;A#INPUT;=#IN_ACTIVE;A#OUTPUT;AN #OUT_ACTIVE;=#OUT_START;A#OUTPUT;=#OUT_ACTIV

13、E;AN #INPUT;AN #OUTPUT;JC END1;NETWORKTITLE =OUTPUT FIFO/20 字节的数据从FIFO 存储区域中读出AN #OUTPUT;O #DONE_OUT;JC IN_1;AN #OUT_START;JC OP_1;OPN #SOURCE_DB;L DW#16#0;TDBD40;TDBD44;TDBD48;TDBD52;TDBD56;TDBD60;TDBD64;TDBD68;TDBD72;TDBD76;L#LOCATION;L0;<=I;S#EMPTY;JCEROR;OPN #SOURCE_DB;CALL "BLKMOV"

14、 (SRCBLK RET_VAL DSTBLK:= P#DBX 80.0 BYTE 40,:= #RET_VAL1,:= P#DBX 40.0 BYTE 40);L L <>I JCL TOP_1: L L <=I JC LL <=I JCL L +IITD L *D#RET_VAL1;0;EROR;0;#COUNT;#LOCATION;0;EROR;#LOCATION;#COUNT;OP_3;#COUNT;2;P#40.0;LAR1 ;OPN #SOURCE_DB;LDBD AR1,P#40.0;TDBD AR1,P#0.0;LDBD AR1,P#44.0;TDBD

15、AR1,P#4.0;LDBD AR1,P#48.0;TDBD AR1,P#8.0;LDBD AR1,P#52.0;TDBD AR1,P#12.0;LDBD AR1,P#56.0;TDBD AR1,P#16.0;LDBD AR1,P#60.0;TDBD AR1,P#20.0;LDBD AR1,P#64.0;TDBD AR1,P#24.0;L TL TL TLL +I TLL +IL<=I JC JUOP_2: L TT TT TT TT TTOP_3: SETSLL +I TJU NETWORKDBD AR1,P#68.0;DBD AR1,P#28.0;DBD AR1,P#72.0;DBD

16、 AR1,P#32.0;DBD AR1,P#76.0;DBD AR1,P#36.0;#COUNT;1;#COUNT;#SIZE;-1;#COUNT;OP_2;END2;W#16#0;DBD AR1,P#40.0;DBD AR1,P#44.0;DBD AR1,P#48.0;DBD AR1,P#52.0;DBD AR1,P#56.0;DBD AR1,P#60.0;DBD AR1,P#64.0;DBD AR1,P#68.0;DBD AR1,P#72.0;DBD AR1,P#76.0; ;#DONE_OUT;#LOCATION;-1;#LOCATION;END2;TITLE =INPUT FIFO/2

17、0 字节的数据写入FIFO 存储区表中IN_1: AN#IN_START;JCEND2;L#LOCATION;L#SIZE;>=I;S#FULL;JCEROR;L#LOCATION;L +I ITD L *D LAR1 OPN L TL TL TL TL TL TL TL TL TL TL L +I T SET S JUNETWORK TITLE =2;P#40.0;#SOURCE_DB;DBD 0;DBD AR1,P#0.0;DBD4;DBD AR1,P#4.0;DBD8;DBD AR1,P#8.0;DBD 12;DBD AR1,P#12.0;DBD 16;DBD AR1,P#16.0

18、;DBD 20;DBD AR1,P#20.0;DBD 24;DBD AR1,P#24.0;DBD 28;DBD AR1,P#28.0;DBD 32;DBD AR1,P#32.0;DBD 36;DBD AR1,P#36.0;#LOCATION;1;#LOCATION;#DONE_IN;END2;EROR: SET ;= #ERROR;JU END2;END1: CLR ;= #DONE_IN;= #DONE_OUT;= #ERROR;= #EMPTY;= #FULL;END2: NOP 0;END_FUNCTION_BLOCK4、在程序中的调用上面已经完成了FB100 FIFO 功能块的编程开发,下面就是直接调用,设置相关参数就可以使用此功能了,举例如下:新建 FIFO 数据源数据库DB200,结构为AddressNameTypeInitial valueComment0.0STRUCT+0.0IN_BufferSTRUCT+0.0Status_WordINT0+2.0D

温馨提示

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

评论

0/150

提交评论