在通讯协议中,如果数据没有被传输,发送方和接收方不能永久等待。这会导致通讯延迟,导致网络中断,因为带宽未被充分利用。因此,为了在某次通讯失败后继续与其他网络工作,协议中使用了称为超时的设置。
通讯协议中的超时是指系统在假设失败或延迟前等待响应的时间限制,该参数设置错误可能导致通讯异常。
在任何通讯中,都有两方:发送方和接收方。发送方会发送消息,接收方会接收到。作为响应,接收方会向发送方发送确认,表示已收到消息。发送方等待确认,并确认消息已正确传达,因此,确认需要等待一段时间。在这段时间间隔内,确认消息应能传达到发送方。时间过后,如果仍未收到确认,说明通讯发生异常。这会导致发送方在整个网络中抛出异常消息,警告通讯失败。在通讯协议中,这种等待时间被称为超时。
超时的典型值以毫秒或秒为单位,大多数控制器都有默认的超时值,它是根据产品的功能来设定的。如果需要,可以根据应用需求调整超时值。请求发送后,超时计时器开始,在此期间,如果收到响应,计时器会重置为零,并在下一个请求时重新开始。
如果超时设置得太慢或过长,就会导致网络通讯延迟。因为如果网络中有许多设备,只有一个主节点和多个从机,那么下一个从站必须等到第一个从站的响应结束并被确认后才会做出响应。因此,网络变得缓慢,所有资源的利用效率也下降。此外,如果未来添加其他设备,网络流量会大幅增加,导致拥堵。
如果超时设置得太快或过短,就会导致数据丢失或网络不可靠。这是因为从设备没有太多时间来响应请求。如果理想的通讯时间是5秒,而超时设置为3秒,那么每次都会出现通讯错误,因为没有给网络足够的时间去完成。
因此,必须确保超时设置正确,避免数据包丢失。数据包不必每次都在同一时间到达。因此,适当的中间值能确保在网络出现延迟时有缓冲区。不能太快也不能太慢。
超时还取决于多种因素,例如:网络中的设备总数、数据长度、各设备间的距离、周围的电气噪声等等。
在PLC或HMI程序中,除了通讯外,还有其他动作,比如:周期函数或基于时间的函数,这些函数每次都以固定间隔重复出现。这段时间,加上通讯时间,提升了整体处理速度。因此,根据为这些动作编写的程序,必须设置超时。否则,它会导致处理速度延迟,间接地导致通讯延迟。
---