S7―200自由口通信的原理及学习建议

合集下载

S7_200PLC与PC自由口通讯的多种实现方法

S7_200PLC与PC自由口通讯的多种实现方法

S7-200PLC与PC自由口通讯的多种实现方法1 引言西门子S7-200PLC是德国西门子公司生产小型PLC。

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

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

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

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

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

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

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

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

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

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

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

S7-200编程软件为STEP7-Micro/WIN32,该软件有STL、FBD和Ladder三种编程模式,有SIMATIC指令和IEC131-3指令两种指令。

本文所给出范例是使用SIMATIC指令STL编程。

3 S7-200 PLC端通讯程序实现PLC程序分为主程序和中断程序。

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可以作为主站先向从站发送数据请求,然后等待从站的数据响应,也可以作为从站,首先等待主站发送过来的数据请求,然后根据请求的内容,按规则把相关数据返回给主站。

s7-200自由口通信

s7-200自由口通信

S7-200自由口通信简介S7-200是一款广泛应用于低端自动化控制领域的PLC,可以满足各种控制要求。

在控制系统中,一个PLC通常需要与其他设备进行通信,以实现更加复杂的控制功能。

而S7-200具有自由口通信功能,可以方便地与其他设备进行通信,为控制系统的设计提供了更多的选择。

自由口通信的概念S7-200的自由口通信,是指使用自由口功能实现与其他设备(如触摸屏、人机界面、变频器等)之间的通信。

在PLC控制系统中,S7-200自由口通信的应用非常广泛。

通过配置相应的参数和指令,S7-200可以方便地实现与其他设备之间的数据交换和控制指令传输。

自由口通信的优势相比其他通信方式,S7-200的自由口通信具有许多优势:方便易用S7-200自由口的设置非常简单,用户只需要根据实际需要设置相应的参数即可。

并且S7-200具备很好的兼容性,能够与其他设备快速实现数据交换。

实时性强S7-200的自由口通信实时性非常好,数据传输速度快,通讯延时很低。

这一优势使得S7-200在高速控制和监控场合得到广泛应用。

带宽宽敞S7-200自由口的带宽非常宽敞,可以同时实现多个任务和数据的传输。

这一优势使得S7-200具有非常好的扩展性和适应性,可以满足各种不同应用场合的需求。

自由口通信的应用示例通讯协议S7-200可以通过自由口通信与其他设备进行通讯,常用的通讯协议包括Modbus、Profibu、Devicenet等。

在S7-200的通讯模块中,可以通过配置相应的参数和指令,非常方便地实现与这些通讯协议之间的通信。

数据交换在PLC控制系统中,数据交换是一个非常重要的环节。

通过S7-200的自由口通信,用户可以快速实现控制器之间的数据交换,提高控制系统的性能和稳定性。

例如,在变频器控制系统中,S7-200可以通过自由口和变频器进行数据交换,以实现更加复杂的控制功能。

远程监控S7-200的自由口通信可以实现远程监控和数据采集。

S7_200PLC与PC自由口通讯的多种实现方法

S7_200PLC与PC自由口通讯的多种实现方法

S7-200PLC与PC自由口通讯的多种实现方法1 引言西门子S7-200PLC是德国西门子公司生产小型PLC。

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

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

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

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

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

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

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

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

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

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

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

S7-200编程软件为STEP7-Micro/WIN32,该软件有STL、FBD和Ladder三种编程模式,有SIMATIC指令和IEC131-3指令两种指令。

本文所给出范例是使用SIMATIC指令STL编程。

3 S7-200 PLC端通讯程序实现PLC程序分为主程序和中断程序。

西门子S7-200 自由口通信实用文档

西门子S7-200 自由口通信实用文档

主题:应用探讨—S7-200 自由口通信—发帖整理强大而灵活的自由口通信能力,是S7-200系统的一个重要特点。

S7-200 CPU的RS485通信口提供了建立在串行通信基础上的“自由”通信能力,数据传输协议完全由用户程序决定。

通过自由口方式,S7-200可以与串行打印机、条码阅读器等通信。

而S7-200的编程软件也提供了一些通信协议库,如USS协议库和MODBUS RTU从站协议库,它们实际上也使用了自由口通信功能。

开设本话题的目的,在于澄清自由口通信的基本概念,强调使用中的要点,讨论应用的常见问题。

经过此次集中交流,解决了如下一些问题:1. 自由口通信基本概念2. 自由口通信编程指令的使用和技巧3. 自由口通信常见问题4. 产品功能建议更多信息请参考下面文档。

“下载中心”参考文档:文档编号“1109582”——S7-200《可编程控制器系统手册》文档编号“A0136”——《西门子 S7-200•LOGO!•SITOP参考》以下为本次探讨的发帖整理,查看原始交流内容请点击此处。

1.自由口通信基本概念(1楼——5楼)2.自由口通信编程指令的使用和技巧(6楼——15楼)3.自由口通信容易犯的错误(16楼——24楼)4.产品功能建议(25楼——27楼)quote:以下是引用BABU在2011-01-20 15:17:08的发言:我回来了,项目终于做完了,可以回家过年了,:)。

自由口通信真是折腾的我好惨啊,简单回顾一下,希望对像我这样的菜鸟有些借鉴作用。

先感谢一下西门子论坛和热线,没少骚扰他们。

在完全没有准备的情况下甲方又加进一个仪表,做什么自有口通信,晕阿!没办法,迎着上吧!网上搜资料,看手册,越看越糊涂!时间紧迫,还是直接上手做吧。

首先是把PLC和仪表连接起来,可仪表的口是rs232的,热线工程师告诉我得做rs232/485的转换,打车到市场上买个转换器(打车钱比设备钱还多,可见现场多么偏僻阿),听卖转换器的老板给我分析了一下每种的区别——不光是价格的区别,说实在的,当时非常惭愧,老板懂的比我多多了。

西门子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自由口通信的原理及学习建议

S7-200自由口通信的原理及学习建议

S7-200自由口通信的原理及学习建议S7-200自由口通信是一种基于西门子PLC控制器的通信技术。

该技术允许通过在PLC控制器的自由口接口上配置通信参数和协议,实现不同设备之间的数据交换和信息传输。

这种通信方式极大地扩展了PLC控制器的应用场景和功能性,在工业自动化领域具有广泛的应用价值。

S7-200自由口通信的原理是基于串行通信技术,通过自由口接口以特定的通信协议进行数据传输。

通信过程分为发送端和接收端两个部分。

发送端将要传输的数据按照指定的协议进行打包,然后通过串口发送到接收端。

接收端通过串口接收到数据后,根据协议把数据解析出来,并进行处理。

最终,接收端将处理后的数据返回给发送端确认收到,完成了数据的传输。

整个通信过程主要依赖于自由口通信模块和软件的支持和配合实现。

要学习和掌握S7-200自由口通信技术,需要从以下几个方面入手:首先,需要具备一定的PLC控制器编程基础。

熟练掌握与掌握西门子PLC控制器相关的编程语言和软件工具,并了解基本的电气知识和控制系统原理等。

只有了解这些基础知识,才能更深入地理解和运用自由口通信技术。

其次,需要了解不同的通信协议和方式。

S7-200自由口通信技术支持多种协议,如Modbus、Profibus等,还可以通过自由口通信模块配置自定义协议。

因此,需要根据不同的应用场景来学习和了解相应的协议和方式,才能更好地实现数据交换和信息传输。

第三,需要学习和掌握自由口通信模块的使用和配置。

了解自由口通信模块的工作原理,能够选择合适的模块和配置通信参数,以及处理通信异常和错误,是掌握自由口通信技术的重要内容。

最后,需要进行实际操作和实践。

通过实际的案例和应用场景,练习和实践自由口通信技术,掌握实现通信工程的方法和技巧,不断提升技能水平。

总之,S7-200自由口通信技术是一个重要的控制系统通信技术,对于提高工业自动化系统的效率和控制精度具有重要的作用。

学习和掌握S7-200自由口通信技术需要有较强的编程基础、通信协议和模块的配置技能、以及实践操作和应用实例的支撑。

详细介绍S7-200SMART的自由口通信

详细介绍S7-200SMART的自由口通信

详细介绍S7-200SMART的自由口通信
学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信:
1)modbus RTU通信
2)PPI协议通信
3)USS协议通信
4)自由口通信
何为自由口通信呢?
前三种通信必须要PLC和与其通信的设备支持相同的通信协议,如果两者之间没有共同的通信协议则需要用到自由口通信。

自由口通信也称无协议通信,需要根据对方设备的通信数据格式编写一个临时协议,不仅需要编程人员学会如何编写程序,还需要了解对方的通信数据格式,所以对编程人员要求较高,随着标准协议(modbus,USS等)普及,自由口应用越来越少,但是对于一下小的设备如扫码枪等,并没有集成标准通信协议,所以只能选用自由口通信,Moubus和USS其实是自由口的一个特例。

很多人碰到自由口通信就手足无措了,其实只要掌握规律,自由口通信不一定很难。

为此我总结了自由口通信的基本步骤:
1)读懂对方的数据格式。

串行通信中,数据是一位一位的进行发送,也就是0和1。

为了能够准确的将数据发送过去,往往会加上1个起始位,1个校验位,1个停止位(无校验是为2个停止位)如图1-1所示。

图1-1
我们就以Modbus RTU为例详细看一下串口通信中数据是如何发送和就收的。

ModbusRTU代码系统如下:
·1个起始位。

·7或8个数据位,最小的有效位先发送。

一文读懂S7-200SMART自由口通信!

一文读懂S7-200SMART自由口通信!

一文读懂S7-200SMART自由口通信!学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信:1)modbus RTU通信2)PPI协议通信3)USS协议通信4)自由口通信何为自由口通信呢?前三种通信必须要PLC和与其通信的设备支持相同的通信协议,如果两者之间没有共同的通信协议则需要用到自由口通信。

自由口通信也称无协议通信,需要根据对方设备的通信数据格式编写一个临时协议,不仅需要编程人员学会如何编写程序,还需要了解对方的通信数据格式,所以对编程人员要求较高,随着标准协议(modbus,USS等)普及,自由口应用越来越少,但是对于一下小的设备如扫码枪等,并没有集成标准通信协议,所以只能选用自由口通信,Moubus和USS其实是自由口的一个特例。

很多人碰到自由口通信就手足无措了,其实只要掌握规律,自由口通信不一定很难。

为此我总结了自由口通信的基本步骤:1)读懂对方的数据格式。

串行通信中,数据是一位一位的进行发送,也就是0和1。

为了能够准确的将数据发送过去,往往会加上1个起始位,1个校验位,1个停止位(无校验是为2个停止位)如图1-1所示。

图1-1我们就以Modbus RTU为例详细看一下串口通信中数据是如何发送和就收的。

ModbusRTU代码系统如下:·1个起始位。

·7或8个数据位,最小的有效位先发送。

·1个奇偶校验位,设成无校验则没有。

·1个停止位(有校验时),2个Bit (无校验时)。

数据格式的描述如下表:11-bit 字符帧(BITl-BIT8为数据位):起始位 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8 校验位 停止位10-bit 字符帧(BITl-BIT7为数据位):起始位 Bit1Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 校验位 停止位通信中要保证通信双方要有相同的波特率,数据格式,奇偶校验位。

西门子S7-200PLC如何通过自由口通信控制变频器运行

西门子S7-200PLC如何通过自由口通信控制变频器运行

西门子S7-200PLC如何通过自由口通信控制变频器运行一、S7-200如何通过自由口通信控制西门子变频器的运行1、西门子变频器的通信协议是固定的。

如A、A′格式。

控制电机的启停用A′格式,要改变变频器的运行频率,使用A格式。

2、S7-200PLC根据西门子变频器的通信协议,通过自由口发送数据到变频器中,实现对西门子变频器的正转、反转、停止及修改运行输出频率。

二、西门子变频器通信协议总和校验计算:频率值对应的ASCII码:频率数据内容H0000~H2EE0变成十进制即为0~120Hz,最小单位为0.01Hz。

如现在要表示数据10Hz,即为1000(单位为0.01Hz),1000转换成十六进制为H03E8,再转换成ASCII码为H30H33H45H38。

总和校验代码总和校验代码是由被检验的ASCII码数据的总和(二进制)的最低一个字节(8位)表示的2个ASCII码数字(十六进制)三、S7-200自由口通信1、通信端口控制字节2、发送指令XMT与接收指令RCV说明:(1)发送与接收指令可以方便地发送或接收最多255个字节的数据。

(2)PORT指定发送或接收的端口。

(3)TBL指定发送或接收数据缓冲区,第一个数据指定发送或接收的字节数。

(4)发送完成时可以调用中断,接收完成时也可调用中断.四、项目实现用S7-200PLC自由口通信方式控制西门子变频器,拖动电机正转启动与停止,并能改变变频器的运行频率。

设变频器站号为1.正转启动的代码是:H05H30H31H46H41H31H30H32H38H31停止的代码是:H05H30H31H46H41H31H30H30H37H46把变频器运行输出频率改为20Hz的代码是:H05H30H31H45H44H31H30H30H31H04H42H351、设置变频器参数2、编写PLC自由口通信控制程序总结:1、作自由口通信时,一定要先研究要通讯设备的通信协议和数据格式。

2、作自由口通信时,如果要求PLC既发送数据,又接收数据。

超详细讲解PLC自由口通讯——以S7-200为例。

超详细讲解PLC自由口通讯——以S7-200为例。

超详细讲解PLC自由口通讯——以S7-200为例。

展开全文主要内容:•S7-200 PLC串口通讯概览•S7-200 PLC自由口通讯基础•S7-200 PLC自由口通讯指令•S7-200 PLC自由口通讯常问问题(1)概览S7-200串口通讯主要包括:1)Modbus—S7-200PLC与支持Modbus RTU协议的第三方设备通讯•RTU Master-Protocol(RTU主站协议)•RTU Slave-Protocol(RTU从站协议)2)USS—S7-200PLC与SIEMENS驱动设备的通讯(如MM440等)3)自由口通讯—S7-200PLC与自由协议的第三方设备间的通讯S7-200系列PLC可以方便地同计算机、打印机、变频器、扫描仪等其它的第三方设备进行无障碍通讯。

Modbus通讯和USS通讯是自由口通讯的特例。

对于S7-200系列的PLC而言,本体上存在着一个或两个485通讯接口,这种接口即可实现S7-200串口通讯的功能,这类串口既可以做编程和监控,也可以做自由口通讯。

但在其运行自由口通讯程序时,无法对其进行监控。

这是因为对于同一个口而言在同一个时刻只能支持一种协议,而编程与下载的协议对于S7-200PLC而言是PPI协议,所以一旦在程序运行过程中使得它做自由口通讯的状态则无法对其监控和下载。

下表是Modbus、USS以及自由口通讯的一些参数:对于OSI七层模型而言,Modbus通讯、USS通讯和自由口通讯所处的位置可从上图中看到。

(2)自由口通讯•S7-200 CPU的通信口可以设置为自由口模式。

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

•所谓的自由口通讯,就是通讯协议是由用户自由定义的。

•对于S7-200 PLC而言,基于本体自带的485端口的网络所应用的协议,除了PPI协议以外,其他都是自由口协议。

例如USS协议、Modbus协议等等都是特定的自由口通讯协议。

西门子自由口通讯知识

西门子自由口通讯知识

S7-200系列自由口通讯的实现及应用1 引言为了达到和通讯协议已知的控制设备进行数据交换,以提高自动化控制系统的灵活性,很多plc制造商都相继的开发出了方便、灵活的自由口通讯方式,例如三菱公司的fx2系列p lc, omron公司的cjm1系列的plc,西门子公司的s7-200系列plc等都提供了自由口通讯模式。

自由口通讯是指plc提供了串行的通讯硬件,和用于定制通讯协议的相关指令,在控制系统中,当要和plc连接的控制设备的通讯协议已知时,可以在plc中进行编程定制通讯协议,和控制设备进行数据通讯。

本文主要介绍西门子s7-200的自由口和计算机的串口进行的通讯,计算机中采用visual basic进行编程,从而实现计算机与可编程控制器的直接控制。

该通讯方式具有效率高、容易实现、通讯硬件简单、容易配置等特点在工业控制领域中被广泛应用。

2 s7-200通讯指令及特殊字节采用自由口通讯方式时,s7-200上的rs485口完全由用户控制,可以与任何协议已知的设备进行通讯,在这种情况下通讯协议完全由用户制定,为此,s7-200提供了用于进行通讯协议定制的特殊标志位以及相关的通讯指令。

特殊标志字节s7-200用于自由口通讯模式定义的特殊标志字节有smb30和smb130,smb30用于s7-200的端口0的通讯,smb130用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb 130为例,介绍其组成。

smb130各位的含义如下:pp:两位用于选择通讯的校验方式当这两位的组合是:?00无校验 01 偶校验 10 无校验 11 奇校验d:这一位用于选择通讯的数据位数 d=1时7个数据位,d=0时8个数据位bbb:用于选择自由口通讯是的波特率,这三位的组合和通讯波特率的关系如下:000 ——38400bps?001 ——19200bps?010 ——9600bps?011 ——4800bps?100 ——2400bps?101 ——1200bps?110 —— 600 bps?111 —— 300 bps?mm: 用于通讯协议的选择,当这两位的组合是:00 ppi从站模式 01 自由口通讯模式 10 ppi主站模式接收信息的状态字节s7-200在自由口通讯时用于接受信息的状态有smb86和smb186,smb86用于s7-200的端口0的通讯,smb186用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb186为例,介绍其组成。

S7-200自由口通信

S7-200自由口通信

S7-200自由口通信S7-200 CPU的通信口可以设置为自由口模式。

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

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

此串行字符通信的格式可以包括:∙一个起始位∙7或8位字符(数据字节)∙一个奇/偶校验位,或者没有校验位∙一个停止位自由口通信速波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500。

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

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

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

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

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

自由口通信要点应用自由口通信首先要把通信口定义为自由口模式,同时设置相应的通信波特率和上述通信格式。

用户程序通过特殊存储器SMB30(对端口0)、SMB130(对端口1)控制通信口的工作模式。

CPU通信口工作在自由口模式时,通信口就不支持其他通信协议(比如PPI),此通信口不能再与编程软件Micro/WIN通信。

CPU停止时,自由口不能工作,Micro/WIN就可以与CPU通信。

通信口的工作模式,是可以在运行过程中由用户程序重复定义的。

如果调试时需要在自由口模式与PPI模式之间切换,可以使用SM0.7的状态决定通信口的模式;而SM0.7的状态反映的是CPU运行状态开关的位置(在RUN时SM0.7="1",在STOP时SM0.7="0")自由口通信的核心指令是发送(XMT)和接收(RCV)指令。

S7-200系列PLC自由口通信知识分享(3)

S7-200系列PLC自由口通信知识分享(3)

S7-200系列PLC自由口通信知识分享(3)在前面的文章中与大家分享了自由口通信中的发送功能,那么进行就跟大家聊聊自由口通信中的接收功能,自由口通信中的难点就是在于接收功能的使用,当PLC通过通信端口把数据发送给下位设备后,下位设备会根据PLC发送过去的信息内容回传相应的数据给PLC,这时候PLC就需要使用接收功能进行数据的接收,S7-200系列PLC提供了一条接收指令(RCV)用于接收下位设备返回来的信息。

指令格式如下所示:当PLC接收完下位设备回传回来的数据后,PLC会产生相应的中断事件来告知编程人员信息接收完成,此时可以编写相应的程序提取有效数据,并对这些有效数据进行转换,转换成可读性的数据。

S7-200系列PLC提供了中断事件23和中断事件24分别作为端口0和端口1的接收完成中断事件号。

在PLC的信息发送过程中,PLC是主动方,会根据需要发送的数据个数进行数据的发送,当发送完成后,PLC会自动产生相应发送完成中断,而对于接收来讲,PLC是被动方,只负责数据的接收,当PLC的端口使能了接收功能后,PLC处于等待信息的接收状态,有数据过来就接收,但是接收的数据是否是有效的数据,什么时候接收完了PLC并不知道,此时就要求我们编程人员需要设置好消息的起始和接收条件,当起始条满足了,PLC 把接收到的数据放入到接收缓冲区中,当满足了结束条件,PLC关断接收功能,并产生接收完成中断。

用于判断消息的的起始和结束条件有很多种方式,但用的比较多可能就以下几种方式:今天我们先聊一聊通过起始符作为信息的起始和通过结束符作为信息的结束判断的过程及程序的设置,S7-200系列的PLC提供了两个系统存储区用于存储起始符(SMB88)和结束符(SMB89)(这里以端口0为例说明),因此若需要使用起始符和结束符做为消息的起始和结束的的判断,则需要把起始符和结束符分别放到SMB88和SMB89中。

当PLC在接收数据的过程中,会对接收的数据与起始符进行对比,如果与起始符不相等,这说明不是有效性的数据,不放入接收缓冲器中,会把接收到的数据丢弃,重新接收,若接收到的数据与起始符相等,则PLC会把接收到的数据放到接收缓冲区中,同时记录接收字符个数的存储器的值加1。

如何实现S7-200SMART自由口通讯

如何实现S7-200SMART自由口通讯

如何实现S7-200SMART自由口通讯自由口通讯协议的关键条件定义开始接收消息和停止接收消息的条件。

1空闲线检测:设置il=1,sc=0,bk=0,smw90/smw190>0 空闲线条件定义为传输线路上的安静或者空闲的时间。

SMW90/SMW190中是以ms为单位的空闲时间。

在该方式下,从执行接收指令开始起动空闲时间检测。

在传输线空闲的时间大于等于SMW90/SMW190中设定的时间之后接收的第一个字符作为新信息的起始字符。

接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器。

空闲线时间应大于以指定波特率传送一个字符所需要的时间。

空闲线时间的典型为以指定的波特率传送3个字符所需要的时间。

传输速率为19200bit/s时候,可设置空闲时间为2ms。

对于二进制协议,没有特定起始字符的协议或指定了消息之间最小时间间隔的协议,可以将空闲线检测用作开始条件。

2起始字符检测:设置il=0,sc=1,bk=0,忽略smw90/smw190起始字符是消息的第一个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志。

接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中。

起始字符检测一般用于ASCII协议。

3空闲线和起始字符:设置il=1,sc=1,bk=0,SMW90/SMW190大于0满足空闲线条件之后,接收消息功能查找指定的起始字符。

如果接收到的字符不是smB88/smb188指定的起始字符,将开始重新检测空闲线条件。

在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略。

这种方式尤其适合用于通讯链路上有多台设备的情况。

4 break检测:设置il=0,sc=0,bk=1,检测smw90/smw190和smb88/smb188以接收到的break(断开)作为接收消息的开始。

当接收到的数据保持为0的时间大于完整字符(包含起始位,数据位,奇偶校验位和停止位)传输的时间,表示检测到break。

西门子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自由口通信知识分享(5)

S7-200自由口通信知识分享(5)

S7-200自由口通信知识分享(5)在前面主要跟大家分享了下自由口通信中的一些基本概念,使用的指令及自由口通信的接收功能中如何进行消息起始的判断,那么今天跟大家分享下自由口通信中使用接收功能接收信息时,如果进行消息结束条件的判断。

因为只有当PLC接收到结束条件时,PLC才会认为是消息接收完成,此时才会关断PLC端口的接收功能,同时产生一个接收完成中断。

在自由口通信接收功能中,消息结束条件的判断,主要会用三种方式,第一种方式使用结束符作为消息的结束判断(若有特定的结束符的时候,可以使用结束符作为消息的结束条件判断)。

第二种,使用消息定时器作为消息的结束条件判断。

第三种,通过字符定时器作为消息结束条件的判断。

对于第一种通过结束符作为消息的结束判断,在自由口通信知识分享(3)这篇文章中已经有跟大家提到过,今天我们主要说说第二种的消息结束判断方式——消息定时器作为消息的结束判断条件。

这里主要跟大家分享下消息定时器用于判断消息结束的过程已经如何使用。

消息定时器判断消息结束的过程:所谓的消息定时器,并不是说需要编程人员去编写一个定时的程序来做判断,而是PLC自动会去做判断,跟我们在前面一篇文章中提到的空闲线时间的检查一样的道理。

若设定了消息的结束判断条件为消息定时器,PLC会在消息的起始条件满足后,开始计时,当计时时间到后,关断接收功能,这段计时的时间就是消息定时器定时的时间,如下图所示:当消息起始条件满足后,PLC会开始进行字符的接收,并把接收到的字符存储到接收缓冲区中,同时启动消息定时器,开始检查消息定时器的条件,在消息定时器所规定的时间还没有到时,接收到的字符都会存入到接收缓冲区中,当消息定时器设定的定时时间到后,PLC 会关断接收功能,终止接收,消息定时器时间到后,发送过来的字符,PLC不进行接收。

如果把这个接收过程比喻成我们人与人交流,例如,A在给B汇报一件事情,这一件事情的内容,就是我们通信中的信息,当A开始汇报的时候,按照预算,这个汇报最多十分钟,可以汇报完,那如果给A十五分钟的时间做汇报,能否汇报完呢?答案当然是肯定的。

西门子S 自由口通信心得

西门子S 自由口通信心得

西门子S7-200 PLC自由口通信学习摘要本文以s7-200 PLC与智能电表通信为范例(电表波特率为1200bps,偶校验,8位数据位)一、PLC自由口协议初始化1、根据智能设备通信时使用的波特率、校验方式、起始位等参数配置PLC自由口,即将上述参数用MOVB指令写入SMB30,SMB30格式如下图所示:初始化子程序如下:二、声明中断发送数据和接收完数据都能链接到中断程序,发送完中断与接收完中断的中断号分别为9和23,中断可在初始化子程序中声明三、编写自由口要发送的报文子程序严格按智能设备报文格式,将相应命令,将指令长度(字节)MOV到任意的字节单元,例如vb10。

再用MOV_B或MOV_W等指令传送到vb11开始后连续的字节中。

报文子程序上图为读取电表标识编码为9010(即正向有功总电能)的指令四、用XMT指令发送报文XMT指令需指定两个参数,第一个为要发送的报文的起始地址(本例为VB10),第二个为使用的通信口(本例为0口)。

可以用定时器控制某一CPU内部触点来控制报文发送的周期。

要注意的是,XMT指令必须用上升沿“—|P|—”触发,否则CPU将会报错,CPU将认为有多个XMT/RCV指令同时执行,这是不允许的!发送报文子程序五、利用发送完中断启动接收数据指令当报文用XMT发送完毕,会产生9号中断。

我们可以利用中断子程序捕捉相应的中断,并在中断程序中编写相应事件!在步骤1中已经声明了9号中断连接到中断子程序“发送完中断”。

因为此我们在“发送完中断”中断子程序中使用RCV指令即可接收到由通信口返回的数据。

即将数据送到VB100.“发送完中断”中断子程序总结一下编程原则:这里我们总结以下自由口编程的一般原则:1. SM0.1 触发端口初始化,连接发送完成和接收完成中断(中断事件9 和23)2. SM0.0 触发RCV 指令3. XMT 指令用上升沿触发,并在指令运行前先保证端口 0 的停止接收4. 根据将要接收信息的不同,合理设置SMB87~SMB945. 必须满足发送结束条件(如字节个数,结束字符等)才能产生9号中断。

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

S7―200自由口通信的原理及学习建议
摘要:本文从S7-200 PLC自由端口通信协议入手,讲述自由端口协议的基本概念、自由端口通信与USS、MODBUS RT的关系;利用自由端口通信数据发送和数据接收的梯形图实例讲述了自由端口的编程方法。

自由端口通信的ASCII码和二进制码协议区别,总结了自由端口协议的功能及用途,文章最后作者根据自身经验,提出了学习自由端口协议的几点建议。

关键词:S7-200 PLC自由端口协议ASCII二进制功能用途学习建议
中图分类号:TP336 文献标识码:A 文章编号:1007-9416(2015)04-0037-01
强大而灵活的自由口通信能力,是S7-200系统的一个重要特点。

S7-200 PLC的通信端口按照串行485通信总线规范设计,并具备自由通信功能。

在自由通信模式下,通信数据的发送、接受协议由编程人员自行规定,但一般都是按照受控设备的支持的通信协议编写自由通信协议。

在自由通信协议的平台上,S7-200PLC可以方便的与上位机的第三方软件(组态王、MSG等)、扫描设备、编码器、单片机进行数据交换。

USS协议库和MODBUS RTU从站协议库是S7-200
的编程软件固有的通信协议库,这些协议库都使用了自由口通信功能。

正确理解S7-200的自由口通讯对于自控人员具有极其重要的意义。

1 自由口通信基本概念
西门子S7-200系列PLC的通讯端口都具备自由口通信功能。

所谓自由口协议是指通过用户程序控制CPU主机的通信端口的操作模式来进行通信。

只有在PLC处于运行模式时,其通信端口才能工作在自由端口模式。

当PLC从RUN 模式切换到STOP模式时,其自由通信协议模式自动关闭,并将通信端口切换到PPI通信模式。

与自由端口通信相关的指令有数据发送指令XMT和数据接收指令RCV。

自由端口的数据发送梯形图程序如图1。

在图1中,当EN端为高电平时,PLC的通信端口PROT1就会将VB100及其后的若干字节按一定的比特率发送出去。

发送数据的比特率、数据位数、校验位设置、均在特殊寄存器SMB130中设置(如果是端口0,则在SMB30中设置)。

每次发送数据的总数最大值为255个字符。

自由端口的数据接收梯形图程序如图2。

当EN端获得高电平后,PLC的通行端口PROT1处于接受数据待命状态。

一旦有符合设置要求的数据(比特率、数据位数、数据接收起始位等),PLC就将端口的数据依次接受至VB200开始的
寄存器中,一条完整的信息接收完成后即产生一次接收完成中断。

接收数据的比特率、数据位数、校验位设置、均在特殊寄存器SMB130中设置(如果是端口0,则在SMB30中设置)。

每次接收数据的总数最大值为255个字符。

2 自由口通信ASCII码与二进制协议
不管是什么通讯,传送的都是二进制代码。

ASCII码与二进制协议的区别在于代码所表示内容的方式不同。

如果使用ASCII代码,则数据不能直接用于数学运算,而必须转换成普通的二进制代码。

这样会加重程序负担。

但是ASCII代码用于通讯有一个好处,起始字符与结束字符比较容易确定和判别,它们一般不会出现在数据区。

而用二进制代码通讯,数据无需转换即可直接使用(高低位字节可能需要交换),PLC的负担较小。

但是起始字符和结束字符经常会与数据重复。

因此,用二进制代码通讯,通常是靠字符数和定时器来确定接收终点,主从站之间的步调协调非常重要。

3 自由口通信功能的用途
通过RS-232或RS-485串口连接多种智能仪表或RTU,根据智能仪表或RTU定义的通信协议编写用户程序与智能仪表或RTU通信。

使用USS协议与西门子MicroMaster系列变频器通信,STEP7-Micro/WIN提供USS协议库,S7-200 CPU是主站,变频器是从站。

创建用户程序来模拟另外一种网络上的从站器件。

例如S7-200的用户程序模仿一个Modbus从站。

STEP7-Micro/WIN 提供Modbus协议库。

采用自定义通信协议与PC通信。

PC上的应用软件可以采用此方法方便的访问S7-200的数据。

这是第三方软件访问S7-200PLC比较简便,廉价的方法。

4 学习自由口通信的建议
对于自由口通讯,西门子的很多资料都做了比较详细的介绍,其中还包含了大量的例子程序。

由于通讯的不可见性,很多人还是不能很好的掌握,我建议大家:
(1)理解什么是通讯、什么是串口、什么是232、什么是485?没有过硬的硬件知识是不可能做出通讯的,你连线都不知道怎么接,怎么调试你的程序?(2)仔细阅读西门子关于通讯的资料,不需要多只需要精,因为各种版本的资料基本是一样的,关键就是SMB30、SMB86、87、88、89、SMW90、92、SMB94自己控制通讯过程需要SMB2,把这些弄明白了,才有可能做出通讯程序。

(3)使用PC的通讯软件协助调试,有了PC的通讯软件可以看见通讯过程中的数据,能够更方便的调试程序。

(4)理解各种通讯协议。

大家要注意串口通讯和协议是2码事,不论是PPI、MODBUS 还是USS它们都有自己的协议规范,根据规范来写你就可以实现这种通讯。

只不过PPI是不公开通讯协议的,没有办法
写而已!
最后建议大家自己做通讯,起码会做!至于用不用自己做就要根据你的实际情况了,西门子提供的库也是很方便的!。

相关文档
最新文档