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.

当起始符满足后,PLC会对接收到的字符与结束符进行对比,如果与结束符不相等,则继续数据的接收, 如果接收到的数据与结束符相等,则关断接收功能,并产生接收完成中断。因此使用起始符和结束符来讲,大部分使用的是一些特定的字符。

若使用起始符和结束符作为消息的起始和结束的判断时,需要先设置好接受功能的控制字节(SMB87)告知PLC为起始符和结束符判断消息的起始和结束。SMB87的个格式内容如下图所示:

程序如下所示:

(0)

相关推荐

  • 西门子S7-200 SMART自由口通信参数如何设置?如何编写发送程序和接收程序?如何测试?

    西门子S7-200 SMART除了支持以太网通信,还可以通过CPU上或信号板上的RS485接口实现串口通信.支持的串口协议,包括自由口协议.USS协议.MODBUS协议和PPI协议.STEP7 Mic ...

  • 西门子PLC自由口通讯 中断,这么用很方便!

    以前我们讲过关于自由口通讯的实例,今天我们讲一下自由口通讯配合中断的实例. 在一些特定场合,比如说与松下系列伺服驱动器的控制时,为了保证数据的安全,我们需要进行多次往返的数据交换,这就需要严格控制通讯 ...

  • 一起学习:西门子200 PLC自由口通讯

    编程自由口通讯的基本步骤 1 设置通讯参数:如果是集成在本机上基于RS485口,在SMB30中设置(prot0口);如果是采用通讯信号板,则在SMB130中设置(prot1口),这2个地址的设置,仅仅 ...

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

    在上一篇文章中,我们提到了有关于自由口通信的一些基础知识,给大家解释了什么叫通信协议,什么叫信息帧或消息报文,起始符/结束符与起始位/停止位之间的关系.那么今天就跟大家聊聊西门子S7200系列的自由口 ...

  • 西门子S7-200系列PLC自由口通信程序设计之数据的发送

    在设计自由口通信程序时,自由口通信程序设计的核心就是使用发送指令XMT和接收指令RCV对数据进行发送和接收.接收指令RCV应用的难点,在于如何设置"判断接收消息的起始条件和结束条件" ...

  • S7-200系列PLC自由口通信分享(4)

    在上一篇文章中,与大家分享了S7-200系列PLC中自由口通信中的接收指令.消息接收时用于判断消息的起始和结束的几种方式,也给大家分享了下使用起始符和结束符作为消息的起始和结束的判断,那今天给大家分享 ...

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

    在上一篇的文章中,跟大家分享了自由口通信中,用消息定时器作为信息接收的结束条件的判断过程, 那么今天继续跟大家分享另外一个用于消息的接收过程中判断消息的结束条件 -- 字符定时器方式作为消息的结束条件 ...

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

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

  • 西门子PLC自由口通讯 中断,有多少人用过?

    在一些特定场合,比如说与松下系列伺服驱动器的控制时,为了保证数据的安全,我们需要进行多次往返的数据交换,这就需要严格控制通讯的时间.那么这个时候对于PLC来说通讯就是最重要的,所以我们需要打断PLC的 ...

  • 【案例】S7-200SMART与扫描枪自由口通信应用

    ↖戳上方  蓝字  " PLC发烧友 "   关注我们哦! 本案例主要让读者掌握练习S7-200SMART串口通信的接线,协议的分析,熟悉使用自由口通信的发送指令和接收指令,自由口 ...