DP_SEND 的参数 (S7-300, S7-400) 形式参数的说明 下表对 DP_SEND 指令的所有形式参数进行了说明: 参数 声明 数据类型 取值范围 说明 CPLADDR INPUT WORD 模块起始地址 当组态 CP 时,在组态表中显示模块的起始地址。 在此指定该地址。 SEND INPUT ANY (仅下列类型允 许作为 VARTYPE: 使用Zui低版本 为 V3 的 DP_SEND: BYTE 使用版本高达 V2.x 的 P_SEND: BYTE、WORD 和 DWORD) 指定地址和长度 DP 数据区的地址指向下列两个位置之一: • PI 区 • 存储器位区 • 数据块区 必须为下列各项设置长度 • DP 主站: 1...21600 • DP 从站: 1...240 DONE OUTPUT BOOL 0: - 1:新数据 该状态参数指示是否无错完成作业 。 对于与 ERROR 和 STATUS 参数一起使用时的含义, 请参见参数 DONE、ERROR 和 STATUS (页 9260)。 ERROR OUTPUT BOOL 0: - 1:错误 错误代码 对于与 DONE 和 STATUS 参数一起使用时的含义, 请参见参数 DONE、ERROR 和 STATUS (页 9260) STATUS OUTPUT WORD 状态代码 对于与 DONE 和 ERROR 参数一起使用时的含义, 请参见参数 DONE、ERROR 和 STATUS
参数 DONE、ERROR 和 STATUS (S7-300, S7-400) 条件代码 下表列出了根据 DONE、ERROR 和 STATUS 形成的条件代码,其中这些代码必须由用户程序 进行评估。 说明 对于 STATUS 中以 8FxxH 编码的条目,请参见引用的系统程序块说明中的输出参数 RET_VAL 的相关信息。 可在 STEP 7 中查询使用了哪些系统程序块以及哪些系统程序块与错误评估相关。 表格 4-447 DP_SEND 条件代码 DONE ERROR STATUS 含义 0 0 8180H • 启动: DP 服务已启动,尚不能接收数据。 • 正常运行 激活数据传送。 • 由于下列原因,DP 未启动: – CP STOP 或 – “没有分配参数”(在此处出现,代替代码 0,1,8183H)。 1 0 0000H 无错误传送新数据。 0 1 8183H 没有组态或尚未在 PROFIBUS CP 上启动 DP 服务。 0 1 8184H 系统错误或非法参数类型。 0 1 8F22H 读取参数时发生区域长度错误(例如,DB 太短)。 0 1 8F23H 写入参数时发生区域长度错误(例如,DB 太短)。 0 1 8F24H 读取参数时发生区域错误。 0 1 8F25H 写入参数时发生区域错误。 0 1 8F28H 读取参数时发生队列错误。 0 1 8F29H 写入参数时发生队列错误。 0 1 8F30H 该参数位于具有写保护的第 1 个当前数据块中。 0 1 8F31H 该参数位于具有写保护的第 2 个当前数据块中。 0 1 8F32H 参数包含的 DB 编号太大。 0 1 8F33H DB 编号错误。DONE ERROR STATUS 含义 0 1 8F3AH 没有装载目标区域(DB)。 0 1 8F42H 从 I/O 区域中读取参数超时。 0 1 8F43H 将参数写入 I/O 区域超时。 0 1 8F44H 在访问路径中要读取的参数地址被禁用。 0 1 8F45H 在访问路径中要写入的参数地址被禁用。 0 1 8F7FH 内部错误,例如,非法 ANY 引用。 0 1 8090H 不存在拥有该地址的模块。 0 1 8091H 逻辑基址不是一个双字边界。 0 1 80A1H 将否定确认写入模块中。 0 1 80B0H 该模块不能识别数据记录。 0 1 80B1H 要发送的数据字节的数目超出该服务的上限(适用于 DP 主站和 DP 从站模式)。 0 1 80C0H 无法读取数据记录。 0 1 80C1H 当前正在处理所指定的数据记录。 0 1 80C2H 未决的作业太多。 0 1 80C3H 资源已占用(储存器)。 0 1 80C4H 通信错误(临时发生,通常建议在用户程序中重复执行该作业)。 0 1 80D2H 逻辑基址错误。DP_RECV (S7-300, S7-400) DP_RECV (S7-300, S7-400) 说明 DP_RECV 指令通过 PROFIBUS 接收数据。 根据 PROFIBUS CP 的不同模式,DP_RECV 可能为 下列含义: • 在 DP 主站中使用时 DP_RECV 从分布式 I/O 接收过程数据及状态信息,并将这些数据和信息输入到一个指定的 DP 输入区。 • 在 DP 从站上使用时 DP_RECV 会接受由该指令中指定的 DP 数据区中的 DP 主站发送的输出数据。 为接收数据指定的数据区可以是过程映像区、位地址区或数据块区。 如果 PROFIBUS CP 可以传送整个 DP 数据输入区,则会指示无错执行。 请注意,如果为 DP 从站组态了输出数据,则必须在用户程序中成功地为该 DP 从站调用 DP_RECV 指令一次以上。请阅读手册中的相关信息。 为启动 DP 主站,必须在调用序列之前只有一个 DP-SEND 或 DP-RECV 调用。 以下规则适用 于此第一个调用: • 如果 DP-RECV 用于初始化,则不会采用接收的数据。 必须通过第二次块调用才会接受要 接收的用户数据。 附加任务: 输入状态字节 DP_RECV 指令具有下列附加任务: • 更新 DP 状态字节 DPSTATUS。也就是说,DP_RECV 处理用于 DP 诊断的任务 如果没有组态接收数据,则必须使用长度 1 调用 DP_RECV,以更新 DPSTATUS 状态字节 (仅适用于 DP 主站)。 请阅读手册中的信息。 • 启用站列表(请参见 DP_DIAG )。DP_RECV 的参数 (S7-300, S7-400) 形式参数的说明 下表对 DP_RECV 指令的所有形式参数进行了说明: 参数 声明 数据类型 取值范围 说明 CPLADDR INPUT WORD 模块起始地址 当组态 CP 时,在组态表中显示模块的起始地址。 在此指定该地址。 RECV INPUT ANY (仅下列类型允 许作为 VARTYPE: 使用Zui低版本 为 V3 的 DP_RECV: BYTE 使用版本高达 V2.x 的 DP_RECV: BYTE、WORD 和 DWORD) 指定地址和长度 DP 数据区的地址指向下列两个位置之一: • PI 区 • 存储器位区 • 数据块区 必须为下列各项设置长度: • DP 主站: 1...2160 • DP 从站: 1...240 • DP 主站;只读取状态字节: 1 (参见 CP 手册) NDR OUTPUT BOOL 0: - 1:接受的新 数据 该状态参数指示是否接受新数据 。 对于与 ERROR 和 STATUS 参数一起使用时的含义, 请参见参数 NDR、ERROR 和 STATUS (页 9265)。 ERROR OUTPUT BOOL 0: - 1:错误 错误代码 对于与 NDR 和 STATUS 参数一起使用时的含义,请 参见参数 NDR、ERROR 和 STATUS (页 9265)。 STATUS OUTPUT WORD 状态代码 对于与 NDR 和 ERROR 参数一起使用时的含义,请 参见参数 NDR、ERROR 和 STATUS (页 9265)。 DPSTATUS OUTPUT 字节 关于编码,请 参见 DPSTATUS 下 的信息 DP 状态代码参数 NDR、ERROR 和 STATUS (S7-300, S7-400) 条件代码 下表显示了由 NDR、ERROR 和 STATUS 参数构成的代码,其中的参数必须由用户程序进行评 估。 说明 对于 STATUS 中以 8FxxH 编码的条目,请参见引用的系统程序块说明中的输出参数 RET_VAL 的相关信息。 可在 STEP 7 中查询使用了哪些系统程序块以及哪些系统程序块与错误评估相关。 NDR ERROR STATUS 含义 0 0 8180H • 启动: DP 服务已启动,尚不能接收数据。 • 正常运行 激活数据传送。 • 由于下列原因,DP 未启动: – CP STOP 或 – “没有分配参数”(在此处出现,代替代码 0,1,8183H)。 1 0 0000H 无错接受新数据。 0 1 8183H 没有组态或尚未在 PROFIBUS CP 上启动 DP 服务。 0 1 8184H 系统错误或非法参数类型。 0 1 8F22H 读取参数时发生区域长度错误(例如,DB 太短)。 0 1 8F23H 写入参数时发生区域长度错误(例如,DB 太短)。 0 1 8F24H 读取参数时发生区域错误。 0 1 8F25H 写入参数时发生区域错误。 0 1 8F28H 读取参数时发生队列错误。 0 1 8F29H 写入参数时发生队列错误。 0 1 8F30H 该参数位于具有写保护的第 1 个当前数据块中。 0 1 8F31H 该参数位于具有写保护的第 2 个当前数据块中。