西门子S7 200 通讯的编程步骤 --- 自由口通讯

S7-200 自由口通讯是基于 RS485 通讯基础的半双工通讯,因此,
发送和接收指令不能同时执行。

操作方法

  • 01

    自由口通讯使用 SMB30(口 0)和 SMB130(口 1)来定义通讯口的工作模式。SMB30/SMB130 各位的定义如下:(使用自有口通讯,SM30.0 和 SM30.1(SM130.0 和 SM130.1=0)必须分别为 1 和 0。)

  • 02

    发送指令 ( 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:要发送的数据字节

  • 03

    接收指令 ( 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)。

编程步骤

  • 01

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

  • 02

    编写主程序 自由口通讯主程序的任务是把要发送的数据放到送区,并接收数 据到接收区,当然此部分也可以用一个子程序来完成。

  • 03

    编写 4 SMB34  的定时中断程序 把要发送的数据传送到发送区,一般包括:发送的字节数,发送 的数据及结束字符,最后再利用 XMT 指令启动发送。

  • 04

    编写发送完中断和接收完中断子程序 ● 发送完中断子程序的主要任务是发送完后断开 SMB34 定时中断, 并利用 RCV 指令准备接收数据。 ● 接收完中断子程序的任务是接收数据完成后重新连接 SMB34 的定 时中断,准备发送数据。

样例程序

  • 01

    本例的主要作用是利用甲机控制乙机的电机星-角起动,乙机控制甲机的电机星-角起动。I/O 分配如下所示:

  • 02

    发送和接收数据缓冲区的分配如下所示

  • 03

    主程序

  • 04

    初始化子程序

  • 05

    甲机星角运行子程序

  • 06

    中断程序 0

  • 07

    中断程序1

  • 08

    中断程序 2

(0)

相关推荐

  • s7-200PLC通过自由口通讯接收扫码枪数值

    实际应用中扫码枪越来越多的应用到生产中,PLC需要读取各类条形码的数值来读取工单.物料等信息,本例通过西门子S7-200的自由口通讯实现扫码枪数据的读取,给广大工控人一个实例 操作方法 01 初始化自 ...

  • JQECT 341-1CH02-0AE0 CP341MODBUS串口通讯模块

    • 支持与各种类型的MODBUS设备通讯. • 无需另外加昂贵的MODBUS硬件狗,为用户节约成本. • 采用DB9串行通讯接口,可使用PROFIBUS总线接头连接,免去自行焊线的麻烦,使用方便. • ...

  • 在西门子PLC编程中使用中断应该注意的问题

    操作方法 01 西门子PLC编程中使用中断应该注意的问题,下面我就开门见山的说了 1.中断程序中可以调用子程序 累加器和逻辑堆栈式的存蓄器在中断程序和被调用的子程序中都是共用的 2.中断程序和主程序下 ...

  • 西门子S7200与200SMART以太网通讯

    S7200通过BCNet-S7200Plus和SMART200 PLC以太网数据交换,无需编程通过简单的命令实现通讯.同样可以实现S7200与S71200/1500以太网通讯:S7300与SMART2 ...

  • 打开西门子STEP7-Micro/WIN通信配置的5种方法

    西门子STEP7-Micro/WIN是西门子公司S7系列PLC的编程软件,是学习PLC的基础工具,搭建个人计算机与PLC之间的通讯是PLC组态的第一步,十分重要.西门子STEP7-Micro/WIN编 ...

  • 西门子S7300PLC连接SMART IE触摸屏解决方案

    西门子SMART IE系列的触摸屏价格低,只能支持西门子S7200等低端PLC的通讯:有些西门子S7 300的项目由于节约成本,采用SMART IE系列的触摸屏来实现上位监控和操作. 本文提供西门子S ...

  • 西门子STEP7-Micro/WIN如何更改语言为中文

    西门子STEP7-Micro/WIN是西门子公司S7系列PLC的编程软件,是学习PLC的基础工具,其默认语言环境为英文,但大部分同胞还是对中文编译环境比较熟悉,所以,如何将其语言环境更改为中文尤为重要 ...

  • 推荐几个很实用的编程网站

    一些很实用的在线编程网站,适合初学者和各个级别的编程爱好者. 国内 01 (1)萌码 适合初学者的学习的在线编程学习网站 1.在线开发环境 在萌码学习,用户无需配置编程环境,所有学习和操作在网页中均能 ...

  • 从Outlook Express中导出通讯薄

    从Outlook Express中导出通讯薄 步骤/方法 01 1.在Outlook Express中依次点击"文件" => "导出" => &qu ...