西门子S7 200 通讯的编程步骤 --- 自由口通讯
1、自由口通讯使用 SMB30(口 0)和 SMB130(口 1)来定义通讯口的工作模式。SMB30/SMB130 各位的定义如下:(使用自有口通讯,SM30.0 和 SM泌驾台佐30.1(SM130.0 和 SM130.1=0)必须分别为 1 和 0。)
2、发送依宏氽墓指令 ( XMT )使用 XMT 发送指令可以把存于缓冲区中的数据,一次发送一个或多个字节的数据,最多为 255 个。发送完最后一个字符后还可以连接到一个发送完中断(端口 0 为 9,端口 1 位 26,见下表)。和 XMT 有关的寄存器:SMB4 的 SM4.5 和 SM4.6。SM4.5=1 时,口0 发送完毕;SM4.6=1 时,口 1 发送完毕。由以上可以看出,有两种方法可以检测端口 0 或 1 的数据发送状态:一种是利用中断,一种是利用寄存器 SMB4 的第 5 位(口 0)和第 6 位(口 1)。说明:T+0:发送信息的字节个数需要提前定义。T+1~T+255:要发送的数据字节
3、接收指令 ( RCV )使用接收指令(RCV犬匮渝扮)可以从端口 0 或 1 接收一个或多个字节的数据(最多 255 个),矣喾动痞并存于数据缓冲区。接收完最后一个字节后可以连接到一个接收完中断说明 :T+0:接收字符计数,在接收到结束字符时自动清零T+1:起始字符,在 SMB88(口 0)或 SMB188(口 1)中定义T+2~T+244:接收到的数据字节T+255:结束字符,在 SMB89(口 0)或 SMB189(口 1)中定义说明 :1、SMB86/SMB186:接收终止状态信息寄存器,含有接收终止原因的信息;2、SMB88/SMB188:信息起始位字节(如发送的信息有起始位,将把此寄存器的内容和接受信息的每一字节相比较来,检测确认后续字节是否是信息。因此,在编程时,需要在通讯初始化时,把信息启动位字节传入 SMB88 或 SMB188);3、SMB89/SMB189:信息停止位字节(如发送的信息有停止位,将把此寄存器的内容和接受信息的每一字节相比较来,检测确认信息是否已传送完毕。因此,在编程时,需要在通讯初始化时,把信息启动位字节传入 SMB89 或 SMB189);4、SMB90/SMB190:信息空闲状态的时间(ms),空闲线时间后接受的第一个字节是信息的开始;5、SMB94/SMB194:接受的最大字符数(1~255)。