s7-200自由口通信

合集下载

s7-200自由口通信

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 ⾃由⼝通信概述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-200自由口模式通信1

S7-200自由口模式通信1

S7-200自由口模式通信1本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC 从站各寄存器的读/写操作。

---- 计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC 从站各寄存器的读/写操作。

----计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。

通信协议----在自由口模式下,通信协议是由用户定义的。

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

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

指令格式定义计算机每次发送一个33字节长的指令来实现一次读/写操作,指令格式见表1 说明:1.起始字符----起始字符标志着指令的开始,在本例中被定义为ASCII码的"g",不同的PLC从站可以定义不同的起始字符以接收真对该PLC的指令。

2.指令类型----该字节用来标志指令的类型,在本例中05H代表读操作,06H代表写操作。

3.目标PLC站地址----目标PLC站地址占用指令的B2、B3两个字节,以十六进制ASCII码的格式表示目标PLC 的站地址。

4.目标寄存器地址----在PLC内部可以用4个字节来表示一个寄存器的地址(但不能表示一个位地址)。

前两个字节表示寄存器类型,后两个字节表示寄存器号。

00 00(H): I寄存器区01 00(H): Q寄存器区02 00(H): M寄存器区08 00(H): V寄存器区例如:IB000的地址可表示为 00 00 00 00(H)VB100的地址可表示为 08 00 00 64(H)5.读/写字节数M----当读命令时,始终读回从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII 码后占用16个字节),可以根据自己的需要取用,M可以任意写入。

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

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自由口通信

通信要求:1起始位,1停止位,无检验,9600函数要求:1、起始符02,结束符03,16进制数据通讯;通讯地址范围A-Z(41-5A)2、校验算法,异或校验,校验位两个字节,高在前,低在后,分别用XH XL表示校验的高低字节;校验从开始字符后的第二个字符开始计算,运算到结束符前的校验的高校验位前字符;进行字节异或运算,最后异或的字节再拆开两位发送,如果最后的校验和为32;那么需要拆分成33,32进行发送。

发送函数要求:格式:02 ADD 43 XH XL 03;传入参数地址A-Z接受函数要求:格式:02 ADD 63 ** ** ** ** ** ** ** ** XH XL 03;返回参数:整数字符其中返回数据也属于ASCII码数据,需要转换成整形数据,并且小数点位置会动态变化,根据小数点的位置不同,动态计算数据。

发送数据:02 41 43 30 32 03接受数据:02 41 63 2B 30 30 30 2E 30 30 30 32 37 03 (0.0)需要返回0绿色表示起始位和停止位紫色表示传输数据的地址位(41是16#41,也就是地址A的ASCII的16#值)黄色表示传输的有效数据(2B是“+”的16#值,30是“0”的16#值,2E是“.”的16#“2B 30 30 30 2E 30 30 30”在PLC中相当于一个字符串“+0 0 0 . 0 0 0”,进制,<用于数据的解析>)红色表示校验数据的高低位,异或校验拆分后的值(如结果为16#27,则分成32<2的ASCII 码的16#值>,37<7的ASCII码的16#值>)程序思路:通信过程为一发一收通信首先发送规定指令,发送完成,PLC产生中断,中断号9(s7-200的PORT0口),中断程序则准备数据的接受当接受数据完成时,要判断数据是否为有效的数据,我们需要将数据包一步一步剥开,接受的数据是放在了一个连续的位置上(《RCV,VB100,0》数据在从VB101开始的位置存储),然后将数据包中的数据从地址位41(以此为例子)开始到黄色区域接受进行异或校验,得到16#27,将16#27进行高低位分离,同时转换成相应的ASCII的16#值(分离方法很多,s7-200中用HTA指令,一步到位,高低分离同时也转成相应的ASCII的16#值,小技巧)现在就要验证数据的有效性了,校验位数据和地址位(发送和接收一致)是否有效。

西门子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的转换,打车到市场上买个转换器(打车钱比设备钱还多,可见现场多么偏僻阿),听卖转换器的老板给我分析了一下每种的区别——不光是价格的区别,说实在的,当时非常惭愧,老板懂的比我多多了。

实验9:两台S7-200自由口通讯实验报告

实验9:两台S7-200自由口通讯实验报告

实验9:两台S7-200自由口通讯实验一.实验目的实现两台S7-200控制器的自由口通讯,并在此基础上实现由一台S7-200经由另一台S7-200对分拣系统模型的控制。

二.实验设备两台S7-200 PLC,RS485通讯电缆一条,PPI编程电缆两条。

三.实验步骤思路:自由口通讯的关键是对两台200 PLC的port口进行设置,通过相应的寄存器设置,使两个port口工作在自由口模式,然后利用相应的传送和接受指令,即可实现数据的通讯。

整个过程都通过编程来完成,硬件接线只需连接两台PLC的port口即可。

1.与port口有关的寄存器这里为了编程方便,两台200 PLC均选择其port0口进行编程,与port0口的相关寄存器及其作用如下SMB30:port0控制寄存器,其设置可以选择端口模式和通讯速率以及是否进行校验与port0口有关的接收、发送寄存器有SMB86,87,88,89,90,92,94等。

他们的具体含义见下图2.编程思路两台200 PLC本身并没有主从关系,但为了区分方便,规定传送控制指令的200 PLC为主PLC,而接收控制指令并连接分拣系统设备的200 PLC为从PLC。

在两台PLC的程序中,分别建立两个子程序,将与通讯口寄存器操作有关的部分全部写入这个子程序中,完成对通讯口的初始化。

在主PLC的程序中,连接两个中断程序,实现50MS发送一次数据的功能。

发送的数据结构为:起始+所要发送数据+结束字符。

所以在程序里对要传送的数据提供头尾字符,以使接收程序能够识别信息发送是否结束。

分拣系统的控制命令只有启动、停止复位,所以在新建的一个子程序中提供两个控制指令的值即可。

从PLC的控制程序中,为了与发送同步,加入了50MS的通断效果,使接收同步,同时在从PLC中编写分拣系统的控制程序。

3.程序详解1主站PLC程序主程序通讯初始化子程序控制字子程序定时中断子程序.发送结束中断子程序主程序通信初始化子程序复位子程序3.数据传送验证在两个PLC的状态表中插入首发数据的VB区,进行在线观察。

西门子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-200PLC自由口通讯开始结束条件

S7-200PLC自由口通讯开始结束条件

自由口通讯支持的开始条件1、空闲行检测:空闲行条件被定义为传输行中的静态或空闲时间。

当通讯行处于静态或空闲达到SMW90或SMW190中指定的毫秒数时,开始接收。

执行程序中的"接收"指令时,接收信息功能开始搜索空闲行条件。

如果在空闲行时间失效之前收到任何字符,接收信息功能会忽略这些字符,用来自SMW90或SMW190的时间重新启动空闲行计时器。

空闲行时间失效后,接收信息功能存储在信息缓冲区中随后接收的所有字符。

按照指定的波特率,空闲行时间应当始终大于传输一个字符(起始位、数据位、校验和停止位)的时间。

按照指定的波特率,空闲行时间的典型数值是三个字符时间。

用户将空闲行检测用做没有特定起始字符或指定信息间最小时间的二进制协议的开始条件。

设置: il = 1, sc = 0, bk = 0;SMW90/SMW190 = 空闲行超时(以毫秒为单位)。

空闲行检测时序图2、起始字符检测:起始字符是任何被用作信息第一个字符的字符。

当收到在SMB88或SMB188中指定的起始字符时,信息开始。

接收信息功能在接收缓冲区中将起始字符存储为信息的第一个字符。

接收信息功能忽略在起始字符之前接收的任何字符。

起始字符和在起始字符之后接收的所有字符存储在信息缓冲区中。

通常,您在ASCII协议中使用起始字符检测,在ASCII协议中,所有的信息以相同的字符开始。

设置: il = 0, sc = 1, bk = 0;SMW90/SMW190 = 无关紧要;SMB88/SMB188 = 起始字符。

3、空闲行和起始字符:"接收"指令可以使用空闲行和起始字符组合开始一则信息。

执行"接收"指令时,接收信息功能搜索空闲行条件。

找到空闲行条件后,接收信息功能寻找指定的起始字符。

如果收到起始字符之外的任何字符,接收功能重新开始搜索空闲行条件。

空闲行条件之前接收的所有字符均符合条件,起始字符之前接收的所有字符均被忽略。

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程序,经过辗转,一同学找我给点建议,本人对通信的经验实在是可怜,不敢乱说,只能说程序是可以适配,但水平有限,经验不够,还是另找高手实施。

详细介绍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个数据位,最小的有效位先发送。

超详细讲解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系列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-200自由口协议

西门子S7-200自由口协议

西门子S7-200自由口协议关于自由口通讯协议此协议为亚控公司为实现组态王与德国西门子公司SIMATIC S7-200系列PLC之间的通讯而制定的串行通讯协议,采用主从的问答方式,上位机为主呼方,下位机为应答方。

协议格式如下,最后一字节为校验字节,校验字节为前面所有字节的按位异或值。

上位机从PLC中读数据:上位机发送读指令:BYTE1: PLC地址 (1~255)BYTE2: 0x00 (读指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8-11: 保留BYTE12: 校验字节PLC应答:读成功时:BYTE1: PLC地址 (1~255)BYTE2: 0x00 (读指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8-n*m+8: 数据BYTEn*m+9: 校验字节读失败时:BYTE1: PLC地址 (1~255)BYTE2: 0x80 (读指令失败代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8: 0x01(校验错代码)BYTE9-11: 保留BYTE12: 校验字节上位机向PLC中写入数据:上位机发送写指令:BYTE1: PLC地址 (1~255)BYTE2: 0x01 (写指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1 n)BYTE7: 数据类型(1,2,4 m)BYTE8-11: 写入数据BYTE12: 校验字节PLC应答:写成功时:BYTE1: PLC地址 (1~255)BYTE2: 0x01 (写指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1 n)BYTE7: 数据类型(1,2,4 m)BYTE8-11: 保留BYTE12: 校验字节写失败时:BYTE1: PLC地址 (1~255)BYTE2: 0x81 (写指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1 n)BYTE7: 数据类型(1,2,4 m)BYTE8: 0x01(校验错代码)BYTE9-11: 保留BYTE12: 校验字节由于采用自由口通信方式后,梯形图程序通过接收中断和发送中断以及发送指令(XMT)控制通信口的操作。

S7-200自由口通讯教程及编程实例

S7-200自由口通讯教程及编程实例

S7-200自由口通讯教程及编程实例S7-200自由口通讯自由口模式允许应用程序控制S7-200 CPU的通讯端口,使用PC/PPI电缆和自由口功能,可以将S7-200连接到带有RS-232兼容接口的多种设备,比如调制解调器。

这里我们将介绍如何用S7-200连接GSM调制解调器发送短消息,并通过这个例子来介绍应用S7-200自由口编程的一般原则时及应注意的问题。

在下面的例子中我们将用到:1. PC/PPI电缆(10位;9 600波特;DIP开关设置:0 1 0 1 1)2. 西门子S7-200 CPU22X3. TC35 Terminal GSM调制解调器4. 一个9直通针转接头(用来连结PC/PPI电缆与TC35 Terminal调制解调器)5. 一根九针直通电缆(用来连结计算机与TC35 Terminal调制解调器)6. STEP 7-Micro/Win V3.2或更高版本软件一、TC35 调制解调器AT指令简介要使用TC35发送短消息需要使用TC35的AT指令,我们首先介绍如何用Windows自带的超级终端连接TC35发送短消息。

1.用九针直通的电缆将TC35连接到计算机的串口上2.打开超级终端(开始à程序à附件à通讯à超级终端)3.为连接取名Connect to TC35T4.选择TC35连接的串口COM15.按照下图的参数设置端口。

19 200 bps为TC35默认的端口波特率,如果该波特率已被更改,请选择正确的波特率。

6.在窗口中键入AT回车测试与TC35的连接,如果连接正确,TC35将返回OK。

7.TC35可以发送两种格式的短消息,普通文本格式和PDU格式。

应用普通文本格式时,短消息内容以ASCII码格式直接输入,操作比较简单,缺点是只能发送英文短消息;应用PDU格式时,短消息内容以Unicode格式输入,可以发送任何文字,缺点是短消息内容需要转换成Unicode码,并且要把短消息按PDU格式打包,操作比较复杂(编程复杂)。

S7-200自由口通信ppt课件

S7-200自由口通信ppt课件
• XMT 指令完成后,会产生一个中断事件〔 Port 0为中断事件9, Port1为中断事件26〕。
• XMT 指令的缓冲区格式如下表所示:
S7-200
Hardware Software Workshop
设置阐明
• 任务方式定义
• XMT 指令
• RCV 指令
12
S7-200
Hardware Software Workshop
• RCV 指令的缓冲区格式如下表所示:
S7-200
Hardware Software Workshop
S7-200 自在口通讯
提纲
• 概述
• 设置阐明 • 任务方式定义 • XMT 指令 • RCV 指令
• 编程例如 • 自在口发送例如 • 自在口接纳例如
14
S7-200
Hardware Software Workshop
Q0.7
Q1.0 Q1.1
CPU 214
第三方PLC
条码阅读
S7-200
Hardware Software Workshop
概述
• 补充阐明:
• 〔1〕由于 S7-200 CPU 通讯端口是半双工通讯口,所以发送和接受 不能同时进展。
• 〔2〕S7-200 CPU 通讯口处于自在口方式下时,该通讯口不能同时任 务在其他通讯方式下。如不能端口1在进展自在口通讯时,又运用端 口1进展 PPI 编程。
RCV 指令
• RCV 指令可以从 S7-200 CPU 的通讯口接纳一个或多个数据字节,接 纳到的数据字节将被保管在接纳数据缓冲区内。
• RCV 指令完成后,会产生一个中断事件〔 Port 0为中断事件23, Port1 为中断事件24〕。特殊存放器 SMB86 和 SMB186 那么分别提 供Port0 和 Port1 的接纳信息形状字节。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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。

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

因为本例中PLC连续的发送两个字符,所以第一个字符帧的停止位结束后便立即发送下一个字符帧的起始位,之间数据线没有空闲状态。

假如PLC断续的发送这两个字符,那么当PLC发送完第一个字符帧的停止位后,数据线将维持一段时间空闲状态,再发送下一个字符帧。

字符传输的时间取决于波特率,如果设置波特率为9.6k,那么传输一个字符帧中的一位用时等于1/9600*1000000=104us,如果这个字符帧有11位,那么这个字符帧的传输时间等于11/9600*1000=1.145ms.自由口通信协议是什么?顾名思义,没有什么标准的自由口协议。

用户可以自己规定协议。

已知一个通信对象需要字符(字节)传送格式有两个停止位,S7-200是否支持?字符格式是由最基础的硬件(芯片)决定的;S7-200使用的芯片不支持上述格式。

S7-200是否支持《S7-200系统手册》上列明的通信波特率以外的其他特殊通信速率?通信速率是由最基础的硬件(芯片)决定的;S7-200使用的芯片不支持没有列明在手册上的通信速率。

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

用户程序通过特殊存储器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)指令。

在自由口通信常用的中断有"接收指令结束中断"、"发送指令结束中断",以及通信端口缓冲区接收中断。

与网络读写指令(NetR/NetW)类似,用户程序不能直接控制通信芯片而必须通过操作系统。

用户程序使用通信数据缓冲区和特殊存储器与操作系统交换相关的信息。

XMT和RCV指令的数据缓冲区类似,起始字节为需要发送的或接收的字符个数,随后是数据字节本身。

如果接收的消息中包括了起始或结束字符,则它们也算数据字节。

调用XMT和RCV指令时只需要指定通信口和数据缓冲区的起始字节地址。

XMT和RCV指令与NetW/NetR指令不同的是,它们与网络上通信对象的"地址"无关,而仅对本地的通信端口操作。

如果网络上有多个设备,消息中必然包含地址信息;这些包含地址信息的消息才是XMT和RCV指令的处理对象。

由于S7-200的通信端口是半双工RS-485芯片,XMT指令和RCV指令不能同时有效。

1.3 发送和接收指令XMT(发送)指令的使用比较简单。

RCV(接收)指令所需要的控制稍多一些。

RCV指令的基本工作过程为:• 1.在逻辑条件满足时,启动(一次)RCV指令,进入接收等待状态• 2.监视通信端口,等待设置的消息起始条件满足,然后进入消息接收状态• 3.如果满足了设置的消息结束条件,则结束消息,然后退出接收状态所以,RCV指令启动后并不一定就接收消息,如果没有让它开始消息接收的条件,就一直处于等待接收的状态;如果消息始终没有开始或者结束,通信口就一直处于接收状态。

这时如果尝试执行XMT指令,就不会发送任何消息。

所以确保不同时执行XMT和RCV非常重要,可以使用发送完成中断和接收完成中断功能,在中断程序中启动另一个指令。

在《S7-200系统手册》中关于XMT和RCV指令的使用有一个例子。

这个例子非常经典,强烈建议学习自由口通信时先做通这个例子。

S7-200 CPU提供了通信口字符接收中断功能,通信口接收到字符时会产生一个中断,接收到的字符暂存在特殊存储器SMB2中。

通信口Port0和Port1共用SMB2,但两个口的字符接收中断号不同。

每接收到一个字符,就会产生一次中断。

对于连续发送消息,需要在中断服务程序中将单个的字符排列到用户规定的消息保存区域中。

实现这个功能可能使用间接寻址比较好。

对于高通信速率来说,字符中断接受方式需要中断程序的执行速度足够快。

一般情况下,使用结束字符作为RCV指令的结束条件比较可靠。

如果通信对象的消息帧中以一个不定的字符(字节)结束(如校验码等),就应当规定消息或字符超时作为结束RCV指令的条件。

但是往往通信对象未必具有严格的协议规定、工作也未必可靠,这就可能造成RCV指令不能正常结束。

这种情况下可以使用字符接收中断功能。

1.4 字符接收中断S7-200 CPU提供了通信口字符接收中断功能,通信口接收到字符时会产生一个中断,接收到的字符暂存在特殊存储器SMB2中。

通信口Port0和Port1共用SMB2,但两个口的字符接收中断号不同。

每接收到一个字符,就会产生一次中断。

对于连续发送消息,需要在中断服务程序中将单个的字符排列到用户规定的消息保存区域中。

实现这个功能可能使用间接寻址比较好。

对于高通信速率来说,字符中断接受方式需要中断程序的执行速度足够快。

一般情况下,使用结束字符作为RCV指令的结束条件比较可靠。

如果通信对象的消息帧中以一个不定的字符(字节)结束(如校验码等),就应当规定消息或字符超时作为结束RCV指令的条件。

但是往往通信对象未必具有严格的协议规定、工作也未必可靠,这就可能造成RCV指令不能正常结束。

这种情况下可以使用字符接收中断功能。

2自由口通信使用指南2.1 通讯口初始化SMB30(对于端口0)和SMB130(对于端口1)被用于选择波特率和校验类型。

SMB30和SMB130可读可写。

见表1.表1.特殊存储器字节SMB30/SMB130示例:定义端口0为自由口模式,9600波特率,8位数据位,偶校验,程序如下图2.:图2.通讯口初始化程序2.2 发送数据:发送指令XMT能够发送一个字节或多个字节的缓冲区,最多为255个。

使用边沿触发。

发送缓冲区格式:第一个字节为字符个数,其后为发送的信息字符。

示例:如果PLC连续发送2个字符16#55和16#EE,程序如下图3.:图3.发送指令程序示例说明:PLC通过数据块写入数据。

XMT指令中TBL缓冲区首地址VB200写入发送字符的个数,VB201和VB202分别写入发送字符。

通讯口波形图如图1.判断发送完成的方法方法一:发送完成中断。

通过连接中断服务程序到发送结束事件上,在发送完缓冲区中的最后一个字符时,则会产生一个中断。

对通讯口0为中断事件9,对通讯口1为中断事件26。

连接中断程序到中断事件示例如下图4.:图4.建立发送完成中断的程序方法二:发送空闲位。

当port0发送空闲时,SM4.5=1。

当port1发送空闲时,SM4.6=1.示例:如果PLC断续的发送2个字符16#55和16#EE.方法一:利用发送完成中断,在主程序中建立中断事件,执行XMT发送16#55,发送完成后,进入发送完成中断程序中,执行XMT发送16#EE。

波形图如图5.图5.字符波形图方法二:利用发送空闲位。

当执行XMT发送完16#55后,利用SM4.5/4.6的上升沿(确保发送的字符帧发送完成),往XMT的TBL缓冲区写入新字符16#EE,并再次触发发送。

波形图如图6.图6.字符波形图两种方法均断续发送字符,即两个字符之间有空闲状态。

注意:由于SM4.5/4.6的使用受程序扫描周期的影响,编程中推荐使用发送完成中断。

Break断点Break状态:持续以当前波特率传输16位数据,且一直维持"0"状态。

产生方式:把字符数设置为0并执行XMT指令,可以产生一个Break状态。

Break用途:可以作为接收的起始条件。

示例:通过XMT指令发送一个Break断点。

偶校验,8个数据位,9.6K。

程序如下图7.:图7.发送一个断点的程序Break状态的波形图如下图8.图8.一个断点波形图如果通过接收方为上位机或者S7-200PLC,那么它们接收到的字符为16#00. 那么通过发送一个Break断点接收到的16#00与发送一个字符帧16#00有什么不同呢?Break状态是传输16位数据一直为0。

相关文档
最新文档