博客原创(http://zhyo720211.gkbk.com) S7-S7-200通讯的编程步骤---通讯的编程步骤---自由口通讯---自由口通讯 自由口通讯 S7-200自由口通讯是基于RS485通讯基础的半双工通讯,因此,发送和接收指令不能同时执行。 自由口通讯使用SMB30(口0)和SMB130(口1)来定义通讯口的工作模式。SMB30/SMB130各位的定义如下: 图1:通讯口工作模式寄存器 使用自有口通讯,SM30.0和SM30.1(SM130.0和SM130.1=0)必须分别为1和0。 一、 发送指令(发送指令(XMT)XMT) 使用XMT发送指令可以把存于缓冲区中的数据,一次发送一个或 1 博客原创(http://zhyo720211.gkbk.com) 多个字节的数据,最多为255个。发送完最后一个字符后还可以连接到一个发送完中断(端口0为9,端口1位26,见下表)。 图2:中断事件表 2 博客原创(http://zhyo720211.gkbk.com) 发送缓冲区的格式如下表所示: 图3:发送缓冲区的格式 说明: T+0:发送信息的字节个数需要提前定义。 T+1~T+255:要发送的数据字节 和XMT有关的寄存器:SMB4的SM4.5和SM4.6。SM4.5=1时,口0发送完毕;SM4.6=1时,口1发送完毕。 由以上可以看出,有两种方法可以检测端口0或1的数据发送状态:一种是利用中断,一种是利用寄存器SMB4的第5位(口0)和第6位(口1)。 二、 接收指令(接收指令(RCV)RCV) 使用接收指令(RCV)可以从端口0或1接收一个或多个字节的数据(最多255个),并存于数据缓冲区。接收完最后一个字节后可以连接到一个接收完中断(口0是23,口1是24,见图2所示)。 接收缓冲区的格式如下表所示: 3 博客原创(http://zhyo720211.gkbk.com) 图4:接收缓冲区的格式 说明:说明: T+0:接收字符计数,在接收到结束字符时自动清零 T+1:起始字符,在SMB88(口0)或SMB188(口1)中定义 T+2~T+244:接收到的数据字节 T+255:结束字符,在SMB89(口0)或SMB189(口1)中定义 和接收有关的寄存器及定义如下表所示: 4 博客原创(http://zhyo720211.gkbk.com) 5
S7-200通讯的编程步骤 - 自由口通讯 - 图文
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)