S7200-SMART-自由口通信实例解读分析_第1页
S7200-SMART-自由口通信实例解读分析_第2页
S7200-SMART-自由口通信实例解读分析_第3页
S7200-SMART-自由口通信实例解读分析_第4页
S7200-SMART-自由口通信实例解读分析_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

S7-200Smart

——自由口通信解读

S7200Smart自由口通信:S7-200Smart串口通讯主要包括:

1)Modbus—PLC与支持ModbusRTU协议的第三方设备通讯RTUMaster-Protocol(RTU主站协议)RTUSlave-Protocol(RTU从站协议)2)USS—S7-200PLC与SIEMENS驱动设备的通讯(如MM440等)

3)自由口通讯—S7-200PLC与自由协议的第三方设备间的通讯(2)自由口通讯S7-200smartCPU的通信口可以设置为自由口模式。选择自由口模式后,用户程序就可以完全控制通信端口的控制,通信协议也完全受用户程序控制。所谓的自由口通讯,就是通讯协议是由用户自由定义的。对于S7-200smart

PLC而言,基于本体自带的485端口的网络所应用的协议,除了PPI协议以外,其他都是自由口协议。例如USS协议、Modbus协议等等都是特定的自由口通讯协议。

S7200Smart自由口通信:1)自由口通讯硬件西门子S7-200smart系列PLC的自由口是基于RS485的硬件,采用正负两根信号线作为传输线路。两线间的电压差为+2V~6V表示逻辑'1':两线间的电压差为-2V~-6V表示逻辑'0'。西门子串口的插头是九针标准插头,其中各个针脚的定义在下表中得以体现,最重要的两根线是表中红线标出的3号脚和8号脚,也就是通常说的'3正8负',其中3对应信号B,8对应信号A,其它的引脚可以完成一些额外的功能,比如24V直流电的供应,5V直流电的供应以及发送请求等。但是对于最基本的串口通讯而言,3脚和8脚两根线就足够了,所以下面将着重介绍这两根线的逻辑。

S7200Smart自由口通信:自由口的指令一共有两条,一条是发送指令,一条是接收指令。我们在谈及发送或接收的时候往往会对立地去看读或写两个概念,但是读与写,发送与接收并不是相同的概念,一般在谈及读或写的时候往往是基于一些相对高级的通讯,比如主从之间的通讯,主站可以对从站进行读或写的操作。相对于读和写的概念而言,发送和接收指令更为基本例如A和B两个通讯对象,A发送一个报文给B,这是一个发送的过程,B接收到A发送给它的报文,这是接收的过程。而对于读和写则复杂的多,例如A作为主站想要读取B的数据内容,则需要A首先发一个读请求给B,B接收到了A发送过来的读请求之后作出判断,从而将A想要的数据由B再发送给A,由A接收到这个数据从而完成一次读的过程。所以相对读和写,发送和接收的过程要基本的多,而自由口通讯用到的指令就是发送和接收指令。

S7200Smart自由口通信:

S7200Smart自由口通信:SMB30和SMB130分别组态通信端口0和1以进行自由端口操作,并提供波特率、奇偶校验和数据位数的选择。右图显示了自由端口控制字节。对于所有组态,都生成一个停止位。

S7200Smart自由口通信:发送报文格式接收报文格式

S7200Smart自由口通信实例:RCV接收指令实例例子1:S7-200SMARTCPU集成的RS485端口(端口0)实现与条码扫描枪通信。条码扫描枪通常为RS232端口,其与S7-200SMARTCPU集成的RS485端口连接时需要使用RS232/485转换设备或RS-232/PPI多主站电缆。条码扫描枪接收到条码后会自动通过RS232端口发送报文,S7-200SMARTCPU需要调用RCV指令接收报文,并在接收完成中断中再次使能RCV指令循环接收报文。1.设置SMB30=2#00001001(自由口通信,波特率9600,8位数据位,无校验);2.设置SMB87=2#10010100,使用空闲线检测为信息接收的起始条件,使用字符间定时器为信息接收的结束条件;

S7-200SMARTCPU集成的RS485端口(端口0)实现与条码扫描枪通信注意:此处使用的调用指令为SM0.1图2.设置空闲线定时器SMW90=5ms,字符间定时器SMW92=5ms,允许最大接收字符个数SMB94=50;注意:此处使用的调用指令为SM0.1S7-200SMARTCPU集成的RS485端口(端口0)实现与条码扫描枪通信

图3.

连接中断子程序INT_0到通信端口0接收完成事件,并使能中断;使用SM0.1触发RCV指令地执行。

注意:此处使用的调用指令为SM0.1S7-200SMARTCPU集成的RS485端口(端口0)实现与条码扫描枪通信S7-200SMARTCPU集成的RS485端口(端口0)实现与条码扫描枪通信CPU中断程序1.判断信息接收结束是否为字符间超时结束(SM86.2=1),若是,则认为接收成功,接收成功计算器VB200自加一;

2.消息接收成功时接收的信息拷贝到VB300为起始地址的存储区;

3.开始下一次RCV指令地执行接收过程首先执行RCV指令,启动接收,启动之后会进入一种接收等待的状态,等待起始状态的满足,当起始条件满足以后SMB86/186=0,此时数据将按照发送的顺序进入信息缓冲区,直到结束条件的满足,结束条件满足以后SMB86/186不再等于0,之后接收过程结束并产生接收信息完成中断。在整个过程中最为重要的就是起始条件和结束条件,想要将自由口通讯学好,这两个条件是必不可少也是最为关键的部分。S7-200SMARTCPU集成的RS485端口(端口0)实现与条码扫描枪通信2台S7-200SMARTCPU采用自由口通信方式实现相互通信。两台PLC之间也可以使用自由口通信完成PLC之间的数据交换,我们以下面一个例子说明两台PLC之间的自由口通信。通信任务:CPU1每秒触发一次XMT指令将CPU的实时时钟发送到CPU2;CPU2接收到CPU1发送的信息后立即将CPU2的实时时钟回复到CPU1。2台S7-200SMARTCPU采用自由口通信方式实现相互通信。1、CPU1编程

1.1、CPU1主程序编程如图所示:1.设置SMB30=2#00001001(自由口通信,波特率9600bps,8位数据位,无校验)。2.设置SMB87=2#10010100,使用空闲线检测为信息接收的起始条件,使用字符间定时器为信息接收的结束条件。3.设置空闲线定时器SMW90=5ms,字符间定时器SMW92=5ms,允许最大接收字符个数SMB94=10。2台S7-200SMARTCPU采用自由口通信方式实现相互通信。4.连接中断子程序INT_0到通信端口0发送完成事件,并启用中断。

5.每秒钟读取一次CPU的实时时钟,并将发送缓冲区长度设置为8个字符。

6.执行XMT指令之前设置SM87.7=0,同时执行RCV指令,终止消息接收。

7.每秒钟执行一次XMT指令将CPU的实时时钟发送出去。2台S7-200SMARTCPU采用自由口通信方式实现相互通信。1.2、CPU1发送完成中断子程序INT_0编程中断子程序INT_0用于恢复SMB87的设置(SM87.7=1),并执行RCV指令开始接收CPU2的应答信息。程序如图所示2台S7-200SMARTCPU采用自由口通信方式实现相互通信。2、CPU2编程

2.1、CPU2主程序编程如图所示1.设置SMB30=2#00001001(自由口通信,波特率9600bps,8位数据位,无校验)。2.设置SMB87=2#10010100,使用空闲线检测为信息接收的起始条件,使用字符间定时器为信息接收的结束条件。3.设置空闲线定时器SMW90=5ms,字符间定时器SMW92=5ms,允许最大接收字符个数SMB94=10。2台S7-200SMARTCPU采用自由口通信方式实现相互通信。4.连接中断子程序INT_0到通信端口0接收完成事件,中断子程序INT_1到通信端口0发送完成事件,并启用中断。

5.使用SM0.1调用RCV指令地执行。2台S7-200SMARTCPU采用自由口通信方式实现相互通信。2.2、CPU2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论