S7-1200 PLC 技术参考 v3.9

流通量控制(流控,flow control)

流控是在通信过程中,为了防止数据丢失而采取的一种平衡发送和接收的机制。流控可以确保发送设备发送的信息量不会超过接收设备所能处理的信息量。流控有两种实现方式,即硬件流控和软件流控

注意:

CM 1241 RS232 接口通信模块支持硬件流控可软件流控

CM 1241 RS485 接口通信模块不支持流控

硬件流控(RTS、CTS)

硬件流控制通过请求发送 (RTS, Request To Send) 和允许发送 (CTS, Clear To Send) 通信信号来实现。 对于 RS232 CM1241,RTS 信号从引脚 7 输出,而 CTS 信号通过引脚 8 接收。

CM 1241 RS232通信模块支持两种硬件流控模式:

RTS切换(RTS switched)

RTS始终激活(RTS always on )

1、RTS切换(RTS switched)

图1 RTS switched

图2 RTS switched 设置

CM1241 模块在发送数据之前,首先会激活本模块的 RTS 信号,随后开始监控CTS管脚的电平状态,判断接收设备是否已经准备好接收数据。当 CTS 变为有效信号后,CM1241 模块开始发送数据。在数据传输过程中 CTS 信号必须一直保持有效,如果 CTS 信号变为无效,CM1241 模块立即停止发送。

RTS 信号被激活后,如果在指定的等待时间内 CTS 信号没有被激活,CM1241 模块会终止数据传送并返回错误到用户程序。

2、RTS始终激活(RTS always on )

一些通信设备(例如电话调试解调器)监控 RTS 信号并将其作为允许发送信号,仅在 RTS 处于激活状态时才向 CM1241 模块发送数据。如果 RTS 处于非激活状态,则不向 CM1241 模块发送数据。与这类设备通信时,需要在 S7-1200 设备组态中选择“RTS始终激活”。

注意:选择“RTS 始终激活”后,CM1241 会将 RTS 信号一直激活,即使CM模块已无法接收字符,RTS 信号也不会复位,因此与 CM1241 通信的设备必须确保一次发送的数据量小于 CM 模块接收缓冲区的大小(每个 CM 模板的接收缓冲区为1KB)。

3、数据终端就绪(DTR)和数据设备就绪(DSR)信号

选择上述1、2两种硬件流控方式的任何一种,CM1241 模块都会激活数据终端就绪(DTR)信号,即通信口 4 号管脚。只有当据设备就绪(DSR)信号被激活时,CM 模块开始发送数据,在数据传送过程中,如果DSR变为非激活状态,CM 模块暂停数据传送。CM1241 模块仅在发送数据时监控 DSR 信号状态。

软件流控(XON、XOFF)

软件流控是指在消息帧中使用特殊字符来实现流通量控制。

表示可以继续传送的 ASCII 字符称为 XON

表示传送必须停止的 ASCII 字符称为 XOFF

当通信一方不能继续接收数据时,会发送一个 XOFF 字符到通信的另一方,告诉另一方停止发送数据;当通信可以恢复时,该方会再发送一个 XON 字符到另一方,告诉对方继续发送数据。如果 CM1241 模块在指定的时间内没有等待到 XON 字符,则终止数据传输并返回错误到用户程序。

注意:在通信数据中,不得包含 XON 和 XOFF 字符

CM 1241 RS232接口通信模块的流控设置

在STEP 7 Basic V10.5的 project view 下,点击“PLC(名称)”----> Device Configuration,打开设备组态画面,再点击 CM1241 模块图示上的通信口,在下方窗口 选择“属性”标签页,如下图所示,在“Port Configuration”选择流控方式:

图3 CM1241 接口组态

CM1241 RS232 模块可支持的流控方式有:

None:不使用流控。

XON/XOFF:使用软件流控。详细请参考本页上述“ 软件流控(XON、XOFF)

Hardware RTS always ON:硬件流控,RTS始终激活。详细请参考本页上述“ RTS始终激活

Hardware RTS always switched:硬件流控,RTS切换。详细请参考本页上述“ RTS切换