首页 理论教育 DF1半双工协议:理解与应用

DF1半双工协议:理解与应用

时间:2023-06-15 理论教育 版权反馈
【摘要】:DF1半双工协议支持数据透明性。与DF1全双工协议相反,DF1半双工通信是单向的。DF1半双工协议的附加特性是允许从设备梯形程序中的MSG指令向其他从设备发送或接收数据。DF1半双工主设备的轮询模式对主站进行配置,以决定是用基于消息的轮询模式还是标准轮询模式与从站通信。

DF1半双工协议:理解与应用

DF1半双工协议提供一个单主多从的多点网络。DF1半双工协议支持数据透明性(美国国家标准协会ANSI-X3.28-1976的规范子类D1)。与DF1全双工协议相反,DF1半双工通信是单向的。MicroLogix1500控制器中的RS232端口可以既作为半双工编程端口又可作为半双工点对点信息端口。

1.DF1半双工协议的工作原理

主控设备通过“轮流查询”从设备来激活所有的通信。从设备只有在主控设备轮询时才能传送信息包。主控设备的轮询是有规则且对每个从设备都是均等的,所以每个从设备通信的机会都是均等的。在轮询过程中,主控设备可以不断查询该从设备直到没有信息包传送为止,或者每个轮询过程只查询该从设备一次,这取决于主控设备的组态。主从设备的节点地址必须是不同的。

DF1半双工协议的附加特性是允许从设备梯形程序中的MSG指令向其他从设备发送或接收数据。当激活的从设备被查询时,从站的MSG指令首先将数据发送到主控设备,主控设备识别出这并非自己的信息,而是其他从设备的信息,故即刻将信息传送到目标从设备。目标从站在接收到主站转发的数据后,会在被轮询时向主站发送一个已响应的数据包,同样,主站会把这个响应数据包转发给发送MSG指令的从站。从对从传送是主控设备的功能,也可以被编程软件用于向DF1半双工链路上的处理器上载或下载程序。

DF1半双工协议最多支持255个设备(地址0~254),地址255保留为主控设备广播用。MicroLogix1500控制器支持使用RTS/CTS(请求发送/清除发送)硬件信号交换方式的半双工调制解调器

2.DF1半双工主设备

仅MicroLogix1200 Series C FRN7和MicroLogix1500 Series C FRN8及以上控制器可被定义为DF1半双工主设备(DF1 Half Duplex Master)。当主设备要传送的信息是一个广播信息时,则在MSG指令参数设定界面的“Target Device”栏中,“Local Bridge Add”需设定为-1。

(1)DF1半双工主站驱动程序广播消息

由所有DF1半双工从站接收和执行DF1半双工主站发出的广播写入命令。在对DF1半双工从站进行轮询后,接收、确认和重新广播DF1半双工主站接收到的广播写入命令,而DF1半双工主站不执行该广播写入命令,将该命令视为任何其他从站到从站的命令,重新广播后未收到确定的情况除外。

(2)DF1半双工主设备的轮询模式

对主站进行配置,以决定是用基于消息的轮询模式还是标准轮询模式与从站通信。

1)基于消息的轮询模式。当与从站通信的时间不紧急时和用户需要能够限制主站与每个从站的通信时间和次数的情况下,使用基于消息的轮询模式。

使用基于消息的轮询模式时,主站与从站的通信时间是指梯形图逻辑中MSG指令从发出到到达特定从站的时间。这种轮询模式使用户可以全面控制(通过梯形图逻辑)与每个从站的通信时间和次数。

如果“同时”触发多个MSG指令,将按顺序一次执行一个命令,直到完成(即第一个MSG排队指令,在传送下一个排队的MSG指令前传输完毕或报错)。任何时候要触发从站无法响应的消息(例如,调制解调器故障),该消息将经历重试和超时,这会减慢执行所有其他排队的消息。每个响应从站对消息做出响应的最短时间随着无法响应的从站数量的增加而直线增加。

如果基于消息的选择是“允许从站发出消息”,从站可以将消息发送到主站(通过发送异常消息轮询报告)或另一个从站(从站到从站发送消息)。MSG命令数据包将保留在从站的传送队列中,直到主站触发其自己的MSG命令数据包为止(可能是几秒、几分钟或几小时后,取决于主站的梯形图逻辑)。

如果基于消息的选择是“不允许从站发出消息”,则即使从站触发并在其梯形图逻辑中排队等候MSG指令时,主站也不会对其进行处理。

使用基于MSG的轮询模式时,主设备只有在MSG指令发送到梯形图逻辑中触发的从设备时才开始与从设备进行通信。传送读取或写入命令后,主设备等待答复MSG超时时段,然后轮询从设备是否答复其命令。可以对主设备进行配置,以忽略(“基于MSG的轮询,不允许从设备发出消息”)或接收(“基于MSG的轮询,允许从设备发出消息”)可能已经触发并在从设备中排队等候的MSG。

2)标准轮询模式。标准轮询模式用于主站与所有从站之间通信时间紧急的大型系统或要使用从站发出的消息的系统(由于使用与从站到从站发送消息所使用的机制相同,所以这包括通过网络的从站编程)。激活的节点表“自动”跟踪正在通信(和没有进行通信)的从站。当需要限制主站与每个从站的通信时间和次数的情况下,不应使用标准轮询模式。

标准轮询模式使主站以轮流的方式将一个或多个4字节轮询包连续发送至由轮询列表中的用户配置的每个从站地址,在到达轮询列表最后一行时,主站立即返回并再次从轮询列表的顶行开始轮询从站。轮询过程独立于并可能与在主站梯形图逻辑中触发的任何MSG指令不同步。事实上,即使在主站处于程序模式中时,该轮询也会继续。

在主站处于运行模式时触发MSG指令的情况下,在完成对轮询列表中从站的轮询后和开始对轮询列表中的下一个从站进行轮询前(无论其当前在轮询列表中处于哪个位置),主站将传送消息数据包。如果“同时”触发多个MSG指令,在两次从站轮询之间可能至少发送4个消息数据包。这些消息中的每条消息都将有机会在主站轮询从站(地址在发送到轮询列表中该从站的数据包中)时完成。

如果将传送的每个消息数据包定址到不同的从站,完成的顺序将基于在轮询列表中出现的下一个从站地址,而不是执行并传送MSG指令的顺序。

当从站从主站接收轮询包时,如果其有一个或多个消息数据包排队等候传送(及早答复接收到的命令或梯形图逻辑中本地触发的MSG命令),则主站将传送队列中的第一个消息数据包。

如果标准模式选择是“每次轮询扫描单条消息”,则主站将转至轮询列表中的下一个站。如果标准模式选择是“每次轮询扫描多条消息”,则主站将继续轮询这个从站,直到其传送队列中没有消息数据包为止。

当从站使用2字节轮询响应对主站轮询包做出响应时,主站识别没有消息数据包排队等待传送的从站。

每次从站对其轮询包做出响应或无法对其轮询包做出响应时,主站“自动”更新其激活的节点表(如果处于程序模式,则再次更新)。在该列表中,将一个位分配到每个可能的从站地址(0~254)。如果从站在轮询时没有做出响应,则清除其激活的节点表位;如果从站在轮询时做出响应,则设置其激活的节点表位。除了作为一个在线故障处理工具之外,两个常用的激活的节点表还将向与主站连接的操作员界面报告所有从站的正常/故障通信状态,用于监视、报警和记录,并将提前处理传送到每个特定从站的MSG指令。

另一种情况是,如果从站在最后一次轮询时没有做出响应,不能接收并对MSG指令做出响应,从站将在错误完成前处理最大数量的重试和超时。这会减慢轮询扫描和任何其他正在进行的消息发送。使用这种技术,每个响应从站最短消息发送时间实际随着不能做出响应的从站的数量增加而减少。

为了在针对标准轮询模式配置主站时通过半双工网络远程监视和编程从站,编程计算机DF1从站驱动程序(通常为罗克韦尔自动化软件RSLinx)站地址必须包括在主站轮询列表中。

3)异常报告的轮询。异常报告的轮询让从站将数据传送到其主站,释放主站,使主站不再重复从每个从站读取数据块以确定是否发生任何从站输入或数据更改。通过用户编程,从站监视其自己的输入是否发生状态或数据更改,如果发生更改,则排队数据,在主站轮询从站时将其写入主站。

4)从站到从站发送消息。如果有一个从站要向另一个从站发送消息,则只需在对轮询做出响应时将目标从站地址包括在消息指令的目标字段中替代主站地址即可。主站检查从任一从站接收的每个数据包头中的目标站地址。如果地址与从站自己的站地址不匹配,整条消息将在遥测网络上发回到合适的从站,不会进行任何进一步的处理。

(3)DF1半双工主设备的配置

DF1半双工主设备的配置界面如图9-9所示。

978-7-111-47412-8-Chapter09-10.jpg

图9-9 半双工主设备配置界面(www.xing528.com)

参数配置界面图中其他参数的含义说明如下:

1)Control:控制线,分无信号交换方式(No Handshaking,点对点通信,没有调制解调器)、半双工调制解调器信号交换方式[Half-Duplex modem(RTS/CTS Handshaking)]和全双工调制解调器[Full-Duplex Modem(RTS on)]。

2)Error Detection:错误检测模式,分BCC和CRC。CRC检测比较全面,BCC检测比较快。

3)Polling Mode:轮询模式。包括:基于MSG的轮询,允许从设备发出消息(Msg,Allow Slaves to Initiate);基于MSG的轮询,不允许从设备发出消息(Msg,Don′t allow Slaves to Initiate);标准轮询,每次扫描单条消息(Std,single msg.per scan);标准轮询,每次扫描多条消息(Std,multiple msg.per scan)。

4)Duplicate Packet Detect:重复数据包检测。当启用重复数据包检测时,检测并消除对消息的重复响应。如果将发送器的消息发送重试设置大于0,则将在有干扰的通信条件下发送重复数据包。

5)Reply Msg Timeout:答复MSG超时。设定值为0~65535。如果在超时设定的时间内,通道发出的信息没有得到响应信息,则通道会重建通信。

6)ACK Timeout:应答(Acknowledgement)超时。设定值为0~65535。在消息重发或消息指令发生错误前,主设备等待已发信息应答响应的时间。

7)RTS Off Delay:请求发送延时断开。设定值为0~65535,仅在“Control”中选择“Half-Duplex Modem”时才可设定,指定将最后一个串行字符发送到调制解调器和停用RTS之间的延迟时间,为调制解调器提供额外时间以传送数据包的最后一个字符。

8)RTS Send Delay:请求发送延时。设定值为0~65535,仅在“Control”中选择“Half-Duplex Modem”时才可设定,是发送设备RTS命令和终端设备允许发送命令CTS之间的时间延迟。用于与收到RTS后没有准备好立即响应CTS的调制解调器一起使用。

9)Message Retries:消息发送重试次数。设定值为0~255,指定主设备在没有接收到来自从设备的应答指令时尝试重新发送消息数据包的次数。用于确认在传输中可能中断的干扰环境

10)Pre-Transmit Delay:预先传送延时。设定值为0~65535。在控制模式设置为“No Handshaking”时,这是传输前的延迟时间。1761-NET-AIC物理半双工网络需要该延迟。1761-NET-AIC需要2ms的延迟时间来从传送模式切换为接收模式。

当控制模式设置为“Half-Duplex Modem(RTS/CTS Handshaking)”时,这是接收数据包的最后一个字符和下一次RTS请求之间最短的时间延迟。

11)Priority Polling Range-High:优先轮询范围-高。选择优先轮询的最后一个从站地址,仅在标准轮询模式下。

12)Priority Polling Range-Low:优先轮询范围-低。选择优先轮询的第一个从站地址。输入255禁用优先轮询。仅在标准轮询模式下。

13)Normal Polling Range-High:正常轮询范围-高。选择正常轮询的最后一个从站地址,仅在标准轮询模式下。

14)Normal Polling Range-Low:正常轮询范围-低。选择正常轮询的第一个从站地址。输入255禁用正常轮询。仅在标准轮询模式下。

15)Normal Poll Group Size:正常轮询组大小。输入返回优先轮询范围前在正常轮询范围内扫描的过程中,想要轮询的正常轮询范围中的活动站数量。如果在优先轮询范围中没有配置站,则将该参数保持为0。

可在在线状态下,通过Channel Status查看通信情况。

3.DF1半双工从设备

(1)DF1半双工从站驱动程序广播消息

在DF1半双工从站发出广播写入命令时,其像任何其他MSG命令一样排队等候,直到收到来自DF1半双工主站的轮询为止。在传送广播写入命令后,该DF1半双工从站接收到来自DF1半双工主站接收数据包过程正确的确认。在DF1半双工主站重新广播写入命令时,其他DF1半双工从站接收并执行命令,所有其他从站节点接收广播数据包,没有确认或答复命令被发回。当要传送的信息是一个广播信息时,则在MSG指令参数设定界面的“Target Device”栏中,“Local Bridge Add”需设定为-1。

(2)DF1半双工从设备的配置半双工从设备(DF1 Half-Duplex Slave)的配置界面如图9-10所示。

978-7-111-47412-8-Chapter09-11.jpg

图9-10 半双工从设备的配置界面

图中各参数说明如下:

1)Control:控制线。分无信号交换方式(No Handshaking,点对点通信,没有调制解调器)和半双工调制解调器信号交换方式[Half-Duplex modem(RTS/CTS Handshaking)]。

2)Error Detection:错误检测模式。分BCC和CRC。CRC检测比较全面,BCC检测比较快。

3)EOT Suppression:EOT抑制。当启用EOT抑制时,如果没有消息排队,则从站在轮询时不做出响应。在没有消息要传送时,这可以节省调制解调器的传输功率

4)Duplicate Packet Detect:重复数据包检测。启用时,检测并消除对消息的重复响应。如果将发送器的消息发送重试设置大于0,则将在有干扰的通信条件下发送重复数据包。

5)Poll Timeout(x20ms):轮询超时。设定值为0~65535。只有在从设备发出MSG指令时才应用轮询超时。它是从设备等待来自主设备的轮询所需的时间。如果从设备在轮询超时内没有接收轮询,将发生MSG指令错误,并且梯形图程序需要对MSG指令进行重新排队。如果正在使用MSG指令,则不要使用值为零的轮询超时。当轮询超时值设为零时,禁用轮询超时。

6)Message Retries:消息发送重试次数。设定值为0~255。指定主设备在没有接收到来自从设备的应答指令时尝试重新发送消息数据包的次数。用于确认在传输中可能中断的干扰环境。

7)Pre-Transmit Delay:预先传送延时。设定值为0~65535。当控制模式设置为“No Handshaking”时,这是传输前的延迟时间。1761-NET-AIC物理半双工网络需要该延迟。1761-NET-AIC需要2ms的延迟时间来从传送模式切换为接收模式。当控制模式设置为“Half-Duplex Modem(RTS/CTS Hand shaking)”时,这是接收数据包的最后一个字符和下一次RTS请求之间最短的时间延迟。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈