s7-200通讯编程步骤-自由端口通讯

上传人:小** 文档编号:94148091 上传时间:2019-08-02 格式:PDF 页数:13 大小:739.38KB
返回 下载 相关 举报
s7-200通讯编程步骤-自由端口通讯_第1页
第1页 / 共13页
s7-200通讯编程步骤-自由端口通讯_第2页
第2页 / 共13页
s7-200通讯编程步骤-自由端口通讯_第3页
第3页 / 共13页
s7-200通讯编程步骤-自由端口通讯_第4页
第4页 / 共13页
s7-200通讯编程步骤-自由端口通讯_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《s7-200通讯编程步骤-自由端口通讯》由会员分享,可在线阅读,更多相关《s7-200通讯编程步骤-自由端口通讯(13页珍藏版)》请在金锄头文库上搜索。

1、 1 S7S7S7S7- - - -200200200200 通讯的编程步骤通讯的编程步骤通讯的编程步骤通讯的编程步骤-自由口通讯自由口通讯自由口通讯自由口通讯 S7-200 自由口通讯是基于 RS485 通讯基础的半双工通讯, 因此, 发送和接收指令不能同时执行。 自由口通讯使用 SMB30(口 0)和 SMB130(口 1)来定义通讯口 的工作模式。SMB30/SMB130 各位的定义如下: 图 1:通讯口工作模式寄存器 使用自有口通讯,SM30.0 和 SM30.1(SM130.0 和 SM130.1=0) 必须分别为 1 和 0。 一一一一、 发送指令发送指令发送指令发送指令(XMTX

2、MTXMTXMT) 使用 XMT 发送指令可以把存于缓冲区中的数据, 一次发送一个或 2 多个字节的数据,最多为 255 个。发送完最后一个字符后还可以连接 到一个发送完中断(端口 0 为 9,端口 1 位 26,见下表) 。 图 2:中断事件表 3 发送缓冲区的格式如下表所示: 图 3:发送缓冲区的格式 说明: T+0:发送信息的字节个数需要提前定义。 T+1T+255:要发送的数据字节 和 XMT 有关的寄存器:SMB4 的 SM4.5 和 SM4.6。SM4.5=1 时,口 0 发送完毕;SM4.6=1 时,口 1 发送完毕。 由以上可以看出,有两种方法可以检测端口 0 或 1 的数据发

3、送 状态:一种是利用中断,一种是利用寄存器 SMB4 的第 5 位(口 0) 和第 6 位(口 1) 。 二二二二、 接收指令接收指令接收指令接收指令(RCVRCVRCVRCV) 使用接收指令(RCV)可以从端口 0 或 1 接收一个或多个字节的 数据(最多 255 个) ,并存于数据缓冲区。接收完最后一个字节后可 以连接到一个接收完中断(口 0 是 23,口 1 是 24,见图 2 所示) 。 接收缓冲区的格式如下表所示: 4 图 4:接收缓冲区的格式 说明说明说明说明: T+0:接收字符计数,在接收到结束字符时自动清零 T+1:起始字符,在 SMB88(口 0)或 SMB188(口 1)中

4、定义 T+2T+244:接收到的数据字节 T+255:结束字符,在 SMB89(口 0)或 SMB189(口 1)中定义 和接收有关的寄存器及定义如下表所示: 5 6 图 5:接收有关寄存器 说明说明说明说明: 1、SMB86/SMB186:接收终止状态信息寄存器,含有接收终止原因的信息; 2、SMB88/SMB188:信息起始位字节(如发送的信息有起始位,将把此寄存 器的内容和接受信息的每一字节相比较来, 检测确认后续字节是否是信息。 因此, 在编程时,需要在通讯初始化时,把信息启动位字节传入 SMB88 或 SMB188) ; 3、SMB89/SMB189:信息停止位字节(如发送的信息有停

5、止位,将把此寄存 器的内容和接受信息的每一字节相比较来, 检测确认信息是否已传送完毕。 因此, 在编程时,需要在通讯初始化时,把信息启动位字节传入 SMB89 或 SMB189) ; 4、SMB90/SMB190:信息空闲状态的时间(ms) ,空闲线时间后接受的第一 个字节是信息的开始; 5、SMB94/SMB194:接受的最大字符数(1255) 。 三三三三、编程步骤编程步骤编程步骤编程步骤 1 1 1 1、利用利用利用利用 SM0.1SM0.1SM0.1SM0.1 初始化通讯参数初始化通讯参数初始化通讯参数初始化通讯参数。 使用 SMB30(口 0)或 SMB130(口 1)选择自由口通讯

6、模式,并选 定自由口通讯的波特率,数据位数和校验方式。 定义通讯口接收格式 SMB87(口 0)或 SMB187(口 1) 。包括启动 信息接收(第 7 位1) ,是否有起始位(第 6 位) ,是否有结束位(第 5 位)以及是否检测空闲状态(第 4 位)等。 设定起始位(SMB88 或 SMB188)或结束位(SMB89 或 SMB189) 、空 闲时间信息(SMB90 或 SMB190)及接收的最大字符数(SMB94 或 SMB194) 。 如利用中断,连接接收完(事件 23)和发送完(事件 9)中断到 7 中断程序,并且开中断(ENI) 。 一般还要利用 SMB34 定义一个定时中断,来定

7、时发送数据(一般 为 50ms,即间隔发送数据的时间) 。 2 2 2 2、编写主程序编写主程序编写主程序编写主程序 自由口通讯主程序的任务是把要发送的数据放到送区, 并接收数 据到接收区,当然此部分也可以用一个子程序来完成。 3 3 3 3、编写编写编写编写 SMB34SMB34SMB34SMB34 的定时中断程序的定时中断程序的定时中断程序的定时中断程序 把要发送的数据传送到发送区,一般包括:发送的字节数,发送 的数据及结束字符,最后再利用 XMT 指令启动发送。 4 4 4 4、编写发送完中断和接收完中断子程序编写发送完中断和接收完中断子程序编写发送完中断和接收完中断子程序编写发送完中断

8、和接收完中断子程序 发送完中断子程序的主要任务是发送完后断开 SMB34 定时中断, 并利用 RCV 指令准备接收数据。 接收完中断子程序的任务是接收数据完成后重新连接 SMB34 的定 时中断,准备发送数据。 四四四四、例程例程例程例程 本例的主要作用是利用甲机控制乙机的电机星-角起动,乙机控 制甲机的电机星-角起动。I/O 分配如下所示: 发送和接收数据缓冲区的分配如下所示: 8 甲机甲机甲机甲机(2(2(2(2 号站号站号站号站) ) ) )程序梯形图程序梯形图程序梯形图程序梯形图: 主程序主程序主程序主程序: 9 初始化子程序初始化子程序初始化子程序初始化子程序(initializei

9、nitializeinitializeinitialize) :) :) :) : 10 11 甲机星角运行子程序甲机星角运行子程序甲机星角运行子程序甲机星角运行子程序(XingJiao)(XingJiao)(XingJiao)(XingJiao) 12 中断程序中断程序中断程序中断程序 0 0 0 0(50ms50ms50ms50ms 间隔发送程序间隔发送程序间隔发送程序间隔发送程序) 13 中断程序中断程序中断程序中断程序 1 1 1 1(发送完中断发送完中断发送完中断发送完中断) 中断程序中断程序中断程序中断程序 2 2 2 2(接收完中断接收完中断接收完中断接收完中断) 乙机(3 号站)的程序和甲机类似,只要在编程过程中注意发送 和接收区和甲机的对应就可以了,不再缀述。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号