一个FIFO的源程序

已锁定

心缘

  • 帖子

    95
  • 精华

    0
  • 被关注

    4

论坛等级:侠客

注册时间:2008-11-12

普通 普通 如何晋级?

一个FIFO的源程序

1995

4

2012-06-11 10:17:26

个位大侠帮忙看一下这段源程序,这是一个FIFO功能的程序,总是编译不过去,不知道到怎么修改,还说是西门经过测试
FUNCTION_BLOCK FB 100
TITLE =
//此功能块用了完成20字节的FIFO功能
AUTHOR : Hylotus
VERSION : 0.1
KNOW_HOW_PROTECT



VAR_INPUT
SOURCE_DB : BLOCK_DB ;
INPUT : BOOL ;
OUTPUT : BOOL ;
SIZE : INT ;
END_VAR
VAR_OUTPUT
DONE_IN : BOOL ;
DONE_OUT : BOOL ;
ERROR : BOOL ;
FULL : BOOL ;
EMPTY : BOOL ;
END_VAR
VAR_IN_OUT
LOCATION : INT ;
END_VAR
VAR
IN_START : BOOL ;
IN_ACTIVE : BOOL ;
OUT_START : BOOL ;
OUT_ACTIVE : BOOL ;
COUNT : INT ;
RET_VAL1 : INT ;
END_VAR
BEGIN
NETWORK
TITLE =

A #INPUT;
AN #IN_ACTIVE;
= #IN_START;
A #INPUT;
= #IN_ACTIVE;
A #OUTPUT;
AN #OUT_ACTIVE;
= #OUT_START;
A #OUTPUT;
= #OUT_ACTIVE;
AN #INPUT;
AN #OUTPUT;
JC END1;
NETWORK
TITLE =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;
T DBD 40;
T DBD 44;
T DBD 48;
T DBD 52;
T DBD 56;
T DBD 60;
T DBD 64;
T DBD 68;
T DBD 72;
T DBD 76;
L #LOCATION;
L 0;
<=I ;
S #EMPTY;
JC EROR;
OPN #SOURCE_DB;
CALL "BLKMOV" (
SRCBLK := P#DBX 80.0 BYTE 40,
RET_VAL := #RET_VAL1,
DSTBLK := P#DBX 40.0 BYTE 40);
L #RET_VAL1;
L 0;
<>I ;
JC EROR;
L 0;
T #COUNT;
OP_1: L #LOCATION;
L 0;
<=I ;
JC EROR;
L #LOCATION;
L #COUNT;
<=I ;
JC OP_3;
L #COUNT;
L 2;
+I ;
ITD ;
L P#40.0;
*D ;
LAR1 ;
OPN #SOURCE_DB;
L DBD [AR1,P#40.0];
T DBD [AR1,P#0.0];
L DBD [AR1,P#44.0];
T DBD [AR1,P#4.0];
L DBD [AR1,P#48.0];
T DBD [AR1,P#8.0];
L DBD [AR1,P#52.0];
T DBD [AR1,P#12.0];
L DBD [AR1,P#56.0];
T DBD [AR1,P#16.0];
L DBD [AR1,P#60.0];
T DBD [AR1,P#20.0];
L DBD [AR1,P#64.0];
T DBD [AR1,P#24.0];
L DBD [AR1,P#68.0];
T DBD [AR1,P#28.0];
L DBD [AR1,P#72.0];
T DBD [AR1,P#32.0];
L DBD [AR1,P#76.0];
T DBD [AR1,P#36.0];
L #COUNT;
L 1;
+I ;
T #COUNT;
L #SIZE;
L -1;
+I ;
L #COUNT;
<=I ;
JC OP_2;
JU END2;
OP_2: L W#16#0;
T DBD [AR1,P#40.0];
T DBD [AR1,P#44.0];
T DBD [AR1,P#48.0];
T DBD [AR1,P#52.0];
T DBD [AR1,P#56.0];
T DBD [AR1,P#60.0];
T DBD [AR1,P#64.0];
T DBD [AR1,P#68.0];
T DBD [AR1,P#72.0];
T DBD [AR1,P#76.0];
OP_3: SET ;
S #DONE_OUT;
L #LOCATION;
L -1;
+I ;
T #LOCATION;
JU END2;
NETWORK
TITLE =INPUT FIFO
//20字节的数据写入FIFO存储区表中
IN_1: AN #IN_START;
JC END2;
L #LOCATION;
L #SIZE;
>=I ;
S #FULL;
JC EROR;
L #LOCATION;
L 2;
+I ;
ITD ;
L P#40.0;
*D ;
LAR1 ;
OPN #SOURCE_DB;
L DBD 0;
T DBD [AR1,P#0.0];
L DBD 4;
T DBD [AR1,P#4.0];
L DBD 8;
T DBD [AR1,P#8.0];
L DBD 12;
T DBD [AR1,P#12.0];
L DBD 16;
T DBD [AR1,P#16.0];
L DBD 20;
T DBD [AR1,P#20.0];
L DBD 24;
T DBD [AR1,P#24.0];
L DBD 28;
T DBD [AR1,P#28.0];
L DBD 32;
T DBD [AR1,P#32.0];
L DBD 36;
T DBD [AR1,P#36.0];
L #LOCATION;
L 1;
+I ;
T #LOCATION;
SET ;
S #DONE_IN;
JU END2;
NETWORK
TITLE =

EROR: SET ;
= #ERROR;
JU END2;
END1: CLR ;
= #DONE_IN;
= #DONE_OUT;
= #ERROR;
= #EMPTY;
= #FULL;
END2: NOP 0;
END_FUNCTION_BLOCK



一个FIFO的源程序 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54716条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。