高速数据通道:
在该模块 (DPR) 的通讯缓冲器中预留一个存储区以实现 PLC 和 NC 之间的高速信息交 换。 在该存储区中可以交换任意多个 PLC 变量(I/O、DB、DW、标记)。 PLC 通过‘FunctionCalls’ (FC) 访问该存储器而 NC 通过系统变量访问该存储器。
划分存储区:
用户程序的编程人员(NC 和 PLC)自行负责存储区的划分。 此时可任意划分存储区,但是必须根据数据格式选择限制(“DWORD” 限制为 4 个字节, “WORD” 限制为 2 个字节,等等)。 存储区是通过指定数据类型和存储区内的位置偏移来访问的。
从 NC 访问:
NC 系统中提供变量以便从零件程序或同步动作快速访问 PLC 变量。 可通过 NC 直接读写 数据。 数据类型由系统变量的名称得出。 存储区内的位置作为索引指定,单位为字节。

从 PLC 访问:
PLC 借助“FunctionCall”(FC) 来访问存储器。 在 FC 中,数据都是立即(即:不只是在 PLC 循环开始时)读写到 DPR 中的。数据类型和存储区中的位置是以参数形式传送给 FC 中的。
前提条件:
DPR 存储区的划分完全由用户负责。 系统不会对配置的一致性进行检查。 在输入和输出方向上共有 4096 个字节可供使用。 ● 系统不支持单个位指令,用户必须使用字节指令。 由于变量的内容是直接在通讯缓冲器中被修改的,用户程序的编程人员应注意:在多次 分析一个变量或多个变量互联时,值可能被中途修改(即有必要将值暂时保存在局部变 量或 R 参数中或安装信号装置)。
用户编程人员应负责协调不同通道对通讯缓冲器的访问。 在数据访问中,系统可保证 16 位以内(字节型和字型)数据的一致性。 32 位数据(双 字型和实数型)的一致性由用户自行负责。 为此在 PLC 侧提供了一个简单的信号装置。 PLC 将数据以 ‘Little Endian’ 格式保存在 DPR 中。 通过 $A_DBR 传输的值需要经过转换,因此会损失一定的精度。 浮点型数据在 NC 上 为 DOUBLE(64 位),而在 PLC 上却只是 FLOAT(32 位)。 DPR 中的保存格式 为 FLOAT。转换在保存前后各进行一次。 例如:如果是从 NC 写入然后再次读取 DPR 中的变量,则会进行两次转换。 由于数据 是以两种格式保存的,也就无法避免读写的值有偏差。
示例 通过比较“EPSILON” 来绕开该问题(细微偏差)。
程序代码:
N10 DEF REAL DBR;
N12 DEF REAL EPSILON = 0.00001 ;
N20 $A_DBR[0]=145.145 ;
N30 G4 F2 ;
N40 STOPRE ;
N50 DBR=$A_DBR[0] ;
N60 IF ( ABS(DBR/145.145-1.0) < EPSILON ) GOTOF ENDE ;
N70 MSG(“故障”) ;
N80 M0 N90 ENDE: ;
N99 M30;
激活:
可通过 MD28150 $MC_MM_NUM_VDIVAR_ELEMENTS(用于写入 PLC 变量的单元数) 来设置 可同时写入的最大输出变量数。
示例:
一个单字型变量需从 PLC 传送至 NC。 NC 输入端内的位置偏移应为第四个字节(PLC 输出区)。 位置偏移必须为数据宽度的整 数倍。
由 PLC 写入:
. . . CALL FC21 (
Enable :=M10.0, ; 如果为 TRUE,FC21 便生效
Funct :=B#16#4,
S7Var :=P#M 104.0 WORD1,;
IVAR1 :=04,;
IVAR2 :=-1,;
Error :=M10.1,;
ErrCode :=MW12); . . . )
在零件程序中读取
PLCDATA = $A_DBW[4]; ; 读取一个单字
重新上电后的特性,程序段搜索 在上电时通讯缓冲器 DPR 初始化。 在进行“程序段搜索”时系统会收集输出的 PLC 变量,并通过移动程序段将其传送给通讯 缓冲器 DPR(这一过程类似于写入模拟量和数字量输入)。 其他状态过渡在这儿无效。