利用FC21读写$变量

已锁定

rucher

  • 帖子

    267
  • 精华

    4
  • 被关注

    2

论坛等级:游侠

注册时间:2003-10-08

普通 普通 如何晋级?

利用FC21读写$变量

2436

7

2008-07-15 19:08:47

$变量是在NCK中存储的,PLC可以利用功能块从NCK中读/写这些变量
A memory area is reserved in the communications buffer (DPR) of the PLC and NC modules

$A_DBB // Data byte (8 bits)
$A_DBW // Data word (16 bits)
$A_DBD // Data double word (32 bits)
$A_DBR // Real data (32 bits)

最多124个字节的数据存储在这个DPR区;
而且不能进行位操作,至少是字节间的操作;
在NCK中Float-point的数据为64位的,但是在PLC中Float数据为32位,所以在利用$A_DBR时候,存储到dual-port RAM的前/后需要进行数据变换;
最大可以同时写入的输出变量的数量是由MD 28150 MM_NUM_VDIVAR_ELEME
NTS设定的,缺省的值为0;

FC21功能块(Transfer PLC NCK data exchange)
当此功能块被调用的时候,根据此功能块的FUNCTION CODE,实现PLC与NCK的数据通讯,数据传输是发生在此功能块被激活后,而不是在PLC循环的开始。
此功能块即或信号为“enable”, “enable=1”的时候,开始激活。

CALL FC 21 (
Enable := F 10.0, // If True, FC21 active
Funct := B#16#3, // Read data
S7Var := P#M 104.0 WORD 1,
IVAR1 := 8,
IVAR2 := –1,
Error := F10.1,
ErrCode := FW 12);
说明:F10.0激活FC21,读取DPF区的数据,一个字的数据长度,存放在M104,指针为8,不需要Semaphore byte,错误信号送到F10.1,错误代码送到FW12。

接下来就是利用FC21给$A_DBB赋值的一个例子
A M 120.0
= L 5.0
BLD 103
CALL FC 21
Enable :=L5.0
Funct :=B#16#4
S7Var :=P#DB160.DBX1.0 BYTE 7 //将从DB160.DBB1开始的7个字节
IVAR1 :=440 //送到$A_DBB【440】-$A_DBB【446】
IVAR2 :=-1
Error :=#r_Error
ErrCode:=#rw_ErrCode
NOP 0

利用FC21读写$变量 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SINUMERIK

共有25500条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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