大家好,我们有套840D的系统。NC程序中,有句写的是:
if ($A_DBB[369]==0) then...
这是PLC和NC的接口通信,为什么在DB10中,找不到DBB369呢?
我在网上查了下资料,说是用FC21,可以分配内存。可是在我们这个step7的程序中,FC21被保护了,打不开。于是我调用了一下:
call “TRANSFER” FC21
Enable:=M0.1
Funct:= B#16#4
S7Var:= P#DB1003,DBX0,0 BYTE150
IVAR1:= 350
IVAR2;= -1
Error:= M252.0
ErrCode:= MW253
它是不是把 DBB350 开始和DB1003.DBX0.0 一字节对一位的对应起来了,例如 DBB351 对应的是 DB1003.DBX1.0 ?
那个-1是什么意思?
为什么这里的 DBB340 前面没有DB块呢?那它属于哪个DB块呢?
如何通过DB把NC和PLC联系起来?可以任意使用DB来建立PLC和NC的连接吗?
谢谢了。
最佳答案
call “TRANSFER” FC21
Enable:=M0.1(enable)
Funct:= B#16#4(3是读、4是写)
S7Var:= P#DB1003,DBX0,0 BYTE150(PLC侧的地址)
IVAR1:= 350(NC侧偏移)
IVAR2;= -1
Error:= M252.0
ErrCode:= MW253
它是不是把 DBB350 开始和DB1003.DBX0.0 一字节对一位的对应起来了,这个不一定,因为PLC侧的程序不一定只有一个FC21,有可能是有条件的调用,现在这个程序 DBB351 对应的应该是DB1003.DBB1。
提问者对于答案的评价:
谢谢。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc192383.html