step7同时打开DB、DI数据块时的编程问题
刘玉蓉
发布于2014-09-29 18:02
1607
0
标签:
尝试使用STL编写一个FB,遇到如下问题,请看一下,
代码如下:
net1:
A #device_auto
A #device_ready
= #allowed_in_queue
net2:
L #qu1_db
T #qu1_dbtmp
OPN DB [#qu1_dbtmp]
L #qu2_db (**)
T #qu2_dbtmp (**)
OPN DI [#qu2_dbtmp] (**)
net3:
A #allowed_in_queue
FP #fp1
A #device_auto
A #device_ready
JNB _001
CALL "ATT"
DATA :=#device_num
TABLE:=DIW0
_001: NOP 0
问题现象描述:
在用PLCSIM模拟程序时,我将 #device_auto和#device_ready对应的外部管脚置一,监控FB,net1中的 #device_auto和#device_ready信号为绿色接通,但是net3中的#device_auto和#device_ready信号为虚线断开,同时FC84的入列程序也无法实现,我将带有(**)标注的程序使用 // 屏蔽掉,重新下载监控,问题现象有消失,该接通的接通,不存在同一变量上边接通,下边断开等问题现象。
请问:1·对于同时打开两个DB块,我上边写的程序在哪里使用错误?
2·在使用打开两个DB时,应该注意哪些呢?
图片说明: 1,未命名 2,问题图片1 3,问题图片2 4,问题图片3
佳答案
在FB中使用了AR2和DI寄存器来访问接口参数,在FB改变这两个会引起混乱,不推荐在FB里使用DI寄存器和AR2地址寄存器,一般需要打开两个数据块的操作都放在FC里来做。