斑竹救命啊!!!关于指针的使用,一直出错!!!在线等待20050705

已锁定

yellowhu

  • 帖子

    81
  • 精华

    1
  • 被关注

    1

论坛等级:游民

注册时间:2003-06-06

普通 普通 如何晋级?

斑竹救命啊!!!关于指针的使用,一直出错!!!在线等待20050705

649

4

2005-07-04 10:16:32

FC( IN: IDB_IN WORD
AI_1 REAL
AI_2 REAL
AI_3 REAL
TEMP: DB_POINTER DWORD
)

{
L #db_in
T MW 152
OPN DB [MW 152]

//打开DB块,DB块中共存储30个浮点数,分10组,每组3;
//顺序存储,如:A1、B1、C1、A2、B2、C2。。。,我需要
//每次循环写三个数值到A、B、C中


L P#DBX 0.0
LAR1

//建立指针,指向DB块的0.0;

L MW 160
L 12
*D
SLD 3
+AR1

//MW160是一个记数循环点,从0~10循环变化;
//循环记数点*12,再移位成指针型数,再加上初始指针;
(我的理解是3个实数为一组,这样每组间隔是12个字节)

L #AI_1
T DBD [AR1,P#0.0]

L #AI_2
T DBD [AR1,P#4.0]

L #AI_3
T DBD [AR1,P#8.0]

//每次MW160循环后,依次把AI_1,2,3送至每组中
//三个浮点数中去, P#4.0我的理解是第二个
//浮点数B与第一个A相差4个字节,所以指针加4;

INC MW160 //循环记数加1;
A(
L MW 160 //判断是否超过10组;
L 10
>=I
)
JNB END

L 0
T MW 160

END: NOP 0
}
//跳转,没有直接在FC里做循环,因为一直做不成
//功,在模拟运行中一直看不到MW160的变化,
//所以就用FC本身的循环运行来做记数循环



//以上程序运行下来,CPU一直出现DB块WRITE的地址超出范围错误,

Event 1 of 100: Event ID 16# 2523
Area length error when writing
Global DB, double-word access, Access address: 77



请问!!!问题出在哪里,
还有那个循环的问题,FC内建循环,是不是在MONITOR状态看不到记数值的变化???
斑竹救命啊!!!关于指针的使用,一直出错!!!在线等待20050705 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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