您现在的位置是:首页 > PLC技术 > PLC技术
PLC的双向数据交换
来源:艾特贸易2018-04-20
简介对于双向数据交换,需要在每个连接终端有一个发送 SEND 块和一个接收 RECEIVE 块。两个块都有连接 ID ,这些 ID 位于连接表的同一行中。也可以使用由工作 ID 区分出来的多个“块对”。
对于双向数据交换,需要在每个连接终端有一个发送SEND块和一个接收RECEIVE块。两个块都有连接ID,这些ID位于连接表的同一行中。也可以使用由工作ID区分出来的多个“块对”。
下面的SFB对于双向相互数据交换都是有效的:
●FB/SFB 8USEND
CPU指定长度的数据包的不对等发送。
●FB/SFB 9URCV
CPU指定长度的数据包的不对等接收。
●FB/SFB 12BSEND
最大长度达到32KB或64KB的数据块的发送。
●FB/SFB 13BRCV
最大长度达到32KB或64KB的数据块的接收。
FB/SFB 8和FB/SFB9或FB/SFB12和FB/SFB13必须成对使用。SFB的参数列表如表20-14所示。
表20-14 用于发送和接收数据的FB/SFB参数
1)不适用于FB 8或FB 9。
1.FB 8 USEND和FB 9 URCV、SFB8 USEND和SFB9 UPCV不对等的发送和接收
参数SD_x和RD_x用于指定变量或要传输的数据区域。发送区域SD_x必须和各自的接收区域RD_x相对应。无间隙地使用参数,从1开始。对于不需要指定的参数,无需指定值(就像FB,不是所有的SFB参数都需要分配值)。
参数REQ(请求)的上升沿启动数据交换。参数R(重启)的上升沿取消数据交换。参数EN_R(启用接收)为“1”表示对方准备接收数据,“0”用于中止当前工作。
当参数NDR在数据传输之后指定为值“1”时,则再次调用块(就是EN_R=“0”)以保证在数据赋值期间,接收到的数据不被覆盖。
用连接ID初始化ID参数,该连接ID是在连接表中由STEP 7为本地和通信伙伴(这两个ID可能不同)输入的。R_ID允许选择一个可指定但是唯一的工作ID。该工作ID必须对发送和接收块是一致的。这会允许多对发送和接收块共享一个逻辑连接(因为每一个都有唯一的ID)。
对于S7-400,在首次调用时,系统功能块把参数ID和R_ID参数的实际值送入它们的实例数据块。首次调用时就建立起通信关系(对于这个实例),直到下一个温重启。对于S7-300,在每次工作完成后可以改变参数ID和R_ID的分配值。
参数DONE和NDR的信号状态是“1”时,这个块信号就表示工作准确无误地完成。如果有错误,则错误会在参数ERROR里给出。在参数STATUS中除了零值以外的值表示报警( ERROR=“0”)或错误(ERROR=“1”)。
2.FB 12 BSEND和FB13 BRCV.SFB 12 BSEND和SFB 13 BRCV用于块的发送和接收
在参数SD_x或RD_x中,为数据区的第一个字节指定一个指针(首次调用时实参的长度决定了通信缓冲器的最大容量,其他调用不再估算),发送、接收数据的字节数在参数LEN中。
最大可以传输64KB(其中32KB对于S7-300不带有集成接口);在块(有时候叫做帧)中传输数据,对于用户程序扫描来说,传输本身是异步的。伴随每个接收块,都会更新参数LEN。
参数REQ(请求)的上升沿启动数据交换,参数R(复位)的上升沿终止数据交换。参数EN_R(启用接收)为“1”时,表示对方准备接收数据;EN_R为“0”时,中止当前工作。
当参数NDR在数据传输之后指定为“1”时,再次调用块(这次EN_R=“0”)以保证在数据赋值期间,接收到的数据不被覆盖。
用连接ID初始化ID参数,该连接ID是在连接表中STEP 7为本地和通信伙伴(这两个ID可能不同)输入的参数。R_ID允许选择一个可指定但是唯一的工作ID,该工作ID必须对发送和接收块是一致的。这个允许多对发送和接收块共享一个逻辑连接(因为每一个都有唯一的ID)。
对于S7-400,在首次调用时,系统功能块把参数ID和R_ID参数送入它们的实例数据块。首次调用时就建立起通信关系(对于这个实例),直到下一个温重启或冷重启。对于S7-300,在每次工作完成后可以改变参数ID和R_ID的分配值。
参数DONE和NDR的信号状态是“1”时,这个块就表示工作准确无误地完成。如果有错误的话,错误会在参数ERROR里给出。在参数STATUS中除了零值以外的值表示报警(ERROR=“0”)或错误(ERROR=“1”)。
(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:)