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

合集下载

S7-200自由口通讯

S7-200自由口通讯

使用自由端口模式控制串口通讯端口您可以选择自由端口模式,通过用户程序控制S7-200的串口通讯端口。

当您选择自由端口模式时,程序通过使用接收中断、传送中断、"传送"指令和"接收"指令控制通讯端口操作。

通讯协议位于自由端口模式时完全受梯形图程序的控制。

SMB30(用于端口0)和SMB130(用于端口1,如果S7-200有两个端口)被用于选择波特率和校验。

当S7-200位于STOP(停止)模式时,自由端口模式被禁止,正常通讯重新建立(例如,编程设备存取)。

最简单的情形是,您可以仅使用"传送(XMT)指令向打印机或显示发送一则信息。

其他的范例包括与条形码读出器连接、称重计和焊机。

在每一种情况下,您都必须写入程序,支持被S7-200位于自由端口模式时与之通讯的设备使用的协议。

只有在S7-200位于RUN(运行)模式时才能使用自由端口通讯。

在SMB30(端口0)或SMB130(端口1)的协议选择域中设置一个01数值,启用自由端口模式。

位于自由端口模式时,无法与编程设备通讯。

提示:可使用特殊内存位SM0.7控制进入自由端口模式,该内存位反映操作模式开关的当前位置。

当SM0.7等于0时,开关位于TERM(终止)位置;当SM0.7 = 1时,操作模式开关位于RUN(运行)位置,您可以使用编程设备通过将开关改变为任何其他位置的方法监控或控制S7-200操作。

将PPI通讯改变为自由端口模式返回顶端SMB30和SMB130分别配置通讯端口0和1,用作自由端口操作,并提供波特率、校验和数据位选择。

SMB30和SMB130描述自由端口控制字节。

为所有的配置生成一个停止位。

传送数据返回顶端"传送"指令允许您传送一个或多个字符的缓冲区,最多可达255个字符。

下图显示"传送"缓冲区的格式。

如果在传送完成事件中附加一个中断例行程序,在缓冲区的最后一个字符传送后,S7-200会生成一个中断(端口0为中断事件9,端口1为中断事件26)。

S7-200PLC的自由口通信工程应用

S7-200PLC的自由口通信工程应用

S7-200PLC的自由口通信工程应用笫1章S7-200 PLC的自由口通信工程应用本章由浅到深循序渐进地例举了S7-200 PLC自由口通信的三个工程应用实例。

分别从任务描述、任务剖析、解决方案、实施步骤和常见故障及排故方法这五个方面进行了描述。

第一个实例“智能立体车库系统中IC卡的应用”讲述了S7-200 PLC的自由口通信的只读功能实现方法,第二个实例“RFID在AGV(Automated Guided Vehicle)中的应用”讲述了S7-200 PLC的自由口通信的读写功能实现方法,第三个实例“S7-200 PLC在无线通信上的应用”讲述了S7-200 PLC 的自由口通过自定义通信协议实现一对多的无线通信功能。

1.1智能立体车库系统中IC卡的应用1.1.1 任务描述智能立体车库系统要求采用刷卡方式完成车辆自动出入立体车库。

当司机刷卡并设定密码后,卡信息与车辆进行绑定,车辆将自动进入车库相应的车位,当司机想取出车辆时,司机只需刷卡并通过密码验证,系统将自动从车库中寻找该卡对应的车辆并将车取出到车库。

其中控制车辆进出的控制器采用西门子S7 - 200 系列CPU226 型可编程控制器来实现。

1.1.2 任务剖析智能立体车库要求采用刷卡方式作为车辆出入立体车库的凭证,这就要求控制系统能读出卡上的信息,利用卡的信息作为身份识别把卡和车辆绑定起来。

选用在弱电系统中作为门禁或停车场系统使用者身份识别的ID卡就能满足要求。

ID卡全称为身份识别卡(Identification Card),是一种只读的感应卡,每张ID卡有一个全球唯一的芯片编码。

它靠读卡器设备感应供电并读出存储在芯片EEPROM中的唯一卡号,该卡号在封卡前一次写入,封卡后不能更改,该ID卡完全能满足车辆身份识别的要求。

同时S7-200 PLC的自由口通信能实现通过读卡器设备读出卡上信息从而完成车辆身份识别的功能。

1.1.3 解决方案该任务实现的关键是要求S7-200 PLC能读出ID卡的信息,考虑到大多数的ID读卡器设备提供了与电脑直接通信的RS232通信方式,而S7-200 CPU的通信口电气上是标准的RS-485半双工串行通信口,因此硬件上需要通过RS-232到RS485转换器把ID读卡器设备连接到S7-200 CPU的通信口上,由于PC/PPI电缆本质上就是RS-232到RS485的转换,所以也可以通过PC/PPI电缆把ID读卡器设备连接到S7-200 CPU的通信口上。

s7-200自由口通信

s7-200自由口通信

S7-200自由口通讯一、基础知识介绍(名词理解,原理,工作机制)1、S7-200CPU的通讯口可以设置为自由口模式(如何设置成自由口模式?)。

选择自由口模式后,用户程序可以完全控制通讯端口的操作(如何控制通讯端口的操作),通讯协议也完全受用户程序控制(如何控制通讯协议)。

S7-200 CPU处于自由口通信模式时,通信功能完全由用户程序控制,所有的通信任务和信息定义均需由用户编程实现。

2、S7-200CPU上的通讯口在电气上是标准的RS-485半双工串行通讯口。

此串行字符通信的格式可以包含:○一个起始位。

○7或8位字符(数据字节)。

○一个奇偶校验位,或没有校验位。

○一个停止位。

○通信波特率可以设置为1200,2400,4800,9600,19200,38400,57600,115200 bit/s。

凡是符合这些格式的串行通信设备,都可以和S7-200 CPU通信。

借助自由口通信模式,S7-200 CPU 可与许多通信协议公开的其他设备、控制器进行通信,其波特率为1200~115200bit/s。

自由口通信是一种基于RS485 硬件基础上,允许应用程序控制S7-200 CPU 的通信端口、以实现一些自定义通信协议的通信方式。

3、自由口通讯(顾名思义很自由)可以通过用户程序灵活控制,没有固定模式。

S7-200 可通过自由口通讯协议访问下列设备:– 带用户端软件的PC机,– 条形码阅读器,– 串口打印机,– 并口打印机,– S7-200,– S7-300 with CP 340– 非Siemens PLC,– 调制解调器。

S7-200 CPU 通信端口是RS485 标准,因此如果通信对象是RS232 设备,则需要使用RS232/PPI 电缆。

4、“请求-响应”工作机制:S7-200 CPU可以作为主站先向从站发送数据请求,然后等待从站的数据响应,也可以作为从站,首先等待主站发送过来的数据请求,然后根据请求的内容,按规则把相关数据返回给主站。

经典西门子200自由口通讯简介_Chain

经典西门子200自由口通讯简介_Chain

CPU通信口工作在自由口模式时,通信口就不支持其他通信协议(比如PPI),此通信口不能再与编程软件Micro/WIN通信。CPU停止时,自由口不能工作,Micro/WIN就可以与CPU通信。
通信口的工作模式,是可以在运行过程中由用户程序重复定义的。
如果调试时需要在自由口模式与PPI模式之间切换,可以使用SM0.7的状态决定通信口的模式;而SM0.7的状态反映的是CPU运行状态开关的位置(在RUN时SM0.7="1",在STOP时SM0.7="0")
状态位SM4. 5的变化,接收指令RCV可以初始化接收信息服务,通过指定的端口接受信息并存储在数据缓
冲区内,在接收完成最后一个字符时,端口0产生中断23。
S7 - 200 CPU上的通信口是符合欧洲标准EN50170中的PROF IBUS标准的RS - 485兼容9针D型连
接器。利用RS - 485总线连接这个端口可以方便地实现S7 - 200系列PLC与单片机之间的硬件连接。
ห้องสมุดไป่ตู้
自由口通信的核心指令是发送(XMT)和接收(RCV)指令。在自由口通信常用的中断有“接收指令结束中断”、“发送指令结束中断”,以及通信端口缓冲区接收中断。
与网络读写指令(NetR/NetW)类似,用户程序不能直接控制通信芯片而必须通过操作系统。用户程序使用通信数据缓冲区和特殊存储器与操作系统交换相关的信息。
在《S7-200系统手册》和Micro/WIN 在线帮助中关于XMT和RCV指令的使用有一个例子。这个例子非常经典,强烈建议学习自由口通信时先做通这个例子。
字符接收中断
S7-200 CPU提供了通信口字符接收中断功能,通信口接收到字符时会产生一个中断,接收到的字符暂存在特殊存储器SMB2中。通信口Port0和Port1共用SMB2,但两个口的字符接收中断号不同。

s7-200自由口通信

s7-200自由口通信

S7-200 自由口通信关键字要点初始化RS485例程发送发送完成接收接收完成起始条件结束条件字符中断S7-200自由口通信简介S7-200 CPU的通信口可以设置为自由口模式。

选择自由口模式后,用户程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制。

一般用于和第三方串行通信设备进行通信。

自由口模式可以灵活应用。

Micro/WIN的两个指令库(USS和Modbus RTU)就是使用自由口模式编程实现的。

在进行自由口通信程序调试时,可以使用PC/PPI电缆(设置到自由口通信模式)连接PC和CPU,在PC上运行串口调试软件(或者Windows的Hyper Terminal-超级终端)调试自由口程序。

USB/PPI电缆和CP卡不支持自由口调试。

目录1自由口通信基本概念1.1 自由口通信概述S7-200PLC的通讯口支持RS485接口标准。

采用正负两根信号线作为传输线路。

工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据。

数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。

传输速率可以设置为1200、2400、4800、9600、19200、38400、57600、115200。

字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。

字符传输从最低位开始,空闲线高电平、起始位低电平、停止位高电平。

字符传输时间取决于波特率。

数据发送可以是连续的也可以是断续的。

所谓连续的数据发送,是指在一个字符格式的停止位之后,立即发送下一个字符的起始位,之间没有空闲线时间。

而断续的数据发送,是指当一个字符帧发送后,总线维持空闲的状态,新字符起始位可以在任意时刻开始发送,即上一个字符的停止位和下一个字符的起始位之间有空闲线状态。

示例:用PLC连续的发送两个字符(16#55和16#EE)(程序如图3和图4),通过示波器测量CPU通讯端口管脚3/8之间的电压,波形如下图1.:图1.两个字符(16#55和16#EE)的波形图示例说明:16进制的16#55换算成2进制等于2#01010101,16进制的16#EE换算成2进制等于2#11101110。

S7-200PLC与PC自由口通讯的多种实现方法,

S7-200PLC与PC自由口通讯的多种实现方法,

首页我的图书馆主题阅读精彩目录精品文苑Tags会员浏览好书推荐S7-200PLC与PC自由口通讯的多种实现方法,应用案例,工控商务网(转载)金牧场收录于2007-07-30 阅读数:公众公开原文来源S7-200PLC与PC自由口通讯的多种实现方法出处:西部工控网 | 时间:2007-3-31 | 阅读:23次1 引言西门子S7-200PLC是德国西门子公司生产的小型PLC。

S7-200以其高可靠性、指令丰富、内置功能丰富、强劲的通讯能力、较高的性价比等特点,在工业控制领域中被广泛应用。

S7-200PLC的突出特点之一是自由口通讯功能。

如何实现S7-200PLC 与个人计算机的互联通信,是S7-200PLC应用的技术关键。

可编程控制器与计算机之间的通讯一般是通过RS-422口或RS-232C口进行的,信息交换的方式为字符串方式,运用RS-23 2C或RS-422通道,容易配置一个与计算机进行通信的系统,将所有软元件的数据和状态用可编程控制器送入计算机,由计算机采集这些数据,进行分析及运行状态监测。

用计算机改变可编程控制器设备的初始值和设定值,从而实现计算机与可编程控制器的直接控制,一旦确定了可编程控制器的控制指令,就能很方便地与计算机连接。

2 S7-200的自由口通讯模式S7-200支持多种通讯模式,如点点接口(PPI)、多点接口(MPI)、Rrof ibus DP等。

PPI等通讯协议主要用于西门子系列产品之间的通讯以及对PLC编程。

在自由口模式下,可由用户控制串行通讯接口,实现用户自定义的通讯协议。

用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。

在自由口模式下,通信协议完全由梯形图程序控制。

S7-200CPU上的通信口是与RS-485兼容的9针D型连接器,PLC还提供了实现RS-485与PC机上RS-232C相连接的P C/PPI电缆,利用它可以方便地实现S7-200系列PLC与PC之间的硬件连接。

西门子PLC 自由口通讯

西门子PLC 自由口通讯

1.自由口通讯基本概念1.1 自由口通信概述1.2 自由口通信要点1.3 发送和接收指令2.自由口通信使用指南2.1 通讯口初始化2.2 发送数据:2.3 接收数据2.4 自由口通信例程1.自由口通讯基本概念1.1 自由口通信概述S7-200PLC的通讯口支持RS485接口标准。

采用正负两根信号线作为传输线路。

工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据。

数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。

传输速率可以设置为1200、2400、4800、9600、19200、38400、57600、115200。

字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。

字符传输从最低位开始,空闲线高电平、起始位低电平、停止位高电平。

字符传输时间取决于波特率。

数据发送可以是连续的也可以是断续的。

所谓连续的数据发送,是指在一个字符格式的停止位之后,立即发送下一个字符的起始位,之间没有空闲线时间。

而断续的数据发送,是指当一个字符帧发送后,总线维持空闲的状态,新字符起始位可以在任意时刻开始发送,即上一个字符的停止位和下一个字符的起始位之间有空闲线状态。

示例:用PLC连续的发送两个字符(16#55和16#EE)(程序如图3和图4),通过示波器测量CPU通讯端口管脚3/8之间的电压,波形如下图1.:图1.两个字符(16#55和16#EE)的波形图示例说明:16进制的16#55换算成2进制等于2#01010101,16进制的16#EE换算成2进制等于2#11101110。

如图所示,当数据线上没有字符发送时总线处于空闲状态(高电平),当PLC发送第一个字符16#55时,先发送该字符帧的起始位(低电平),再发送它的8个数据位,依次从数据位的最低位开始发送(分别为1、0、1、0、1、0、1、0),接着发送校验位(高电平或低电平或无)和停止位(高电平)。

S7-200(SMART)的自由口通信运用的经历

S7-200(SMART)的自由口通信运用的经历

S7-200(SMART)的自由口通信运用的经历初次试探自由口通信,从PLC读仪表数据开始,当时有一套比较老的设备,仪表是国外的,自定义的协议,国内集成商可能是仪表和接口板卡开发比较熟悉,或许是为了满足客户不同的PLC品牌需求,没有采用PLC和仪表直接通信,而是做了一块接口板,接口板和PLC之间采用数字量模式(对于PLC一侧DI 1 / DO 8+3+1+1),接口板和仪表之间采用RS232C通信。

PLC8个输出点相当于并口,3个输出点相当于读写参数编号,1个读写指令点,1个高低位指令点。

一同事有点高级语言的底子,用VB作了一个简单的读参数测试,可以接收到消息串。

于是本人饶有兴趣想试试PLC直接和仪表进行通信,翻看仪表的自定义协议,信息帧均是有指定的起始符和结束符,后面没有校验字符,现在回忆当时情况感觉还是有点幸运,如果校验复杂一点,可能就失去了继续深入的耐性了。

对照S7-200的系统手册,看XMT和RCV的指令介绍,当时对于通信指令和中断指令都不甚明了,需要一点点尝试,终于有点眉目,能够成功的读取一个参数,后来在慢慢的加入逻辑,读取多个参数,对于RCV接收机制和指令使用太过生疏,加上对中断也没有深入的概念,容易出现断线且无法恢复,后来逐渐加了一些重发之类的逻辑,形成了一个逻辑繁琐可读性极差的初级版本。

后来有一个需求,有用户使用了多套年岁较高的纺织机械,之前用的是西门子变频器和S7-200,西门子变频器老型号停产,需要更换新的型号,因为是基于通信给定频率,即使是更换西门子的新型号,也需要变动PLC频率给定部分的程序,用户干脆在一台机器上换了富士的变频器,找厂家改动了程序,后来有某国产变频器经销商想说服用户更换他家的变频器,用户答应给试机的机会,不过需要经销商来适配PLC程序,经过辗转,一同学找我给点建议,本人对通信的经验实在是可怜,不敢乱说,只能说程序是可以适配,但水平有限,经验不够,还是另找高手实施。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PLC 和变频器 频器博客原创()
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


PLC 和变频器 频器博客原创()
多个字节的数据,最多为 255 个。

发送完最后一个字符后还可以连接 到一个发送完中断(端口 0 为 9,端口 1 位 26,见下表) 。


图 2:中断事件表
2


PLC 和变频器 频器博客原创()
发送缓冲区的格式如下表所示:
图 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


PLC 和变频器 频器博客原创()
图 4:接收缓冲区的格式 说明: 说明: T+0:接收字符计数,在接收到结束字符时自动清零 T+1:起始字符,在 SMB88(口 0)或 SMB188(口 1)中定义 T+2~T+244:接收到的数据字节 T+255:结束字符,在 SMB89(口 0)或 SMB189(口 1)中定义
和接收有关的寄存器及定义如下表所示:
4


PLC 和变频器 频器博客原创()
5


PLC 和变频器 频器博客原创()
图 5:接收有关寄存器 说明: 说明: 1、SMB86/SMB186:接收终止状态信息寄存器,含有接收终止原因的信息; 2、SMB88/SMB188:信息起始位字节(如发送的信息有起始位,将把此寄存 器的内容和接受信息的每一字节相比较来, 检测确认后续字节是否是信息。

因此, 在编程时,需要在通讯初始化时,把信息启动位字节传入 SMB88 或 SMB188) ; 3、SMB89/SMB189:信息停止位字节(如发送的信息有停止位,将把此寄存 器的内容和接受信息的每一字节相比较来, 检测确认信息是否已传送完毕。

因此, 在编程时,需要在通讯初始化时,把信息启动位字节传入 SMB89 或 SMB189) ; 4、SMB90/SMB190:信息空闲状态的时间(ms) ,空闲线时间后接受的第一 个字节是信息的开始; 5、SMB94/SMB194:接受的最大字符数(1~255) 。


三、编程步骤 初始化通讯参数。

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)中断到
6


PLC 和变频器 频器博客原创()
中断程序,并且开中断(ENI) 。

● 一般还要利用 SMB34 定义一个定时中断,来定时发送数据(一般 为 50ms,即间隔发送数据的时间) 。

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

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

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

● 接收完中断子程序的任务是接收数据完成后重新连接 SMB34 的定 时中断,准备发送数据。

四、例程 本例的主要作用是利用甲机控制乙机的电机星-角起动,乙机控 制甲机的电机星-角起动。

I/O 分配如下所示:
发送和接收数据缓冲区的分配如下所示:
7


PLC 和变频器 频器博客原创()
甲机(2 号站)程序梯形图: 甲机(2 号站)程序梯形图: 主程序: 主程序:
8


PLC 和变频器 频器博客原创()
初始化子程序(initialize) : 初始化子程序(initialize)
9


PLC 和变频器 频器博客原创()
10


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

相关文档
最新文档