西门子授权代理商欢迎您来电来函咨询,将为您提供优惠的价格及快捷细致的服务!以下是本公司授权经销西门子可编程控制器,交、直流传动装置,触摸屏,变频器,工业以太网,电线电缆,伺服电机,数控系统,楼宇控制系统,低压产品等等:德国西门子工控机代理商
德国西门子工控机代理商西门子产品供应全国,西门子工控设备包括S7-200SMART、 S7-200CN、S7-300、S7-400、S7-1200、S7-1500、S7-ET200SP 等各类工业自动化产品。作为西门子授权代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理商,西门子PLC模块代理商下列说明适用于 BSEND/BRCV SFB: • 发送和接收端使用的 SD_i 和 RD_i 参数的数目必须匹配。 • 发送和接收端共有的 SD_i 和 RD_i 参数的数据类型必须匹配。 • 要通过 SD_i 参数发送的数据量不得大于关联的 RD_i 参数可用的区域。 如果不遵守这些规则,则系统将通过 ERROR = 1 和 STATUS = 4 指出这种情况。 发送和接收参数的示例 访问数据块,字节 10-109 P#DB20.DBX10.0 byte 100 访问存储器标志 10-12 P#M10.0 BYTE 3 访问输入 20-24 P#E20.0 BYTE 5 访问输出 20-24 P#A20.0 BYTE 5 访问定时器 1-5 L#1 TIMER 5 访问计数器 1-10 L#1 COUNTER 10 可同时处理的作业数 可同时处理的请求(BSEND 和 GET)数取决于使用请求传输的数据量。 这些请求将以 450 个字节的数据块在 CP 441 中进行缓存。 每个接口较多可以缓存 40 个数 据块。 如果无法再缓存任何数据块,则请求将被终止,并产生错误 (STATUS 02)。 将在发出产生错 误的信息的区域中输入消息 050FH。 示例: 例如,如果所有请求的大小共计 2000 个字节,则可以缓存 8 个请求。如果自动化系统使用多个 CP,则可传输的数据数主要取决于 CPU 的性能。以 CPU 416 为例, 其每秒可处理约 80-100 个 240 字节的帧。 表格 6-5 如果通信负荷增加,请注意以下事项: 行为 纠正或避免错误的方法 在 CP 和 CPU 之间的传输将收到否定确认(CP 诊断缓 冲区中的 0407 或 0408)。 • 增加 CPU 屏幕窗体中“通信产生的周期负荷”(Cyclic load due to communication) 参数的值 和 • 调用时间 OB 中的 BRCV 或在该周期内较频繁地调用 BRCV。 CP 上诊断缓冲区的内容可通过编程设备读取。 增加 CPU 屏幕窗体“周期”(Cycle) 中“较小周期时间” (Minimum cycle time) 参数的值。 不为新插入的 CP 分配参数。 增加“启动”(Startup) CPU 屏幕窗体中“将参数传输到 模块”(Transfer parameters to modules) 参数的值。 6.3 使用具有 3964(R) 程序的系统功能块 6.3.1 应用 简介 如果使用 3964(R) 程序作为传输方法,可将数据从 S7-400 自动化系统传输到通信伙伴使用 3964(R) 程序将到通信伙伴。选项: 使用 3964(R) 程序传输数据时,有以下选项: • 可通过系统函数块 BSEND 发送数据,并使用系统函数块 BRCV 在通信伙伴端接收数据。 这种类型的优势在于,可使用 BRCV 的 NDR 参数识别数据是否已全部接收,并 可使用 EN_R 参数防止在接收端覆盖尚未处理的数据。 • 可使用系统函数块 BSEND 发送数据,并可使用系统函数块 BRCV 在通信伙伴端接收数据 (CP 441:用于点对点通信的组态包,面向 CP 441),可定义接收邮箱 (DB),接收的数 据将存储在通信伙伴方 CPU 上的这个位置。 如果使用这种类型,则不需要在通信伙伴的用户程序中编写任何程序。但应注 意的是,无法在接收方识别的发生时间。因此,接收 CP 441 也无法防止覆盖接 收方中尚未处理的数据。 说明 如果通过协议 3964(R) 进行,需要注意的是,不会随数据一同传输目标信息。因 此,可从多个数据源发送数据 (BSEND),但每个串行接口只能将数据存储在一个目标 (BRCV 或接收邮箱)。 6.3.2 使用 BSEND 和 BRCV 通过 3964(R) 传输数据 要执行的操作 这种类型的的优点是,使用 BRCV 可以解释 NDR 参数以确定何时收到完整数据,并 可以解释 EN_R 参数以防止未处理的数据在上被覆盖。 在可编程控制器上 对于每个通讯请求,您必须在 CPU 的 S7 用户程序中对 BSEND (SFB12) 系统功能块进行编程。 R_ID 参数可以为任意值。 对多个 BSEND 进行编程时,您必须使用不同的 R_ID。 对于 SD_1 参数(数据类型 ANY),*要传递的数据(源)。 在 CPU 的 S7 用户程序中,必须对 BRCV 系统功能块 (SFB13) 编程。 说明 由于通过这种方式无法将目标信息传送到该协议,因此必须通过 BRCV 接收具有不同 R_ID 的 所有 BSEND 的数据。 因此,只能为串行接口创建一个 BRCV 系统功能块。 必须为 R_ID 参 数*值“0”。 对于 RD_1 参数(数据类型 ANY),请*要存储数据的位置(目标)。 长度定义要接收的 块的较大长度。 实例: p#DB20.DBX10.0 WORD 2048 要防止未处理的数据被覆盖,您必须在控制输入 EN_R 处调用值为 0 的 BRCV。 请注意,您可能必须使用 CP 441:用于点对点通讯的组态包参数分配接口禁用(删除) CP 441 上的收件箱,否则数据将被放置在收件箱中*的数据块中,而不会被转发到 BRCV。 实例 表格 6-6 使用 3964(R) 调用 SFB12 (BSEND) 的实例这种类型的的优点是,*在通信伙伴的用户程序中进行编程。 请注意,在上您无法分辨何时进行传输。因此,接收 CP 441 不能防止未处理的数据 在上被覆盖。 即使接收 S7 CPU 处于 STOP 模式时,也会进行。接收 CPU 将 检测数据的一致性(CPU 412/413:16 个字节,CPU 414/417: 32 个字节)。 更多信息 您可以在有关系统功能和标准功能的参考手册《用于 S7-300/400 系统和标准功能的系统软 件》 中找到有关数据一致性的详细信息。 在可编程控制器上 对于每个通信请求,您必须在 CPU 的 S7 用户程序中对 BSEND (SFB12) 系统功能块进行编程。 R_ID 参数可以为任意值。 对多个 BSEND 进行编程时,您必须使用不同的 R_ID。 对于 SD_1 参数(数据类型 ANY),*要传递的数据(源)。 实例: p#DB10.DBX5.0 WORD 1 不使用数据类型 ANY 评估长度,因为要发送的数据的长度在 LEN 参数中定义。 在 CP 441 通信伙伴处 必须通过 CP 441:用于点对点通信的组态包参数分配界面在 CP 441 上*收件箱及其数据 块 (DB)。 在该数据块中,通过 CP 441 获得的数据被存储在 CPU 中。